--- source/lib/util.c.orig Wed Apr 26 08:06:53 2000 +++ source/lib/util.c Tue Oct 31 23:30:12 2000 @@ -2559,6 +2559,33 @@ return; } + /* decode octal digits in '\nnn' format. */ + if (strchr((*ppname_array)[i].name, '\\') != NULL) + { + char *p, *q; + int v = 0; + int len, j; + p = q = (*ppname_array)[i].name; + while (*p) { + if (len = get_character_len(*p)) { + for (j = 0; j < len; j++) + *q++ = *p++; + } else { + if (*p == '\\') { + ++p; + if (!*p) + break; + for (j = 0; isdigit((int)*p) && j < 3; j++) + v = v * 8 + (int)(*p++ - '0'); + *q++ = j ? v : *p++; + } else { + *q++ = *p++; + } + } + } + *q = '\0'; + } + /* next segment please */ nameptr = name_end + 1; i++;