char *vstat;
char *param;
char *anchor_pos;
- char *anchor;
+ char *anchor = NULL;
int use_amp_flag;
- DBG(r, "REQ[%X] start chxj_encoding_parameter()", (unsigned int)(apr_size_t)r);
+ DBG(r, "REQ[%X] start chxj_encoding_parameter()", TO_ADDR(r));
src = apr_pstrdup(r->pool, value);
pair = NULL;
}
if (key) {
+ apr_size_t klen = (apr_size_t)strlen(key);
key = chxj_url_decode(r->pool, key);
len = (apr_size_t)strlen(key);
- key = chxj_encoding(r, key, &len);
+ if (klen != len) {
+ key = chxj_encoding(r, key, &len);
+ key = chxj_url_encode(r->pool, key);
+ }
+#if 0 /* XXX:2009/4/10 */
key = chxj_url_encode(r->pool, key);
+#endif
}
val = apr_strtok(pair, "=", &vstat);
if (! val && sep_pos) {
val = apr_pstrdup(r->pool, "");
}
if (val) {
+ apr_size_t vlen = (apr_size_t)strlen(val);
val = chxj_url_decode(r->pool, val);
len = (apr_size_t)strlen(val);
- val = chxj_encoding(r, val, &len);
+ if (vlen != len) {
+ val = chxj_encoding(r, val, &len);
+ val = chxj_url_encode(r->pool, val);
+ }
+#if 0 /* XXX:2009/4/10 */
val = chxj_url_encode(r->pool, val);
+#endif
if (strlen(param) == 0) {
param = apr_pstrcat(r->pool, param, key, "=", val, NULL);
}
}
}
}
- DBG(r, "REQ[%X] end chxj_encoding_parameter()", (unsigned int)(apr_size_t)r);
+ DBG(r, "REQ[%X] end chxj_encoding_parameter()", TO_ADDR(r));
if (anchor_pos) {
return apr_pstrcat(r->pool, src_sv, "?", param, "#", anchor, NULL);