Seeing gsoares@ diff reminded me I've had this diff lying in my tree for a while.
- change the variable name from cmd= to arg= to match most other looking glasses, giving a hint to browser autocomplete for addresses you type regularly. - default the form input field to the previously entered text. lg_getenv already protects against characters which do not match isalnum(_x) || strchr("-_.:/= ", _x) Any OKs for one or both of these changes? Index: bgplg.c =================================================================== RCS file: /cvs/src/usr.bin/bgplg/bgplg.c,v retrieving revision 1.9 diff -u -p -r1.9 bgplg.c --- bgplg.c 2 Apr 2010 21:20:49 -0000 1.9 +++ bgplg.c 28 Mar 2012 08:11:34 -0000 @@ -244,7 +244,7 @@ lg_incl(const char *file) int main(void) { - char *query, *self, *cmd = NULL, *req; + char *query, *self, *cmd = NULL, *req = NULL; char **argv = NULL; char myname[MAXHOSTNAMELEN]; int ret = 1, argc = 0, query_length = 0; @@ -282,8 +282,10 @@ main(void) printf("fatal error: invalid request\n"); goto err; } - if ((query = lg_getenv("QUERY_STRING", &query_length)) != NULL) + if ((query = lg_getenv("QUERY_STRING", &query_length)) != NULL) { cmd = lg_getarg("cmd=", query, query_length); + req = lg_getarg("arg=", query, query_length); + } printf( "<form action='%s'>\n" "<div class=\"command\">\n" @@ -302,7 +304,10 @@ main(void) cmds[i].name, cmds[i].name); } printf("</select>\n" - "<input type='text' name='req'/>\n" + "<input type='text' name='arg'"); + if (req != NULL) + printf(" value='%s'", req); + printf("/>\n" "<input type='submit' value='submit'/>\n" "</div>\n" "</form>\n" @@ -325,8 +330,7 @@ main(void) printf("unspecified command\n"); goto err; } - if ((req = lg_getarg("req=", query, query_length)) != NULL) { - /* Could be NULL */ + if (req != NULL) { argv = lg_arg2argv(req, &argc); }