diff --git a/src/path.c b/src/path.c index 091288e..559d7cc 100644 --- a/src/path.c +++ b/src/path.c @@ -51,8 +51,7 @@ void url_encode(Noh_String *string) { for (size_t i = 0; i < string->count; i++) { char cur = string->elems[i]; if (cur == ' ') noh_da_append(&result, '+'); - - if (!byte_is_url_safe(cur)) { + else if (!byte_is_url_safe(cur)) { noh_da_append(&result, '%'); noh_da_append(&result, to_char_lower(cur >> 4)); noh_da_append(&result, to_char_lower(cur)); diff --git a/test/test_path.c b/test/test_path.c index e73236f..43110cb 100644 --- a/test/test_path.c +++ b/test/test_path.c @@ -38,23 +38,23 @@ int main() { noh_log(NOH_INFO, "url_encode:"); check_string(url_encode, &good, &bad, - "abcdefghijklmnopqrstuvwxyz1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/", - "abcdefghijklmnopqrstuvwxyz1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/"); + "abcdefghijklmnopqrstuvwxyz 1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/", + "abcdefghijklmnopqrstuvwxyz+1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/"); 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, "url_decode:"); check_string(url_decode, &good, &bad, - "abcdefghijklmnopqrstuvwxyz1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/", - "abcdefghijklmnopqrstuvwxyz1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/"); + "abcdefghijklmnopqrstuvwxyz+1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/", + "abcdefghijklmnopqrstuvwxyz 1023456789ABCDEFGHIJKLMNOPQRSTUVWXYZ()*!-._/"); 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, ""); if (bad == 0) {