rebuild docs
authorLee <ler762@users.sourceforge.net>
Sat, 10 Apr 2021 19:09:12 +0000 (15:09 -0400)
committerLee <ler762@users.sourceforge.net>
Sat, 10 Apr 2021 19:09:12 +0000 (15:09 -0400)
21 files changed:
AUTHORS
INSTALL
config
doc/webserver/developer-manual/coding.html
doc/webserver/developer-manual/git.html
doc/webserver/developer-manual/newrelease.html
doc/webserver/developer-manual/testing.html
doc/webserver/developer-manual/webserver-update.html
doc/webserver/faq/configuration.html
doc/webserver/faq/misc.html
doc/webserver/faq/trouble.html
doc/webserver/user-manual/actions-file.html
doc/webserver/user-manual/appendix.html
doc/webserver/user-manual/config.html
doc/webserver/user-manual/configuration.html
doc/webserver/user-manual/copyright.html
doc/webserver/user-manual/filter-file.html
doc/webserver/user-manual/installation.html
doc/webserver/user-manual/quickstart.html
doc/webserver/user-manual/startup.html
doc/webserver/user-manual/templates.html

diff --git a/AUTHORS b/AUTHORS
index 9c3c617..3f64466 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -66,6 +66,7 @@ include (in alphabetical order):
  Wan-Teh Chang
  Sam Chen
  Ramkumar Chinchani
+ Gwyn Ciesla
  Billy Crook
  Frédéric Crozat
  Matthew Daley
@@ -208,6 +209,7 @@ include (in alphabetical order):
  Yang Xia
  Jarry Xu
  Oliver Yeoh
+ Wen Yue
  Yossi Zahn
  Jamie Zawinski
  Zepard
diff --git a/INSTALL b/INSTALL
index c54d0e1..cb2fa02 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -39,8 +39,8 @@ compiler like gcc are required.
 
 When building from a source tarball, first unpack the source:
 
- tar xzvf privoxy-3.0.33-beta-src.tar.gz
- cd privoxy-3.0.33-beta
 tar xzvf privoxy-3.0.33-beta-src.tar.gz
 cd privoxy-3.0.33-beta
 
 To build the development version, you can get the source code by doing:
 
@@ -71,13 +71,13 @@ Some binary packages may do this for you.
 
 Then, to build from either unpacked tarball or Git checkout:
 
- autoheader
- autoconf
- ./configure      # (--help to see options)
- make             # (the make from GNU, sometimes called gmake)
- su               # Possibly required
- make -n install  # (to see where all the files will go)
- make -s install  # (to really install, -s to silence output)
 autoheader
 autoconf
 ./configure      # (--help to see options)
 make             # (the make from GNU, sometimes called gmake)
 su               # Possibly required
 make -n install  # (to see where all the files will go)
 make -s install  # (to really install, -s to silence output)
 
 Using GNU make, you can have the first four steps automatically done for you by
 just typing:
@@ -90,7 +90,7 @@ To build an executable with security enhanced features so that users cannot
 easily bypass the proxy (e.g. "Go There Anyway"), or alter their own
 configurations, configure like this:
 
- ./configure  --disable-toggle  --disable-editor  --disable-force
 ./configure  --disable-toggle  --disable-editor  --disable-force
 
 Note that all of these options can also be disabled through the configuration
 file.
@@ -110,7 +110,7 @@ be run as this same user to insure write access to configuration and log files!
 Alternately, you can specify user and group on the make command line, but be
 sure both already exist:
 
- make -s install  USER=privoxy GROUP=privoxy
 make -s install  USER=privoxy GROUP=privoxy
 
 The default installation path for make install is /usr/local. This may of
 course be customized with the various ./configure path options. If you are
diff --git a/config b/config
index da6d6b7..b65e6f3 100644 (file)
--- a/config
+++ b/config
@@ -1,4 +1,4 @@
-#        Sample Configuration File for Privoxy 3.0.32
+#        Sample Configuration File for Privoxy 3.0.33
 #
 # Copyright (C) 2001-2021 Privoxy Developers https://www.privoxy.org/
 #
@@ -592,7 +592,7 @@ logfile logfile
 #      each request as it happens. 1, 1024, 4096 and 8192 are
 #      recommended so that you will notice when things go wrong. The
 #      other levels are probably only of interest if you are hunting
-#      down a specific problem. They can produce a hell of an output
+#      down a specific problem. They can produce a lot of output
 #      (especially 16).
 #
 #      If you are used to the more verbose settings, simply enable
@@ -764,8 +764,8 @@ logfile logfile
 #      consider using access control lists (ACL's, see below), and/or
 #      a firewall.
 #
-#      If you open Privoxy to untrusted users, you will also want to
-#      make sure that the following actions are disabled:
+#      If you open Privoxy to untrusted users, you should also make
+#      sure that the following actions are disabled:
 #      enable-edit-actions and enable-remote-toggle
 #
 #  Example:
@@ -1457,8 +1457,8 @@ enable-proxy-authentication-forwarding 0
 #      might want to make some exceptions:
 #
 #        forward         192.168.*.*/     .
-#        forward            10.*.*.*/     .
-#        forward           127.*.*.*/     .
+#        forward          10.*.*.*/       .
+#        forward         127.*.*.*/       .
 #
 #      Unencrypted connections to systems in these address ranges
 #      will be as (un)secure as the local network is, but the
@@ -1471,7 +1471,7 @@ enable-proxy-authentication-forwarding 0
 #      network by using their names, you will need additional
 #      exceptions that look like this:
 #
-#       forward           localhost/     .
+#        forward           localhost/     .
 #
 #
 #  5.3. forwarded-connect-retries
@@ -1831,11 +1831,11 @@ tolerate-pipelining 1
 #      speedups. There are also a few privacy implications you should
 #      be aware of.
 #
-#      If this option is effective, outgoing connections are shared
+#      If this option is enabled, outgoing connections are shared
 #      between clients (if there are more than one) and closing the
-#      browser that initiated the outgoing connection does no longer
-#      affect the connection between Privoxy and the server unless
-#      the client's request hasn't been completed yet.
+#      browser that initiated the outgoing connection does not affect
+#      the connection between Privoxy and the server unless the
+#      client's request hasn't been completed yet.
 #
 #      If the outgoing connection is idle, it will not be closed
 #      until either Privoxy's or the server's timeout is reached.
@@ -1917,12 +1917,10 @@ socket-timeout 300
 #
 #      128
 #
-#  Effect if unset:
+#  Notes:
 #
 #      Connections are served until a resource limit is reached.
 #
-#  Notes:
-#
 #      Privoxy creates one thread (or process) for every incoming
 #      client connection that isn't rejected based on the access
 #      control settings.
@@ -2169,19 +2167,18 @@ socket-timeout 300
 #
 #  Examples:
 #
-#          # Best speed (compared to the other levels)
-#          compression-level 1
+#        # Best speed (compared to the other levels)
+#        compression-level 1
 #
-#          # Best compression
-#          compression-level 9
-#
-#          # No compression. Only useful for testing as the added header
-#          # slightly increases the amount of data that has to be sent.
-#          # If your benchmark shows that using this compression level
-#          # is superior to using no compression at all, the benchmark
-#          # is likely to be flawed.
-#          compression-level 0
+#        # Best compression
+#        compression-level 9
 #
+#        # No compression. Only useful for testing as the added header
+#        # slightly increases the amount of data that has to be sent.
+#        # If your benchmark shows that using this compression level
+#        # is superior to using no compression at all, the benchmark
+#        # is likely to be flawed.
+#        compression-level 0
 #
 #compression-level 1
 #
@@ -2332,7 +2329,6 @@ socket-timeout 300
 #            client-tag-lifetime 180
 #
 #
-#
 #  6.18. trust-x-forwarded-for
 #  ============================
 #
@@ -2380,7 +2376,6 @@ socket-timeout 300
 #            trust-x-forwarded-for 1
 #
 #
-#
 #  6.19. receive-buffer-size
 #  ==========================
 #
@@ -2668,63 +2663,60 @@ socket-timeout 300
 #  Examples:
 #
 #          # Explicitly set a couple of ciphers with names used by MbedTLS
-#          cipher-list cipher-list TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\
-#          TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:\
-#          TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\
-#          TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:\
-#          TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:\
-#          TLS-ECDHE-ECDSA-WITH-AES-256-CCM:\
-#          TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8:\
-#          TLS-ECDHE-ECDSA-WITH-AES-128-CCM:\
-#          TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8:\
-#          TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\
-#          TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384:\
-#          TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:\
-#          TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:\
-#          TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
-#          TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
-#          TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:\
-#          TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:\
-#          TLS-DHE-RSA-WITH-AES-256-CCM:\
-#          TLS-DHE-RSA-WITH-AES-256-CCM-8:\
-#          TLS-DHE-RSA-WITH-AES-128-CCM:\
-#          TLS-DHE-RSA-WITH-AES-128-CCM-8:\
-#          TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
-#          TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
-#          TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256:\
-#          TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384:\
-#          TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
-#          TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
-#          TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256:\
-#          TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384:\
-#          TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\
-#          TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384
-#
+#        cipher-list cipher-list TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\
+#        TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:\
+#        TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\
+#        TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:\
+#        TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:\
+#        TLS-ECDHE-ECDSA-WITH-AES-256-CCM:\
+#        TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8:\
+#        TLS-ECDHE-ECDSA-WITH-AES-128-CCM:\
+#        TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8:\
+#        TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\
+#        TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384:\
+#        TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:\
+#        TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:\
+#        TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
+#        TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
+#        TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:\
+#        TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:\
+#        TLS-DHE-RSA-WITH-AES-256-CCM:\
+#        TLS-DHE-RSA-WITH-AES-256-CCM-8:\
+#        TLS-DHE-RSA-WITH-AES-128-CCM:\
+#        TLS-DHE-RSA-WITH-AES-128-CCM-8:\
+#        TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
+#        TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
+#        TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256:\
+#        TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384:\
+#        TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
+#        TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
+#        TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256:\
+#        TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384:\
+#        TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\
+#        TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384
 #
 #          # Explicitly set a couple of ciphers with names used by OpenSSL
-#          cipher-list ECDHE-RSA-AES256-GCM-SHA384:\
-#          ECDHE-ECDSA-AES256-GCM-SHA384:\
-#          DH-DSS-AES256-GCM-SHA384:\
-#          DHE-DSS-AES256-GCM-SHA384:\
-#          DH-RSA-AES256-GCM-SHA384:\
-#          DHE-RSA-AES256-GCM-SHA384:\
-#          ECDH-RSA-AES256-GCM-SHA384:\
-#          ECDH-ECDSA-AES256-GCM-SHA384:\
-#          ECDHE-RSA-AES128-GCM-SHA256:\
-#          ECDHE-ECDSA-AES128-GCM-SHA256:\
-#          DH-DSS-AES128-GCM-SHA256:\
-#          DHE-DSS-AES128-GCM-SHA256:\
-#          DH-RSA-AES128-GCM-SHA256:\
-#          DHE-RSA-AES128-GCM-SHA256:\
-#          ECDH-RSA-AES128-GCM-SHA256:\
-#          ECDH-ECDSA-AES128-GCM-SHA256:\
-#          ECDHE-RSA-AES256-GCM-SHA384:\
-#          AES128-SHA
-#
+#        cipher-list ECDHE-RSA-AES256-GCM-SHA384:\
+#        ECDHE-ECDSA-AES256-GCM-SHA384:\
+#        DH-DSS-AES256-GCM-SHA384:\
+#        DHE-DSS-AES256-GCM-SHA384:\
+#        DH-RSA-AES256-GCM-SHA384:\
+#        DHE-RSA-AES256-GCM-SHA384:\
+#        ECDH-RSA-AES256-GCM-SHA384:\
+#        ECDH-ECDSA-AES256-GCM-SHA384:\
+#        ECDHE-RSA-AES128-GCM-SHA256:\
+#        ECDHE-ECDSA-AES128-GCM-SHA256:\
+#        DH-DSS-AES128-GCM-SHA256:\
+#        DHE-DSS-AES128-GCM-SHA256:\
+#        DH-RSA-AES128-GCM-SHA256:\
+#        DHE-RSA-AES128-GCM-SHA256:\
+#        ECDH-RSA-AES128-GCM-SHA256:\
+#        ECDH-ECDSA-AES128-GCM-SHA256:\
+#        ECDHE-RSA-AES256-GCM-SHA384:\
+#        AES128-SHA
 #
 #          # Use keywords instead of explicitly naming the ciphers (Does not work with MbedTLS)
-#          cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
-#
+#        cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
 #
 #
 #  7.7. trusted-cas-file
@@ -2787,49 +2779,35 @@ socket-timeout 300
 #
 #log-buffer-size 1
 #
-#
-#
 #  log-max-lines is the maximum number of lines held in the log
 #  buffer. See above.
 #
 #log-max-lines 200
 #
-#
-#
 #  If "log-highlight-messages" is set to 1, Privoxy will highlight
 #  portions of the log messages with a bold-faced font:
 #
 #log-highlight-messages 1
 #
-#
-#
 #  The font used in the console window:
 #
 #log-font-name Comic Sans MS
 #
-#
-#
 #  Font size used in the console window:
 #
 #log-font-size 8
 #
-#
-#
 #  "show-on-task-bar" controls whether or not Privoxy will appear as
 #  a button on the Task bar when minimized:
 #
 #show-on-task-bar 0
 #
-#
-#
 #  If "close-button-minimizes" is set to 1, the Windows close button
 #  will minimize Privoxy instead of closing the program (close with
 #  the exit option on the File menu).
 #
 #close-button-minimizes 1
 #
-#
-#
 #  The "hide-console" option is specific to the MS-Win console
 #  version of Privoxy. If this option is used, Privoxy will
 #  disconnect from and hide the command console.
@@ -2837,4 +2815,3 @@ socket-timeout 300
 #hide-console
 #
 #
-#
index 42fa1ca..d3a94f4 100644 (file)
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">/* if page size greater than 1k ... */
-if (page_length() &#62; 1024)
-{
-    ... "block" the page up ...
-}
+              <pre class="PROGRAMLISTING">  /* if page size greater than 1k ... */
+  if (page_length() &#62; 1024)
+  {
+      ... "block" the page up ...
+  }
 
-/* if page size is small, send it in blocks */
-if (page_length() &#62; 1024)
-{
-    ... "block" the page up ...
-}
+  /* if page size is small, send it in blocks */
+  if (page_length() &#62; 1024)
+  {
+      ... "block" the page up ...
+  }
 
-This demonstrates 2 cases of "what not to do".  The first is a
-"syntax comment".  The second is a comment that does not fit what
-is actually being done.</pre>
+  This demonstrates 2 cases of "what not to do".  The first is a
+  "syntax comment".  The second is a comment that does not fit what
+  is actually being done.</pre>
             </td>
           </tr>
         </table>
@@ -80,26 +80,26 @@ is actually being done.</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">/*********************************************************************
- * This will stand out clearly in your code!
- *********************************************************************/
-if (this_variable == that_variable)
-{
-   do_something_very_important();
-}
+              <pre class="PROGRAMLISTING">  /*********************************************************************
  * This will stand out clearly in your code!
  *********************************************************************/
+  if (this_variable == that_variable)
+  {
+     do_something_very_important();
+  }
 
 
-/* unfortunately, this may not */
-if (this_variable == that_variable)
-{
-   do_something_very_important();
-}
+  /* unfortunately, this may not */
+  if (this_variable == that_variable)
+  {
+     do_something_very_important();
+  }
 
 
-if (this_variable == that_variable) /* this may not either */
-{
-   do_something_very_important();
-}</pre>
+  if (this_variable == that_variable) /* this may not either */
+  {
+     do_something_very_important();
+  }</pre>
             </td>
           </tr>
         </table>
@@ -118,40 +118,40 @@ if (this_variable == that_variable) /* this may not either */
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">/*********************************************************************
- * This will stand out clearly in your code,
- * But the second example won't.
- *********************************************************************/
-if (this_variable == this_variable)
-{
-   do_something_very_important();
-}
+              <pre class="PROGRAMLISTING">  /*********************************************************************
  * This will stand out clearly in your code,
  * But the second example won't.
  *********************************************************************/
+  if (this_variable == this_variable)
+  {
+     do_something_very_important();
+  }
 
-if (this_variable == this_variable) /*can you see me?*/
-{
-   do_something_very_important(); /*not easily*/
-}
+  if (this_variable == this_variable) /*can you see me?*/
+  {
+     do_something_very_important(); /*not easily*/
+  }
 
 
-/*********************************************************************
- * But, the encouraged exceptions:
- *********************************************************************/
-int urls_read     = 0;     /* # of urls read + rejected */
-int urls_rejected = 0;     /* # of urls rejected */
+  /*********************************************************************
  * But, the encouraged exceptions:
  *********************************************************************/
+  int urls_read     = 0;     /* # of urls read + rejected */
+  int urls_rejected = 0;     /* # of urls rejected */
 
-if (1 == X)
-{
-   do_something_very_important();
-}
+  if (1 == X)
+  {
+     do_something_very_important();
+  }
 
 
-short do_something_very_important(
-   short firstparam,   /* represents something */
-   short nextparam     /* represents something else */ )
-{
-   ...code here...
+  short do_something_very_important(
+     short firstparam,   /* represents something */
+     short nextparam     /* represents something else */ )
+  {
+     ...code here...
 
-}   /* -END- do_something_very_important */</pre>
+  }   /* -END- do_something_very_important */</pre>
             </td>
           </tr>
         </table>
@@ -190,19 +190,19 @@ short do_something_very_important(
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">if (1 == X)
-{
-   do_something_very_important();
-   ...some long list of commands...
-} /* -END- if x is 1 */
+              <pre class="PROGRAMLISTING">  if (1 == X)
+  {
+     do_something_very_important();
+     ...some long list of commands...
+  } /* -END- if x is 1 */
 
-or:
+  or:
 
-if (1 == X)
-{
-   do_something_very_important();
-   ...some long list of commands...
-} /* -END- if (1 == X) */</pre>
+  if (1 == X)
+  {
+     do_something_very_important();
+     ...some long list of commands...
+  } /* -END- if (1 == X) */</pre>
             </td>
           </tr>
         </table>
@@ -221,7 +221,7 @@ if (1 == X)
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">int ms_iis5_hack = 0;</pre>
+              <pre class="PROGRAMLISTING">  int ms_iis5_hack = 0;</pre>
             </td>
           </tr>
         </table>
@@ -229,7 +229,7 @@ if (1 == X)
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">int msiis5hack = 0; int msIis5Hack = 0;</pre>
+              <pre class="PROGRAMLISTING">  int msiis5hack = 0; int msIis5Hack = 0;</pre>
             </td>
           </tr>
         </table>
@@ -245,7 +245,7 @@ if (1 == X)
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">int load_some_file(struct client_state *csp)</pre>
+              <pre class="PROGRAMLISTING">  int load_some_file(struct client_state *csp)</pre>
             </td>
           </tr>
         </table>
@@ -253,8 +253,8 @@ if (1 == X)
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">int loadsomefile(struct client_state *csp)
-int loadSomeFile(struct client_state *csp)</pre>
+              <pre class="PROGRAMLISTING">  int loadsomefile(struct client_state *csp)
+  int loadSomeFile(struct client_state *csp)</pre>
             </td>
           </tr>
         </table>
@@ -268,8 +268,8 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">(.h) extern int load_aclfile(struct client_state *csp);
-(.c) int load_aclfile(struct client_state *csp)</pre>
+              <pre class="PROGRAMLISTING">  (.h) extern int load_aclfile(struct client_state *csp);
+  (.c) int load_aclfile(struct client_state *csp)</pre>
             </td>
           </tr>
         </table>
@@ -277,9 +277,9 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <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>
+              <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>
             </td>
           </tr>
         </table>
@@ -293,8 +293,8 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">(enumeration) : enum Boolean {FALSE, TRUE};
-(#define) : #define DEFAULT_SIZE 100;</pre>
+              <pre class="PROGRAMLISTING">  (enumeration) : enum Boolean {FALSE, TRUE};
+  (#define) : #define DEFAULT_SIZE 100;</pre>
             </td>
           </tr>
         </table>
@@ -305,11 +305,11 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">#define FEATURE_FORCE 1
+              <pre class="PROGRAMLISTING">  #define FEATURE_FORCE 1
 
-#ifdef FEATURE_FORCE
-#define FORCE_PREFIX blah
-#endif /* def FEATURE_FORCE */</pre>
+  #ifdef FEATURE_FORCE
+  #define FORCE_PREFIX blah
+  #endif /* def FEATURE_FORCE */</pre>
             </td>
           </tr>
         </table>
@@ -325,7 +325,7 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">#define USE_IMAGE_LIST 1</pre>
+              <pre class="PROGRAMLISTING">  #define USE_IMAGE_LIST 1</pre>
             </td>
           </tr>
         </table>
@@ -333,11 +333,11 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">#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 UseImageList 1</pre>
+              <pre class="PROGRAMLISTING">  #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 UseImageList 1</pre>
             </td>
           </tr>
         </table>
@@ -355,10 +355,10 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">if (this == that)
-{
-   ...
-}</pre>
+              <pre class="PROGRAMLISTING">  if (this == that)
+  {
+     ...
+  }</pre>
             </td>
           </tr>
         </table>
@@ -374,13 +374,13 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">while (more lines are read)
-{
-   /* Please document what is/is not a comment line here */
-   if (it's a comment) continue;
+              <pre class="PROGRAMLISTING">  while (more lines are read)
+  {
+     /* Please document what is/is not a comment line here */
+     if (it's a comment) continue;
 
-   do_something(line);
-}</pre>
+     do_something(line);
+  }</pre>
             </td>
           </tr>
         </table>
@@ -394,11 +394,11 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">if (this == that)
-{
-   do_something();
-   do_something_else();
-}</pre>
+              <pre class="PROGRAMLISTING">  if (this == that)
+  {
+     do_something();
+     do_something_else();
+  }</pre>
             </td>
           </tr>
         </table>
@@ -416,7 +416,7 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">structure-&#62;flag = (condition);</pre>
+              <pre class="PROGRAMLISTING">  structure-&#62;flag = (condition);</pre>
             </td>
           </tr>
         </table>
@@ -434,10 +434,10 @@ int loadSomeFile(struct client_state *csp)</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">int first_value   = 0;
-int some_value    = 0;
-int another_value = 0;
-int this_variable = 0;</pre>
+              <pre class="PROGRAMLISTING">  int first_value   = 0;
+  int some_value    = 0;
+  int another_value = 0;
+  int this_variable = 0;</pre>
             </td>
           </tr>
         </table>
@@ -452,9 +452,9 @@ int this_variable = 0;</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">a_struct-&#62;a_member;
-a_struct.a_member;
-function_name();</pre>
+              <pre class="PROGRAMLISTING">  a_struct-&#62;a_member;
+  a_struct.a_member;
+  function_name();</pre>
             </td>
           </tr>
         </table>
@@ -467,17 +467,17 @@ function_name();</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">int function1( ... )
-{
-   ...code...
-   return(ret_code);
+              <pre class="PROGRAMLISTING">  int function1( ... )
+  {
+     ...code...
+     return(ret_code);
 
-} /* -END- function1 */
+  } /* -END- function1 */
 
 
-int function2( ... )
-{
-} /* -END- function2 */</pre>
+  int function2( ... )
+  {
+  } /* -END- function2 */</pre>
             </td>
           </tr>
         </table>
@@ -500,26 +500,26 @@ int function2( ... )
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">static const char * const url_code_map[256] =
-{
-   NULL, ...
-};
+              <pre class="PROGRAMLISTING">  static const char * const url_code_map[256] =
+  {
+     NULL, ...
+  };
 
 
-int function1( ... )
-{
-   if (1)
-   {
-      return ALWAYS_TRUE;
-   }
-   else
-   {
-      return HOW_DID_YOU_GET_HERE;
-   }
+  int function1( ... )
+  {
+     if (1)
+     {
+        return ALWAYS_TRUE;
+     }
+     else
+     {
+        return HOW_DID_YOU_GET_HERE;
+     }
 
-   return NEVER_GETS_HERE;
+     return NEVER_GETS_HERE;
 
-}</pre>
+  }</pre>
             </td>
           </tr>
         </table>
@@ -536,9 +536,9 @@ int function1( ... )
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">short a_short = 0;
-float a_float  = 0;
-struct *ptr = NULL;</pre>
+              <pre class="PROGRAMLISTING">  short a_short = 0;
+  float a_float  = 0;
+  struct *ptr = NULL;</pre>
             </td>
           </tr>
         </table>
@@ -559,9 +559,9 @@ struct *ptr = NULL;</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">should_we_block_this();
-contains_an_image();
-is_web_page_blank();</pre>
+              <pre class="PROGRAMLISTING">  should_we_block_this();
+  contains_an_image();
+  is_web_page_blank();</pre>
             </td>
           </tr>
         </table>
@@ -582,10 +582,10 @@ is_web_page_blank();</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">for (size_t cnt = 0; cnt &lt; block_list_length(); cnt++)
-{
-   ....
-}</pre>
+              <pre class="PROGRAMLISTING">  for (size_t cnt = 0; cnt &lt; block_list_length(); cnt++)
+  {
+     ....
+  }</pre>
             </td>
           </tr>
         </table>
@@ -601,12 +601,12 @@ is_web_page_blank();</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">size_t len = block_list_length();
+              <pre class="PROGRAMLISTING">  size_t len = block_list_length();
 
-for (size_t cnt = 0; cnt &lt; len; cnt++)
-{
-   ....
-}</pre>
+  for (size_t cnt = 0; cnt &lt; len; cnt++)
+  {
+     ....
+  }</pre>
             </td>
           </tr>
         </table>
@@ -642,8 +642,8 @@ for (size_t cnt = 0; cnt &lt; len; cnt++)
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">#include &lt;iostream.h&gt;     /* This is not a local include */
-#include "config.h"       /* This IS a local include */</pre>
+              <pre class="PROGRAMLISTING">  #include &lt;iostream.h&gt;     /* This is not a local include */
+  #include "config.h"       /* This IS a local include */</pre>
             </td>
           </tr>
         </table>
@@ -651,8 +651,8 @@ for (size_t cnt = 0; cnt &lt; len; cnt++)
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">/* This is not a local include, but requires a path element. */
-#include &lt;sys/fileName.h&gt;</pre>
+              <pre class="PROGRAMLISTING">  /* This is not a local include, but requires a path element. */
+  #include &lt;sys/fileName.h&gt;</pre>
             </td>
           </tr>
         </table>
@@ -669,10 +669,10 @@ for (size_t cnt = 0; cnt &lt; len; cnt++)
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">#ifndef PROJECT_H_INCLUDED
-#define PROJECT_H_INCLUDED
- ...
-#endif /* ndef PROJECT_H_INCLUDED */</pre>
+              <pre class="PROGRAMLISTING">  #ifndef PROJECT_H_INCLUDED
+  #define PROJECT_H_INCLUDED
  ...
+  #endif /* ndef PROJECT_H_INCLUDED */</pre>
             </td>
           </tr>
         </table>
@@ -686,16 +686,16 @@ for (size_t cnt = 0; cnt &lt; len; cnt++)
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">#ifdef __cplusplus
-extern "C"
-{
-#endif /* def __cplusplus */
+              <pre class="PROGRAMLISTING">  #ifdef __cplusplus
+  extern "C"
+  {
+  #endif /* def __cplusplus */
 
-... function definitions here ...
+  ... function definitions here ...
 
-#ifdef __cplusplus
-}
-#endif /* def __cplusplus */</pre>
+  #ifdef __cplusplus
+  }
+  #endif /* def __cplusplus */</pre>
             </td>
           </tr>
         </table>
@@ -710,11 +710,11 @@ extern "C"
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">/*********************************************************************
- * We're avoiding an include statement here!
- *********************************************************************/
-struct file_list;
-extern file_list *xyz;</pre>
+              <pre class="PROGRAMLISTING">  /*********************************************************************
  * We're avoiding an include statement here!
  *********************************************************************/
+  struct file_list;
+  extern file_list *xyz;</pre>
             </td>
           </tr>
         </table>
@@ -742,22 +742,22 @@ extern file_list *xyz;</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">switch (hash_string(cmd))
-{
-   case hash_actions_file:
-      ... code ...
-      break;
+              <pre class="PROGRAMLISTING">  switch (hash_string(cmd))
+  {
+     case hash_actions_file:
+        ... code ...
+        break;
 
-   case hash_confdir:
-      ... code ...
-      break;
+     case hash_confdir:
+        ... code ...
+        break;
 
-   default:
-      log_error( ... );
-      ... anomaly code goes here ...
-      continue; / break; / exit( 1 ); / etc ...
+     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>
@@ -797,9 +797,9 @@ extern file_list *xyz;</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">long a = 0;
-long b = 0;
-long c = 0;</pre>
+              <pre class="PROGRAMLISTING">  long a = 0;
+  long b = 0;
+  long c = 0;</pre>
             </td>
           </tr>
         </table>
@@ -824,8 +824,8 @@ long c = 0;</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">If a function creates a struct and stores a pointer to it in a
-list, then it should definitely be allocated via `malloc'.</pre>
+              <pre class="PROGRAMLISTING">  If a function creates a struct and stores a pointer to it in a
+  list, then it should definitely be allocated via `malloc'.</pre>
             </td>
           </tr>
         </table>
@@ -842,8 +842,8 @@ list, then it should definitely be allocated via `malloc'.</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">int load_re_filterfile(struct client_state *csp) { ... }
-static void unload_re_filterfile(void *f) { ... }</pre>
+              <pre class="PROGRAMLISTING">  int load_re_filterfile(struct client_state *csp) { ... }
+  static void unload_re_filterfile(void *f) { ... }</pre>
             </td>
           </tr>
         </table>
@@ -885,42 +885,42 @@ static void unload_re_filterfile(void *f) { ... }</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="PROGRAMLISTING">/*********************************************************************
- *
- * File        :  $Source
- *
- * Purpose     :  (Fill me in with a good description!)
- *
- * Copyright   :  Written by and Copyright (C) 2001-2009
- *                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
- *                Public License as published by the Free Software
- *                Foundation; either version 2 of the License, or (at
- *                your option) any later version.
- *
- *                This program is distributed in the hope that it will
- *                be useful, but WITHOUT ANY WARRANTY; without even the
- *                implied warranty of MERCHANTABILITY or FITNESS FOR A
- *                PARTICULAR PURPOSE.  See the GNU General Public
- *                License for more details.
- *
- *                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.,
- *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
- *                USA
- *
- *********************************************************************/
+            <pre class="PROGRAMLISTING">  /*********************************************************************
  *
  * File        :  $Source
  *
  * Purpose     :  (Fill me in with a good description!)
  *
  * Copyright   :  Written by and Copyright (C) 2001-2009
  *                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
  *                Public License as published by the Free Software
  *                Foundation; either version 2 of the License, or (at
  *                your option) any later version.
  *
  *                This program is distributed in the hope that it will
  *                be useful, but WITHOUT ANY WARRANTY; without even the
  *                implied warranty of MERCHANTABILITY or FITNESS FOR A
  *                PARTICULAR PURPOSE.  See the GNU General Public
  *                License for more details.
  *
  *                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.,
  *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
  *                USA
  *
  *********************************************************************/
 
 
-#include "config.h"
+  #include "config.h"
 
-   ...necessary include files for us to do our work...
+     ...necessary include files for us to do our work...
 
-const char FILENAME_h_rcs[] = FILENAME_H_VERSION;</pre>
+  const char FILENAME_h_rcs[] = FILENAME_H_VERSION;</pre>
           </td>
         </tr>
       </table>
@@ -934,64 +934,64 @@ const char FILENAME_h_rcs[] = FILENAME_H_VERSION;</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="PROGRAMLISTING">#ifndef _FILENAME_H
-#define _FILENAME_H
-/*********************************************************************
- *
- * File        :  $Source
- *
- * Purpose     :  (Fill me in with a good description!)
- *
- * Copyright   :  Written by and Copyright (C) 2001-2009
- *                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
- *                Public License as published by the Free Software
- *                Foundation; either version 2 of the License, or (at
- *                your option) any later version.
- *
- *                This program is distributed in the hope that it will
- *                be useful, but WITHOUT ANY WARRANTY; without even the
- *                implied warranty of MERCHANTABILITY or FITNESS FOR A
- *                PARTICULAR PURPOSE.  See the GNU General Public
- *                License for more details.
- *
- *                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.,
- *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
- *                USA
- *
- *********************************************************************/
+            <pre class="PROGRAMLISTING">  #ifndef _FILENAME_H
+  #define _FILENAME_H
+  /*********************************************************************
  *
  * File        :  $Source
  *
  * Purpose     :  (Fill me in with a good description!)
  *
  * Copyright   :  Written by and Copyright (C) 2001-2009
  *                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
  *                Public License as published by the Free Software
  *                Foundation; either version 2 of the License, or (at
  *                your option) any later version.
  *
  *                This program is distributed in the hope that it will
  *                be useful, but WITHOUT ANY WARRANTY; without even the
  *                implied warranty of MERCHANTABILITY or FITNESS FOR A
  *                PARTICULAR PURPOSE.  See the GNU General Public
  *                License for more details.
  *
  *                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.,
  *                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ,
  *                USA
  *
  *********************************************************************/
 
 
-#include "project.h"
+  #include "project.h"
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+  #ifdef __cplusplus
+  extern "C" {
+  #endif
 
-   ... function headers here ...
+     ... function headers here ...
 
 
-/* Revision control strings from this header and associated .c file */
-extern const char FILENAME_rcs[];
-extern const char FILENAME_h_rcs[];
+  /* Revision control strings from this header and associated .c file */
+  extern const char FILENAME_rcs[];
+  extern const char FILENAME_h_rcs[];
 
 
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
+  #ifdef __cplusplus
+  } /* extern "C" */
+  #endif
 
-#endif /* ndef _FILENAME_H */
+  #endif /* ndef _FILENAME_H */
 
-/*
-  Local Variables:
-  tab-width: 3
-  end:
-*/</pre>
+  /*
+    Local Variables:
+    tab-width: 3
+    end:
+  */</pre>
           </td>
         </tr>
       </table>
@@ -999,25 +999,25 @@ extern const char FILENAME_h_rcs[];
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="PROGRAMLISTING">/*********************************************************************
- *
- * Function    :  FUNCTION_NAME
- *
- * Description :  (Fill me in with a good description!)
- *
- * parameters  :
- *          1  :  param1 = pointer to an important thing
- *          2  :  x      = pointer to something else
- *
- * Returns     :  0 =&#62; Ok, everything else is an error.
- *
- *********************************************************************/
-int FUNCTION_NAME(void *param1, const char *x)
-{
-   ...
-   return 0;
+            <pre class="PROGRAMLISTING">  /*********************************************************************
  *
  * Function    :  FUNCTION_NAME
  *
  * Description :  (Fill me in with a good description!)
  *
  * parameters  :
  *          1  :  param1 = pointer to an important thing
  *          2  :  x      = pointer to something else
  *
  * Returns     :  0 =&#62; Ok, everything else is an error.
  *
  *********************************************************************/
+  int FUNCTION_NAME(void *param1, const char *x)
+  {
+     ...
+     return 0;
 
-}</pre>
+  }</pre>
           </td>
         </tr>
       </table>
index cd3c4a9..e9c8d75 100644 (file)
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="PROGRAMLISTING">fk@t520 ~/git/privoxy $git checkout master
-Switched to branch 'master'
-Your branch is up to date with 'origin/master'.
-# Make sure you have the latest changes
-fk@t520 ~/git/privoxy $git pull
-Already up to date.
-# Create a local banch for changes
-fk@t520 ~/git/privoxy $git checkout -b local-branch
-Switched to a new branch 'local-branch'
-# Create some change
-fk@t520 ~/git/privoxy $gmake dok dok-tidy
-[...]
-# Review your change
-fk@t520 ~/git/privoxy $git diff
-[...]
-# Commit your changes if they look goood
-fk@t520 ~/git/privoxy $git commit -m "developer-manual: Regenerate" doc/webserver/
-[local-branch 1abb7316] developer-manual: Regenerate
- 1 file changed, 2 insertions(+), 2 deletions(-)
-# Review your commit
-fk@t520 ~/git/privoxy $git show
-[...]
-# Go to the master branch
-fk@t520 ~/git/privoxy $git checkout master
-Switched to branch 'master'
-Your branch is up to date with 'origin/master'.
-# Make sure you are still in sync
-fk@t520 ~/git/privoxy $git pull
-[...]
-Already up to date.
-# Apply the commit you made to the local-branch
-fk@t520 ~/git/privoxy $git cherry-pick local-branch
-[master 046e85e2] developer-manual: Regenerate
- Date: Tue Dec 15 05:10:07 2020 +0100
- 1 file changed, 2 insertions(+), 2 deletions(-)
-# Make sure the history looks as expected
-fk@t520 ~/git/privoxy $git log -p
-# Finally push your change to the Privoxy repository
-fk@t520 ~/git/privoxy $git push
-[...]
-# Go back to the local branch
-fk@t520 ~/git/privoxy $git checkout local-branch
-# Rebase on top of master and continue hacking
-fk@t520 ~/git/privoxy $git rebase master
-Successfully rebased and updated refs/heads/local-branch.</pre>
+            <pre class="PROGRAMLISTING">  fk@t520 ~/git/privoxy $git checkout master
+  Switched to branch 'master'
+  Your branch is up to date with 'origin/master'.
+  # Make sure you have the latest changes
+  fk@t520 ~/git/privoxy $git pull
+  Already up to date.
+  # Create a local banch for changes
+  fk@t520 ~/git/privoxy $git checkout -b local-branch
+  Switched to a new branch 'local-branch'
+  # Create some change
+  fk@t520 ~/git/privoxy $gmake dok dok-tidy
+  [...]
+  # Review your change
+  fk@t520 ~/git/privoxy $git diff
+  [...]
+  # Commit your changes if they look goood
+  fk@t520 ~/git/privoxy $git commit -m "developer-manual: Regenerate" doc/webserver/
+  [local-branch 1abb7316] developer-manual: Regenerate
  1 file changed, 2 insertions(+), 2 deletions(-)
+  # Review your commit
+  fk@t520 ~/git/privoxy $git show
+  [...]
+  # Go to the master branch
+  fk@t520 ~/git/privoxy $git checkout master
+  Switched to branch 'master'
+  Your branch is up to date with 'origin/master'.
+  # Make sure you are still in sync
+  fk@t520 ~/git/privoxy $git pull
+  [...]
+  Already up to date.
+  # Apply the commit you made to the local-branch
+  fk@t520 ~/git/privoxy $git cherry-pick local-branch
+  [master 046e85e2] developer-manual: Regenerate
  Date: Tue Dec 15 05:10:07 2020 +0100
  1 file changed, 2 insertions(+), 2 deletions(-)
+  # Make sure the history looks as expected
+  fk@t520 ~/git/privoxy $git log -p
+  # Finally push your change to the Privoxy repository
+  fk@t520 ~/git/privoxy $git push
+  [...]
+  # Go back to the local branch
+  fk@t520 ~/git/privoxy $git checkout local-branch
+  # Rebase on top of master and continue hacking
+  fk@t520 ~/git/privoxy $git rebase master
+  Successfully rebased and updated refs/heads/local-branch.</pre>
           </td>
         </tr>
       </table>
index 3c35063..0b33e7b 100644 (file)
           freeze so that nobody will interfere with last minute changes.</p>
         </li>
         <li>
-          <p>Update the code status (CODE_STATUS="xxx") in configure.in to one of "alpha", "beta" or "stable".</p>
+          <p>Update the code status (CODE_STATUS="xxx") in <tt class="FILENAME">configure.in</tt> to one of "alpha",
+          "beta" or "stable".</p>
         </li>
         <li>
           <p>Rebuild configure and GNUMakefile to make sure the updated values are being used.</p>
           <table border="0" bgcolor="#E0E0E0" width="90%">
             <tr>
               <td>
-                <pre class="PROGRAMLISTING">$ autoheader &#38;&#38; autoconf     # rebuild configure
-$ ./configure                # rebuild GNUmakefile</pre>
+                <pre class="PROGRAMLISTING">  $ autoheader &#38;&#38; autoconf     # rebuild configure
+  $ ./configure                # rebuild GNUmakefile</pre>
               </td>
             </tr>
           </table>
@@ -111,14 +112,15 @@ $ ./configure                # rebuild GNUmakefile</pre>
         </li>
         <li>
           <p>If action file processing has changed and is not backward-compatible, make sure the
-          "for-privoxy-version=x.y.z" minimum version number in default.action.master has been updated:</p>
+          "for-privoxy-version=x.y.z" minimum version number in <tt class="FILENAME">default.action.master</tt> has
+          been updated:</p>
           <table border="0" bgcolor="#E0E0E0" width="90%">
             <tr>
               <td>
-                <pre class="PROGRAMLISTING">{{settings}}
-#############################################################################
-#MASTER# COMMENT: The minimum Privoxy version:
-for-privoxy-version=3.0.11</pre>
+                <pre class="PROGRAMLISTING">  {{settings}}
+  #############################################################################
+  #MASTER# COMMENT: The minimum Privoxy version:
+  for-privoxy-version=3.0.11</pre>
               </td>
             </tr>
           </table>
@@ -142,15 +144,15 @@ for-privoxy-version=3.0.11</pre>
           <table border="0" bgcolor="#E0E0E0" width="90%">
             <tr>
               <td>
-                <pre class="PROGRAMLISTING">- Bug fixes:
-- Action file improvements:
-- Filter file improvements:
-- General improvements:
-- Documentation improvements:
-- Build system improvements:
-- Code cleanups:
-- Privoxy-Log-Parser:
-- Privoxy-Regression-Test:</pre>
+                <pre class="PROGRAMLISTING">  - Bug fixes:
+  - Action file improvements:
+  - Filter file improvements:
+  - General improvements:
+  - Documentation improvements:
+  - Build system improvements:
+  - Code cleanups:
+  - Privoxy-Log-Parser:
+  - Privoxy-Regression-Test:</pre>
               </td>
             </tr>
           </table>
@@ -379,6 +381,14 @@ for-privoxy-version=3.0.11</pre>
         rebuild the docs.</p>
         <p>First, <span class="emphasis"><i class="EMPHASIS">make sure that you have freshly exported the right version
         into an empty directory</i></span>. (See "Building and releasing packages" above).</p>
+        <p>Check that you have the current versions of the <a href=
+        "https://sourceforge.net/projects/nsis/files/NSIS%203/" target="_top">NSIS installer</a>, <a href=
+        "https://ftp.pcre.org/pub/pcre/" target="_top">PCRE library</a>, <a href="https://tls.mbed.org/download"
+        target="_top">MBED TLS library</a>, <a href="https://github.com/google/brotli/releases" target="_top">Brotli
+        library</a>, and that the <span class="emphasis"><i class="EMPHASIS">MAKENSIS</i></span> evar in <tt class=
+        "FILENAME">windows/GNUMakefile</tt> points to the NSIS installer program. (See the <a href=
+        "../user-manual/installation.html#WINBUILD-CYGWIN" target="_top"><span class="emphasis"><i class=
+        "EMPHASIS">Building from Source / Windows</i></span></a> section of the User Manual for details.)</p>
         <p>Then you can build the package. This is fully automated, and is controlled by <tt class=
         "FILENAME">windows/GNUmakefile</tt>. All you need to do is:</p>
         <table border="0" bgcolor="#E0E0E0" width="100%">
@@ -396,9 +406,9 @@ for-privoxy-version=3.0.11</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="PROGRAMLISTING">  gpg --armor --detach --sign <tt class=
+              <pre class="PROGRAMLISTING">  gpg --armor --detach --sign <tt class=
               "FILENAME">privoxy_setup_X.Y.Z.exe</tt>
-  gpg --armor --detach --sign <tt class="FILENAME">privoxy_X.Y.Z.zip</tt></pre>
+  gpg --armor --detach --sign <tt class="FILENAME">privoxy_X.Y.Z.zip</tt></pre>
             </td>
           </tr>
         </table>
index 3d86b5f..8d5ce3d 100644 (file)
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="PROGRAMLISTING"># Run all the tests
-fk@t520 ~ $privoxy-regression-test.pl
-2020-12-14 12:16:32: Asking Privoxy for the number of action files available ...
-2020-12-14 12:16:32: Gathering regression tests from 9 action file(s) delivered by Privoxy 3.0.30.
-2020-12-14 12:16:32: Executing regression tests ...
-2020-12-14 12:16:41: Ooops. Expected removal but: 'Referer: https://p.p/' is still there.
-2020-12-14 12:16:41: Failure for test 785. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-block}'
-2020-12-14 12:16:41: Ooops. Got: 'Referer: https://p.p/' while expecting: 'Referer: http://p.p/'
-2020-12-14 12:16:41: Failure for test 791. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-forge}'
-2020-12-14 12:16:44: Executed 1087 regression tests. Skipped 115. 1085 successes, 2 failures.
-# Repeat one of the failing tests and get a curl command to quickly reproduce the problem
-# without causing too much log noise.
-fk@t520 ~ $privoxy-regression-test.pl --test-number 785 --verbose --debug 4
-2020-12-14 12:17:55: Asking Privoxy for the number of action files available ...
-[...]
-2020-12-14 12:17:56: Executing regression tests ...
-2020-12-14 12:17:56: Executing: curl --include  -H 'Proxy-Connection:'  -H 'Connection: close'  -s  -S  --user-agent 'Privoxy-Regression-Test 0.7.2'  --max-time '5'  --globoff  -H 'X-Privoxy-Control: hide-referrer{conditional-block}' -H 'Referer: https://p.p/'  http://p.p/show-request 2&#62;&#38;1
-2020-12-14 12:17:56: Ooops. Expected removal but: 'Referer: https://p.p/' is still there.
-2020-12-14 12:17:56: Failure for test 785 (0/13/5). Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-block}'
-2020-12-14 12:17:56: Executed 1 regression tests. Skipped 1201. 0 successes, 1 failures.
-     </pre>
+            <pre class="PROGRAMLISTING">  # Run all the tests
+  fk@t520 ~ $privoxy-regression-test.pl
+  2020-12-14 12:16:32: Asking Privoxy for the number of action files available ...
+  2020-12-14 12:16:32: Gathering regression tests from 9 action file(s) delivered by Privoxy 3.0.30.
+  2020-12-14 12:16:32: Executing regression tests ...
+  2020-12-14 12:16:41: Ooops. Expected removal but: 'Referer: https://p.p/' is still there.
+  2020-12-14 12:16:41: Failure for test 785. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-block}'
+  2020-12-14 12:16:41: Ooops. Got: 'Referer: https://p.p/' while expecting: 'Referer: http://p.p/'
+  2020-12-14 12:16:41: Failure for test 791. Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-forge}'
+  2020-12-14 12:16:44: Executed 1087 regression tests. Skipped 115. 1085 successes, 2 failures.
+  # Repeat one of the failing tests and get a curl command to quickly reproduce the problem
+  # without causing too much log noise.
+  fk@t520 ~ $privoxy-regression-test.pl --test-number 785 --verbose --debug 4
+  2020-12-14 12:17:55: Asking Privoxy for the number of action files available ...
+  [...]
+  2020-12-14 12:17:56: Executing regression tests ...
+  2020-12-14 12:17:56: Executing: curl --include  -H 'Proxy-Connection:'  -H 'Connection: close'  -s  -S  --user-agent 'Privoxy-Regression-Test 0.7.2'  --max-time '5'  --globoff  -H 'X-Privoxy-Control: hide-referrer{conditional-block}' -H 'Referer: https://p.p/'  http://p.p/show-request 2&#62;&#38;1
+  2020-12-14 12:17:56: Ooops. Expected removal but: 'Referer: https://p.p/' is still there.
+  2020-12-14 12:17:56: Failure for test 785 (0/13/5). Header 'Referer: https://p.p/' and tag 'hide-referrer{conditional-block}'
+  2020-12-14 12:17:56: Executed 1 regression tests. Skipped 1201. 0 successes, 1 failures.</pre>
           </td>
         </tr>
       </table>
@@ -116,56 +115,56 @@ fk@t520 ~ $privoxy-regression-test.pl --test-number 785 --verbose --debug 4
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="PROGRAMLISTING"># Compile Privoxy with instrumentation for afl
-$ export CC=afl-clang
-$ export CFLAGS="-fsanitize=address -ggdb"
-$ export CPPFLAGS=-I/usr/local/include/
-$ export LDFLAGS="-fsanitize=address -L/usr/local/lib"
-$ export AFL_USE_ASAN=1
-$ export AFL_HARDEN=1
-$ ./configure --with-debug --enable-extended-host-patterns --enable-accept-filter --enable-no-gifs --enable-compression --enable-strptime-sanity-checks --enable-external-filters --enable-fuzz
+            <pre class="PROGRAMLISTING">  # Compile Privoxy with instrumentation for afl
+  $ export CC=afl-clang
+  $ export CFLAGS="-fsanitize=address -ggdb"
+  $ export CPPFLAGS=-I/usr/local/include/
+  $ export LDFLAGS="-fsanitize=address -L/usr/local/lib"
+  $ export AFL_USE_ASAN=1
+  $ export AFL_HARDEN=1
+  $ ./configure --with-debug --enable-extended-host-patterns --enable-accept-filter --enable-no-gifs --enable-compression --enable-strptime-sanity-checks --enable-external-filters --enable-fuzz
 
-$ ./privoxy --fuzz
-Privoxy version 3.0.24 (http://www.privoxy.org/)
-Usage: ./privoxy [--config-test] [--chroot] [--help] [--no-daemon] [--pidfile pidfile] [--pre-chroot-nslookup hostname] [--user user[.group]] [--version] [configfile]
-       ./privoxy --fuzz fuzz-mode ./path/to/fuzzed/input [--stfu]
+  $ ./privoxy --fuzz
+  Privoxy version 3.0.24 (http://www.privoxy.org/)
+  Usage: ./privoxy [--config-test] [--chroot] [--help] [--no-daemon] [--pidfile pidfile] [--pre-chroot-nslookup hostname] [--user user[.group]] [--version] [configfile]
+         ./privoxy --fuzz fuzz-mode ./path/to/fuzzed/input [--stfu]
 
-Supported fuzz modes and the expected input:
- action: Text to parse as action file.
- client-request: Client request to parse. Currently incomplete
- client-header: Client header to parse.
- chunked-transfer-encoding: Chunk-encoded data to dechunk.
- deflate: deflate-compressed data to decompress.
- filter: Text to parse as filter file.
- gif: gif to deanimate.
- gzip: gzip-compressed data to decompress.
- pcrs-substitute: A pcrs-substitute to compile. Not a whole pcrs job! Example: Bla $1 bla C $3 blah.
- server-header: Server header to parse.
- server-response: Server response to parse.
+  Supported fuzz modes and the expected input:
  action: Text to parse as action file.
  client-request: Client request to parse. Currently incomplete
  client-header: Client header to parse.
  chunked-transfer-encoding: Chunk-encoded data to dechunk.
  deflate: deflate-compressed data to decompress.
  filter: Text to parse as filter file.
  gif: gif to deanimate.
  gzip: gzip-compressed data to decompress.
  pcrs-substitute: A pcrs-substitute to compile. Not a whole pcrs job! Example: Bla $1 bla C $3 blah.
  server-header: Server header to parse.
  server-response: Server response to parse.
 
-The following fuzz modes read data from stdin if the 'file' is '-'
- client-request
- client-header
- chunked-transfer-encoding
- deflate
- gif
- gzip
- pcrs-substitute
- server-header
- server-response
+  The following fuzz modes read data from stdin if the 'file' is '-'
  client-request
  client-header
  chunked-transfer-encoding
  deflate
  gif
  gzip
  pcrs-substitute
  server-header
  server-response
 
-Aborting
+  Aborting
 
-$ export ASAN_OPTIONS='abort_on_error=1'
-$ mkdir input output
-$ echo '$1 bla fasel $2' &#62; input/pcrs
-$ afl-fuzz -i input -o output -m none ~/git/privoxy/privoxy --fuzz pcrs-substitute - --stfu
+  $ export ASAN_OPTIONS='abort_on_error=1'
+  $ mkdir input output
+  $ echo '$1 bla fasel $2' &#62; input/pcrs
+  $ afl-fuzz -i input -o output -m none ~/git/privoxy/privoxy --fuzz pcrs-substitute - --stfu
 
-$ cat &#62;input/pcrs.txt
-FILTER: bla fasel
-s@(.{1})[432](\d+)@$1$2$hostname@UgisT
+  $ cat &#62;input/pcrs.txt
+  FILTER: bla fasel
+  s@(.{1})[432](\d+)@$1$2$hostname@UgisT
 
-$ afl-fuzz -i input/ -o output/ -f bla.filter -m none privoxy --fuzz filter bla.filter --stfu</pre>
+  $ afl-fuzz -i input/ -o output/ -f bla.filter -m none privoxy --fuzz filter bla.filter --stfu</pre>
           </td>
         </tr>
       </table>
index 1abeaef..6e1f21c 100644 (file)
@@ -32,7 +32,7 @@
     <table border="0" bgcolor="#E0E0E0" width="100%">
       <tr>
         <td>
-          <pre class="PROGRAMLISTING">  make dok</pre>
+          <pre class="PROGRAMLISTING">  make dok &#38;&#38; make dok-tidy</pre>
         </td>
       </tr>
     </table>
index d508843..68d33f0 100644 (file)
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"># Allow all cookies for Yahoo login:
-#
-{ -<a href="../user-manual/actions-file.html#CRUNCH-INCOMING-COOKIES" target=
+            <pre class="SCREEN">  # Allow all cookies for Yahoo login:
+  #
+  { -<a href="../user-manual/actions-file.html#CRUNCH-INCOMING-COOKIES" target=
 "_top">crunch-incoming-cookies</a> -<a href="../user-manual/actions-file.html#CRUNCH-OUTGOING-COOKIES" target=
 "_top">crunch-outgoing-cookies</a> -<a href="../user-manual/actions-file.html#SESSION-COOKIES-ONLY" target=
 "_top">session-cookies-only</a> }
-.login.yahoo.com</pre>
+  .login.yahoo.com</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"># Gmail is a _fragile_ site:
-#
-{ <tt class="LITERAL">fragile</tt> }
- # Gmail is ...
- mail.google.com</pre>
+            <pre class="SCREEN">  # Gmail is a _fragile_ site:
+  #
+  { <tt class="LITERAL">fragile</tt> }
 # Gmail is ...
 mail.google.com</pre>
           </td>
         </tr>
       </table>
         <tr>
           <td>
             <pre class=
-            "SCREEN"> { -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only -filter{content-cookies} }
+            "SCREEN">  { -crunch-incoming-cookies -crunch-outgoing-cookies -session-cookies-only -filter{content-cookies} }
   .example.com</pre>
           </td>
         </tr>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> ############################################################
- # Blacklist
- ############################################################
- { <a href="../user-manual/actions-file.html#BLOCK" target="_top">+block</a> }
- / # Block *all* URLs
+            <pre class="SCREEN">  ############################################################
 # Blacklist
 ############################################################
 { <a href="../user-manual/actions-file.html#BLOCK" target="_top">+block</a> }
 / # Block *all* URLs
 
- ############################################################
- # Whitelist
- ############################################################
- { <a href="../user-manual/actions-file.html#BLOCK" target="_top">-block</a> }
 ############################################################
 # Whitelist
 ############################################################
 { <a href="../user-manual/actions-file.html#BLOCK" target="_top">-block</a> }
   kids.example.com
   toys.example.com
   games.example.com</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> # Unblock everybody, everywhere
- { <a href="../user-manual/actions-file.html#BLOCK" target="_top">-block</a> }
- / # UN-Block *all* URLs</pre>
+            <pre class="SCREEN">  # Unblock everybody, everywhere
 { <a href="../user-manual/actions-file.html#BLOCK" target="_top">-block</a> }
 / # UN-Block *all* URLs</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> # Unblock everybody, everywhere, and turn off appropriate filtering, etc
- { <a href="../user-manual/actions-file.html#BLOCK" target="_top">-block</a> \
-  <a href="../user-manual/actions-file.html#FILTER-BANNERS-BY-SIZE" target="_top">-filter{banners-by-size}</a> \
-  <a href="../user-manual/actions-file.html#FILTER-BANNERS-BY-LINK" target="_top">-filter{banners-by-link}</a> \
-  <tt class="LITERAL">allow-popups</tt> \
- }
- / # UN-Block *all* URLs and allow ads</pre>
+            <pre class="SCREEN">  # Unblock everybody, everywhere, and turn off appropriate filtering, etc
 { <a href="../user-manual/actions-file.html#BLOCK" target="_top">-block</a> \
+    <a href="../user-manual/actions-file.html#FILTER-BANNERS-BY-SIZE" target="_top">-filter{banners-by-size}</a> \
+    <a href="../user-manual/actions-file.html#FILTER-BANNERS-BY-LINK" target="_top">-filter{banners-by-link}</a> \
+    <tt class="LITERAL">allow-popups</tt> \
 }
 / # UN-Block *all* URLs and allow ads</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> ./configure  --disable-toggle  --disable-editor  --disable-force</pre>
+            <pre class="SCREEN">  ./configure  --disable-toggle  --disable-editor  --disable-force</pre>
           </td>
         </tr>
       </table>
index d9064f3..8ceccaf 100644 (file)
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">#        forward-socks5t             /     127.0.0.1:9050 .</pre>
+            <pre class="SCREEN">  #        forward-socks5t             /     127.0.0.1:9050 .</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">#        forward         192.168.*.*/     .
-#        forward            10.*.*.*/     .
-#        forward           127.*.*.*/     .</pre>
+            <pre class="SCREEN">  #        forward         192.168.*.*/     .
+  #        forward            10.*.*.*/     .
+  #        forward           127.*.*.*/     .</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">#        forward           localhost/     .</pre>
+            <pre class="SCREEN">  #        forward           localhost/     .</pre>
           </td>
         </tr>
       </table>
         <tr>
           <td>
             <pre class="SCREEN">  { +block }
-   www.ad.example1.com
-   ad.example2.com
-   ads.galore.example.com
-   etc.example.com</pre>
+  www.ad.example1.com
+  ad.example2.com
+  ads.galore.example.com
+  etc.example.com</pre>
           </td>
         </tr>
       </table>
index 310ae02..7b0f054 100644 (file)
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">Request: www.example.com/
-Request: www.example.com/favicon.ico
-Request: img.example.com/main.css
-Request: img.example.com/sr.js
-Request: example.betamarker.com/example.html
-Request: www.lik-sang.com/Banners/bestsellers/skyscraper.php?likref=BSellers
-Request: img.example.com/pb.png
-Request: www.google-analytics.com/urchin.js crunch! (Blocked)
-Request: www.advertising-department.com/ats/switch.ps.php?26856 crunch! (Blocked)
-Request: img.example.com/p.gif
-Request: www.popuptraffic.com/assign.php?l=example&#38;mode=behind crunch! (Blocked)
-Request: www.popuptraffic.com/scripts/popup.php?hid=5c3cf&#38;tmpl=PBa.tmpl crunch! (Blocked)
-Request: www.popuptraffic.com/assign.php?l=example crunch! (Blocked)
-Request: www.lik-sang.com/Banners/best_sellers/best_sellers.css
-Request: www.adtrak.net/adx.js crunch! (Blocked)
-Request: img.example.com/hbg.gif
-Request: img.example.com/example.jpg
-Request: img.example.com/mt.png
-Request: img.example.com/mm.png
-Request: img.example.com/mb.png
-Request: www.popuptraffic.com/scripts/popup.php?hid=a71b91fa5&#38;tmpl=Ua.tmp crunch! (Blocked)
-Request: www.example.com/tracker.js
-Request: www.lik-sang.com/Banners/best_sellers/lsi_head.gif
-Request: www.adtrak.net/adjs.php?n=020548130&#38;what=zone:61 crunch! (Blocked)
-Request: www.adtrak.net/adjs.php?n=463594413&#38;what=zone:58&#38;source=Ua crunch! (Blocked)
-Request: www.lik-sang.com/Banners/best_sellers/bottomani.swf
-Request: mmm.elitemediagroup.net/install.php?allowpop=no&#38;popupmincook=0&#38;allowsp2=1 crunch! (Blocked)
-Request: www.example.com/tracker.js?screen=1400x1050&#38;win=962x693
-Request: www.adtrak.net/adlog.php?bannerid=1309&#38;clientid=439&#38;zoneid=61 crunch! (Blocked)
-Request: 66.70.21.80/scripts/click.php?hid=5c3cf599a9efd0320d26&#38;si
-Request: 66.70.21.80/img/pixel.gif
-Request: www.adtrak.net/adlog.php?bannerid=1309&#38;clientid=439&#38;zoneid=58&#38;source=Ua&#38;block=86400 crunch! (Blocked)
-Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&#38;si=Ua</pre>
+            <pre class="SCREEN">  Request: www.example.com/
+  Request: www.example.com/favicon.ico
+  Request: img.example.com/main.css
+  Request: img.example.com/sr.js
+  Request: example.betamarker.com/example.html
+  Request: www.lik-sang.com/Banners/bestsellers/skyscraper.php?likref=BSellers
+  Request: img.example.com/pb.png
+  Request: www.google-analytics.com/urchin.js crunch! (Blocked)
+  Request: www.advertising-department.com/ats/switch.ps.php?26856 crunch! (Blocked)
+  Request: img.example.com/p.gif
+  Request: www.popuptraffic.com/assign.php?l=example&#38;mode=behind crunch! (Blocked)
+  Request: www.popuptraffic.com/scripts/popup.php?hid=5c3cf&#38;tmpl=PBa.tmpl crunch! (Blocked)
+  Request: www.popuptraffic.com/assign.php?l=example crunch! (Blocked)
+  Request: www.lik-sang.com/Banners/best_sellers/best_sellers.css
+  Request: www.adtrak.net/adx.js crunch! (Blocked)
+  Request: img.example.com/hbg.gif
+  Request: img.example.com/example.jpg
+  Request: img.example.com/mt.png
+  Request: img.example.com/mm.png
+  Request: img.example.com/mb.png
+  Request: www.popuptraffic.com/scripts/popup.php?hid=a71b91fa5&#38;tmpl=Ua.tmp crunch! (Blocked)
+  Request: www.example.com/tracker.js
+  Request: www.lik-sang.com/Banners/best_sellers/lsi_head.gif
+  Request: www.adtrak.net/adjs.php?n=020548130&#38;what=zone:61 crunch! (Blocked)
+  Request: www.adtrak.net/adjs.php?n=463594413&#38;what=zone:58&#38;source=Ua crunch! (Blocked)
+  Request: www.lik-sang.com/Banners/best_sellers/bottomani.swf
+  Request: mmm.elitemediagroup.net/install.php?allowpop=no&#38;popupmincook=0&#38;allowsp2=1 crunch! (Blocked)
+  Request: www.example.com/tracker.js?screen=1400x1050&#38;win=962x693
+  Request: www.adtrak.net/adlog.php?bannerid=1309&#38;clientid=439&#38;zoneid=61 crunch! (Blocked)
+  Request: 66.70.21.80/scripts/click.php?hid=5c3cf599a9efd0320d26&#38;si
+  Request: 66.70.21.80/img/pixel.gif
+  Request: www.adtrak.net/adlog.php?bannerid=1309&#38;clientid=439&#38;zoneid=58&#38;source=Ua&#38;block=86400 crunch! (Blocked)
+  Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&#38;si=Ua</pre>
           </td>
         </tr>
       </table>
@@ -381,8 +381,8 @@ Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&#38;si=Ua</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">{+redirect{http://127.0.0.1:0/} -block -limit-connect}
-.ivwbox.de:443/</pre>
+            <pre class="SCREEN">  {+redirect{http://127.0.0.1:0/} -block -limit-connect}
+  .ivwbox.de:443/</pre>
           </td>
         </tr>
       </table>
@@ -461,7 +461,7 @@ Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&#38;si=Ua</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">runas /user:administrator "notepad \privoxy\config.txt"</pre>
+            <pre class="SCREEN">  runas /user:administrator "notepad \privoxy\config.txt"</pre>
           </td>
         </tr>
       </table>
@@ -469,28 +469,28 @@ Request: 66.70.21.80/scripts/click.php?hid=a71b9f6504b0c5681fa5&#38;si=Ua</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">C:\Privoxy&#62;icacls config.txt
-config.txt BUILTIN\Administrators:(I)(F)
-           NT AUTHORITY\SYSTEM:(I)(F)
-           BUILTIN\Users:(I)(RX)
-           NT AUTHORITY\Authenticated Users:(I)(M)
+            <pre class="SCREEN">  C:\Privoxy&#62;icacls config.txt
+  config.txt BUILTIN\Administrators:(I)(F)
+             NT AUTHORITY\SYSTEM:(I)(F)
+             BUILTIN\Users:(I)(RX)
+             NT AUTHORITY\Authenticated Users:(I)(M)
 
-Successfully processed 1 files; Failed processing 0 files
+  Successfully processed 1 files; Failed processing 0 files
 
-C:\Privoxy&#62;icacls config.txt /grant Lee:F
-processed file: config.txt
-Successfully processed 1 files; Failed processing 0 files
+  C:\Privoxy&#62;icacls config.txt /grant Lee:F
+  processed file: config.txt
+  Successfully processed 1 files; Failed processing 0 files
 
-C:\Privoxy&#62;icacls config.txt
-config.txt I3668\Lee:(F)
-           BUILTIN\Administrators:(I)(F)
-           NT AUTHORITY\SYSTEM:(I)(F)
-           BUILTIN\Users:(I)(RX)
-           NT AUTHORITY\Authenticated Users:(I)(M)
+  C:\Privoxy&#62;icacls config.txt
+  config.txt I3668\Lee:(F)
+             BUILTIN\Administrators:(I)(F)
+             NT AUTHORITY\SYSTEM:(I)(F)
+             BUILTIN\Users:(I)(RX)
+             NT AUTHORITY\Authenticated Users:(I)(M)
 
-Successfully processed 1 files; Failed processing 0 files
+  Successfully processed 1 files; Failed processing 0 files
 
-C:\Privoxy&#62;</pre>
+  C:\Privoxy&#62;</pre>
           </td>
         </tr>
       </table>
index e6e9c7d..ed626d7 100644 (file)
             <pre class="SCREEN">  { +<tt class="LITERAL">handle-as-image</tt>  +<tt class=
             "LITERAL">block{Banner ads.}</tt> }
   # Block these as if they were images. Send no block page.
-   banners.example.com
-   media.example.com/.*banners
-   .example.com/images/ads/</pre>
+  banners.example.com
+  media.example.com/.*banners
+  .example.com/images/ads/</pre>
           </td>
         </tr>
       </table>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># If the admin defined the client-specific-tag circumvent-blocks,
-# and the request comes from a client that previously requested
-# the tag to be set, overrule all previous +block actions that
-# are enabled based on URL to CLIENT-TAG patterns.
-{-block}
-CLIENT-TAG:^circumvent-blocks$
+              <pre class="SCREEN">  # If the admin defined the client-specific-tag circumvent-blocks,
+  # and the request comes from a client that previously requested
+  # the tag to be set, overrule all previous +block actions that
+  # are enabled based on URL to CLIENT-TAG patterns.
+  {-block}
+  CLIENT-TAG:^circumvent-blocks$
 
-# This section is not overruled because it's located after
-# the previous one.
-{+block{Nobody is supposed to request this.}}
-example.org/blocked-example-page</pre>
+  # This section is not overruled because it's located after
+  # the previous one.
+  {+block{Nobody is supposed to request this.}}
+  example.org/blocked-example-page</pre>
             </td>
           </tr>
         </table>
@@ -603,7 +603,7 @@ example.org/blocked-example-page</pre>
   -<tt class="REPLACEABLE"><i>name</i></tt>{<tt class=
 "REPLACEABLE"><i>param</i></tt>}   # remove the parameter <tt class=
 "REPLACEABLE"><i>param</i></tt> from the list of parameters
-                # If it was the last one left, disable the action.
+                 # If it was the last one left, disable the action.
   <tt class=
 "REPLACEABLE"><i>-name</i></tt>          # disable this action completely and remove all parameters from the list</pre>
               </td>
@@ -658,16 +658,16 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Add a DNT ("Do not track") header to all requests,
-# event to those that already have one.
-#
-# This is just an example, not a recommendation.
-#
-# There is no reason to believe that user-tracking websites care
-# about the DNT header and depending on the User-Agent, adding the
-# header may make user-tracking easier.
-{+add-header{DNT: 1}}
-/</pre>
+                    <pre class="SCREEN">  # Add a DNT ("Do not track") header to all requests,
+  # event to those that already have one.
+  #
+  # This is just an example, not a recommendation.
+  #
+  # There is no reason to believe that user-tracking websites care
+  # about the DNT header and depending on the User-Agent, adding the
+  # header may make user-tracking easier.
+  {+add-header{DNT: 1}}
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -725,18 +725,18 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">{+block{No nasty stuff for you.}}
-# Block and replace with "blocked" page
- .nasty-stuff.example.com
+                    <pre class="SCREEN">  {+block{No nasty stuff for you.}}
+  # Block and replace with "blocked" page
 .nasty-stuff.example.com
 
-{+block{Doubleclick banners.} +handle-as-image}
-# Block and replace with image
- .ad.doubleclick.net
- .ads.r.us/banners/
+  {+block{Doubleclick banners.} +handle-as-image}
+  # Block and replace with image
 .ad.doubleclick.net
 .ads.r.us/banners/
 
-{+block{Layered ads.} +handle-as-empty-document}
-# Block and then ignore
- adserver.example.net/.*\.js$</pre>
+  {+block{Layered ads.} +handle-as-empty-document}
+  # Block and then ignore
 adserver.example.net/.*\.js$</pre>
                   </td>
                 </tr>
               </table>
@@ -785,7 +785,7 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+change-x-forwarded-for{block}</pre>
+                    <pre class="SCREEN">  +change-x-forwarded-for{block}</pre>
                   </td>
                 </tr>
               </table>
@@ -840,9 +840,9 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Hide Tor exit notation in Host and Referer Headers
-{+client-header-filter{hide-tor-exit-notation}}
-/</pre>
+                    <pre class="SCREEN">  # Hide Tor exit notation in Host and Referer Headers
+  {+client-header-filter{hide-tor-exit-notation}}
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -888,9 +888,9 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Remove "test" everywhere in the request body
-{+client-body-filter{remove-test}}
-/</pre>
+                    <pre class="SCREEN">  # Remove "test" everywhere in the request body
+  {+client-body-filter{remove-test}}
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -932,63 +932,63 @@ example.org/blocked-example-page</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Tag every request with the User-Agent header
-{+client-header-tagger{user-agent}}
-/
+                    <pre class="SCREEN">  # Tag every request with the User-Agent header
+  {+client-header-tagger{user-agent}}
+  /
 
-# Tagging itself doesn't change the action
-# settings, sections with TAG patterns do:
-#
-# If it's a download agent, use a different forwarding proxy,
-# show the real User-Agent and make sure resume works.
-{+forward-override{forward-socks5 10.0.0.2:2222 .} \
- -hide-if-modified-since      \
- -overwrite-last-modified     \
- -hide-user-agent             \
- -filter                      \
- -deanimate-gifs              \
-}
-TAG:^User-Agent: NetBSD-ftp/
-TAG:^User-Agent: Novell ZYPP Installer
-TAG:^User-Agent: RPM APT-HTTP/
-TAG:^User-Agent: fetch libfetch/
-TAG:^User-Agent: Ubuntu APT-HTTP/
-TAG:^User-Agent: MPlayer/</pre>
+  # Tagging itself doesn't change the action
+  # settings, sections with TAG patterns do:
+  #
+  # If it's a download agent, use a different forwarding proxy,
+  # show the real User-Agent and make sure resume works.
+  {+forward-override{forward-socks5 10.0.0.2:2222 .} \
  -hide-if-modified-since      \
  -overwrite-last-modified     \
  -hide-user-agent             \
  -filter                      \
  -deanimate-gifs              \
+  }
+  TAG:^User-Agent: NetBSD-ftp/
+  TAG:^User-Agent: Novell ZYPP Installer
+  TAG:^User-Agent: RPM APT-HTTP/
+  TAG:^User-Agent: fetch libfetch/
+  TAG:^User-Agent: Ubuntu APT-HTTP/
+  TAG:^User-Agent: MPlayer/</pre>
                   </td>
                 </tr>
               </table>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Tag all requests with the Range header set
-{+client-header-tagger{range-requests}}
-/
+                    <pre class="SCREEN">  # Tag all requests with the Range header set
+  {+client-header-tagger{range-requests}}
+  /
 
-# Disable filtering for the tagged requests.
-#
-# With filtering enabled Privoxy would remove the Range headers
-# to be able to filter the whole response. The downside is that
-# it prevents clients from resuming downloads or skipping over
-# parts of multimedia files.
-{-filter -deanimate-gifs}
-TAG:^RANGE-REQUEST$</pre>
+  # Disable filtering for the tagged requests.
+  #
+  # With filtering enabled Privoxy would remove the Range headers
+  # to be able to filter the whole response. The downside is that
+  # it prevents clients from resuming downloads or skipping over
+  # parts of multimedia files.
+  {-filter -deanimate-gifs}
+  TAG:^RANGE-REQUEST$</pre>
                   </td>
                 </tr>
               </table>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Tag all requests with the client IP address
-#
-# (Technically the client IP address isn't included in the
-# client headers but client-header taggers can set it anyway.
-# For details see the tagger in default.filter)
-{+client-header-tagger{client-ip-address}}
-/
+                    <pre class="SCREEN">  # Tag all requests with the client IP address
+  #
+  # (Technically the client IP address isn't included in the
+  # client headers but client-header taggers can set it anyway.
+  # For details see the tagger in default.filter)
+  {+client-header-tagger{client-ip-address}}
+  /
 
-# Change forwarding settings for requests coming from address 10.0.0.1
-{+forward-override{forward-socks5 127.0.1.2:2222 .}}
-TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
+  # Change forwarding settings for requests coming from address 10.0.0.1
+  {+forward-override{forward-socks5 127.0.1.2:2222 .}}
+  TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
                   </td>
                 </tr>
               </table>
@@ -1050,14 +1050,14 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Check if www.example.net/ really uses valid XHTML
-{ +content-type-overwrite{application/xml} }
-www.example.net/
+                    <pre class="SCREEN">  # Check if www.example.net/ really uses valid XHTML
+  { +content-type-overwrite{application/xml} }
+  www.example.net/
 
-# but leave the content type unmodified if the URL looks like a style sheet
-{-content-type-overwrite}
-www.example.net/.*\.css$
-www.example.net/.*style</pre>
+  # but leave the content type unmodified if the URL looks like a style sheet
+  {-content-type-overwrite}
+  www.example.net/.*\.css$
+  www.example.net/.*style</pre>
                   </td>
                 </tr>
               </table>
@@ -1114,9 +1114,9 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Block the non-existent "Privacy-Violation:" client header
-{ +crunch-client-header{Privacy-Violation:} }
-/</pre>
+                    <pre class="SCREEN">  # Block the non-existent "Privacy-Violation:" client header
+  { +crunch-client-header{Privacy-Violation:} }
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -1163,12 +1163,12 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Let the browser revalidate cached documents but don't
-# allow the server to use the revalidation headers for user tracking.
-{+hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/</pre>
+                    <pre class="SCREEN">  # Let the browser revalidate cached documents but don't
+  # allow the server to use the revalidation headers for user tracking.
+  {+hide-if-modified-since{-60} \
  +overwrite-last-modified{randomize} \
  +crunch-if-none-match}
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -1214,7 +1214,7 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+crunch-incoming-cookies</pre>
+                    <pre class="SCREEN">  +crunch-incoming-cookies</pre>
                   </td>
                 </tr>
               </table>
@@ -1272,9 +1272,9 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Crunch server headers that try to prevent caching
-{ +crunch-server-header{no-cache} }
-/</pre>
+                    <pre class="SCREEN">  # Crunch server headers that try to prevent caching
+  { +crunch-server-header{no-cache} }
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -1319,7 +1319,7 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+crunch-outgoing-cookies</pre>
+                    <pre class="SCREEN">  +crunch-outgoing-cookies</pre>
                   </td>
                 </tr>
               </table>
@@ -1362,7 +1362,7 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+deanimate-gifs{last}</pre>
+                    <pre class="SCREEN">  +deanimate-gifs{last}</pre>
                   </td>
                 </tr>
               </table>
@@ -1405,7 +1405,7 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+delay-response{100}</pre>
+                    <pre class="SCREEN">  +delay-response{100}</pre>
                   </td>
                 </tr>
               </table>
@@ -1451,8 +1451,8 @@ www.example.net/.*style</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">{+downgrade-http-version}
-problem-host.example.com</pre>
+                    <pre class="SCREEN">  {+downgrade-http-version}
+  problem-host.example.com</pre>
                   </td>
                 </tr>
               </table>
@@ -1514,7 +1514,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+external-filter{fancy-filter}</pre>
+                    <pre class="SCREEN">  +external-filter{fancy-filter}</pre>
                   </td>
                 </tr>
               </table>
@@ -1591,11 +1591,11 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"> { +fast-redirects{simple-check} }
-   one.example.com
+                    <pre class="SCREEN">  { +fast-redirects{simple-check} }
+  one.example.com
 
- { +fast-redirects{check-decoded-url} }
-   another.example.com/testing</pre>
 { +fast-redirects{check-decoded-url} }
+  another.example.com/testing</pre>
                   </td>
                 </tr>
               </table>
@@ -1681,7 +1681,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{js-annoyances}       # Get rid of particularly annoying JavaScript abuse.</pre>
+                    "SCREEN">  +filter{js-annoyances}       # Get rid of particularly annoying JavaScript abuse.</pre>
                   </td>
                 </tr>
               </table>
@@ -1690,7 +1690,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{js-events}           # Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).</pre>
+                    "SCREEN">  +filter{js-events}           # Kill JavaScript event bindings and timers (Radically destructive! Only for extra nasty sites).</pre>
                   </td>
                 </tr>
               </table>
@@ -1699,7 +1699,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{html-annoyances}     # Get rid of particularly annoying HTML abuse.</pre>
+                    "SCREEN">  +filter{html-annoyances}     # Get rid of particularly annoying HTML abuse.</pre>
                   </td>
                 </tr>
               </table>
@@ -1708,7 +1708,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{content-cookies}     # Kill cookies that come in the HTML or JS content.</pre>
+                    "SCREEN">  +filter{content-cookies}     # Kill cookies that come in the HTML or JS content.</pre>
                   </td>
                 </tr>
               </table>
@@ -1717,7 +1717,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{refresh-tags}        # Kill automatic refresh tags if refresh time is larger than 9 seconds.</pre>
+                    "SCREEN">  +filter{refresh-tags}        # Kill automatic refresh tags if refresh time is larger than 9 seconds.</pre>
                   </td>
                 </tr>
               </table>
@@ -1725,7 +1725,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{unsolicited-popups}  # Disable only unsolicited pop-up windows.</pre>
+                    <pre class="SCREEN">  +filter{unsolicited-popups}  # Disable only unsolicited pop-up windows.</pre>
                   </td>
                 </tr>
               </table>
@@ -1733,7 +1733,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{all-popups}          # Kill all popups in JavaScript and HTML.</pre>
+                    <pre class="SCREEN">  +filter{all-popups}          # Kill all popups in JavaScript and HTML.</pre>
                   </td>
                 </tr>
               </table>
@@ -1742,7 +1742,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{img-reorder}         # Reorder attributes in &lt;img&gt; tags to make the banners-by-* filters more effective.</pre>
+                    "SCREEN">  +filter{img-reorder}         # Reorder attributes in &lt;img&gt; tags to make the banners-by-* filters more effective.</pre>
                   </td>
                 </tr>
               </table>
@@ -1750,7 +1750,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{banners-by-size}     # Kill banners by size.</pre>
+                    <pre class="SCREEN">  +filter{banners-by-size}     # Kill banners by size.</pre>
                   </td>
                 </tr>
               </table>
@@ -1759,7 +1759,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{banners-by-link}     # Kill banners by their links to known clicktrackers.</pre>
+                    "SCREEN">  +filter{banners-by-link}     # Kill banners by their links to known clicktrackers.</pre>
                   </td>
                 </tr>
               </table>
@@ -1768,7 +1768,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{webbugs}             # Squish WebBugs (1x1 invisible GIFs used for user tracking).</pre>
+                    "SCREEN">  +filter{webbugs}             # Squish WebBugs (1x1 invisible GIFs used for user tracking).</pre>
                   </td>
                 </tr>
               </table>
@@ -1777,7 +1777,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{tiny-textforms}      # Extend those tiny textareas up to 40x80 and kill the hard wrap.</pre>
+                    "SCREEN">  +filter{tiny-textforms}      # Extend those tiny textareas up to 40x80 and kill the hard wrap.</pre>
                   </td>
                 </tr>
               </table>
@@ -1786,7 +1786,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{jumping-windows}     # Prevent windows from resizing and moving themselves.</pre>
+                    "SCREEN">  +filter{jumping-windows}     # Prevent windows from resizing and moving themselves.</pre>
                   </td>
                 </tr>
               </table>
@@ -1795,7 +1795,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{frameset-borders}    # Give frames a border and make them resizable.</pre>
+                    "SCREEN">  +filter{frameset-borders}    # Give frames a border and make them resizable.</pre>
                   </td>
                 </tr>
               </table>
@@ -1804,7 +1804,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{iframes}             # Removes all detected iframes. Should only be enabled for individual sites.</pre>
+                    "SCREEN">  +filter{iframes}             # Removes all detected iframes. Should only be enabled for individual sites.</pre>
                   </td>
                 </tr>
               </table>
@@ -1813,7 +1813,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{demoronizer}         # Fix MS's non-standard use of standard charsets.</pre>
+                    "SCREEN">  +filter{demoronizer}         # Fix MS's non-standard use of standard charsets.</pre>
                   </td>
                 </tr>
               </table>
@@ -1821,7 +1821,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{shockwave-flash}     # Kill embedded Shockwave Flash objects.</pre>
+                    <pre class="SCREEN">  +filter{shockwave-flash}     # Kill embedded Shockwave Flash objects.</pre>
                   </td>
                 </tr>
               </table>
@@ -1829,7 +1829,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{quicktime-kioskmode} # Make Quicktime movies saveable.</pre>
+                    <pre class="SCREEN">  +filter{quicktime-kioskmode} # Make Quicktime movies saveable.</pre>
                   </td>
                 </tr>
               </table>
@@ -1838,7 +1838,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{fun}                 # Text replacements for subversive browsing fun!</pre>
+                    "SCREEN">  +filter{fun}                 # Text replacements for subversive browsing fun!</pre>
                   </td>
                 </tr>
               </table>
@@ -1847,7 +1847,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{crude-parental}      # Crude parental filtering. Note that this filter doesn't work reliably.</pre>
+                    "SCREEN">  +filter{crude-parental}      # Crude parental filtering. Note that this filter doesn't work reliably.</pre>
                   </td>
                 </tr>
               </table>
@@ -1856,7 +1856,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{ie-exploits}         # Disable some known Internet Explorer bug exploits.</pre>
+                    "SCREEN">  +filter{ie-exploits}         # Disable some known Internet Explorer bug exploits.</pre>
                   </td>
                 </tr>
               </table>
@@ -1865,7 +1865,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{site-specifics}      # Cure for site-specific problems. Don't apply generally!</pre>
+                    "SCREEN">  +filter{site-specifics}      # Cure for site-specific problems. Don't apply generally!</pre>
                   </td>
                 </tr>
               </table>
@@ -1874,7 +1874,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{no-ping}             # Removes non-standard ping attributes in &lt;a&gt; and &lt;area&gt; tags.</pre>
+                    "SCREEN">  +filter{no-ping}             # Removes non-standard ping attributes in &lt;a&gt; and &lt;area&gt; tags.</pre>
                   </td>
                 </tr>
               </table>
@@ -1883,7 +1883,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{github}              # Removes the annoying "Sign-Up" banner and the Cookie disclaimer.</pre>
+                    "SCREEN">  +filter{github}              # Removes the annoying "Sign-Up" banner and the Cookie disclaimer.</pre>
                   </td>
                 </tr>
               </table>
@@ -1892,7 +1892,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{google}              # CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.</pre>
+                    "SCREEN">  +filter{google}              # CSS-based block for Google text ads. Also removes a width limitation and the toolbar advertisement.</pre>
                   </td>
                 </tr>
               </table>
@@ -1900,7 +1900,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+filter{imdb}                # Removes some ads on IMDb.</pre>
+                    <pre class="SCREEN">  +filter{imdb}                # Removes some ads on IMDb.</pre>
                   </td>
                 </tr>
               </table>
@@ -1909,7 +1909,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{yahoo}               # CSS-based block for Yahoo text ads. Also removes a width limitation.</pre>
+                    "SCREEN">  +filter{yahoo}               # CSS-based block for Yahoo text ads. Also removes a width limitation.</pre>
                   </td>
                 </tr>
               </table>
@@ -1918,7 +1918,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{msn}                 # CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation.</pre>
+                    "SCREEN">  +filter{msn}                 # CSS-based block for MSN text ads. Also removes tracking URLs and a width limitation.</pre>
                   </td>
                 </tr>
               </table>
@@ -1927,7 +1927,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{blogspot}            # Cleans up some Blogspot blogs. Read the fine print before using this.</pre>
+                    "SCREEN">  +filter{blogspot}            # Cleans up some Blogspot blogs. Read the fine print before using this.</pre>
                   </td>
                 </tr>
               </table>
@@ -1936,7 +1936,7 @@ problem-host.example.com</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+filter{sourceforge}         # Reduces the amount of ads for proprietary software on SourceForge.</pre>
+                    "SCREEN">  +filter{sourceforge}         # Reduces the amount of ads for proprietary software on SourceForge.</pre>
                   </td>
                 </tr>
               </table>
@@ -1993,7 +1993,7 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+force-text-mode</pre>
+                    <pre class="SCREEN">  +force-text-mode</pre>
                   </td>
                 </tr>
               </table>
@@ -2086,21 +2086,21 @@ problem-host.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Use an ssh tunnel for requests previously tagged as
-# <span class="QUOTE">"User-Agent: fetch libfetch/2.0"</span> and make sure
-# resuming downloads continues to work.
-#
-# This way you can continue to use Tor for your normal browsing,
-# without overloading the Tor network with your FreeBSD ports updates
-# or downloads of bigger files like ISOs.
-#
-# Note that HTTP headers are easy to fake and therefore their
-# values are as (un)trustworthy as your clients and users.
-{+forward-override{forward-socks5 10.0.0.2:2222 .} \
- -hide-if-modified-since      \
- -overwrite-last-modified     \
-}
-TAG:^User-Agent: fetch libfetch/2\.0$</pre>
+                    <pre class="SCREEN">  # Use an ssh tunnel for requests previously tagged as
+  # <span class="QUOTE">"User-Agent: fetch libfetch/2.0"</span> and make sure
+  # resuming downloads continues to work.
+  #
+  # This way you can continue to use Tor for your normal browsing,
+  # without overloading the Tor network with your FreeBSD ports updates
+  # or downloads of bigger files like ISOs.
+  #
+  # Note that HTTP headers are easy to fake and therefore their
+  # values are as (un)trustworthy as your clients and users.
+  {+forward-override{forward-socks5 10.0.0.2:2222 .} \
  -hide-if-modified-since      \
  -overwrite-last-modified     \
+  }
+  TAG:^User-Agent: fetch libfetch/2\.0$</pre>
                   </td>
                 </tr>
               </table>
@@ -2150,10 +2150,10 @@ TAG:^User-Agent: fetch libfetch/2\.0$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Block all documents on example.org that end with ".js",
-# but send an empty document instead of the usual HTML message.
-{+block{Blocked JavaScript} +handle-as-empty-document}
-example.org/.*\.js$</pre>
+                    <pre class="SCREEN">  # Block all documents on example.org that end with ".js",
+  # but send an empty document instead of the usual HTML message.
+  {+block{Blocked JavaScript} +handle-as-empty-document}
+  example.org/.*\.js$</pre>
                   </td>
                 </tr>
               </table>
@@ -2204,16 +2204,16 @@ example.org/.*\.js$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Generic image extensions:
-#
-{+handle-as-image}
-/.*\.(gif|jpg|jpeg|png|bmp|ico)$
+                    <pre class="SCREEN">  # Generic image extensions:
+  #
+  {+handle-as-image}
+  /.*\.(gif|jpg|jpeg|png|bmp|ico)$
 
-# These don't look like images, but they're banners and should be
-# blocked as images:
-#
-{+block{Nasty banners.} +handle-as-image}
-nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
+  # These don't look like images, but they're banners and should be
+  # blocked as images:
+  #
+  {+block{Nasty banners.} +handle-as-image}
+  nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
                   </td>
                 </tr>
               </table>
@@ -2262,11 +2262,11 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Pretend to use Canadian language settings.
-{+hide-accept-language{en-ca} \
-+hide-user-agent{Mozilla/5.0 (X11; U; OpenBSD i386; en-CA; rv:1.8.0.4) Gecko/20060628 Firefox/1.5.0.4} \
-}
-/</pre>
+                    <pre class="SCREEN">  # Pretend to use Canadian language settings.
+  {+hide-accept-language{en-ca} \
+  +hide-user-agent{Mozilla/5.0 (X11; U; OpenBSD i386; en-CA; rv:1.8.0.4) Gecko/20060628 Firefox/1.5.0.4} \
+  }
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -2318,11 +2318,12 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Disarm the download link in Sourceforge's patch tracker
-{ -filter \
- +content-type-overwrite{text/plain}\
- +hide-content-disposition{block} }
- .sourceforge.net/tracker/download\.php</pre>
+                    <pre class="SCREEN">  # Disarm the download link in Sourceforge's patch tracker
+  { -filter \
+    +content-type-overwrite{text/plain} \
+    +hide-content-disposition{block} \
+  }
+  .sourceforge.net/tracker/download\.php</pre>
                   </td>
                 </tr>
               </table>
@@ -2377,11 +2378,11 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Let the browser revalidate but make tracking based on the time less likely.
-{+hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/</pre>
+                    <pre class="SCREEN">  # Let the browser revalidate but make tracking based on the time less likely.
+  {+hide-if-modified-since{-60} \
  +overwrite-last-modified{randomize} \
  +crunch-if-none-match}
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -2424,7 +2425,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+hide-from-header{block}</pre>
+                    <pre class="SCREEN">  +hide-from-header{block}</pre>
                   </td>
                 </tr>
               </table>
@@ -2432,7 +2433,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+hide-from-header{spam-me-senseless@sittingduck.example.com}</pre>
+                    <pre class="SCREEN">  +hide-from-header{spam-me-senseless@sittingduck.example.com}</pre>
                   </td>
                 </tr>
               </table>
@@ -2505,7 +2506,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+hide-referrer{forge}</pre>
+                    <pre class="SCREEN">  +hide-referrer{forge}</pre>
                   </td>
                 </tr>
               </table>
@@ -2513,7 +2514,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+hide-referrer{http://www.yahoo.com/}</pre>
+                    <pre class="SCREEN">  +hide-referrer{http://www.yahoo.com/}</pre>
                   </td>
                 </tr>
               </table>
@@ -2575,7 +2576,7 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN">+hide-user-agent{Mozilla/5.0 (X11; ElectroBSD i386; rv:78.0) Gecko/20100101 Firefox/78.0}</pre>
+                    "SCREEN">  +hide-user-agent{Mozilla/5.0 (X11; ElectroBSD i386; rv:78.0) Gecko/20100101 Firefox/78.0}</pre>
                   </td>
                 </tr>
               </table>
@@ -2606,8 +2607,8 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
             <dt>Notes:</dt>
             <dd>
               <p>This action allows <span class="APPLICATION">Privoxy</span> to filter encrypted requests and
-              responses. For this to work <span class="APPLICATION">Privoxy</span> has to generate a certificate and
-              send it to the client which has to accept it.</p>
+              responses. For this to work <span class="APPLICATION">Privoxy</span> has to generate a certificate for
+              the web site and send it to the client which has to accept it.</p>
               <p>Before this works the directives in the <tt class="LITERAL"><a href=
               "config.html#HTTPS-INSPECTION-DIRECTIVES" target="_top">HTTPS inspection section</a></tt> of the config
               file have to be configured.</p>
@@ -2621,8 +2622,8 @@ nasty-banner-server.example.com/junk.cgi\?output=trash</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">{+https-inspection}
-www.example.com</pre>
+                    <pre class="SCREEN">  {+https-inspection}
+  www.example.com</pre>
                   </td>
                 </tr>
               </table>
@@ -2667,9 +2668,8 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">    {+ignore-certificate-errors}
-    www.example.org
-   </pre>
+                    <pre class="SCREEN">      {+ignore-certificate-errors}
+      www.example.org</pre>
                   </td>
                 </tr>
               </table>
@@ -2717,11 +2717,11 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+limit-connect{443}                   # Port 443 is OK.
-+limit-connect{80,443}                # Ports 80 and 443 are OK.
-+limit-connect{-3, 7, 20-100, 500-}   # Ports less than 3, 7, 20 to 100 and above 500 are OK.
-+limit-connect{-}                     # All ports are OK
-+limit-connect{,}                     # No HTTPS/SSL traffic is allowed</pre>
+                    <pre class="SCREEN">  +limit-connect{443}                   # Port 443 is OK.
+  +limit-connect{80,443}                # Ports 80 and 443 are OK.
+  +limit-connect{-3, 7, 20-100, 500-}   # Ports less than 3, 7, 20 to 100 and above 500 are OK.
+  +limit-connect{-}                     # All ports are OK
+  +limit-connect{,}                     # No HTTPS/SSL traffic is allowed</pre>
                   </td>
                 </tr>
               </table>
@@ -2773,7 +2773,7 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+limit-cookie-lifetime{60}</pre>
+                    <pre class="SCREEN">  +limit-cookie-lifetime{60}</pre>
                   </td>
                 </tr>
               </table>
@@ -2829,23 +2829,23 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Selectively turn off compression, and enable a filter
-#
-{ +filter{tiny-textforms} +prevent-compression }
-# Match only these sites
- .google.
- sourceforge.net
- sf.net
+                    <pre class="SCREEN">  # Selectively turn off compression, and enable a filter
+  #
+  { +filter{tiny-textforms} +prevent-compression }
+  # Match only these sites
 .google.
 sourceforge.net
 sf.net
 
-# Or instead, we could set a universal default:
-#
-{ +prevent-compression }
- / # Match all sites
+  # Or instead, we could set a universal default:
+  #
+  { +prevent-compression }
 / # Match all sites
 
-# Then maybe make exceptions for broken sites:
-#
-{ -prevent-compression }
-.compusa.com/</pre>
+  # Then maybe make exceptions for broken sites:
+  #
+  { -prevent-compression }
+  .compusa.com/</pre>
                   </td>
                 </tr>
               </table>
@@ -2903,11 +2903,12 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Let the browser revalidate without being tracked across sessions
-{ +hide-if-modified-since{-60} \
- +overwrite-last-modified{randomize} \
- +crunch-if-none-match}
-/</pre>
+                    <pre class="SCREEN">  # Let the browser revalidate without being tracked across sessions
+  { +hide-if-modified-since{-60} \
+    +overwrite-last-modified{randomize} \
+    +crunch-if-none-match \
+  }
+  /</pre>
                   </td>
                 </tr>
               </table>
@@ -2960,50 +2961,50 @@ www.example.com</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Replace example.com's style sheet with another one
-{ +redirect{http://localhost/css-replacements/example.com.css} }
- example.com/stylesheet\.css
+                    <pre class="SCREEN">  # Replace example.com's style sheet with another one
+  { +redirect{http://localhost/css-replacements/example.com.css} }
 example.com/stylesheet\.css
 
-# Create a short, easy to remember nickname for a favorite site
-# (relies on the browser to accept and forward invalid URLs to <span class="APPLICATION">Privoxy</span>)
-{ +redirect{https://www.privoxy.org/user-manual/actions-file.html} }
- a
+  # Create a short, easy to remember nickname for a favorite site
+  # (relies on the browser to accept and forward invalid URLs to <span class="APPLICATION">Privoxy</span>)
+  { +redirect{https://www.privoxy.org/user-manual/actions-file.html} }
 a
 
-# Always use the expanded view for Undeadly.org articles
-# (Note the $ at the end of the URL pattern to make sure
-# the request for the rewritten URL isn't redirected as well)
-{+redirect{s@$@&amp;mode=expanded@}}
-undeadly.org/cgi\?action=article&amp;sid=\d*$
+  # Always use the expanded view for Undeadly.org articles
+  # (Note the $ at the end of the URL pattern to make sure
+  # the request for the rewritten URL isn't redirected as well)
+  {+redirect{s@$@&amp;mode=expanded@}}
+  undeadly.org/cgi\?action=article&amp;sid=\d*$
 
-# Redirect Google search requests to MSN
-{+redirect{s@^http://[^/]*/search\?q=([^&amp;]*).*@http://search.msn.com/results.aspx?q=$1@}}
-.google.com/search
+  # Redirect Google search requests to MSN
+  {+redirect{s@^http://[^/]*/search\?q=([^&amp;]*).*@http://search.msn.com/results.aspx?q=$1@}}
+  .google.com/search
 
-# Redirect MSN search requests to Yahoo
-{+redirect{s@^http://[^/]*/results\.aspx\?q=([^&amp;]*).*@http://search.yahoo.com/search?p=$1@}}
-search.msn.com//results\.aspx\?q=
+  # Redirect MSN search requests to Yahoo
+  {+redirect{s@^http://[^/]*/results\.aspx\?q=([^&amp;]*).*@http://search.yahoo.com/search?p=$1@}}
+  search.msn.com//results\.aspx\?q=
 
-# Redirect http://example.com/&amp;bla=fasel&amp;toChange=foo (and any other value but "bar")
-# to       http://example.com/&amp;bla=fasel&amp;toChange=bar
-#
-# The URL pattern makes sure that the following request isn't redirected again.
-{+redirect{s@toChange=[^&amp;]+@toChange=bar@}}
-example.com/.*toChange=(?!bar)
+  # Redirect http://example.com/&amp;bla=fasel&amp;toChange=foo (and any other value but "bar")
+  # to       http://example.com/&amp;bla=fasel&amp;toChange=bar
+  #
+  # The URL pattern makes sure that the following request isn't redirected again.
+  {+redirect{s@toChange=[^&amp;]+@toChange=bar@}}
+  example.com/.*toChange=(?!bar)
 
-# Add a shortcut to look up illumos bugs
-{+redirect{s@^http://i([0-9]+)/.*@https://www.illumos.org/issues/$1@}}
-# Redirected URL = http://i4974/
-# Redirect Destination = https://www.illumos.org/issues/4974
-i[0-9][0-9][0-9][0-9]*/
+  # Add a shortcut to look up illumos bugs
+  {+redirect{s@^http://i([0-9]+)/.*@https://www.illumos.org/issues/$1@}}
+  # Redirected URL = http://i4974/
+  # Redirect Destination = https://www.illumos.org/issues/4974
+  i[0-9][0-9][0-9][0-9]*/
 
-# Redirect requests for the old Tor Hidden Service of the Privoxy website to the new one
-{+redirect{s@^http://jvauzb4sb3bwlsnc.onion/@http://l3tczdiiwoo63iwxty4lhs6p7eaxop5micbn7vbliydgv63x5zrrrfyd.onion/@}}
-jvauzb4sb3bwlsnc.onion/
+  # Redirect requests for the old Tor Hidden Service of the Privoxy website to the new one
+  {+redirect{s@^http://jvauzb4sb3bwlsnc.onion/@http://l3tczdiiwoo63iwxty4lhs6p7eaxop5micbn7vbliydgv63x5zrrrfyd.onion/@}}
+  jvauzb4sb3bwlsnc.onion/
 
-# Redirect remote requests for this manual
-# to the local version delivered by Privoxy
-{+redirect{s@^http://www@http://config@}}
-www.privoxy.org/user-manual/</pre>
+  # Redirect remote requests for this manual
+  # to the local version delivered by Privoxy
+  {+redirect{s@^http://www@http://config@}}
+  www.privoxy.org/user-manual/</pre>
                   </td>
                 </tr>
               </table>
@@ -3049,11 +3050,11 @@ www.privoxy.org/user-manual/</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">{+server-header-filter{html-to-xml}}
-example.org/xml-instance-that-is-delivered-as-html
+                    <pre class="SCREEN">  {+server-header-filter{html-to-xml}}
+  example.org/xml-instance-that-is-delivered-as-html
 
-{+server-header-filter{xml-to-html}}
-example.org/instance-that-is-delivered-as-xml-but-is-not</pre>
+  {+server-header-filter{xml-to-html}}
+  example.org/instance-that-is-delivered-as-xml-but-is-not</pre>
                   </td>
                 </tr>
               </table>
@@ -3100,17 +3101,17 @@ example.org/instance-that-is-delivered-as-xml-but-is-not</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"># Tag every request with the content type declared by the server
-{+server-header-tagger{content-type}}
-/
+                    <pre class="SCREEN">  # Tag every request with the content type declared by the server
+  {+server-header-tagger{content-type}}
+  /
 
-# If the response has a tag starting with 'image/' enable an external
-# filter that only applies to images.
-#
-# Note that the filter is not available by default, it's just a
-# <tt class="LITERAL"><a href="filter-file.html#EXTERNAL-FILTER-SYNTAX">silly example</a></tt>.
-{+external-filter{rotate-image} +force-text-mode}
-TAG:^image/</pre>
+  # If the response has a tag starting with 'image/' enable an external
+  # filter that only applies to images.
+  #
+  # Note that the filter is not available by default, it's just a
+  # <tt class="LITERAL"><a href="filter-file.html#EXTERNAL-FILTER-SYNTAX">silly example</a></tt>.
+  {+external-filter{rotate-image} +force-text-mode}
+  TAG:^image/</pre>
                   </td>
                 </tr>
               </table>
@@ -3146,9 +3147,9 @@ TAG:^image/</pre>
                 <tr>
                   <td>
                     <pre class=
-                    "SCREEN"># Suppress tag produced by range-requests client-header tagger for requests coming from address 10.0.0.1
-{+suppress-tag{RANGE-REQUEST}}
-TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
+                    "SCREEN">  # Suppress tag produced by range-requests client-header tagger for requests coming from address 10.0.0.1
+  {+suppress-tag{RANGE-REQUEST}}
+  TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
                   </td>
                 </tr>
               </table>
@@ -3210,7 +3211,7 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+session-cookies-only</pre>
+                    <pre class="SCREEN">  +session-cookies-only</pre>
                   </td>
                 </tr>
               </table>
@@ -3283,7 +3284,7 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+set-image-blocker{pattern}</pre>
+                    <pre class="SCREEN">  +set-image-blocker{pattern}</pre>
                   </td>
                 </tr>
               </table>
@@ -3291,7 +3292,7 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif}</pre>
+                    <pre class="SCREEN">  +set-image-blocker{http://www.freebsd.org/gifs/dae_up3.gif}</pre>
                   </td>
                 </tr>
               </table>
@@ -3299,7 +3300,7 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">+set-image-blocker{http://config.privoxy.org/send-banner?type=pattern}</pre>
+                    <pre class="SCREEN">  +set-image-blocker{http://config.privoxy.org/send-banner?type=pattern}</pre>
                   </td>
                 </tr>
               </table>
@@ -3344,40 +3345,40 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> # Useful custom aliases we can use later.
- #
- # Note the (required!) section header line and that this section
- # must be at the top of the actions file!
- #
- {{alias}}
+            <pre class="SCREEN">  # Useful custom aliases we can use later.
 #
 # Note the (required!) section header line and that this section
 # must be at the top of the actions file!
 #
 {{alias}}
 
- # These aliases just save typing later:
- # (Note that some already use other aliases!)
- #
- +crunch-all-cookies = +<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href=
 # These aliases just save typing later:
 # (Note that some already use other aliases!)
 #
 +crunch-all-cookies = +<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href=
 "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
- -crunch-all-cookies = -<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href=
 -crunch-all-cookies = -<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href=
 "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
+block-as-image      = +block{Blocked image.} +handle-as-image
- allow-all-cookies   = -crunch-all-cookies -<a href=
 +block-as-image     = +block{Blocked image.} +handle-as-image
 allow-all-cookies   = -crunch-all-cookies -<a href=
 "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a> -<a href=
 "actions-file.html#FILTER-CONTENT-COOKIES">filter{content-cookies}</a>
 
- # These aliases define combinations of actions
- # that are useful for certain types of sites:
- #
- fragile     = -<a href="actions-file.html#BLOCK">block</a> -<a href=
 # These aliases define combinations of actions
 # that are useful for certain types of sites:
 #
 fragile     = -<a href="actions-file.html#BLOCK">block</a> -<a href=
 "actions-file.html#FILTER">filter</a> -crunch-all-cookies -<a href=
 "actions-file.html#FAST-REDIRECTS">fast-redirects</a> -<a href=
 "actions-file.html#HIDE-REFERER">hide-referrer</a> -<a href=
 "actions-file.html#PREVENT-COMPRESSION">prevent-compression</a>
 
- shop        = -crunch-all-cookies -<a href="actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a>
 shop        = -crunch-all-cookies -<a href="actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a>
 
- # Short names for other aliases, for really lazy people ;-)
- #
- c0 = +crunch-all-cookies
- c1 = -crunch-all-cookies</pre>
 # Short names for other aliases, for really lazy people ;-)
 #
 c0 = +crunch-all-cookies
 c1 = -crunch-all-cookies</pre>
           </td>
         </tr>
       </table>
@@ -3386,26 +3387,26 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> # These sites are either very complex or very keen on
- # user data and require minimal interference to work:
- #
- {fragile}
- .office.microsoft.com
- .windowsupdate.microsoft.com
- # Gmail is really mail.google.com, not gmail.com
- mail.google.com
+            <pre class="SCREEN">  # These sites are either very complex or very keen on
 # user data and require minimal interference to work:
 #
 {fragile}
 .office.microsoft.com
 .windowsupdate.microsoft.com
 # Gmail is really mail.google.com, not gmail.com
 mail.google.com
 
- # Shopping sites:
- # Allow cookies (for setting and retrieving your customer data)
- #
- {shop}
- .quietpc.com
- .worldpay.com   # for quietpc.com
- mybank.example.com
 # Shopping sites:
 # Allow cookies (for setting and retrieving your customer data)
 #
 {shop}
 .quietpc.com
 .worldpay.com   # for quietpc.com
 mybank.example.com
 
- # These shops require pop-ups:
- #
- {-filter{all-popups} -filter{unsolicited-popups}}
 # These shops require pop-ups:
 #
 {-filter{all-popups} -filter{unsolicited-popups}}
   .dabs.com
   .overclockers.co.uk</pre>
           </td>
@@ -3441,12 +3442,12 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ \
- +<a href="actions-file.html#CHANGE-X-FORWARDED-FOR">change-x-forwarded-for{block}</a> \
- +<a href="actions-file.html#HIDE-FROM-HEADER">hide-from-header{block}</a> \
- +<a href="actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{pattern}</a> \
-}
-/ # Match all URLs</pre>
+              <pre class="SCREEN">  { \
  +<a href="actions-file.html#CHANGE-X-FORWARDED-FOR">change-x-forwarded-for{block}</a> \
  +<a href="actions-file.html#HIDE-FROM-HEADER">hide-from-header{block}</a> \
  +<a href="actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{pattern}</a> \
+  }
+  / # Match all URLs</pre>
             </td>
           </tr>
         </table>
@@ -3464,11 +3465,11 @@ TAG:^IP-ADDRESS: 10\.0\.0\.1$</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Settings -- Don't change! For internal Privoxy use ONLY.
-##########################################################################
-{{settings}}
-for-privoxy-version=3.0.11</pre>
+              <pre class="SCREEN">  ##########################################################################
+  # Settings -- Don't change! For internal Privoxy use ONLY.
+  ##########################################################################
+  {{settings}}
+  for-privoxy-version=3.0.11</pre>
             </td>
           </tr>
         </table>
@@ -3477,30 +3478,30 @@ for-privoxy-version=3.0.11</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Aliases
-##########################################################################
-{{alias}}
+              <pre class="SCREEN">  ##########################################################################
+  # Aliases
+  ##########################################################################
+  {{alias}}
 
- # These aliases just save typing later:
- # (Note that some already use other aliases!)
- #
- +crunch-all-cookies = +<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href=
  # These aliases just save typing later:
  # (Note that some already use other aliases!)
  #
  +crunch-all-cookies = +<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> +<a href=
 "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
- -crunch-all-cookies = -<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href=
  -crunch-all-cookies = -<a href="actions-file.html#CRUNCH-INCOMING-COOKIES">crunch-incoming-cookies</a> -<a href=
 "actions-file.html#CRUNCH-OUTGOING-COOKIES">crunch-outgoing-cookies</a>
+block-as-image      = +block{Blocked image.} +handle-as-image
- mercy-for-cookies   = -crunch-all-cookies -<a href=
  +block-as-image     = +block{Blocked image.} +handle-as-image
  mercy-for-cookies   = -crunch-all-cookies -<a href=
 "actions-file.html#SESSION-COOKIES-ONLY">session-cookies-only</a> -<a href=
 "actions-file.html#FILTER-CONTENT-COOKIES">filter{content-cookies}</a>
 
- # These aliases define combinations of actions
- # that are useful for certain types of sites:
- #
- fragile     = -<a href="actions-file.html#BLOCK">block</a> -<a href=
  # These aliases define combinations of actions
  # that are useful for certain types of sites:
  #
  fragile     = -<a href="actions-file.html#BLOCK">block</a> -<a href=
 "actions-file.html#FILTER">filter</a> -crunch-all-cookies -<a href=
 "actions-file.html#FAST-REDIRECTS">fast-redirects</a> -<a href="actions-file.html#HIDE-REFERER">hide-referrer</a>
- shop        = -crunch-all-cookies -<a href="actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a></pre>
  shop        = -crunch-all-cookies -<a href="actions-file.html#FILTER-ALL-POPUPS">filter{all-popups}</a></pre>
             </td>
           </tr>
         </table>
@@ -3511,16 +3512,16 @@ for-privoxy-version=3.0.11</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Exceptions for sites that'll break under the default action set:
-##########################################################################
+              <pre class="SCREEN">  ##########################################################################
+  # Exceptions for sites that'll break under the default action set:
+  ##########################################################################
 
-# "Fragile" Use a minimum set of actions for these sites (see alias above):
-#
-{ fragile }
-.office.microsoft.com           # surprise, surprise!
-.windowsupdate.microsoft.com
-mail.google.com</pre>
+  # "Fragile" Use a minimum set of actions for these sites (see alias above):
+  #
+  { fragile }
+  .office.microsoft.com           # surprise, surprise!
+  .windowsupdate.microsoft.com
+  mail.google.com</pre>
             </td>
           </tr>
         </table>
@@ -3529,13 +3530,13 @@ mail.google.com</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Shopping sites:
-#
-{ shop }
-.quietpc.com
-.worldpay.com   # for quietpc.com
-.jungle.com
-.scan.co.uk</pre>
+              <pre class="SCREEN">  # Shopping sites:
+  #
+  { shop }
+  .quietpc.com
+  .worldpay.com   # for quietpc.com
+  .jungle.com
+  .scan.co.uk</pre>
             </td>
           </tr>
         </table>
@@ -3545,13 +3546,13 @@ mail.google.com</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ -<a href="actions-file.html#FAST-REDIRECTS">fast-redirects</a> }
-login.yahoo.com
-edit.*.yahoo.com
-.google.com
-.altavista.com/.*(like|url|link):http
-.altavista.com/trans.*urltext=http
-.nytimes.com</pre>
+              <pre class="SCREEN">  { -<a href="actions-file.html#FAST-REDIRECTS">fast-redirects</a> }
+  login.yahoo.com
+  edit.*.yahoo.com
+  .google.com
+  .altavista.com/.*(like|url|link):http
+  .altavista.com/trans.*urltext=http
+  .nytimes.com</pre>
             </td>
           </tr>
         </table>
@@ -3565,15 +3566,15 @@ edit.*.yahoo.com
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Images:
-##########################################################################
+              <pre class="SCREEN">  ##########################################################################
+  # Images:
+  ##########################################################################
 
-# Define which file types will be treated as images, in case they get
-# blocked further down this file:
-#
-{ +<a href="actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a> }
-/.*\.(gif|jpe?g|png|bmp|ico)$</pre>
+  # Define which file types will be treated as images, in case they get
+  # blocked further down this file:
+  #
+  { +<a href="actions-file.html#HANDLE-AS-IMAGE">handle-as-image</a> }
+  /.*\.(gif|jpe?g|png|bmp|ico)$</pre>
             </td>
           </tr>
         </table>
@@ -3591,16 +3592,16 @@ edit.*.yahoo.com
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Known ad generators:
-#
-{ +block-as-image }
-ar.atwola.com
-.ad.doubleclick.net
-.ad.*.doubleclick.net
-.a.yimg.com/(?:(?!/i/).)*$
-.a[0-9].yimg.com/(?:(?!/i/).)*$
-bs*.gsanet.com
-.qkimg.net</pre>
+              <pre class="SCREEN">  # Known ad generators:
+  #
+  { +block-as-image }
+  ar.atwola.com
+  .ad.doubleclick.net
+  .ad.*.doubleclick.net
+  .a.yimg.com/(?:(?!/i/).)*$
+  .a[0-9].yimg.com/(?:(?!/i/).)*$
+  bs*.gsanet.com
+  .qkimg.net</pre>
             </td>
           </tr>
         </table>
@@ -3617,23 +3618,23 @@ bs*.gsanet.com
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Block these fine banners:
-##########################################################################
-{ <a href="actions-file.html#BLOCK">+block{Banner ads.}</a> }
+              <pre class="SCREEN">  ##########################################################################
+  # Block these fine banners:
+  ##########################################################################
+  { <a href="actions-file.html#BLOCK">+block{Banner ads.}</a> }
 
-# Generic patterns:
-#
-ad*.
-.*ads.
-banner?.
-count*.
-/.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
-/(?:.*/)?(publicite|werbung|rekla(ma|me|am)|annonse|maino(kset|nta|s)?)/
+  # Generic patterns:
+  #
+  ad*.
+  .*ads.
+  banner?.
+  count*.
+  /.*count(er)?\.(pl|cgi|exe|dll|asp|php[34]?)
+  /(?:.*/)?(publicite|werbung|rekla(ma|me|am)|annonse|maino(kset|nta|s)?)/
 
-# Site-specific patterns (abbreviated):
-#
-.hitbox.com</pre>
+  # Site-specific patterns (abbreviated):
+  #
+  .hitbox.com</pre>
             </td>
           </tr>
         </table>
@@ -3658,28 +3659,28 @@ count*.
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">##########################################################################
-# Save some innocent victims of the above generic block patterns:
-##########################################################################
+              <pre class="SCREEN">  ##########################################################################
+  # Save some innocent victims of the above generic block patterns:
+  ##########################################################################
 
-# By domain:
-#
-{ -<a href="actions-file.html#BLOCK">block</a> }
-adv[io]*.  # (for advogato.org and advice.*)
-adsl.      # (has nothing to do with ads)
-adobe.     # (has nothing to do with ads either)
-ad[ud]*.   # (adult.* and add.*)
-.edu       # (universities don't host banners (yet!))
-.*loads.   # (downloads, uploads etc)
+  # By domain:
+  #
+  { -<a href="actions-file.html#BLOCK">block</a> }
+  adv[io]*.  # (for advogato.org and advice.*)
+  adsl.      # (has nothing to do with ads)
+  adobe.     # (has nothing to do with ads either)
+  ad[ud]*.   # (adult.* and add.*)
+  .edu       # (universities don't host banners (yet!))
+  .*loads.   # (downloads, uploads etc)
 
-# By path:
-#
-/.*loads/
+  # By path:
+  #
+  /.*loads/
 
-# Site-specific:
-#
-www.globalintersec.com/adv # (adv = advanced)
-www.ugu.com/sui/ugu/adv</pre>
+  # Site-specific:
+  #
+  www.globalintersec.com/adv # (adv = advanced)
+  www.ugu.com/sui/ugu/adv</pre>
             </td>
           </tr>
         </table>
@@ -3690,14 +3691,14 @@ www.ugu.com/sui/ugu/adv</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Don't filter code!
-#
-{ -<a href="actions-file.html#FILTER">filter</a> }
-/(.*/)?cvs
-bugzilla.
-developer.
-wiki.
-.sourceforge.net</pre>
+              <pre class="SCREEN">  # Don't filter code!
+  #
+  { -<a href="actions-file.html#FILTER">filter</a> }
+  /(.*/)?cvs
+  bugzilla.
+  developer.
+  wiki.
+  .sourceforge.net</pre>
             </td>
           </tr>
         </table>
@@ -3720,7 +3721,7 @@ wiki.
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># My user.action file. &lt;fred@example.com&gt;</pre>
+              <pre class="SCREEN">  # My user.action file. &lt;fred@example.com&gt;</pre>
             </td>
           </tr>
         </table>
@@ -3729,34 +3730,34 @@ wiki.
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Aliases are local to the file they are defined in.
-# (Re-)define aliases for this file:
-#
-{{alias}}
-#
-# These aliases just save typing later, and the alias names should
-# be self explanatory.
-#
-+crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
--crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
- allow-all-cookies  = -crunch-all-cookies -session-cookies-only
- allow-popups       = -filter{all-popups}
-+block-as-image     = +block{Blocked as image.} +handle-as-image
--block-as-image     = -block
+              <pre class="SCREEN">  # Aliases are local to the file they are defined in.
+  # (Re-)define aliases for this file:
+  #
+  {{alias}}
+  #
+  # These aliases just save typing later, and the alias names should
+  # be self explanatory.
+  #
+  +crunch-all-cookies = +crunch-incoming-cookies +crunch-outgoing-cookies
+  -crunch-all-cookies = -crunch-incoming-cookies -crunch-outgoing-cookies
  allow-all-cookies  = -crunch-all-cookies -session-cookies-only
  allow-popups       = -filter{all-popups}
+  +block-as-image     = +block{Blocked as image.} +handle-as-image
+  -block-as-image     = -block
 
-# These aliases define combinations of actions that are useful for
-# certain types of sites:
-#
-fragile     = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer
-shop        = -crunch-all-cookies allow-popups
+  # These aliases define combinations of actions that are useful for
+  # certain types of sites:
+  #
+  fragile     = -block -crunch-all-cookies -filter -fast-redirects -hide-referrer
+  shop        = -crunch-all-cookies allow-popups
 
-# Allow ads for selected useful free sites:
-#
-allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}
+  # Allow ads for selected useful free sites:
+  #
+  allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}
 
-# Alias for specific file types that are text, but might have conflicting
-# MIME types. We want the browser to force these to be text documents.
-handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
+  # Alias for specific file types that are text, but might have conflicting
+  # MIME types. We want the browser to force these to be text documents.
+  handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
 "actions-file.html#CONTENT-TYPE-OVERWRITE">content-type-overwrite{text/plain}</a> +-<a href=
 "actions-file.html#FORCE-TEXT-MODE">force-text-mode</a> -<a href=
 "actions-file.html#HIDE-CONTENT-DISPOSITION">hide-content-disposition</a></pre>
@@ -3770,11 +3771,11 @@ handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ allow-all-cookies }
- sourceforge.net
- .yahoo.com
- .msdn.microsoft.com
- .redhat.com</pre>
+              <pre class="SCREEN">  { allow-all-cookies }
 sourceforge.net
 .yahoo.com
 .msdn.microsoft.com
 .redhat.com</pre>
             </td>
           </tr>
         </table>
@@ -3782,8 +3783,8 @@ handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ -<a href="actions-file.html#FILTER">filter</a> }
- .your-home-banking-site.com</pre>
+              <pre class="SCREEN">  { -<a href="actions-file.html#FILTER">filter</a> }
 .your-home-banking-site.com</pre>
             </td>
           </tr>
         </table>
@@ -3791,16 +3792,16 @@ handle-as-text = -<a href="actions-file.html#FILTER">filter</a> +-<a href=
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN"># Technical documentation is likely to contain strings that might
-# erroneously get altered by the JavaScript-oriented filters:
-#
-.tldp.org
-/(.*/)?selfhtml/
+              <pre class="SCREEN">  # Technical documentation is likely to contain strings that might
+  # erroneously get altered by the JavaScript-oriented filters:
+  #
+  .tldp.org
+  /(.*/)?selfhtml/
 
-# And this stupid host sends streaming video with a wrong MIME type,
-# so that Privoxy thinks it is getting HTML and starts filtering:
-#
-stupid-server.example.com/</pre>
+  # And this stupid host sends streaming video with a wrong MIME type,
+  # so that Privoxy thinks it is getting HTML and starts filtering:
+  #
+  stupid-server.example.com/</pre>
             </td>
           </tr>
         </table>
@@ -3813,9 +3814,9 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ +<a href="actions-file.html#BLOCK">block</a>{Nasty ads.} }
- www.example.com/nasty-ads/sponsor\.gif
- another.example.net/more/junk/here/</pre>
+              <pre class="SCREEN">  { +<a href="actions-file.html#BLOCK">block</a>{Nasty ads.} }
 www.example.com/nasty-ads/sponsor\.gif
 another.example.net/more/junk/here/</pre>
             </td>
           </tr>
         </table>
@@ -3828,11 +3829,11 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ +block-as-image }
- .doubleclick.net
- .fastclick.net
- /Realmedia/ads/
- ar.atwola.com/</pre>
+              <pre class="SCREEN">  { +block-as-image }
 .doubleclick.net
 .fastclick.net
 /Realmedia/ads/
 ar.atwola.com/</pre>
             </td>
           </tr>
         </table>
@@ -3846,10 +3847,10 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ fragile }
- .forbes.com
- webmail.example.com
- .mybank.com</pre>
+              <pre class="SCREEN">  { fragile }
 .forbes.com
 webmail.example.com
 .mybank.com</pre>
             </td>
           </tr>
         </table>
@@ -3859,8 +3860,8 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ +<a href="actions-file.html#FILTER-FUN">filter{fun}</a> }
- / # For ALL sites!</pre>
+              <pre class="SCREEN">  { +<a href="actions-file.html#FILTER-FUN">filter{fun}</a> }
 / # For ALL sites!</pre>
             </td>
           </tr>
         </table>
@@ -3874,10 +3875,10 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ allow-ads }
- .sourceforge.net
- .slashdot.org
- .osdn.net</pre>
+              <pre class="SCREEN">  { allow-ads }
 .sourceforge.net
 .slashdot.org
 .osdn.net</pre>
             </td>
           </tr>
         </table>
@@ -3891,8 +3892,8 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ handle-as-text }
- /.*\.sh$</pre>
+              <pre class="SCREEN">  { handle-as-text }
 /.*\.sh$</pre>
             </td>
           </tr>
         </table>
@@ -3904,8 +3905,8 @@ stupid-server.example.com/</pre>
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">{ +<a href="actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{blank}</a> }
-/ # ALL sites</pre>
+              <pre class="SCREEN">  { +<a href="actions-file.html#SET-IMAGE-BLOCKER">set-image-blocker{blank}</a> }
+  / # ALL sites</pre>
             </td>
           </tr>
         </table>
index b50a6d7..1830c03 100644 (file)
       these. If not, you will get a friendly error message. Internet access is not necessary either.</p>
       <ul>
         <li>
-          <p>Privoxy main page:</p><a name="AEN6353" id="AEN6353"></a>
+          <p>Privoxy main page:</p><a name="AEN6361" id="AEN6361"></a>
           <blockquote class="BLOCKQUOTE">
             <p><a href="http://config.privoxy.org/" target="_top">http://config.privoxy.org/</a></p>
           </blockquote>
           "APPLICATION">Privoxy</span>)</p>
         </li>
         <li>
-          <p>View and toggle client tags:</p><a name="AEN6361" id="AEN6361"></a>
+          <p>View and toggle client tags:</p><a name="AEN6369" id="AEN6369"></a>
           <blockquote class="BLOCKQUOTE">
             <p><a href="http://config.privoxy.org/client-tags" target=
             "_top">http://config.privoxy.org/client-tags</a></p>
         </li>
         <li>
           <p>Show information about the current configuration, including viewing and editing of actions
-          files:</p><a name="AEN6366" id="AEN6366"></a>
+          files:</p><a name="AEN6374" id="AEN6374"></a>
           <blockquote class="BLOCKQUOTE">
             <p><a href="http://config.privoxy.org/show-status" target=
             "_top">http://config.privoxy.org/show-status</a></p>
           </blockquote>
         </li>
         <li>
-          <p>Show the browser's request headers:</p><a name="AEN6371" id="AEN6371"></a>
+          <p>Show the browser's request headers:</p><a name="AEN6379" id="AEN6379"></a>
           <blockquote class="BLOCKQUOTE">
             <p><a href="http://config.privoxy.org/show-request" target=
             "_top">http://config.privoxy.org/show-request</a></p>
           </blockquote>
         </li>
         <li>
-          <p>Show which actions apply to a URL and why:</p><a name="AEN6376" id="AEN6376"></a>
+          <p>Show which actions apply to a URL and why:</p><a name="AEN6384" id="AEN6384"></a>
           <blockquote class="BLOCKQUOTE">
             <p><a href="http://config.privoxy.org/show-url-info" target=
             "_top">http://config.privoxy.org/show-url-info</a></p>
         <li>
           <p>Toggle Privoxy on or off. This feature can be turned off/on in the main <tt class="FILENAME">config</tt>
           file. When toggled <span class="QUOTE">"off"</span>, <span class="QUOTE">"Privoxy"</span> continues to run,
-          but only as a pass-through proxy, with no actions taking place:</p><a name="AEN6384" id="AEN6384"></a>
+          but only as a pass-through proxy, with no actions taking place:</p><a name="AEN6392" id="AEN6392"></a>
           <blockquote class="BLOCKQUOTE">
             <p><a href="http://config.privoxy.org/toggle" target="_top">http://config.privoxy.org/toggle</a></p>
           </blockquote>
-          <p>Short cuts. Turn off, then on:</p><a name="AEN6388" id="AEN6388"></a>
+          <p>Short cuts. Turn off, then on:</p><a name="AEN6396" id="AEN6396"></a>
           <blockquote class="BLOCKQUOTE">
             <p><a href="http://config.privoxy.org/toggle?set=disable" target=
             "_top">http://config.privoxy.org/toggle?set=disable</a></p>
-          </blockquote><a name="AEN6391" id="AEN6391"></a>
+          </blockquote><a name="AEN6399" id="AEN6399"></a>
           <blockquote class="BLOCKQUOTE">
             <p><a href="http://config.privoxy.org/toggle?set=enable" target=
             "_top">http://config.privoxy.org/toggle?set=enable</a></p>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> Matches for http://www.google.com:
+            <pre class="SCREEN">  Matches for http://www.google.com:
 
- In file: default.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUTTON">[ Edit ]</span>
 In file: default.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUTTON">[ Edit ]</span>
 
- {+change-x-forwarded-for{block}
- +deanimate-gifs {last}
- +fast-redirects {check-decoded-url}
- +filter {refresh-tags}
- +filter {img-reorder}
- +filter {banners-by-size}
- +filter {webbugs}
- +filter {jumping-windows}
- +filter {ie-exploits}
- +hide-from-header {block}
- +hide-referrer {forge}
- +session-cookies-only
+set-image-blocker {pattern}
-/
 {+change-x-forwarded-for{block}
  +deanimate-gifs {last}
  +fast-redirects {check-decoded-url}
  +filter {refresh-tags}
  +filter {img-reorder}
  +filter {banners-by-size}
  +filter {webbugs}
  +filter {jumping-windows}
  +filter {ie-exploits}
  +hide-from-header {block}
  +hide-referrer {forge}
  +session-cookies-only
  +set-image-blocker {pattern} }
+  /
 
- { -session-cookies-only }
- .google.com
 { -session-cookies-only }
 .google.com
 
- { -fast-redirects }
- .google.com
 { -fast-redirects }
 .google.com
 
-In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUTTON">[ Edit ]</span>
-(no matches in this file)</pre>
+  In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUTTON">[ Edit ]</span>
+  (no matches in this file)</pre>
           </td>
         </tr>
       </table>
@@ -435,108 +435,9 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUT
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> Final results:
+            <pre class="SCREEN">  Final results:
 
- -add-header
- -block
- +change-x-forwarded-for{block}
- -client-header-filter{hide-tor-exit-notation}
- -content-type-overwrite
- -crunch-client-header
- -crunch-if-none-match
- -crunch-incoming-cookies
- -crunch-outgoing-cookies
- -crunch-server-header
- +deanimate-gifs {last}
- -downgrade-http-version
- -fast-redirects
- -filter {js-events}
- -filter {content-cookies}
- -filter {all-popups}
- -filter {banners-by-link}
- -filter {tiny-textforms}
- -filter {frameset-borders}
- -filter {demoronizer}
- -filter {shockwave-flash}
- -filter {quicktime-kioskmode}
- -filter {fun}
- -filter {crude-parental}
- -filter {site-specifics}
- -filter {js-annoyances}
- -filter {html-annoyances}
- +filter {refresh-tags}
- -filter {unsolicited-popups}
- +filter {img-reorder}
- +filter {banners-by-size}
- +filter {webbugs}
- +filter {jumping-windows}
- +filter {ie-exploits}
- -filter {google}
- -filter {yahoo}
- -filter {msn}
- -filter {blogspot}
- -filter {no-ping}
- -force-text-mode
- -handle-as-empty-document
- -handle-as-image
- -hide-accept-language
- -hide-content-disposition
- +hide-from-header {block}
- -hide-if-modified-since
- +hide-referrer {forge}
- -hide-user-agent
- -limit-connect
- -overwrite-last-modified
- -prevent-compression
- -redirect
- -server-header-filter{xml-to-html}
- -server-header-filter{html-to-xml}
- -session-cookies-only
- +set-image-blocker {pattern}</pre>
-          </td>
-        </tr>
-      </table>
-      <p>Notice the only difference here to the previous listing, is to <span class="QUOTE">"fast-redirects"</span> and
-      <span class="QUOTE">"session-cookies-only"</span>, which are activated specifically for this site in our
-      configuration, and thus show in the <span class="QUOTE">"Final Results"</span>.</p>
-      <p>Now another example, <span class="QUOTE">"ad.doubleclick.net"</span>:</p>
-      <table border="0" bgcolor="#E0E0E0" width="100%">
-        <tr>
-          <td>
-            <pre class="SCREEN"> { +block{Domains starts with "ad"} }
-  ad*.
-
- { +block{Domain contains "ad"} }
-  .ad.
-
- { +block{Doubleclick banner server} +handle-as-image }
-  .[a-vx-z]*.doubleclick.net</pre>
-          </td>
-        </tr>
-      </table>
-      <p>We'll just show the interesting part here - the explicit matches. It is matched three different times. Two
-      <span class="QUOTE">"+block{}"</span> sections, and a <span class="QUOTE">"+block{} +handle-as-image"</span>,
-      which is the expanded form of one of our aliases that had been defined as: <span class=
-      "QUOTE">"+block-as-image"</span>. (<a href="actions-file.html#ALIASES"><span class="QUOTE">"Aliases"</span></a>
-      are defined in the first section of the actions file and typically used to combine more than one action.)</p>
-      <p>Any one of these would have done the trick and blocked this as an unwanted image. This is unnecessarily
-      redundant since the last case effectively would also cover the first. No point in taking chances with these guys
-      though ;-) Note that if you want an ad or obnoxious URL to be invisible, it should be defined as <span class=
-      "QUOTE">"ad.doubleclick.net"</span> is done here -- as both a <a href="actions-file.html#BLOCK"><span class=
-      "QUOTE">"+block{}"</span></a> <span class="emphasis"><i class="EMPHASIS">and</i></span> an <a href=
-      "actions-file.html#HANDLE-AS-IMAGE"><span class="QUOTE">"+handle-as-image"</span></a>. The custom alias
-      <span class="QUOTE">"<tt class="LITERAL">+block-as-image</tt>"</span> just simplifies the process and make it
-      more readable.</p>
-      <p>One last example. Let's try <span class="QUOTE">"http://www.example.net/adsl/HOWTO/"</span>. This one is
-      giving us problems. We are getting a blank page. Hmmm ...</p>
-      <table border="0" bgcolor="#E0E0E0" width="100%">
-        <tr>
-          <td>
-            <pre class="SCREEN"> Matches for http://www.example.net/adsl/HOWTO/:
-
- In file: default.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUTTON">[ Edit ]</span>
-
- {-add-header
+  -add-header
   -block
   +change-x-forwarded-for{block}
   -client-header-filter{hide-tor-exit-notation}
@@ -546,9 +447,9 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUT
   -crunch-incoming-cookies
   -crunch-outgoing-cookies
   -crunch-server-header
-  +deanimate-gifs
+  +deanimate-gifs {last}
   -downgrade-http-version
-  +fast-redirects {check-decoded-url}
+  -fast-redirects
   -filter {js-events}
   -filter {content-cookies}
   -filter {all-popups}
@@ -580,19 +481,118 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUT
   -handle-as-image
   -hide-accept-language
   -hide-content-disposition
-  +hide-from-header{block}
-  +hide-referer{forge}
+  +hide-from-header {block}
+  -hide-if-modified-since
+  +hide-referrer {forge}
   -hide-user-agent
+  -limit-connect
   -overwrite-last-modified
-  +prevent-compression
+  -prevent-compression
   -redirect
   -server-header-filter{xml-to-html}
   -server-header-filter{html-to-xml}
-  +session-cookies-only
-  +set-image-blocker{blank} }
-   /
+  -session-cookies-only
+  +set-image-blocker {pattern}</pre>
+          </td>
+        </tr>
+      </table>
+      <p>Notice the only difference here to the previous listing, is to <span class="QUOTE">"fast-redirects"</span> and
+      <span class="QUOTE">"session-cookies-only"</span>, which are activated specifically for this site in our
+      configuration, and thus show in the <span class="QUOTE">"Final Results"</span>.</p>
+      <p>Now another example, <span class="QUOTE">"ad.doubleclick.net"</span>:</p>
+      <table border="0" bgcolor="#E0E0E0" width="100%">
+        <tr>
+          <td>
+            <pre class="SCREEN">  { +block{Domains starts with "ad"} }
+  ad*.
+
+  { +block{Domain contains "ad"} }
+  .ad.
+
+  { +block{Doubleclick banner server} +handle-as-image }
+  .[a-vx-z]*.doubleclick.net</pre>
+          </td>
+        </tr>
+      </table>
+      <p>We'll just show the interesting part here - the explicit matches. It is matched three different times. Two
+      <span class="QUOTE">"+block{}"</span> sections, and a <span class="QUOTE">"+block{} +handle-as-image"</span>,
+      which is the expanded form of one of our aliases that had been defined as: <span class=
+      "QUOTE">"+block-as-image"</span>. (<a href="actions-file.html#ALIASES"><span class="QUOTE">"Aliases"</span></a>
+      are defined in the first section of the actions file and typically used to combine more than one action.)</p>
+      <p>Any one of these would have done the trick and blocked this as an unwanted image. This is unnecessarily
+      redundant since the last case effectively would also cover the first. No point in taking chances with these guys
+      though ;-) Note that if you want an ad or obnoxious URL to be invisible, it should be defined as <span class=
+      "QUOTE">"ad.doubleclick.net"</span> is done here -- as both a <a href="actions-file.html#BLOCK"><span class=
+      "QUOTE">"+block{}"</span></a> <span class="emphasis"><i class="EMPHASIS">and</i></span> an <a href=
+      "actions-file.html#HANDLE-AS-IMAGE"><span class="QUOTE">"+handle-as-image"</span></a>. The custom alias
+      <span class="QUOTE">"<tt class="LITERAL">+block-as-image</tt>"</span> just simplifies the process and make it
+      more readable.</p>
+      <p>One last example. Let's try <span class="QUOTE">"http://www.example.net/adsl/HOWTO/"</span>. This one is
+      giving us problems. We are getting a blank page. Hmmm ...</p>
+      <table border="0" bgcolor="#E0E0E0" width="100%">
+        <tr>
+          <td>
+            <pre class="SCREEN">  Matches for http://www.example.net/adsl/HOWTO/:
+
+  In file: default.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUTTON">[ Edit ]</span>
 
- { +block{Path contains "ads".} +handle-as-image }
+  {-add-header
+   -block
+   +change-x-forwarded-for{block}
+   -client-header-filter{hide-tor-exit-notation}
+   -content-type-overwrite
+   -crunch-client-header
+   -crunch-if-none-match
+   -crunch-incoming-cookies
+   -crunch-outgoing-cookies
+   -crunch-server-header
+   +deanimate-gifs
+   -downgrade-http-version
+   +fast-redirects {check-decoded-url}
+   -filter {js-events}
+   -filter {content-cookies}
+   -filter {all-popups}
+   -filter {banners-by-link}
+   -filter {tiny-textforms}
+   -filter {frameset-borders}
+   -filter {demoronizer}
+   -filter {shockwave-flash}
+   -filter {quicktime-kioskmode}
+   -filter {fun}
+   -filter {crude-parental}
+   -filter {site-specifics}
+   -filter {js-annoyances}
+   -filter {html-annoyances}
+   +filter {refresh-tags}
+   -filter {unsolicited-popups}
+   +filter {img-reorder}
+   +filter {banners-by-size}
+   +filter {webbugs}
+   +filter {jumping-windows}
+   +filter {ie-exploits}
+   -filter {google}
+   -filter {yahoo}
+   -filter {msn}
+   -filter {blogspot}
+   -filter {no-ping}
+   -force-text-mode
+   -handle-as-empty-document
+   -handle-as-image
+   -hide-accept-language
+   -hide-content-disposition
+   +hide-from-header{block}
+   +hide-referer{forge}
+   -hide-user-agent
+   -overwrite-last-modified
+   +prevent-compression
+   -redirect
+   -server-header-filter{xml-to-html}
+   -server-header-filter{html-to-xml}
+   +session-cookies-only
+   +set-image-blocker{blank} }
+  /
+
+  { +block{Path contains "ads".} +handle-as-image }
   /ads</pre>
           </td>
         </tr>
@@ -609,7 +609,7 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUT
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> { -block }
+            <pre class="SCREEN">  { -block }
   /adsl</pre>
           </td>
         </tr>
@@ -621,8 +621,8 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUT
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> { +block{Path starts with "ads".} +handle-as-image }
- /ads</pre>
+            <pre class="SCREEN">  { +block{Path starts with "ads".} +handle-as-image }
 /ads</pre>
           </td>
         </tr>
       </table>
@@ -635,12 +635,12 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUT
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> { shop }
- .quietpc.com
- .worldpay.com   # for quietpc.com
- .jungle.com
- .scan.co.uk
- .forbes.com</pre>
+            <pre class="SCREEN">  { shop }
 .quietpc.com
 .worldpay.com   # for quietpc.com
 .jungle.com
 .scan.co.uk
 .forbes.com</pre>
           </td>
         </tr>
       </table>
@@ -650,11 +650,11 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUT
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> { -filter }
- # Disable ALL filter actions for sites in this section
- .forbes.com
- developer.ibm.com
- localhost</pre>
+            <pre class="SCREEN">  { -filter }
 # Disable ALL filter actions for sites in this section
 .forbes.com
 developer.ibm.com
 localhost</pre>
           </td>
         </tr>
       </table>
@@ -670,10 +670,10 @@ In file: user.action <span class="GUIBUTTON">[ View ]</span> <span class="GUIBUT
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> { fragile }
- # Handle with care: easy to break
- mail.google.
- mybank.example.com</pre>
+            <pre class="SCREEN">  { fragile }
 # Handle with care: easy to break
 mail.google.
 mybank.example.com</pre>
           </td>
         </tr>
       </table>
index 7ec3e46..14eb991 100644 (file)
               <p>A debug level of 1 is informative because it will show you each request as it happens. <span class=
               "emphasis"><i class="EMPHASIS">1, 1024, 4096 and 8192 are recommended</i></span> so that you will notice
               when things go wrong. The other levels are probably only of interest if you are hunting down a specific
-              problem. They can produce a hell of an output (especially 16).</p>
+              problem. They can produce a lot of output (especially 16).</p>
               <p>If you are used to the more verbose settings, simply enable the debug lines below again.</p>
               <p>If you want to use pure CLF (Common Log Format), you should set <span class="QUOTE">"debug 512"</span>
               <span class="emphasis"><i class="EMPHASIS">ONLY</i></span> and not enable anything else.</p>
               behaves differently.</p>
               <p>If you configure <span class="APPLICATION">Privoxy</span> to be reachable from the network, consider
               using <a href="config.html#ACLS">access control lists</a> (ACL's, see below), and/or a firewall.</p>
-              <p>If you open <span class="APPLICATION">Privoxy</span> to untrusted users, you will also want to make
-              sure that the following actions are disabled: <tt class="LITERAL"><a href=
+              <p>If you open <span class="APPLICATION">Privoxy</span> to untrusted users, you should also make sure
+              that the following actions are disabled: <tt class="LITERAL"><a href=
               "config.html#ENABLE-EDIT-ACTIONS">enable-edit-actions</a></tt> and <tt class="LITERAL"><a href=
               "config.html#ENABLE-REMOTE-TOGGLE">enable-remote-toggle</a></tt></p>
             </dd>
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN"> forward           localhost/     .</pre>
+                    <pre class="SCREEN">  forward           localhost/     .</pre>
                   </td>
                 </tr>
               </table>
             <dd>
               <p>Note that reusing connections doesn't necessary cause speedups. There are also a few privacy
               implications you should be aware of.</p>
-              <p>If this option is effective, outgoing connections are shared between clients (if there are more than
-              one) and closing the browser that initiated the outgoing connection does no longer affect the connection
+              <p>If this option is enabled, outgoing connections are shared between clients (if there are more than
+              one) and closing the browser that initiated the outgoing connection does not affect the connection
               between <span class="APPLICATION">Privoxy</span> and the server unless the client's request hasn't been
               completed yet.</p>
               <p>If the outgoing connection is idle, it will not be closed until either <span class=
             <dd>
               <p>128</p>
             </dd>
-            <dt>Effect if unset:</dt>
-            <dd>
-              <p>Connections are served until a resource limit is reached.</p>
-            </dd>
             <dt>Notes:</dt>
             <dd>
+              <p>Connections are served until a resource limit is reached.</p>
               <p><span class="APPLICATION">Privoxy</span> creates one thread (or process) for every incoming client
               connection that isn't rejected based on the access control settings.</p>
               <p>If the system is powerful enough, <span class="APPLICATION">Privoxy</span> can theoretically deal with
               <table border="0" bgcolor="#E0E0E0" width="90%">
                 <tr>
                   <td>
-                    <pre class="SCREEN">    # Best speed (compared to the other levels)
-    compression-level 1
+                    <pre class="SCREEN">  # Best speed (compared to the other levels)
+  compression-level 1
 
-    # Best compression
-    compression-level 9
+  # Best compression
+  compression-level 9
 
-    # No compression. Only useful for testing as the added header
-    # slightly increases the amount of data that has to be sent.
-    # If your benchmark shows that using this compression level
-    # is superior to using no compression at all, the benchmark
-    # is likely to be flawed.
-    compression-level 0</pre>
+  # No compression. Only useful for testing as the added header
+  # slightly increases the amount of data that has to be sent.
+  # If your benchmark shows that using this compression level
+  # is superior to using no compression at all, the benchmark
+  # is likely to be flawed.
+  compression-level 0</pre>
                   </td>
                 </tr>
               </table>
                 <tr>
                   <td>
                     <pre class="SCREEN">    # Explicitly set a couple of ciphers with names used by MbedTLS
-    cipher-list cipher-list TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\
-TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:\
-TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\
-TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:\
-TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:\
-TLS-ECDHE-ECDSA-WITH-AES-256-CCM:\
-TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8:\
-TLS-ECDHE-ECDSA-WITH-AES-128-CCM:\
-TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8:\
-TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\
-TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384:\
-TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:\
-TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:\
-TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
-TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
-TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:\
-TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:\
-TLS-DHE-RSA-WITH-AES-256-CCM:\
-TLS-DHE-RSA-WITH-AES-256-CCM-8:\
-TLS-DHE-RSA-WITH-AES-128-CCM:\
-TLS-DHE-RSA-WITH-AES-128-CCM-8:\
-TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
-TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
-TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256:\
-TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384:\
-TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
-TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
-TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256:\
-TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384:\
-TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\
-TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384
-   </pre>
+  cipher-list cipher-list TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\
+  TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256:\
+  TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256:\
+  TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:\
+  TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:\
+  TLS-ECDHE-ECDSA-WITH-AES-256-CCM:\
+  TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8:\
+  TLS-ECDHE-ECDSA-WITH-AES-128-CCM:\
+  TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8:\
+  TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\
+  TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384:\
+  TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:\
+  TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:\
+  TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
+  TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
+  TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:\
+  TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:\
+  TLS-DHE-RSA-WITH-AES-256-CCM:\
+  TLS-DHE-RSA-WITH-AES-256-CCM-8:\
+  TLS-DHE-RSA-WITH-AES-128-CCM:\
+  TLS-DHE-RSA-WITH-AES-128-CCM-8:\
+  TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
+  TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
+  TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256:\
+  TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384:\
+  TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256:\
+  TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384:\
+  TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256:\
+  TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384:\
+  TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256:\
+  TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384</pre>
                   </td>
                 </tr>
               </table>
@@ -2663,25 +2659,24 @@ TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384
                 <tr>
                   <td>
                     <pre class="SCREEN">    # Explicitly set a couple of ciphers with names used by OpenSSL
-cipher-list ECDHE-RSA-AES256-GCM-SHA384:\
-ECDHE-ECDSA-AES256-GCM-SHA384:\
-DH-DSS-AES256-GCM-SHA384:\
-DHE-DSS-AES256-GCM-SHA384:\
-DH-RSA-AES256-GCM-SHA384:\
-DHE-RSA-AES256-GCM-SHA384:\
-ECDH-RSA-AES256-GCM-SHA384:\
-ECDH-ECDSA-AES256-GCM-SHA384:\
-ECDHE-RSA-AES128-GCM-SHA256:\
-ECDHE-ECDSA-AES128-GCM-SHA256:\
-DH-DSS-AES128-GCM-SHA256:\
-DHE-DSS-AES128-GCM-SHA256:\
-DH-RSA-AES128-GCM-SHA256:\
-DHE-RSA-AES128-GCM-SHA256:\
-ECDH-RSA-AES128-GCM-SHA256:\
-ECDH-ECDSA-AES128-GCM-SHA256:\
-ECDHE-RSA-AES256-GCM-SHA384:\
-AES128-SHA
-   </pre>
+  cipher-list ECDHE-RSA-AES256-GCM-SHA384:\
+  ECDHE-ECDSA-AES256-GCM-SHA384:\
+  DH-DSS-AES256-GCM-SHA384:\
+  DHE-DSS-AES256-GCM-SHA384:\
+  DH-RSA-AES256-GCM-SHA384:\
+  DHE-RSA-AES256-GCM-SHA384:\
+  ECDH-RSA-AES256-GCM-SHA384:\
+  ECDH-ECDSA-AES256-GCM-SHA384:\
+  ECDHE-RSA-AES128-GCM-SHA256:\
+  ECDHE-ECDSA-AES128-GCM-SHA256:\
+  DH-DSS-AES128-GCM-SHA256:\
+  DHE-DSS-AES128-GCM-SHA256:\
+  DH-RSA-AES128-GCM-SHA256:\
+  DHE-RSA-AES128-GCM-SHA256:\
+  ECDH-RSA-AES128-GCM-SHA256:\
+  ECDH-ECDSA-AES128-GCM-SHA256:\
+  ECDHE-RSA-AES256-GCM-SHA384:\
+  AES128-SHA</pre>
                   </td>
                 </tr>
               </table>
@@ -2690,8 +2685,7 @@ AES128-SHA
                   <td>
                     <pre class=
                     "SCREEN">    # Use keywords instead of explicitly naming the ciphers (Does not work with MbedTLS)
-    cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
-   </pre>
+  cipher-list ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH</pre>
                   </td>
                 </tr>
               </table>
index 6bfa070..cd3f2cc 100644 (file)
@@ -39,8 +39,8 @@
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> </pre>
-            <h2 class="BRIDGEHEAD"><a name="AEN834"></a>&nbsp;&nbsp;&nbsp;&nbsp;Privoxy Menu</h2>
+            <pre class="SCREEN">   </pre>
+            <h2 class="BRIDGEHEAD"><a name="AEN845"></a>&nbsp;&nbsp;&nbsp;&nbsp;Privoxy Menu</h2>
             <pre><br></pre>
             <table border="0">
               <tbody>
index 8f5bafc..c546a57 100644 (file)
@@ -46,7 +46,7 @@
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">                     GNU GENERAL PUBLIC LICENSE
+              <pre class="LITERALLAYOUT">                     GNU GENERAL PUBLIC LICENSE
                        Version 2, June 1991
 
  Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
@@ -395,7 +395,7 @@ Public License instead of this License.
         <table border="0" bgcolor="#E0E0E0" width="100%">
           <tr>
             <td>
-              <pre class="SCREEN">                     GNU GENERAL PUBLIC LICENSE
+              <pre class="LITERALLAYOUT">                     GNU GENERAL PUBLIC LICENSE
                        Version 3, 29 June 2007
 
  Copyright (C) 2007 Free Software Foundation, Inc. &#60;https://fsf.org/&#62;
@@ -1174,6 +1174,7 @@ Public License instead of this License.  But first, please read
       &nbsp;Wan-Teh&nbsp;Chang<br>
       &nbsp;Sam&nbsp;Chen<br>
       &nbsp;Ramkumar&nbsp;Chinchani<br>
+      &nbsp;Gwyn&nbsp;Ciesla<br>
       &nbsp;Billy&nbsp;Crook<br>
       &nbsp;Fr&eacute;d&eacute;ric&nbsp;Crozat<br>
       &nbsp;Matthew&nbsp;Daley<br>
@@ -1316,6 +1317,7 @@ Public License instead of this License.  But first, please read
       &nbsp;Yang&nbsp;Xia<br>
       &nbsp;Jarry&nbsp;Xu<br>
       &nbsp;Oliver&nbsp;Yeoh<br>
+      &nbsp;Wen&nbsp;Yue<br>
       &nbsp;Yossi&nbsp;Zahn<br>
       &nbsp;Jamie&nbsp;Zawinski<br>
       &nbsp;Zepard<br>
index 36bc269..d89138d 100644 (file)
@@ -77,7 +77,7 @@
     <table border="0" bgcolor="#E0E0E0" width="100%">
       <tr>
         <td>
-          <pre class="SCREEN">FILTER: foo Replace all "foo" with "bar"</pre>
+          <pre class="SCREEN">  FILTER: foo Replace all "foo" with "bar"</pre>
         </td>
       </tr>
     </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">s/foo/bar/</pre>
+            <pre class="SCREEN">  s/foo/bar/</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">s/foo/bar/g</pre>
+            <pre class="SCREEN">  s/foo/bar/g</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">FILTER: foo Replace all "foo" with "bar"
-s/foo/bar/g</pre>
+            <pre class="SCREEN">  FILTER: foo Replace all "foo" with "bar"
+  s/foo/bar/g</pre>
           </td>
         </tr>
       </table>
@@ -141,11 +141,11 @@ s/foo/bar/g</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse
+            <pre class="SCREEN">  FILTER: js-annoyances Get rid of particularly annoying JavaScript abuse
 
-# Get rid of JavaScript referrer tracking. Test page: http://www.randomoddness.com/untitled.htm
-#
-s|(&lt;script.*)document\.referrer(.*&lt;/script&gt;)|$1"Not Your Business!"$2|Usg</pre>
+  # Get rid of JavaScript referrer tracking. Test page: http://www.randomoddness.com/untitled.htm
+  #
+  s|(&lt;script.*)document\.referrer(.*&lt;/script&gt;)|$1"Not Your Business!"$2|Usg</pre>
           </td>
         </tr>
       </table>
@@ -198,9 +198,9 @@ s|(&lt;script.*)document\.referrer(.*&lt;/script&gt;)|$1"Not Your Business!"$2|U
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"># The status bar is for displaying link targets, not pointless blahblah
-#
-s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig</pre>
+            <pre class="SCREEN">  # The status bar is for displaying link targets, not pointless blahblah
+  #
+  s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig</pre>
           </td>
         </tr>
       </table>
@@ -220,9 +220,9 @@ s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"># Kill OnUnload popups. Yummy. Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html
-#
-s/(&lt;body [^&gt;]*)onunload(.*&gt;)/$1never$2/iU</pre>
+            <pre class="SCREEN">  # Kill OnUnload popups. Yummy. Test: http://www.zdnet.com/zdsubs/yahoo/tree/yfs.html
+  #
+  s/(&lt;body [^&gt;]*)onunload(.*&gt;)/$1never$2/iU</pre>
           </td>
         </tr>
       </table>
@@ -240,11 +240,11 @@ s/(&lt;body [^&gt;]*)onunload(.*&gt;)/$1never$2/iU</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">FILTER: fun Fun text replacements
+            <pre class="SCREEN">  FILTER: fun Fun text replacements
 
-# Spice the daily news:
-#
-s/microsoft(?!\.com)/MicroSuck/ig</pre>
+  # Spice the daily news:
+  #
+  s/microsoft(?!\.com)/MicroSuck/ig</pre>
           </td>
         </tr>
       </table>
@@ -255,20 +255,20 @@ s/microsoft(?!\.com)/MicroSuck/ig</pre>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"># Buzzword Bingo (example for extended regex syntax)
-#
-s* industry[ -]leading \
-|  cutting[ -]edge \
-|  customer[ -]focused \
-|  market[ -]driven \
-|  award[ -]winning # Comments are OK, too! \
-|  high[ -]performance \
-|  solutions[ -]based \
-|  unmatched \
-|  unparalleled \
-|  unrivalled \
-*&lt;font color="red"&gt;&lt;b&gt;BINGO!&lt;/b&gt;&lt;/font&gt; \
-*igx</pre>
+            <pre class="SCREEN">  # Buzzword Bingo (example for extended regex syntax)
+  #
+  s* industry[ -]leading \
+  |  cutting[ -]edge \
+  |  customer[ -]focused \
+  |  market[ -]driven \
+  |  award[ -]winning # Comments are OK, too! \
+  |  high[ -]performance \
+  |  solutions[ -]based \
+  |  unmatched \
+  |  unparalleled \
+  |  unrivalled \
+  *&lt;font color="red"&gt;&lt;b&gt;BINGO!&lt;/b&gt;&lt;/font&gt; \
+  *igx</pre>
           </td>
         </tr>
       </table>
@@ -528,29 +528,30 @@ s* industry[ -]leading \
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN">EXTERNAL-FILTER: cat Pointless example filter that doesn't actually modify the content
-/bin/cat
+            <pre class=
+            "SCREEN">  EXTERNAL-FILTER: cat Pointless example filter that doesn't actually modify the content
+  /bin/cat
 
-# Incorrect reimplementation of the filter above in POSIX shell.
-#
-# Note that it's a single job that spans multiple lines, the line
-# breaks are not passed to the shell, thus the semicolons are required.
-#
-# If the script isn't trivial, it is recommended to put it into an external file.
-#
-# In general, writing external filters entirely in POSIX shell is not
-# considered a good idea.
-EXTERNAL-FILTER: cat2 Pointless example filter that despite its name may actually modify the content
-while read line; \
-do \
-  echo "$line"; \
-done
+  # Incorrect reimplementation of the filter above in POSIX shell.
+  #
+  # Note that it's a single job that spans multiple lines, the line
+  # breaks are not passed to the shell, thus the semicolons are required.
+  #
+  # If the script isn't trivial, it is recommended to put it into an external file.
+  #
+  # In general, writing external filters entirely in POSIX shell is not
+  # considered a good idea.
+  EXTERNAL-FILTER: cat2 Pointless example filter that despite its name may actually modify the content
+  while read line; \
+  do \
+    echo "$line"; \
+  done
 
-EXTERNAL-FILTER: rotate-image Rotate an image by 180 degree. Test filter with limited value.
-/usr/local/bin/convert - -rotate 180 -
+  EXTERNAL-FILTER: rotate-image Rotate an image by 180 degree. Test filter with limited value.
+  /usr/local/bin/convert - -rotate 180 -
 
-EXTERNAL-FILTER: citation-needed Adds a "[citation needed]" tag to an image. The coordinates may need adjustment.
-/usr/local/bin/convert - -pointsize 16 -fill white  -annotate +17+418 "[citation needed]" -</pre>
+  EXTERNAL-FILTER: citation-needed Adds a "[citation needed]" tag to an image. The coordinates may need adjustment.
+  /usr/local/bin/convert - -pointsize 16 -fill white  -annotate +17+418 "[citation needed]" -</pre>
           </td>
         </tr>
       </table>
index 08b74c5..a384626 100644 (file)
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> tar xzvf privoxy-3.0.33-beta-src.tar.gz
- cd privoxy-3.0.33-beta</pre>
+            <pre class="SCREEN">  tar xzvf privoxy-3.0.33-beta-src.tar.gz
 cd privoxy-3.0.33-beta</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> autoheader
- autoconf
- ./configure      # (--help to see options)
- make             # (the make from GNU, sometimes called gmake)
- su               # Possibly required
- make -n install  # (to see where all the files will go)
- make -s install  # (to really install, -s to silence output)</pre>
+            <pre class="SCREEN">  autoheader
 autoconf
 ./configure      # (--help to see options)
 make             # (the make from GNU, sometimes called gmake)
 su               # Possibly required
 make -n install  # (to see where all the files will go)
 make -s install  # (to really install, -s to silence output)</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> ./configure  --disable-toggle  --disable-editor  --disable-force</pre>
+            <pre class="SCREEN">  ./configure  --disable-toggle  --disable-editor  --disable-force</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> make -s install  USER=privoxy GROUP=privoxy</pre>
+            <pre class="SCREEN">  make -s install  USER=privoxy GROUP=privoxy</pre>
           </td>
         </tr>
       </table>
           <p>If you want to be able to make a Windows release package, get the NSIS .zip file from <a href=
           "https://sourceforge.net/projects/nsis/files/NSIS%203/" target=
           "_top">https://sourceforge.net/projects/nsis/files/NSIS%203/</a> and extract the NSIS directory to <tt class=
-          "LITERAL">privoxy/windows</tt>. Then edit the windows/GNUmakefile to set the location of the NSIS executable
-          - eg:</p>
+          "LITERAL">/&lt;root-dir&#62;/nsis/</tt>. Then edit the <tt class="FILENAME">windows/GNUmakefile</tt> to set
+          the location of the NSIS executable - eg:</p>
           <table border="0" bgcolor="#E0E0E0" width="100%">
             <tr>
               <td>
-                <pre class="SCREEN"># Path to NSIS
-MAKENSIS = ./nsis/makensis.exe</pre>
+                <pre class="SCREEN">  # Path to NSIS
+  MAKENSIS = /&lt;root-dir&#62;/nsis/makensis.exe</pre>
+              </td>
+            </tr>
+          </table>
+          <p>Get the latest 8.x PCRE code from <a href="https://ftp.pcre.org/pub/pcre/" target="_top">PCRE
+          https://ftp.pcre.org/pub/pcre/</a> and build the static PCRE libraries with</p>
+          <table border="0" bgcolor="#E0E0E0" width="100%">
+            <tr>
+              <td>
+                <pre class="SCREEN">  export CFLAGS="-O2 -fstack-protector-strong -D_FORTIFY_SOURCE=2"
+  export LDFLAGS="-fstack-protector-strong"
+  export CPPFLAGS="-DPCRE_STATIC"
+
+  ./configure  --host=i686-w64-mingw32 \
+               --prefix=/usr/local/i686-w64-mingw32 \
+               --enable-utf  --enable-unicode-properties \
+               --enable-jit \
+               --enable-newline-is-anycrlf \
+               --enable-pcre16 \
+               --enable-pcre32 \
+               --disable-pcregrep-libbz2 \
+               --disable-pcregrep-libz \
+               --disable-pcretest-libreadline \
+               --disable-stack-for-recursion  \
+               --enable-static --disable-shared \
+    &#38;&#38;  make</pre>
+              </td>
+            </tr>
+          </table>
+          <p>If you want to be able to have Privoxy do TLS Inspection, get the latest 2.16.x MBED-TLS library source
+          code from <a href="https://github.com/ARMmbed/mbedtls/tags" target=
+          "_top">https://github.com/ARMmbed/mbedtls/tags</a>, extract the tar file into <tt class=
+          "LITERAL">&lt;root-dir&gt;</tt> and build the static libraries with</p>
+          <table border="0" bgcolor="#E0E0E0" width="100%">
+            <tr>
+              <td>
+                <pre class="PROGRAMLISTING">  export WINDOWS_BUILD=1
+  #  build for a Windows platform
+
+  unset DEBUG
+
+  export CC=i686-w64-mingw32-gcc
+  export LD=i686-w64-mingw32-gcc
+  export CFLAGS="-O2 -fstack-protector-strong -D_FORTIFY_SOURCE=2"
+  export LDFLAGS="${LDFLAGS} -fstack-protector-strong"
+
+  make lib
+  #  build the libraries</pre>
+              </td>
+            </tr>
+          </table>
+          <p>Get the brotli library from <a href="https://github.com/google/brotli/releases" target=
+          "_top">https://github.com/google/brotli/releases</a> and build the static libraries with</p>
+          <table border="0" bgcolor="#E0E0E0" width="100%">
+            <tr>
+              <td>
+                <pre class="PROGRAMLISTING">  ./bootstrap
+  #  to create the GNU autotools files
+
+  autoconf
+
+  export CFLAGS="-O2 -fstack-protector-strong -D_FORTIFY_SOURCE=2"
+  export LDFLAGS="${LDFLAGS} -fstack-protector-strong"
+
+  ./configure  --host=i686-w64-mingw32 \
+               --prefix=/usr/local/i686-w64-mingw32 \
+               --enable-static   \
+               --disable-shared  \
+               --with-gnu-ld     \
+               --disable-silent-rules \
+    &#38;&#38; make</pre>
               </td>
             </tr>
           </table>
@@ -353,10 +423,10 @@ MAKENSIS = ./nsis/makensis.exe</pre>
           <table border="0" bgcolor="#E0E0E0" width="100%">
             <tr>
               <td>
-                <pre class="PROGRAMLISTING">  autoheader              # creates config.h.in
-  autoconf                # uses config.h.in to create the configure shell script
-  ./configure [options]   # creates GNUmakefile
-  make        [options]   # builds the program</pre>
+                <pre class="PROGRAMLISTING">  autoheader              # creates config.h.in
+  autoconf                # uses config.h.in to create the configure shell script
+  ./configure [options]   # creates GNUmakefile
+  make        [options]   # builds the program</pre>
               </td>
             </tr>
           </table>
@@ -370,7 +440,8 @@ MAKENSIS = ./nsis/makensis.exe</pre>
   --enable-zlib
   --enable-static-linking
   --disable-pthread
-  --disable-dynamic-pcre</pre>
+  --with-brotli
+  --with-mbedtls</pre>
               </td>
             </tr>
           </table>
@@ -382,7 +453,7 @@ MAKENSIS = ./nsis/makensis.exe</pre>
                 <pre class="PROGRAMLISTING">  $ export CFLAGS="-O2"              # set gcc optimization level
   $ export LDFLAGS="-Wl,--nxcompat"  # Enable DEP
   $ ./configure --host=i686-w64-mingw32 --enable-mingw32  --enable-zlib \
-  &#62;             --enable-static-linking --disable-pthread --disable-dynamic-pcre
+  &#62;             --enable-static-linking --disable-pthread
   $ make                             # build Privoxy</pre>
               </td>
             </tr>
index d584af9..8c14cde 100644 (file)
           <p>Find <tt class="FILENAME">user.action</tt> in the top section, and click on <span class=
           "QUOTE">"<span class="GUIBUTTON">Edit</span>"</span>:</p>
           <div class="FIGURE">
-            <a name="AEN601" id="AEN601"></a>
+            <a name="AEN612" id="AEN612"></a>
             <p><b>Figure 1. Actions Files in Use</b></p>
             <div class="MEDIAOBJECT">
               <p><img src="files-in-use.jpg"></p>
index 9e8c6d3..df27ea0 100644 (file)
@@ -35,7 +35,7 @@
     <p>Please note that <span class="APPLICATION">Privoxy</span> can only proxy HTTP and HTTPS traffic. It will not
     work with FTP or other protocols.</p>
     <div class="FIGURE">
-      <a name="AEN655" id="AEN655"></a>
+      <a name="AEN666" id="AEN666"></a>
       <p><b>Figure 2. Proxy Configuration Showing Mozilla Firefox HTTP and HTTPS (SSL) Settings</b></p>
       <div class="MEDIAOBJECT">
         <p><img src="proxy_setup.jpg"></p>
@@ -66,7 +66,7 @@
     protocols"</span> is <span class="emphasis"><i class="EMPHASIS">UNCHECKED</i></span>. You want only HTTP and HTTPS
     (SSL)!</p>
     <div class="FIGURE">
-      <a name="AEN697" id="AEN697"></a>
+      <a name="AEN708" id="AEN708"></a>
       <p><b>Figure 3. Proxy Configuration Showing Internet Explorer HTTP and HTTPS (Secure) Settings</b></p>
       <div class="MEDIAOBJECT">
         <p><img src="proxy2.jpg"></p>
@@ -87,7 +87,7 @@
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> # /etc/init.d/privoxy start</pre>
+            <pre class="SCREEN">  # /etc/init.d/privoxy start</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> # service privoxy onestart</pre>
+            <pre class="SCREEN">  # service privoxy onestart</pre>
           </td>
         </tr>
       </table>
       <table border="0" bgcolor="#E0E0E0" width="100%">
         <tr>
           <td>
-            <pre class="SCREEN"> # /usr/sbin/privoxy --user privoxy /etc/privoxy/config</pre>
+            <pre class="SCREEN">  # /usr/sbin/privoxy --user privoxy /etc/privoxy/config</pre>
           </td>
         </tr>
       </table>
index 4303283..51eb143 100644 (file)
     <table border="0" bgcolor="#E0E0E0" width="100%">
       <tr>
         <td>
-          <pre class="SCREEN">&lt;!-- @if-unstable-start --&gt;
+          <pre class="SCREEN">  &lt;!-- @if-unstable-start --&gt;
 
-  ... beta warning HTML code goes here ...
+    ... beta warning HTML code goes here ...
 
-&lt;!-- if-unstable-end@ --&gt;</pre>
+  &lt;!-- if-unstable-end@ --&gt;</pre>
         </td>
       </tr>
     </table>
@@ -68,7 +68,7 @@
     <table border="0" bgcolor="#E0E0E0" width="100%">
       <tr>
         <td>
-          <pre class="SCREEN">&lt;!--  --&gt;</pre>
+          <pre class="SCREEN">  &lt;!--  --&gt;</pre>
         </td>
       </tr>
     </table>