Fix URLs with ampersands.
[privoxy.git] / cgi.c
diff --git a/cgi.c b/cgi.c
index 1916108..2f238e1 100644 (file)
--- a/cgi.c
+++ b/cgi.c
@@ -1,4 +1,4 @@
-const char cgi_rcs[] = "$Id: cgi.c,v 1.105 2008/04/17 14:40:47 fabiankeil Exp $";
+const char cgi_rcs[] = "$Id: cgi.c,v 1.108 2008/05/26 17:30:53 fabiankeil Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/cgi.c,v $
@@ -11,7 +11,7 @@ const char cgi_rcs[] = "$Id: cgi.c,v 1.105 2008/04/17 14:40:47 fabiankeil Exp $"
  *                Functions declared include:
  * 
  *
- * Copyright   :  Written by and Copyright (C) 2001-2004, 2006-2007
+ * Copyright   :  Written by and Copyright (C) 2001-2004, 2006-2008
  *                the SourceForge Privoxy team. http://www.privoxy.org/
  *
  *                Based on the Internet Junkbuster originally written
@@ -38,6 +38,17 @@ const char cgi_rcs[] = "$Id: cgi.c,v 1.105 2008/04/17 14:40:47 fabiankeil Exp $"
  *
  * Revisions   :
  *    $Log: cgi.c,v $
+ *    Revision 1.108  2008/05/26 17:30:53  fabiankeil
+ *    Provide an OpenSearch Description to access the
+ *    show-url-info page through "search engine plugins".
+ *
+ *    Revision 1.107  2008/05/26 16:23:19  fabiankeil
+ *    - Fix spelling in template-not-found message.
+ *    - Declare referrer_is_safe()'s alternative_prefix[] static.
+ *
+ *    Revision 1.106  2008/05/21 15:24:38  fabiankeil
+ *    Mark csp as immutable for a bunch of functions.
+ *
  *    Revision 1.105  2008/04/17 14:40:47  fabiankeil
  *    Provide get_http_time() with the buffer size so it doesn't
  *    have to blindly assume that the buffer is big enough.
@@ -765,6 +776,9 @@ static const struct cgi_dispatcher cgi_dispatchers[] = {
    { "t",
          cgi_transparent_image, 
          NULL, TRUE /* Send a transparent image (short name) */ },
+   { "url-info-osd.xml",
+         cgi_send_url_info_osd, 
+         NULL, TRUE /* Send templates/url-info-osd.xml */ },
    { "user-manual",
           cgi_send_user_manual,
           NULL, TRUE /* Send user-manual */ },
@@ -963,7 +977,7 @@ static char *grep_cgi_referrer(const struct client_state *csp)
 static int referrer_is_safe(const struct client_state *csp)
 {
    char *referrer;
-   const char alternative_prefix[] = "http://" CGI_SITE_1_HOST "/";
+   static const char alternative_prefix[] = "http://" CGI_SITE_1_HOST "/";
 
    referrer = grep_cgi_referrer(csp);
 
@@ -1675,7 +1689,7 @@ jb_err cgi_error_no_template(const struct client_state *csp,
       "<p>Privoxy encountered an error while processing your request:</p>\r\n"
       "<p><b>Could not load template file <code>";
    static const char body_suffix[] =
-      "</code> or one of it's included components.</b></p>\r\n"
+      "</code> or one of its included components.</b></p>\r\n"
       "<p>Please contact your proxy administrator.</p>\r\n"
       "<p>If you are the proxy administrator, please put the required file(s)"
       "in the <code><i>(confdir)</i>/templates</code> directory.  The "
@@ -1958,34 +1972,26 @@ void get_http_time(int time_offset, char *buf, size_t buffer_size)
    struct tm *t;
    time_t current_time;
 #if defined(HAVE_GMTIME_R)
-   /*
-    * Declare dummy up here (instead of inside get/set gmt block) so it
-    * doesn't go out of scope before it's potentially used in snprintf later.
-    * Wrapping declaration inside HAVE_GMTIME_R keeps the compiler quiet when
-    * !defined HAVE_GMTIME_R.
-    */
-   struct tm dummy; 
+   struct tm dummy;
 #endif
 
    assert(buf);
    assert(buffer_size > 29);
 
-   time(&current_time); /* get current time */
+   time(&current_time);
 
    current_time += time_offset;
 
    /* get and save the gmt */
-   {
 #if HAVE_GMTIME_R
-      t = gmtime_r(&current_time, &dummy);
+   t = gmtime_r(&current_time, &dummy);
 #elif FEATURE_PTHREAD
-      pthread_mutex_lock(&gmtime_mutex);
-      t = gmtime(&current_time);
-      pthread_mutex_unlock(&gmtime_mutex);
+   pthread_mutex_lock(&gmtime_mutex);
+   t = gmtime(&current_time);
+   pthread_mutex_unlock(&gmtime_mutex);
 #else
-      t = gmtime(&current_time);
+   t = gmtime(&current_time);
 #endif
-   }
 
    /* Format: "Sun, 06 Nov 1994 08:49:37 GMT" */
    snprintf(buf, buffer_size,