martin 99/12/01 12:55:08
Modified: src CHANGES src/main util.c Log: EBCDIC: Escaped characters in c2x() were encoding the EBCDIC representation of the special characters, not the latin1 representation. This would result in invalid URI references for, e.g., filenames generated by mod_autoindex.c (when they had special chars in them) Revision Changes Path 1.1467 +5 -0 apache-1.3/src/CHANGES Index: CHANGES =================================================================== RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1466 retrieving revision 1.1467 diff -u -r1.1466 -r1.1467 --- CHANGES 1999/12/01 20:45:29 1.1466 +++ CHANGES 1999/12/01 20:54:55 1.1467 @@ -1,5 +1,10 @@ Changes with Apache 1.3.10 + *) EBCDIC: Escaped characters were encoding the ebcdic representation + of the special characters, not the latin1 representation. This + would result in invalid URI's for, e.g., filenames (with special chars) + in mod_autoindex.c [Martin Kraemer] + *) EBCDIC: Fix Byte Ranges for EBCDIC platforms. The necessary switch between implied conversion for protocol parts and configured conversion for document data was missing. The effect of this was that 1.175 +3 -0 apache-1.3/src/main/util.c Index: util.c =================================================================== RCS file: /export/home/cvs/apache-1.3/src/main/util.c,v retrieving revision 1.174 retrieving revision 1.175 diff -u -r1.174 -r1.175 --- util.c 1999/11/26 20:21:18 1.174 +++ util.c 1999/12/01 20:55:03 1.175 @@ -1481,6 +1481,9 @@ static ap_inline unsigned char *c2x(unsigned what, unsigned char *where) { +#ifdef CHARSET_EBCDIC + what = os_toascii[what]; +#endif /*CHARSET_EBCDIC*/ *where++ = '%'; *where++ = c2x_table[what >> 4]; *where++ = c2x_table[what & 0xf];