* Fix to tr so it recognizes standard escape sequences. Merged common

escape seq. code from tr and echo into utility.c.  Fix thanks to
    Matt Kraai <kraai@alumni.carnegiemellon.edu>.
* This should close Bug #1015.  Please test.
 -Erik
This commit is contained in:
Eric Andersen
2000-07-05 17:26:35 +00:00
parent 57ebebfb01
commit f7cf2f7ef9
7 changed files with 63 additions and 66 deletions

View File

@ -111,22 +111,14 @@ static void map(register unsigned char *string1, register unsigned char *string2
}
}
static void expand(register char *arg, register unsigned char *buffer)
static void expand(char *arg, register unsigned char *buffer)
{
int i, ac;
while (*arg) {
if (*arg == '\\') {
arg++;
i = ac = 0;
if (*arg >= '0' && *arg <= '7') {
do {
ac = (ac << 3) + *arg++ - '0';
i++;
} while (i < 4 && *arg >= '0' && *arg <= '7');
*buffer++ = ac;
} else if (*arg != '\0')
*buffer++ = *arg++;
*buffer++ = process_escape_sequence(&arg);
} else if (*arg == '[') {
arg++;
i = *arg++;