source@mandoc.bsd.lv
 help / color / mirror / Atom feed
* mdocml: We cannot easily control the order of the QUERY_STRING keys
@ 2014-07-25 18:20 schwarze
  0 siblings, 0 replies; only message in thread
From: schwarze @ 2014-07-25 18:20 UTC (permalink / raw)
  To: source

Log Message:
-----------
We cannot easily control the order of the QUERY_STRING keys generated
by the search form, it's just the order of the fields in the form.
Actually, that's not too bad; the generated URI resembles the
generating form.

To minimize confusion for people looking at URIs, give the keys
in the same order when generating URIs for search listings and
search redirections, the latter being used instead of search
listings that would have only one single entry.  Also, if the
manpath is the default, remove it form the generated URIs.

Modified Files:
--------------
    mdocml:
        cgi.c

Revision Data
-------------
Index: cgi.c
===================================================================
RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/cgi.c,v
retrieving revision 1.87
retrieving revision 1.88
diff -Lcgi.c -Lcgi.c -u -p -r1.87 -r1.88
--- cgi.c
+++ cgi.c
@@ -148,10 +148,12 @@ static void
 http_printquery(const struct req *req)
 {
 
-	if (NULL != req->q.manpath) {
-		printf("&manpath=");
-		http_print(req->q.manpath);
+	if (NULL != req->q.query) {
+		printf("query=");
+		http_print(req->q.query);
 	}
+	if (0 == req->q.equal)
+		printf("&apropos=1");
 	if (NULL != req->q.sec) {
 		printf("&sec=");
 		http_print(req->q.sec);
@@ -160,22 +162,23 @@ http_printquery(const struct req *req)
 		printf("&arch=");
 		http_print(req->q.arch);
 	}
-	if (NULL != req->q.query) {
-		printf("&query=");
-		http_print(req->q.query);
+	if (NULL != req->q.manpath &&
+	    strcmp(req->q.manpath, req->p[0])) {
+		printf("&manpath=");
+		http_print(req->q.manpath);
 	}
-	if (0 == req->q.equal)
-		printf("&apropos=1");
 }
 
 static void
 html_printquery(const struct req *req)
 {
 
-	if (NULL != req->q.manpath) {
-		printf("&manpath=");
-		html_print(req->q.manpath);
+	if (NULL != req->q.query) {
+		printf("query=");
+		html_print(req->q.query);
 	}
+	if (0 == req->q.equal)
+		printf("&apropos=1");
 	if (NULL != req->q.sec) {
 		printf("&sec=");
 		html_print(req->q.sec);
@@ -184,12 +187,11 @@ html_printquery(const struct req *req)
 		printf("&arch=");
 		html_print(req->q.arch);
 	}
-	if (NULL != req->q.query) {
-		printf("&query=");
-		html_print(req->q.query);
+	if (NULL != req->q.manpath &&
+	    strcmp(req->q.manpath, req->p[0])) {
+		printf("&manpath=");
+		html_print(req->q.manpath);
 	}
-	if (0 == req->q.equal)
-		printf("&apropos=1");
 }
 
 static void
--
 To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-07-25 18:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-25 18:20 mdocml: We cannot easily control the order of the QUERY_STRING keys schwarze

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).