diff --git a/src/utils_cgi.c b/src/utils_cgi.c
index f4abec2dac3be3196a1b4009d47860e1fbbdabe9..372b4e3ab1233956d00fecd52ea0220179cb0097 100644 (file)
--- a/src/utils_cgi.c
+++ b/src/utils_cgi.c
@@ -104,6 +104,7 @@ static char *uri_unescape_copy (char *dest, const char *src, size_t n) /* {{{ */
*dest_ptr = *src_ptr;
}
*dest_ptr = *src_ptr;
}
+ n--;
src_ptr++;
dest_ptr++;
*dest_ptr = 0;
src_ptr++;
dest_ptr++;
*dest_ptr = 0;
@@ -111,7 +112,7 @@ static char *uri_unescape_copy (char *dest, const char *src, size_t n) /* {{{ */
assert (*dest_ptr == 0);
return (dest);
assert (*dest_ptr == 0);
return (dest);
-} /* }}} char *uri_unescape */
+} /* }}} char *uri_unescape_copy */
static char *uri_unescape (const char *string) /* {{{ */
{
static char *uri_unescape (const char *string) /* {{{ */
{
return (dest);
}
else if ((((unsigned char) src[in]) < 32)
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];
|| (((unsigned char) src[in]) >= 128))
{
char esc[4];
return (dest);
} /* }}} char *uri_escape_copy */
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];
char *uri_escape (const char *string) /* {{{ */
{
char buffer[4096];
printf ("<html>\n"
" <head>\n"
" <title>%s</title>\n"
printf ("<html>\n"
" <head>\n"
" <title>%s</title>\n"
- " <link rel=\"stylesheet\" type=\"text/css\" href=\"../share/style.css\" />\n"
- " <script type=\"text/javascript\" src=\"../share/jquery-1.4.2.min.js\">\n"
+ " <link rel=\"stylesheet\" type=\"text/css\" href=\"../share/"PACKAGE"/style.css\" />\n"
+ " <script type=\"text/javascript\" src=\"../share/"PACKAGE"/jquery-1.4.2.min.js\">\n"
+ " </script>\n"
+ " <script type=\"text/javascript\" src=\"../share/"PACKAGE"/raphael-min.js\">\n"
+ " </script>\n"
+ " <script type=\"text/javascript\" src=\"../share/"PACKAGE"/g.raphael-min.js\">\n"
+ " </script>\n"
+ " <script type=\"text/javascript\" src=\"../share/"PACKAGE"/g.line-min.js\">\n"
" </script>\n"
" </script>\n"
- " <script type=\"text/javascript\" src=\"../share/collection.js\">\n"
+ " <script type=\"text/javascript\" src=\"../share/"PACKAGE"/collection.js\">\n"
" </script>\n"
" </head>\n",
title_html);
" </script>\n"
" </head>\n",
title_html);
printf ("</td>\n"
" </tr>\n"
" </table>\n"
printf ("</td>\n"
" </tr>\n"
" </table>\n"
- " <div class=\"footer\">"PACKAGE_STRING"</div>\n"
+ " <div class=\"footer\"><a href=\"http://octo.it/c4/\">"PACKAGE_STRING"</a></div>\n"
" </body>\n"
"</html>\n");
" </body>\n"
"</html>\n");
printf ("<a href=\"%s?action=list_graphs\" id=\"logo-canvas\">\n"
" <h1>C<sub>4</sub></h1>\n"
" <div id=\"logo-subscript\">collection 4</div>\n"
printf ("<a href=\"%s?action=list_graphs\" id=\"logo-canvas\">\n"
" <h1>C<sub>4</sub></h1>\n"
" <div id=\"logo-subscript\">collection 4</div>\n"
- "</a>\n");
+ "</a>\n", script_name ());
return (0);
} /* }}} int html_print_search_box */
return (0);
} /* }}} int html_print_search_box */