1 --- orig/apache_1.3.26/src/modules/standard/mod_rewrite.h Wed Mar 13 13:05:34 2002
2 +++ apache_1.3.26/src/modules/standard/mod_rewrite.h Tue Oct 15 14:07:21 2002
4 static char *rewrite_mapfunc_toupper(request_rec *r, char *key);
5 static char *rewrite_mapfunc_tolower(request_rec *r, char *key);
6 static char *rewrite_mapfunc_escape(request_rec *r, char *key);
7 +static char *rewrite_mapfunc_ampescape(request_rec *r, char *key);
8 static char *rewrite_mapfunc_unescape(request_rec *r, char *key);
9 static char *select_random_value_part(request_rec *r, char *value);
10 static void rewrite_rand_init(void);
11 --- orig/apache_1.3.26/src/modules/standard/mod_rewrite.c Wed May 29 10:39:23 2002
12 +++ apache_1.3.26/src/modules/standard/mod_rewrite.c Tue Oct 15 14:07:49 2002
14 else if (strcmp(a2+4, "unescape") == 0) {
15 new->func = rewrite_mapfunc_unescape;
17 + else if (strcmp(a2+4, "ampescape") == 0) {
18 + new->func = rewrite_mapfunc_ampescape;
20 else if (sconf->state == ENGINE_ENABLED) {
21 return ap_pstrcat(cmd->pool, "RewriteMap: internal map not found:",
23 @@ -2982,6 +2985,30 @@
25 value = ap_escape_uri(r->pool, key);
29 +static char *rewrite_mapfunc_ampescape(request_rec *r, char *key)
31 + /* We only need to escape the ampersand */
32 + char *copy = ap_palloc(r->pool, 3 * strlen(key) + 3);
33 + const unsigned char *s = (const unsigned char *)key;
34 + unsigned char *d = (unsigned char *)copy;
53 static char *rewrite_mapfunc_unescape(request_rec *r, char *key)