Since 2.8.dev.3 or dev.4, HTUnEscape() in HTParse.c has

              if (iscntrl(FROMASCII(from_hex(p[1])*16 + from_hex(p[2])))) {
                *q++ = *p++;     /* Ignore control codes.  --HN [98/09/08] */
              } else {

If I understand / remember right, that extra check from Henry was not
meant to be included in the mainstream code; and there already is a
function SafeHTUnEscape() in LYMail.c that takes care of what his original
patch tried to address.

The iscntrl() code now prevents unescaping of all 8-bit (with most
significant bit set) characters for me in the default locale, because 
for all such characters iscntrl() returns non-zero.  Sure, I can set a
different locale, but that should not be necessary and was not required
in previous versions.

One effect is that Lynx fails when accessing a file with any 8-bit
characters in the filename from a dired listing.

Tom, I know you do some tests with each dev.N you prepare; could you add
a test that checks whether filenames with 8-bit characters are still
handled right?  This tends to get broken periodically, it seems.

        Klaus

Reply via email to