--- ./charset.c.org Tue Jan 31 15:55:28 1995 +++ ./charset.c Wed Feb 22 18:34:50 1995 @@ -260,6 +260,8 @@ control_char(c) int c; { + if (c == ESC) + return 0; c &= 0377; return (chardef[c] & IS_CONTROL_CHAR); } @@ -274,14 +276,17 @@ { static char buf[8]; - c &= 0377; - if (!control_char(c)) - sprintf(buf, "%c", c); - else if (c == ESC) - sprintf(buf, "ESC"); - else if (c < 128 && !control_char(c ^ 0100)) - sprintf(buf, "^%c", c ^ 0100); + if(c == ESC) + sprintf(buf, "%c", ESC); else - sprintf(buf, binfmt, c); + { + c &= 0377; + if (!control_char(c)) + sprintf(buf, "%c", c); + else if (!control_char(c ^ 0100)) + sprintf(buf, "^%c", c ^ 0100); + else + sprintf(buf, binfmt, c); + } return (buf); }