Add small section on general packaging guidelines (e.g. actions files must
[privoxy.git] / loadcfg.c
index b5500c1..1d6a10e 100644 (file)
--- a/loadcfg.c
+++ b/loadcfg.c
@@ -1,4 +1,4 @@
-const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.44 2002/04/08 20:37:13 swa Exp $";
+const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.47 2002/05/12 21:36:29 jongfoster Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/loadcfg.c,v $
@@ -35,6 +35,17 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.44 2002/04/08 20:37:13 swa Exp $"
  *
  * Revisions   :
  *    $Log: loadcfg.c,v $
+ *    Revision 1.47  2002/05/12 21:36:29  jongfoster
+ *    Correcting function comments
+ *
+ *    Revision 1.46  2002/04/26 12:55:14  oes
+ *     - New option "user-manual", defaults to our site
+ *       via project.h #define
+ *     - savearg now embeds option names in help links
+ *
+ *    Revision 1.45  2002/04/24 02:11:54  oes
+ *    Jon's multiple AF patch: Allow up to MAX_ACTION_FILES actionsfile options
+ *
  *    Revision 1.44  2002/04/08 20:37:13  swa
  *    fixed JB spelling
  *
@@ -339,6 +350,7 @@ const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.44 2002/04/08 20:37:13 swa Exp $"
 #include "ssplit.h"
 #include "encode.h"
 #include "urlmatch.h"
+#include "cgi.h"
 
 const char loadcfg_h_rcs[] = LOADCFG_H_VERSION;
 
@@ -406,7 +418,7 @@ static struct file_list *current_configfile = NULL;
 #define hash_toggle                        447966ul /* "toggle" */
 #define hash_trust_info_url             430331967ul /* "trust-info-url" */
 #define hash_trustfile                   56494766ul /* "trustfile" */
-
+#define hash_usermanual                1416668518ul /* "user-manual" */
 #define hash_activity_animation        1817904738ul /* "activity-animation" */
 #define hash_close_button_minimizes    3651284693ul /* "close-button-minimizes" */
 #define hash_hide_console              2048809870ul /* "hide-console" */
@@ -485,6 +497,7 @@ void unload_configfile (void * data)
    freez(config->admin_address);
    freez(config->proxy_info_url);
    freez(config->proxy_args);
+   freez(config->usermanual);
 
 #ifdef FEATURE_COOKIE_JAR
    freez(config->jarfile);
@@ -525,11 +538,9 @@ void unload_current_config_file(void)
  *
  * Description :  Load the config file and all parameters.
  *
- * Parameters  :
- *          1  :  csp = Client state (the config member will be
- *                filled in by this function).
+ * Parameters  :  None
  *
- * Returns     :  0 => Ok, everything else is an error.
+ * Returns     :  The configuration_spec, or NULL on error.
  *
  *********************************************************************/
 struct configuration_spec * load_config(void)
@@ -584,10 +595,10 @@ struct configuration_spec * load_config(void)
    /*
     * Set to defaults
     */
-
    config->multi_threaded    = 1;
    config->hport             = HADDR_PORT;
    config->buffer_limit      = 4096 * 1024;
+   config->usermanual        = strdup(USER_MANUAL_URL);
    config->proxy_args        = strdup("");
 
    if ((configfp = fopen(configfile, "r")) == NULL)
@@ -1205,6 +1216,13 @@ struct configuration_spec * load_config(void)
             continue;
 #endif /* def FEATURE_TRUST */
 
+/* *************************************************************************
+ * usermanual url
+ * *************************************************************************/
+         case hash_usermanual :
+            freez(config->usermanual);
+            config->usermanual = strdup(arg);
+            continue;
 
 /* *************************************************************************
  * Win32 Console options:
@@ -1508,6 +1526,7 @@ struct configuration_spec * load_config(void)
  * Parameters  :
  *          1  :  command = config setting that was found
  *          2  :  argument = the setting's argument (if any)
+ *          3  :  config = Configuration to save into.
  *
  * Returns     :  N/A
  *
@@ -1521,22 +1540,23 @@ static void savearg(char *command, char *argument, struct configuration_spec * c
    assert(*command);
    assert(argument);
 
-   buf = strdup("");
+   /*
+    * Add config option name embedded in
+    * link to it's section in the user-manual
+    */
+   buf = strdup("<a href=\"");
+   string_append(&buf, config->usermanual);
+   string_append(&buf, CONFIG_HELP_PREFIX);
+   string_join  (&buf, string_toupper(command));
+   string_append(&buf, "\">");
+   string_append(&buf, command);
+   string_append(&buf, "</a> ");
 
-   s = html_encode(command);
-   if (NULL == s)
+   if (NULL == buf)
    {
-      freez(buf);
       freez(config->proxy_args);
       return;
    }
-   string_append(&buf, "<a href=\"");
-   string_append(&buf, html_encode(REDIRECT_URL));
-   string_append(&buf, "option#");
-   string_append(&buf, s);
-   string_append(&buf, "\">");
-   string_join  (&buf, s);
-   string_append(&buf, "</a> ");
 
    if ( (NULL != argument) && ('\0' != *argument) )
    {