diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2016-05-28 13:40:48 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2016-05-28 13:40:48 +0000 |
commit | 7956db275a13d70a6b9fb672cf085b78e70f124c (patch) | |
tree | b04cdd4244e09b0b53a2a5ba0ab3bbc57068370b | |
parent | 4d8a52d4066027eb5dd03bbb35164ec6cf9906db (diff) | |
download | mandoc-7956db275a13d70a6b9fb672cf085b78e70f124c.tar.gz |
Simplify search form: minus two visible control elements, minus
one table, minus twenty lines of code, no loss of functionality.
No idea why i didn't do this earlier...
-rw-r--r-- | cgi.c | 35 | ||||
-rw-r--r-- | man.cgi.8 | 23 |
2 files changed, 17 insertions, 41 deletions
@@ -385,8 +385,7 @@ resp_searchform(const struct req *req, enum focus focus) /* Write query input box. */ - printf( "<table><tr><td>\n" - "<input type=\"text\" name=\"query\" value=\""); + printf("<input type=\"text\" name=\"query\" value=\""); if (req->q.query != NULL) html_print(req->q.query); printf( "\" size=\"40\""); @@ -394,24 +393,16 @@ resp_searchform(const struct req *req, enum focus focus) printf(" autofocus"); puts(">"); - /* Write submission and reset buttons. */ + /* Write submission buttons. */ - printf( "<input type=\"submit\" value=\"Submit\">\n" - "<input type=\"reset\" value=\"Reset\">\n"); - - /* Write show radio button */ - - printf( "</td><td>\n" - "<input type=\"radio\" "); - if (req->q.equal) - printf("checked=\"checked\" "); - printf( "name=\"apropos\" id=\"show\" value=\"0\">\n" - "<label for=\"show\">Show named manual page</label>\n"); + printf( "<button type=\"submit\" name=\"apropos\" value=\"0\">" + "man</button>\n" + "<button type=\"submit\" name=\"apropos\" value=\"1\">" + "apropos</button>\n<br/>\n"); /* Write section selector. */ - puts( "</td></tr><tr><td>\n" - "<select name=\"sec\">"); + puts("<select name=\"sec\">"); for (i = 0; i < sec_MAX; i++) { printf("<option value=\"%s\"", sec_numbers[i]); if (NULL != req->q.sec && @@ -454,17 +445,7 @@ resp_searchform(const struct req *req, enum focus focus) puts("</select>"); } - /* Write search radio button */ - - printf( "</td><td>\n" - "<input type=\"radio\" "); - if (0 == req->q.equal) - printf("checked=\"checked\" "); - printf( "name=\"apropos\" id=\"search\" value=\"1\">\n" - "<label for=\"search\">Search with apropos query</label>\n"); - - puts("</td></tr></table>\n" - "</fieldset>\n" + puts("</fieldset>\n" "</form>\n" "</div>"); puts("<!-- End search form. //-->"); @@ -26,9 +26,9 @@ The CGI program searches for manual pages on a WWW server and displays them to HTTP clients, providing functionality equivalent to the -.Xr apropos 1 -and .Xr man 1 +and +.Xr apropos 1 utilities. It can use multiple manual trees in parallel. .Ss HTML search interface @@ -51,20 +51,15 @@ The effect of prepending a backslash to another character is undefined; in the current implementation, it has no effect. .It A -.Dq Submit -button to send a search request from the client to the server. -.It -A -.Dq Reset -button to undo any changes to the input boxes and the dropdown menus -and reset them to the values contained in the -.Ev QUERY_STRING . -.It -Radio buttons to select pages either by name like in .Xr man 1 -or using +submit button. +The string in the input box is interpreted as the name of a manual page. +.It +An .Xr apropos 1 -queries. +submit button. +The string in the input box is interpreted as a search +.Ar expression . .It A dropdown menu to optionally select a manual section. If one is provided, it has the same effect as the |