From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from localhost (fantadrom.bsd.lv [local]) by fantadrom.bsd.lv (OpenSMTPD) with ESMTPA id 758f89eb for ; Fri, 29 Apr 2016 05:46:06 -0500 (EST) Date: Fri, 29 Apr 2016 05:46:06 -0500 (EST) Message-Id: <6939493661833198457.enqueue@fantadrom.bsd.lv> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: schwarze@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Only focus on the query input box when no manual page is X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Only focus on the query input box when no manual page is displayed, that is, for the index page, for the noresult page, and for the result of an apropos(1) query with more than one page. As noted by bentley@, when a manual page is displayed, it is more important that people can quickly use the space bar for paging and Ctrl-F for searching. Modified Files: -------------- mdocml: cgi.c Revision Data ------------- Index: cgi.c =================================================================== RCS file: /home/cvs/mdocml/mdocml/cgi.c,v retrieving revision 1.130 retrieving revision 1.131 diff -Lcgi.c -Lcgi.c -u -p -r1.130 -r1.131 --- cgi.c +++ cgi.c @@ -59,6 +59,11 @@ struct req { int isquery; /* QUERY_STRING used, not PATH_INFO */ }; +enum focus { + FOCUS_NONE = 0, + FOCUS_QUERY +}; + static void html_print(const char *); static void html_putchar(char); static int http_decode(char *); @@ -79,7 +84,7 @@ static void resp_catman(const struct r static void resp_copy(const char *); static void resp_end_html(void); static void resp_format(const struct req *, const char *); -static void resp_searchform(const struct req *); +static void resp_searchform(const struct req *, enum focus); static void resp_show(const struct req *, const char *); static void set_query_attr(char **, char **); static int validate_filename(const char *); @@ -367,7 +372,7 @@ resp_end_html(void) } static void -resp_searchform(const struct req *req) +resp_searchform(const struct req *req, enum focus focus) { int i; @@ -382,9 +387,12 @@ resp_searchform(const struct req *req) printf( "
\n" "q.query) + if (req->q.query != NULL) html_print(req->q.query); - puts("\" size=\"40\" autofocus>"); + printf( "\" size=\"40\""); + if (focus == FOCUS_QUERY) + printf(" autofocus"); + puts(">"); /* Write submission and reset buttons. */ @@ -507,7 +515,7 @@ pg_index(const struct req *req) { resp_begin_html(200, NULL); - resp_searchform(req); + resp_searchform(req, FOCUS_QUERY); printf("

\n" "This web interface is documented in the\n" "man.cgi\n" @@ -524,7 +532,7 @@ static void pg_noresult(const struct req *req, const char *msg) { resp_begin_html(200, NULL); - resp_searchform(req); + resp_searchform(req, FOCUS_QUERY); puts("

"); puts(msg); puts("

"); @@ -588,7 +596,8 @@ pg_searchres(const struct req *req, stru } resp_begin_html(200, NULL); - resp_searchform(req); + resp_searchform(req, + req->q.equal || sz == 1 ? FOCUS_NONE : FOCUS_QUERY); if (sz > 1) { puts("
"); @@ -908,7 +917,7 @@ pg_show(struct req *req, const char *ful } resp_begin_html(200, NULL); - resp_searchform(req); + resp_searchform(req, FOCUS_NONE); resp_show(req, file); resp_end_html(); } -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv