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];