From 83ebbc36a13203254ff9c4b74f3eed3775b05a72 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Sun, 7 Nov 2010 12:59:22 +0000 Subject: [PATCH] - Fixed bug #53248 (rawurlencode RFC 3986 EBCDIC support misses tilde char). patch by: Justin Martin (frozenfire@php) --- ext/standard/tests/url/bug53248.phpt | 12 ++++++++++++ ext/standard/url.c | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 ext/standard/tests/url/bug53248.phpt diff --git a/ext/standard/tests/url/bug53248.phpt b/ext/standard/tests/url/bug53248.phpt new file mode 100644 index 0000000000..5e31c510df --- /dev/null +++ b/ext/standard/tests/url/bug53248.phpt @@ -0,0 +1,12 @@ +--TEST-- +Bug #53248 (rawurlencode RFC 3986 EBCDIC support) +--FILE-- + +--EXPECTF-- +string(6) "A1_-.~" +string(6) "A1_-.~" \ No newline at end of file diff --git a/ext/standard/url.c b/ext/standard/url.c index dd99cb5301..ae9135075a 100644 --- a/ext/standard/url.c +++ b/ext/standard/url.c @@ -585,7 +585,7 @@ PHPAPI char *php_raw_url_encode(char const *s, int len, int *new_length) str[y++] = hexchars[(unsigned char) s[x] >> 4]; str[y] = hexchars[(unsigned char) s[x] & 15]; #else /*CHARSET_EBCDIC*/ - if (!isalnum(str[y]) && strchr("_-.", str[y]) != NULL) { + if (!isalnum(str[y]) && strchr("_-.~", str[y]) != NULL) { str[y++] = '%'; str[y++] = hexchars[os_toascii[(unsigned char) s[x]] >> 4]; str[y] = hexchars[os_toascii[(unsigned char) s[x]] & 15]; -- 2.40.0