[BACK]Return to cgi.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/cgi.c between version 1.84 and 1.85

version 1.84, 2014/07/25 16:43:37 version 1.85, 2014/07/25 16:56:06
Line 42  struct query {
Line 42  struct query {
         char            *manpath; /* desired manual directory */          char            *manpath; /* desired manual directory */
         char            *arch; /* architecture */          char            *arch; /* architecture */
         char            *sec; /* manual section */          char            *sec; /* manual section */
         char            *expr; /* unparsed expression string */          char            *query; /* unparsed query expression */
         int              equal; /* match whole names, not substrings */          int              equal; /* match whole names, not substrings */
 };  };
   
Line 76  static void   resp_begin_http(int, const char *);
Line 76  static void   resp_begin_http(int, const char *);
 static  void             resp_end_html(void);  static  void             resp_end_html(void);
 static  void             resp_searchform(const struct req *);  static  void             resp_searchform(const struct req *);
 static  void             resp_show(const struct req *, const char *);  static  void             resp_show(const struct req *, const char *);
   static  void             set_query_attr(char **, char **);
   static  int              validate_filename(const char *);
   static  int              validate_manpath(const struct req *, const char *);
   static  int              validate_urifrag(const char *);
   
 static  const char       *scriptname; /* CGI script name */  static  const char       *scriptname; /* CGI script name */
   
Line 156  http_printquery(const struct req *req)
Line 160  http_printquery(const struct req *req)
                 printf("&arch=");                  printf("&arch=");
                 http_print(req->q.arch);                  http_print(req->q.arch);
         }          }
         if (NULL != req->q.expr) {          if (NULL != req->q.query) {
                 printf("&query=");                  printf("&query=");
                 http_print(req->q.expr);                  http_print(req->q.query);
         }          }
         if (0 == req->q.equal)          if (0 == req->q.equal)
                 printf("&apropos=1");                  printf("&apropos=1");
Line 180  html_printquery(const struct req *req)
Line 184  html_printquery(const struct req *req)
                 printf("&arch=");                  printf("&arch=");
                 html_print(req->q.arch);                  html_print(req->q.arch);
         }          }
         if (NULL != req->q.expr) {          if (NULL != req->q.query) {
                 printf("&query=");                  printf("&query=");
                 html_print(req->q.expr);                  html_print(req->q.query);
         }          }
         if (0 == req->q.equal)          if (0 == req->q.equal)
                 printf("&apropos=1");                  printf("&apropos=1");
Line 242  http_parse(struct req *req, const char *qs)
Line 246  http_parse(struct req *req, const char *qs)
         req->q.manpath  = NULL;          req->q.manpath  = NULL;
         req->q.arch     = NULL;          req->q.arch     = NULL;
         req->q.sec      = NULL;          req->q.sec      = NULL;
         req->q.expr     = NULL;          req->q.query    = NULL;
         req->q.equal    = 1;          req->q.equal    = 1;
   
         key = val = NULL;          key = val = NULL;
Line 270  http_parse(struct req *req, const char *qs)
Line 274  http_parse(struct req *req, const char *qs)
                 /* Handle key-value pairs. */                  /* Handle key-value pairs. */
   
                 if ( ! strcmp(key, "query"))                  if ( ! strcmp(key, "query"))
                         set_query_attr(&req->q.expr, &val);                          set_query_attr(&req->q.query, &val);
   
                 else if ( ! strcmp(key, "apropos"))                  else if ( ! strcmp(key, "apropos"))
                         req->q.equal = !strcmp(val, "0");                          req->q.equal = !strcmp(val, "0");
Line 437  resp_searchform(const struct req *req)
Line 441  resp_searchform(const struct req *req)
   
         printf( "<TABLE><TR><TD>\n"          printf( "<TABLE><TR><TD>\n"
                 "<INPUT TYPE=\"text\" NAME=\"query\" VALUE=\"");                  "<INPUT TYPE=\"text\" NAME=\"query\" VALUE=\"");
         if (NULL != req->q.expr)          if (NULL != req->q.query)
                 html_print(req->q.expr);                  html_print(req->q.query);
         puts("\" SIZE=\"40\">");          puts("\" SIZE=\"40\">");
   
         /* Write submission and reset buttons. */          /* Write submission and reset buttons. */
Line 998  pg_search(const struct req *req)
Line 1002  pg_search(const struct req *req)
          * Yes, this is half-ass.  But it works for now.           * Yes, this is half-ass.  But it works for now.
          */           */
   
         ep = req->q.expr;          ep = req->q.query;
         while (ep && isspace((unsigned char)*ep))          while (ep && isspace((unsigned char)*ep))
                 ep++;                  ep++;
   
Line 1101  main(void)
Line 1105  main(void)
   
         if ('\0' != *path)          if ('\0' != *path)
                 pg_show(&req, path);                  pg_show(&req, path);
         else if (NULL != req.q.expr)          else if (NULL != req.q.query)
                 pg_search(&req);                  pg_search(&req);
         else          else
                 pg_index(&req);                  pg_index(&req);
Line 1109  main(void)
Line 1113  main(void)
         free(req.q.manpath);          free(req.q.manpath);
         free(req.q.arch);          free(req.q.arch);
         free(req.q.sec);          free(req.q.sec);
         free(req.q.expr);          free(req.q.query);
         for (i = 0; i < (int)req.psz; i++)          for (i = 0; i < (int)req.psz; i++)
                 free(req.p[i]);                  free(req.p[i]);
         free(req.p);          free(req.p);

Legend:
Removed from v.1.84  
changed lines
  Added in v.1.85

CVSweb