X-Git-Url: https://git.octo.it/?p=collection4.git;a=blobdiff_plain;f=src%2Futils_cgi.c;h=40768dd605bd0097c0a2a87fc86fe976b67ef0d3;hp=7c01bd9862a62518d679090948e57a755d29e41c;hb=ae3e7993c119bcfedc76239c1f8a5d8cf1a8c8d9;hpb=60bc35adce4421df6d058c4cc20e9b66ee9ec322 diff --git a/src/utils_cgi.c b/src/utils_cgi.c index 7c01bd9..40768dd 100644 --- a/src/utils_cgi.c +++ b/src/utils_cgi.c @@ -432,10 +432,17 @@ char *uri_escape_copy (char *dest, const char *src, size_t n) /* {{{ */ return (dest); } else if ((((unsigned char) src[in]) < 32) - || (src[in] == '&') - || (src[in] == ';') - || (src[in] == '?') - || (src[in] == '/') + || (src[in] == ' ') + /* RFC 3986, gen-delims */ + || (src[in] == ':') || (src[in] == '/') || (src[in] == '?') + || (src[in] == '#') || (src[in] == '[') || (src[in] == ']') + || (src[in] == '@') + /* RFC 3986, sub-delims */ + || (src[in] == '!') || (src[in] == '$') || (src[in] == '&') + || (src[in] == '(') || (src[in] == ')') || (src[in] == '*') + || (src[in] == '+') || (src[in] == ',') || (src[in] == ';') + || (src[in] == '=') || (src[in] == '\'') + /* 8-bit data */ || (((unsigned char) src[in]) >= 128)) { char esc[4]; @@ -462,6 +469,16 @@ char *uri_escape_copy (char *dest, const char *src, size_t n) /* {{{ */ return (dest); } /* }}} char *uri_escape_copy */ +char *uri_escape_buffer (char *buffer, size_t buffer_size) /* {{{ */ +{ + char temp[buffer_size]; + + uri_escape_copy (temp, buffer, buffer_size); + memcpy (buffer, temp, buffer_size); + + return (&buffer[0]); +} /* }}} char *uri_escape_buffer */ + char *uri_escape (const char *string) /* {{{ */ { char buffer[4096]; @@ -673,6 +690,12 @@ int html_print_page (const char *title, /* {{{ */ " \n" " \n" + " \n" + " \n" + " \n" " \n" " \n", @@ -727,7 +750,7 @@ int html_print_page (const char *title, /* {{{ */ printf ("\n" " \n" " \n" - "
"PACKAGE_STRING"
\n" + "
"PACKAGE_STRING"
\n" " \n" "\n"); @@ -740,7 +763,7 @@ int html_print_logo (__attribute__((unused)) void *user_data) /* {{{ */ printf ("\n" "

C4

\n" "
collection 4
\n" - "
\n"); + "\n", script_name ()); return (0); } /* }}} int html_print_search_box */