version 1.35, 2009/03/08 13:52:29 |
version 1.36, 2009/03/08 18:02:36 |
Line 681 pescape(struct termp *p, const char *word, size_t *i, |
|
Line 681 pescape(struct termp *p, const char *word, size_t *i, |
|
{ |
{ |
size_t j; |
size_t j; |
|
|
(*i)++; |
if (++(*i) >= len) { |
assert(*i < len); |
warnx("ignoring bad escape sequence"); |
|
return; |
|
} |
|
|
if ('(' == word[*i]) { |
if ('(' == word[*i]) { |
(*i)++; |
(*i)++; |
assert(*i + 1 < len); |
if (*i + 1 >= len) { |
|
warnx("ignoring bad escape sequence"); |
|
return; |
|
} |
nescape(p, &word[*i], 2); |
nescape(p, &word[*i], 2); |
(*i)++; |
(*i)++; |
return; |
return; |
|
|
} else if ('*' == word[*i]) { |
} else if ('*' == word[*i]) { |
/* XXX - deprecated! */ |
|
(*i)++; |
(*i)++; |
assert(*i < len); |
if (*i >= len) { |
|
warnx("ignoring bad escape sequence"); |
|
return; |
|
} |
switch (word[*i]) { |
switch (word[*i]) { |
case ('('): |
case ('('): |
(*i)++; |
(*i)++; |
assert(*i + 1 < len); |
if (*i + 1 >= len) { |
|
warnx("ignoring bad escape sequence"); |
|
return; |
|
} |
nescape(p, &word[*i], 2); |
nescape(p, &word[*i], 2); |
(*i)++; |
(*i)++; |
return; |
return; |
Line 718 pescape(struct termp *p, const char *word, size_t *i, |
|
Line 728 pescape(struct termp *p, const char *word, size_t *i, |
|
for (j = 0; word[*i] && ']' != word[*i]; (*i)++, j++) |
for (j = 0; word[*i] && ']' != word[*i]; (*i)++, j++) |
/* Loop... */ ; |
/* Loop... */ ; |
|
|
assert(word[*i]); |
if (0 == word[*i]) { |
|
warnx("ignoring bad escape sequence"); |
|
return; |
|
} |
nescape(p, &word[*i - j], j); |
nescape(p, &word[*i - j], j); |
} |
} |
|
|