*dest_ptr = *src_ptr;
}
+ n--;
src_ptr++;
dest_ptr++;
*dest_ptr = 0;
assert (*dest_ptr == 0);
return (dest);
-} /* }}} char *uri_unescape */
+} /* }}} char *uri_unescape_copy */
static char *uri_unescape (const char *string) /* {{{ */
{
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];
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];
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 */
term_html = html_escape (param ("q"));
printf ("<form action=\"%s\" method=\"get\" id=\"search-form\">\n"
- " <input type=\"hidden\" name=\"action\" value=\"list_graphs\" />\n"
+ " <input type=\"hidden\" name=\"action\" value=\"search\" />\n"
" <input type=\"text\" name=\"q\" value=\"%s\" id=\"search-input\" />\n"
" <input type=\"submit\" name=\"button\" value=\"Search\" />\n"
"</form>\n",