source@mandoc.bsd.lv
 help / color / mirror / Atom feed
From: schwarze@mdocml.bsd.lv
To: source@mdocml.bsd.lv
Subject: mdocml: Only focus on the query input box when no manual page is
Date: Fri, 29 Apr 2016 05:46:06 -0500 (EST)	[thread overview]
Message-ID: <6939493661833198457.enqueue@fantadrom.bsd.lv> (raw)

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(	"<table><tr><td>\n"
 		"<input type=\"text\" name=\"query\" value=\"");
-	if (NULL != req->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("<p>\n"
 	       "This web interface is documented in the\n"
 	       "<a href=\"/%s%smandoc/man8/man.cgi.8\">man.cgi</a>\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("<p>");
 	puts(msg);
 	puts("</p>");
@@ -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("<div class=\"results\">");
@@ -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

                 reply	other threads:[~2016-04-29 10:46 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6939493661833198457.enqueue@fantadrom.bsd.lv \
    --to=schwarze@mdocml.bsd.lv \
    --cc=source@mdocml.bsd.lv \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).