Fix space handling in url_en/decode
This commit is contained in:
@@ -51,8 +51,7 @@ void url_encode(Noh_String *string) {
|
|||||||
for (size_t i = 0; i < string->count; i++) {
|
for (size_t i = 0; i < string->count; i++) {
|
||||||
char cur = string->elems[i];
|
char cur = string->elems[i];
|
||||||
if (cur == ' ') noh_da_append(&result, '+');
|
if (cur == ' ') noh_da_append(&result, '+');
|
||||||
|
else if (!byte_is_url_safe(cur)) {
|
||||||
if (!byte_is_url_safe(cur)) {
|
|
||||||
noh_da_append(&result, '%');
|
noh_da_append(&result, '%');
|
||||||
noh_da_append(&result, to_char_lower(cur >> 4));
|
noh_da_append(&result, to_char_lower(cur >> 4));
|
||||||
noh_da_append(&result, to_char_lower(cur));
|
noh_da_append(&result, to_char_lower(cur));
|
||||||
|
|||||||
@@ -39,21 +39,21 @@ int main() {
|
|||||||
|
|
||||||
check_string(url_encode, &good, &bad,
|
check_string(url_encode, &good, &bad,
|
||||||
"abcdefghijklmnopqrstuvwxyz 1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/",
|
"abcdefghijklmnopqrstuvwxyz 1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/",
|
||||||
"abcdefghijklmnopqrstuvwxyz1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/");
|
"abcdefghijklmnopqrstuvwxyz+1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/");
|
||||||
|
|
||||||
check_string(url_encode, &good, &bad,
|
check_string(url_encode, &good, &bad,
|
||||||
"~!@#$%^&* ()_+-=",
|
"~!@#$%^&* ()_+-=",
|
||||||
"%7e!%40%23%24%25%5e%26*()_%2b-%3d");
|
"%7e!%40%23%24%25%5e%26*+()_%2b-%3d");
|
||||||
|
|
||||||
noh_log(NOH_INFO, "");
|
noh_log(NOH_INFO, "");
|
||||||
noh_log(NOH_INFO, "url_decode:");
|
noh_log(NOH_INFO, "url_decode:");
|
||||||
|
|
||||||
check_string(url_decode, &good, &bad,
|
check_string(url_decode, &good, &bad,
|
||||||
"abcdefghijklmnopqrstuvwxyz1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/",
|
"abcdefghijklmnopqrstuvwxyz+1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/",
|
||||||
"abcdefghijklmnopqrstuvwxyz 1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/");
|
"abcdefghijklmnopqrstuvwxyz 1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/");
|
||||||
|
|
||||||
check_string(url_decode, &good, &bad,
|
check_string(url_decode, &good, &bad,
|
||||||
"%7e!%40%23%24%25%5e%26*()_%2b-%3d",
|
"%7e!%40%23%24%25%5e%26*+()_%2b-%3d",
|
||||||
"~!@#$%^&* ()_+-=");
|
"~!@#$%^&* ()_+-=");
|
||||||
|
|
||||||
noh_log(NOH_INFO, "");
|
noh_log(NOH_INFO, "");
|
||||||
|
|||||||
Reference in New Issue
Block a user