rebuild the docs
[privoxy.git] / doc / webserver / developer-manual / coding.html
index 15744c6..3e2753e 100644 (file)
@@ -134,7 +134,7 @@ CLASS="EMPHASIS"
     understand why or what is being done. A reader may spend a lot
     more time figuring out what is going on when a simple comment
     or explanation would have prevented the extra research. Please
-    help your brother IJB'ers out!</P
+    help your fellow Privoxy developers out!</P
 ><P
 >The comments will also help justify the intent of the code.
     If the comment describes something different than what the code
@@ -156,13 +156,13 @@ WIDTH="100%"
 ><PRE
 CLASS="PROGRAMLISTING"
 >/* if page size greater than 1k ... */
-if ( page_length() &#62; 1024 )
+if (page_length() &#62; 1024)
 {
     ... "block" the page up ...
 }
 
 /* if page size is small, send it in blocks */
-if ( page_length() &#62; 1024 )
+if (page_length() &#62; 1024)
 {
     ... "block" the page up ...
 }
@@ -215,20 +215,20 @@ CLASS="PROGRAMLISTING"
 >/*********************************************************************
  * This will stand out clearly in your code!
  *********************************************************************/
-if ( this_variable == that_variable )
+if (this_variable == that_variable)
 {
    do_something_very_important();
 }
 
 
 /* unfortunately, this may not */
-if ( this_variable == that_variable )
+if (this_variable == that_variable)
 {
    do_something_very_important();
 }
 
 
-if ( this_variable == that_variable ) /* this may not either */
+if (this_variable == that_variable) /* this may not either */
 {
    do_something_very_important();
 }</PRE
@@ -293,12 +293,12 @@ CLASS="PROGRAMLISTING"
  * This will stand out clearly in your code,
  * But the second example won't.
  *********************************************************************/
-if ( this_variable == this_variable )
+if (this_variable == this_variable)
 {
    do_something_very_important();
 }
 
-if ( this_variable == this_variable ) /*can you see me?*/
+if (this_variable == this_variable) /*can you see me?*/
 {
    do_something_very_important(); /*not easily*/
 }
@@ -310,7 +310,7 @@ if ( this_variable == this_variable ) /*can you see me?*/
 int urls_read     = 0;     /* # of urls read + rejected */
 int urls_rejected = 0;     /* # of urls rejected */
 
-if ( 1 == X )
+if (1 == X)
 {
    do_something_very_important();
 }
@@ -431,7 +431,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->if ( 1 == X )
+>if (1 == X)
 {
    do_something_very_important();
    ...some long list of commands...
@@ -439,11 +439,11 @@ CLASS="PROGRAMLISTING"
 
 or:
 
-if ( 1 == X )
+if (1 == X)
 {
    do_something_very_important();
    ...some long list of commands...
-} /* -END- if ( 1 == X ) */</PRE
+} /* -END- if (1 == X) */</PRE
 ></TD
 ></TR
 ></TABLE
@@ -508,7 +508,6 @@ CLASS="EMPHASIS"
 >Instead of:</I
 ></SPAN
 ></P
-><P
 ><TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
@@ -521,7 +520,6 @@ CLASS="PROGRAMLISTING"
 ></TD
 ></TR
 ></TABLE
-></P
 ></DIV
 ><DIV
 CLASS="SECT3"
@@ -562,7 +560,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->int load_some_file( struct client_state *csp )</PRE
+>int load_some_file(struct client_state *csp)</PRE
 ></TD
 ></TR
 ></TABLE
@@ -574,7 +572,6 @@ CLASS="EMPHASIS"
 >Instead of:</I
 ></SPAN
 ></P
-><P
 ><TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
@@ -583,12 +580,11 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->int loadsomefile( struct client_state *csp )
-int loadSomeFile( struct client_state *csp )</PRE
+>int loadsomefile(struct client_state *csp)
+int loadSomeFile(struct client_state *csp)</PRE
 ></TD
 ></TR
 ></TABLE
-></P
 ></DIV
 ><DIV
 CLASS="SECT3"
@@ -626,8 +622,8 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->(.h) extern int load_aclfile( struct client_state *csp );
-(.c) int load_aclfile( struct client_state *csp )</PRE
+>(.h) extern int load_aclfile(struct client_state *csp);
+(.c) int load_aclfile(struct client_state *csp)</PRE
 ></TD
 ></TR
 ></TABLE
@@ -638,8 +634,8 @@ CLASS="emphasis"
 CLASS="EMPHASIS"
 >Instead of:</I
 ></SPAN
->
-<TABLE
+></P
+><TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="100%"
@@ -647,13 +643,12 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->(.h) extern int load_aclfile( struct client_state * ); or 
-(.h) extern int load_aclfile(); 
-(.c) int load_aclfile( struct client_state *csp )</PRE
+>(.h) extern int load_aclfile(struct client_state *); or
+(.h) extern int load_aclfile();
+(.c) int load_aclfile(struct client_state *csp)</PRE
 ></TD
 ></TR
 ></TABLE
-></P
 ></DIV
 ><DIV
 CLASS="SECT3"
@@ -691,7 +686,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->(enumeration) : enum Boolean { FALSE, TRUE };
+>(enumeration) : enum Boolean {FALSE, TRUE};
 (#define) : #define DEFAULT_SIZE 100;</PRE
 ></TD
 ></TR
@@ -783,7 +778,6 @@ CLASS="EMPHASIS"
 >Instead of:</I
 ></SPAN
 ></P
-><P
 ><TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
@@ -792,15 +786,14 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->#define USE_IMG_LST 1 or 
+>#define USE_IMG_LST 1 or
 #define _USE_IMAGE_LIST 1 or
-#define USE_IMAGE_LIST_ 1 or 
+#define USE_IMAGE_LIST_ 1 or
 #define use_image_list 1 or
 #define UseImageList 1</PRE
 ></TD
 ></TR
 ></TABLE
-></P
 ></DIV
 ></DIV
 ><DIV
@@ -849,7 +842,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->if ( this == that )
+>if (this == that)
 {
    ...
 }</PRE
@@ -865,11 +858,11 @@ CLASS="EMPHASIS"
 ></SPAN
 ></P
 ><P
->if ( this == that ) { ... }</P
+>if (this == that) { ... }</P
 ><P
 >or</P
 ><P
->if ( this == that ) { ... }</P
+>if (this == that) { ... }</P
 ><P
 ><SPAN
 CLASS="emphasis"
@@ -906,12 +899,12 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->while ( more lines are read )
+>while (more lines are read)
 {
    /* Please document what is/is not a comment line here */
-   if ( it's a comment ) continue;
+   if (it's a comment) continue;
 
-   do_something( line );
+   do_something(line);
 }</PRE
 ></TD
 ></TR
@@ -954,7 +947,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->if ( this == that )
+>if (this == that)
 {
    do_something();
    do_something_else();
@@ -971,11 +964,11 @@ CLASS="EMPHASIS"
 ></SPAN
 ></P
 ><P
->if ( this == that ) do_something(); do_something_else();</P
+>if (this == that) do_something(); do_something_else();</P
 ><P
 >or</P
 ><P
->if ( this == that ) do_something();</P
+>if (this == that) do_something();</P
 ><P
 ><SPAN
 CLASS="emphasis"
@@ -1014,7 +1007,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->structure-&#62;flag = ( condition );</PRE
+>structure-&#62;flag = (condition);</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1027,7 +1020,7 @@ CLASS="EMPHASIS"
 ></SPAN
 ></P
 ><P
->if ( condition ) { structure-&#62;flag = 1; } else {
+>if (condition) { structure-&#62;flag = 1; } else {
     structure-&#62;flag = 0; }</P
 ><P
 ><SPAN
@@ -1080,11 +1073,7 @@ CLASS="PROGRAMLISTING"
 >int first_value   = 0;
 int some_value    = 0;
 int another_value = 0;
-int this_variable = 0;
-
-if ( this_variable == this_variable )
-
-first_value = old_value + ( ( some_value - another_value ) - whatever )</PRE
+int this_variable = 0;</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1174,14 +1163,14 @@ CLASS="PROGRAMLISTING"
 >int function1( ... )
 {
    ...code...
-   return( ret_code );
+   return(ret_code);
 
-}   /* -END- function1 */
+} /* -END- function1 */
 
 
 int function2( ... )
 {
-}   /* -END- function2 */</PRE
+} /* -END- function2 */</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1194,7 +1183,7 @@ CLASS="EMPHASIS"
 ></SPAN
 ></P
 ><P
->int function1( ... ) { ...code... return( ret_code ); } int
+>int function1( ... ) { ...code... return(ret_code); } int
     function2( ... ) { }</P
 ><P
 ><SPAN
@@ -1265,16 +1254,16 @@ CLASS="PROGRAMLISTING"
 
 int function1( ... )
 {
-   if ( 1 )
+   if (1)
    {
-      return( ALWAYS_TRUE );
+      return ALWAYS_TRUE;
    }
    else
    {
-      return( HOW_DID_YOU_GET_HERE );
+      return HOW_DID_YOU_GET_HERE;
    }
 
-   return( NEVER_GETS_HERE );
+   return NEVER_GETS_HERE;
 
 }</PRE
 ></TD
@@ -1465,7 +1454,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->for ( size_t cnt = 0; cnt &#60; block_list_length(); cnt++ )
+>for (size_t cnt = 0; cnt &#60; block_list_length(); cnt++)
 {
    ....
 }</PRE
@@ -1510,7 +1499,7 @@ WIDTH="100%"
 CLASS="PROGRAMLISTING"
 >size_t len = block_list_length();
 
-for ( size_t cnt = 0; cnt &#60; len; cnt++ )
+for (size_t cnt = 0; cnt &#60; len; cnt++)
 {
    ....
 }</PRE
@@ -1548,12 +1537,12 @@ CLASS="EMPHASIS"
 >This allows a developer to define a const pointer and call
     your function. If your function does not have the const
     keyword, we may not be able to use your function. Consider
-    strcmp, if it were defined as: extern int strcmp( char *s1,
-    char *s2 );</P
+    strcmp, if it were defined as: extern int strcmp(char *s1,
+    char *s2);</P
 ><P
->I could then not use it to compare argv's in main: int main(
-    int argc, const char *argv[] ) { strcmp( argv[0], "privoxy"
-    ); }</P
+>I could then not use it to compare argv's in main: int
+    main(int argc, const char *argv[]) { strcmp(argv[0], "privoxy");
+     }</P
 ><P
 >Both these pointers are *const*! If the c runtime library
     maintainers do it, we should too.</P
@@ -1577,11 +1566,11 @@ CLASS="EMPHASIS"
 ><P
 >Most structures cannot fit onto a normal stack entry (i.e.
     they are not 4 bytes or less). Aka, a function declaration
-    like: int load_aclfile( struct client_state csp )</P
+    like: int load_aclfile(struct client_state csp)</P
 ><P
 >would not work. So, to be consistent, we should declare all
-    prototypes with "pass by value": int load_aclfile( struct
-    client_state *csp )</P
+    prototypes with "pass by value": int load_aclfile(struct
+    client_state *csp)</P
 ></DIV
 ><DIV
 CLASS="SECT3"
@@ -1635,7 +1624,6 @@ CLASS="EMPHASIS"
 >Exception:</I
 ></SPAN
 ></P
-><P
 ><TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
@@ -1644,12 +1632,11 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->/* This is not a local include, but requires a path element. */ 
+>/* This is not a local include, but requires a path element. */
 #include &#60;sys/fileName.h&#62;</PRE
 ></TD
 ></TR
 ></TABLE
-></P
 ><P
 ><SPAN
 CLASS="emphasis"
@@ -1893,22 +1880,22 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->switch( hash_string( cmd ) )
+>switch (hash_string(cmd))
 {
-   case hash_actions_file :
+   case hash_actions_file:
       ... code ...
       break;
 
-   case hash_confdir :
+   case hash_confdir:
       ... code ...
       break;
 
-   default :
+   default:
       log_error( ... );
       ... anomaly code goes here ...
       continue; / break; / exit( 1 ); / etc ...
 
-} /* end switch( hash_string( cmd ) ) */</PRE
+} /* end switch (hash_string(cmd)) */</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1982,41 +1969,8 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="S39"
->4.7.4. Use 'long' or 'short' Instead of
-    'int'</A
-></H3
-><P
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Explanation:</I
-></SPAN
-></P
-><P
->On 32-bit platforms, int usually has the range of long. On
-    16-bit platforms, int has the range of short.</P
-><P
-><SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->Status:</I
-></SPAN
-> open-to-debate. In the case of most FSF
-    projects (including X/GNU-Emacs), there are typedefs to int4,
-    int8, int16, (or equivalence ... I forget the exact typedefs
-    now). Should we add these to IJB now that we have a "configure"
-    script?</P
-></DIV
-><DIV
-CLASS="SECT3"
-><H3
-CLASS="SECT3"
-><A
 NAME="S40"
->4.7.5. Don't mix size_t and other types</A
+>4.7.4. Don't mix size_t and other types</A
 ></H3
 ><P
 ><SPAN
@@ -2039,7 +1993,7 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="S41"
->4.7.6. Declare each variable and struct on its
+>4.7.5. Declare each variable and struct on its
     own line.</A
 ></H3
 ><P
@@ -2123,7 +2077,7 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="S42"
->4.7.7. Use malloc/zalloc sparingly</A
+>4.7.6. Use malloc/zalloc sparingly</A
 ></H3
 ><P
 ><SPAN
@@ -2167,7 +2121,7 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="S43"
->4.7.8. The Programmer Who Uses 'malloc' is
+>4.7.7. The Programmer Who Uses 'malloc' is
     Responsible for Ensuring 'free'</A
 ></H3
 ><P
@@ -2202,8 +2156,8 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->int load_re_filterfile( struct client_state *csp ) { ... }
-static void unload_re_filterfile( void *f ) { ... }</PRE
+>int load_re_filterfile(struct client_state *csp) { ... }
+static void unload_re_filterfile(void *f) { ... }</PRE
 ></TD
 ></TR
 ></TABLE
@@ -2236,7 +2190,7 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="S44"
->4.7.9. Add loaders to the `file_list' structure
+>4.7.8. Add loaders to the `file_list' structure
     and in order</A
 ></H3
 ><P
@@ -2269,8 +2223,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="S45"
->4.7.10. "Uncertain" new code and/or changes to
-    existing code, use FIXME or XXX</A
+>4.7.9. "Uncertain" new code and/or changes to
+    existing code, use XXX</A
 ></H3
 ><P
 ><SPAN
@@ -2285,18 +2239,18 @@ CLASS="EMPHASIS"
     your changes, but are not *quite* sure of the repercussions,
     add this:</P
 ><P
->/* FIXME: this code has a logic error on platform XYZ, *
+>/* XXX: this code has a logic error on platform XYZ, *
     attempting to fix */ #ifdef PLATFORM ...changed code here...
     #endif</P
 ><P
 >or:</P
 ><P
->/* FIXME: I think the original author really meant this...
+>/* XXX: I think the original author really meant this...
     */ ...changed code here...</P
 ><P
 >or:</P
 ><P
->/* FIXME: new code that *may* break something else... */
+>/* XXX: new code that *may* break something else... */
     ...new code here...</P
 ><P
 ><SPAN
@@ -2336,15 +2290,14 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="PROGRAMLISTING"
->const char FILENAME_rcs[] = "$Id$";
-/*********************************************************************
+>/*********************************************************************
  *
- * File        :  $Source$
+ * File        :  $Source
  *
  * Purpose     :  (Fill me in with a good description!)
  *
  * Copyright   :  Written by and Copyright (C) 2001-2009
- *                the Privoxy team. http://www.privoxy.org/
+ *                the Privoxy team. https://www.privoxy.org/
  *
  *                This program is free software; you can redistribute it
  *                and/or modify it under the terms of the GNU General
@@ -2361,7 +2314,7 @@ CLASS="PROGRAMLISTING"
  *                The GNU General Public License should be included with
  *                this file.  If not, you can view it at
  *                http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
- *                or write to the Free Software Foundation, Inc., 
+ *                or write to the Free Software Foundation, Inc.,
  *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
  *                USA
  *
@@ -2384,7 +2337,7 @@ CLASS="EMPHASIS"
 >Note:</I
 ></SPAN
 > This declares the rcs variables that should be
-    added to the "show-proxy-args" page. If this is a brand new
+    added to the "show-version" page. If this is a brand new
     creation by you, you are free to change the "Copyright" section
     to represent the rights you wish to maintain.</P
 ><P
@@ -2417,15 +2370,14 @@ WIDTH="100%"
 CLASS="PROGRAMLISTING"
 >#ifndef _FILENAME_H
 #define _FILENAME_H
-#define FILENAME_H_VERSION "$Id$"
 /*********************************************************************
  *
- * File        :  $Source$
+ * File        :  $Source
  *
  * Purpose     :  (Fill me in with a good description!)
  *
  * Copyright   :  Written by and Copyright (C) 2001-2009
- *                the Privoxy team. http://www.privoxy.org/
+ *                the Privoxy team. https://www.privoxy.org/
  *
  *                This program is free software; you can redistribute it
  *                and/or modify it under the terms of the GNU General
@@ -2442,7 +2394,7 @@ CLASS="PROGRAMLISTING"
  *                The GNU General Public License should be included with
  *                this file.  If not, you can view it at
  *                http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
- *                or write to the Free Software Foundation, Inc., 
+ *                or write to the Free Software Foundation, Inc.,
  *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
  *                USA
  *
@@ -2506,10 +2458,10 @@ CLASS="PROGRAMLISTING"
  * Returns     :  0 =&#62; Ok, everything else is an error.
  *
  *********************************************************************/
-int FUNCTION_NAME( void *param1, const char *x )
+int FUNCTION_NAME(void *param1, const char *x)
 {
    ...
-   return( 0 );
+   return 0;
 
 }</PRE
 ></TD