]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - maintenance/apache-ampersand.diff
MediaWiki 1.16.0
[autoinstallsdev/mediawiki.git] / maintenance / apache-ampersand.diff
diff --git a/maintenance/apache-ampersand.diff b/maintenance/apache-ampersand.diff
deleted file mode 100644 (file)
index f281ce1..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
---- orig/apache_1.3.26/src/modules/standard/mod_rewrite.h      Wed Mar 13 13:05:34 2002
-+++ apache_1.3.26/src/modules/standard/mod_rewrite.h   Tue Oct 15 14:07:21 2002
-@@ -447,6 +447,7 @@
- static char *rewrite_mapfunc_toupper(request_rec *r, char *key);
- static char *rewrite_mapfunc_tolower(request_rec *r, char *key);
- static char *rewrite_mapfunc_escape(request_rec *r, char *key);
-+static char *rewrite_mapfunc_ampescape(request_rec *r, char *key);
- static char *rewrite_mapfunc_unescape(request_rec *r, char *key);
- static char *select_random_value_part(request_rec *r, char *value);
- static void  rewrite_rand_init(void);
---- orig/apache_1.3.26/src/modules/standard/mod_rewrite.c      Wed May 29 10:39:23 2002
-+++ apache_1.3.26/src/modules/standard/mod_rewrite.c   Tue Oct 15 14:07:49 2002
-@@ -502,6 +502,9 @@
-         else if (strcmp(a2+4, "unescape") == 0) {
-             new->func = rewrite_mapfunc_unescape;
-         }
-+        else if (strcmp(a2+4, "ampescape") == 0) {
-+            new->func = rewrite_mapfunc_ampescape;
-+        }
-         else if (sconf->state == ENGINE_ENABLED) {
-             return ap_pstrcat(cmd->pool, "RewriteMap: internal map not found:",
-                               a2+4, NULL);
-@@ -2982,6 +2985,30 @@
-     value = ap_escape_uri(r->pool, key);
-     return value;
-+}
-+
-+static char *rewrite_mapfunc_ampescape(request_rec *r, char *key)
-+{
-+    /* We only need to escape the ampersand */
-+    char *copy = ap_palloc(r->pool, 3 * strlen(key) + 3);
-+    const unsigned char *s = (const unsigned char *)key;
-+    unsigned char *d = (unsigned char *)copy;
-+    unsigned c;
-+
-+    while ((c = *s)) {
-+      if (c == '&') {
-+          *d++ = '%';
-+          *d++ = '2';
-+          *d++ = '6';
-+      }
-+      else {
-+          *d++ = c;
-+      }
-+      ++s;
-+    }
-+    *d = '\0';
-+    
-+    return copy;
- }
- static char *rewrite_mapfunc_unescape(request_rec *r, char *key)