Add a "Whats New in this release" Section. Further work on multiple filter
authorhal9 <hal9@users.sourceforge.net>
Tue, 29 Aug 2006 10:59:40 +0000 (10:59 +0000)
committerhal9 <hal9@users.sourceforge.net>
Tue, 29 Aug 2006 10:59:40 +0000 (10:59 +0000)
files, and assorted other minor changes.

16 files changed:
doc/source/user-manual.sgml
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/contact.html
doc/webserver/user-manual/copyright.html
doc/webserver/user-manual/filter-file.html
doc/webserver/user-manual/index.html
doc/webserver/user-manual/installation.html
doc/webserver/user-manual/introduction.html
doc/webserver/user-manual/quickstart.html
doc/webserver/user-manual/seealso.html
doc/webserver/user-manual/startup.html
doc/webserver/user-manual/templates.html
doc/webserver/user-manual/whatsnew.html [new file with mode: 0644]

index 468488a..7097957 100644 (file)
 <!entity license SYSTEM "license.sgml">
 <!entity p-authors SYSTEM "p-authors.sgml">
 <!entity config SYSTEM "p-config.sgml">
-<!entity p-version "3.0.3">
-<!entity p-status "stable">
+<!entity p-version "3.0.4">
+<!entity p-status "BETA">
 <!entity % p-authors-formal "INCLUDE"> <!-- include additional text, etc  -->
-<!entity % p-not-stable "IGNORE">
-<!entity % p-stable "INCLUDE">
+<!entity % p-not-stable "INCLUDE">
+<!entity % p-stable "IGNORE">
 <!entity % p-text "IGNORE">        <!-- define we are not a text only doc -->
 <!entity % p-doc "INCLUDE">        <!-- and we are a formal doc           -->
 <!entity % p-readme "IGNORE">
@@ -32,9 +32,9 @@
                 This file belongs into
                 ijbswa.sourceforge.net:/home/groups/i/ij/ijbswa/htdocs/
 
- $Id: user-manual.sgml,v 2.12 2006/08/14 08:40:39 fabiankeil Exp $
+ $Id: user-manual.sgml,v 2.13 2006/08/22 11:04:59 hal9 Exp $
 
- Copyright (C) 2001- 2003 Privoxy Developers <developers@privoxy.org>
+ Copyright (C) 2001- 2006 Privoxy Developers <developers@privoxy.org>
  See LICENSE.
 
  ========================================================================
@@ -58,7 +58,7 @@
  </subscript>
 </pubdate>
 
-<pubdate>$Id: user-manual.sgml,v 2.12 2006/08/14 08:40:39 fabiankeil Exp $</pubdate>
+<pubdate>$Id: user-manual.sgml,v 2.13 2006/08/22 11:04:59 hal9 Exp $</pubdate>
 
 <!--
 
@@ -339,9 +339,13 @@ automatically start Privoxy in the boot process.
  If you like to live on the bleeding edge and are not afraid of using
  possibly unstable development versions, you can check out the up-to-the-minute
  version directly from <ulink url="http://sourceforge.net/cvs/?group_id=11118">the
- CVS repository</ulink> or simply download <ulink
+ CVS repository</ulink>. 
+<!-- 
+ deprecated...out of business.
+ or simply download <ulink
  url="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2">the nightly CVS
  tarball.</ulink>
+-->
 </para>
 
 <!-- include buildsource.sgml boilerplate: -->
@@ -382,76 +386,157 @@ automatically start Privoxy in the boot process.
 <!--  ~  End section  ~  -->
 
 <!--   ~~~~~       New section      ~~~~~     -->
-<sect1 id="upgradersnote">
-<title>Note to Upgraders</title>
+<sect1 id="whatsnew">
+<title>What's New in this Release</title>
 <para>
- There are very significant changes from earlier 
- <application>Junkbuster</application> versions to the current
- <application>Privoxy</application>. The number, names, syntax, and
- purposes of configuration files have substantially  changed.
- <application>Junkbuster 2.0.x</application> configuration
- files will not migrate, <application>Junkbuster 2.9.x</application>
- and <application>Privoxy</application> configurations will need to be
- ported. The functionalities of the old <filename>blockfile</filename>,
- <filename>cookiefile</filename> and <filename>imagelist</filename> 
- are now combined into the <link linkend="actions-file"><quote>actions
- files</quote></link>.  
- <filename>default.action</filename>, is the main actions file. Local
- exceptions should best be put into <filename>user.action</filename>.
-</para>
-<para>
- A <link linkend="filter-file"><quote>filter file</quote></link> (typically
- <filename>default.filter</filename>) is new as of <application>Privoxy
- 2.9.x</application>, and provides some of the new sophistication (explained
- below). <filename>config</filename> is much the same as before.
+ There are many new features in <application>Privoxy</application> &p-version;
+ :
 </para>
+
 <para>
- If upgrading from a 2.0.x version, you will have to use the new config 
- files, and possibly adapt any personal rules from your older files.
- When porting personal rules over from the old <filename>blockfile</filename>
- to the new actions files, please note that even the pattern syntax has
- changed. If upgrading from 2.9.x development versions, it is still
- recommended to use the new configuration files.
+ <itemizedlist>
+  <listitem>
+   <para>
+    Mulitiple <link linkend="filter-file">filter files</link> can now be specifed in <filename>config</filename>.
+   </para>
+  </listitem>
+ <listitem>
+  <para>  
+   There are a number of new <link linkend="actions-file">actions</link>:
+  </para>
+  
+  <para>
+  <itemizedlist>
+     
+     <listitem>
+      <para>
+       <literal><link linkend="content-type-overwrite">content-type-overwrite</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="crunch-client-header">crunch-client-header</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="crunch-if-none-match">crunch-if-none-match</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="crunch-server-header">crunch-server-header</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="fast-redirects">fast-redirects</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="force-text-mode">force-text-mode</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="handle-as-empty-document">handle-as-empty-document</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="hide-accept-language">hide-accept-language</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="hide-content-disposition">hide-content-disposition</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="hide-if-modified-since">hide-if-modified-since</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="hide-referrer">hide-referrer</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="inspect-jpegs">inspect-jpegs</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="overwrite-last-modified">overwrite-last-modified</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="redirect">redirect</link></literal>
+      </para>
+     </listitem>
+     <listitem>
+      <para>
+       <literal><link linkend="treat-forbidden-connects-like-blocks">treat-forbidden-connects-like-blocks</link></literal>
+      </para>
+     </listitem>
+
+  </itemizedlist>
+  </para>
+
+ </listitem>
+
+  <listitem>
+   <para>
+    <application>MS-Windows</application> versions can now be installed and 
+    started as a <emphasis>service</emphasis>.
+   </para>
+  </listitem>
+
+  <listitem>
+   <para>
+    In addition, there are various bug fixes and enhancements, including 
+    error pages are no longer cached, better DNS error handling, and logging 
+    improvements.
+   </para>
+  </listitem>
+
+
+ </itemizedlist>
 </para>
+
+<!--   ~~~~~       New section      ~~~~~     -->
+
+<sect2 id="upgradersnote">
+<title>Note to Upgraders</title>
+
 <para>
- A quick list of things to be aware of before upgrading: 
+ A quick list of things to be aware of before upgrading from earlier 
+ versions of <application>Privoxy</application>:
 </para>
 
 <para>
  <itemizedlist>
 
- <listitem>
-  <para>
-   The default listening port is now 8118 due to a conflict with another 
-   service (NAS).
-  </para>
- </listitem>  
  <listitem>
   <para>  
-    Some installers may remove earlier versions completely. Save any 
-    important configuration files!
+    Some installers may remove earlier versions completely, including 
+    configuration files. Save any important configuration files!
   </para>
  </listitem>
  <listitem>
-  <para>
-   <application>Privoxy</application> is controllable with a web browser 
-   at the special URL: <ulink
-   url="http://config.privoxy.org/">http://config.privoxy.org/</ulink>
-   (Shortcut: <ulink url="http://p.p/">http://p.p/</ulink>). Many
-   aspects of configuration can be done here, including temporarily disabling
-   <application>Privoxy</application>.
-  </para>
- </listitem> 
- <listitem>
-  <para>
-   The primary configuration files for cookie management, ad and banner 
-   blocking, and many other aspects of <application>Privoxy</application>
-   configuration are the <link linkend="actions-file">actions
-   files</link>. It is strongly recommended to become familiar with the new
-   actions concept below, before modifying these files. Locally defined rules 
-   should go into <filename>user.action</filename>.
+  <para>  
+   What constitutes a <quote>default</quote> configuration has changed, 
+   and you may want to review which actions are <quote>on</quote> by 
+   default. This is primarily a matter of emphasis, but some features 
+   you may have been used to, may now be <quote>off</quote> by default.
   </para>
- </listitem> 
+ </listitem>
   <listitem>
   <para>
 <!-- I think it is best to keep this somewhat vague, in case  -->
@@ -463,6 +548,7 @@ automatically start Privoxy in the boot process.
 
  </itemizedlist>
 </para>
+</sect2>
 </sect1>
 
 <!--   ~~~~~       New section      ~~~~~     -->
@@ -470,13 +556,6 @@ automatically start Privoxy in the boot process.
 <para>
  <itemizedlist>
 
- <listitem>
-  <para>
-   If upgrading, from versions before 2.9.16, please back up any configuration
-   files. See the <link linkend="upgradersnote">Note to Upgraders</link> Section.
- </para>
-</listitem> 
-
  <listitem>
   <para>
   Install <application>Privoxy</application>. See the <link
@@ -573,7 +652,7 @@ automatically start Privoxy in the boot process.
 
  <listitem>
   <para>
-   Now enjoy surfing with enhanced comfort and privacy!
+   Now enjoy surfing with enhanced control, comfort and privacy!
   </para>
  </listitem> 
  
@@ -857,11 +936,32 @@ automatically start Privoxy in the boot process.
   </figure>
  </para>
  
+
+<para> 
+ With <application>Firefox</application>, this can be set under:
+</para>
+<literallayout>
+<!-- Mix ascii and gui art, something for everybody -->
+<!-- spacing on this is tricky -->
+ <guibutton>Tools</guibutton>
+   |_   
+         <guibutton>Options</guibutton>
+                |_       
+                        <guibutton>General</guibutton>
+                              |_     
+                                    <guibutton>Connection Settings</guibutton>
+                                         |_       
+                                                <guibutton>Manual Proxy Configuration</guibutton>
+</literallayout>
+
+
 <para> 
  With <application>Netscape</application> (and
  <application>Mozilla</application>), this can be set under:
 </para>
+
+
 <literallayout>
 <!-- Mix ascii and gui art, something for everybody -->
 <!-- spacing on this is tricky -->
@@ -906,7 +1006,7 @@ automatically start Privoxy in the boot process.
 </para>
 
 <para>
- <application>Privoxy</application> is typically started by specifying the
+ <application>Privoxy</application> itself is typically started by specifying the
  main configuration file to be used on the command line. If no configuration
  file is specified on the command line, <application>Privoxy</application>
  will look for a file named <filename>config</filename> in the current
@@ -1285,7 +1385,8 @@ must find a better place for this paragraph
   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&squf;&nbsp;&nbsp;<ulink url="http://config.privoxy.org/toggle">Toggle Privoxy on or off</ulink>
  </member>
  <member>
-  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&squf;&nbsp;&nbsp;<ulink url="http://www.privoxy.org/&p-version;/user-manual/">Documentation</ulink>
+  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&squf;&nbsp;&nbsp;<ulink url="http://www.privoxy.org/
+  &p-version;/user-manual/">Documentation</ulink>
  </member>
  </simplelist>
  </msgtext>
@@ -1381,12 +1482,17 @@ must find a better place for this paragraph
 
   <listitem>
    <para>
-    <filename>default.filter</filename> (the <link linkend="filter-file">filter
+    <quote>Filter files</quote> (the <link linkend="filter-file">filter
     file</link>) can be used to re-write the raw page content, including
     viewable text as well as embedded HTML and JavaScript, and whatever else
     lurks on any given web page. The filtering jobs are only pre-defined here;
-    whether to apply them or not is up to the actions files. Only one filter 
-    file may be defined.
+    whether to apply them or not is up to the actions files. 
+    <filename>default.filter</filename> includes various filters made 
+    available for use by the developers. Some are much more intrusive than 
+    others, and all should be used with caution. You may define additional 
+    filter files in <filename>config</filename> as you can with 
+    actions files. We suggest <filename>user.filter</filename> for any 
+    locally defined filters or customizations.
    </para>
   </listitem> 
 
@@ -1404,7 +1510,7 @@ must find a better place for this paragraph
 </para>
 
 <para>
- The actions files and <filename>default.filter</filename> 
+ The actions files and filter files  
  can use Perl style <link linkend="regex">regular expressions</link> for
  maximum flexibility. 
 </para>
@@ -2229,6 +2335,9 @@ must find a better place for this paragraph
 
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="content-type-overwrite">
+<!-- 
+new action 
+-->
 <title>content-type-overwrite</title>
 
 <variablelist>
@@ -2338,6 +2447,9 @@ www.example.net/*.style
 
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="crunch-client-header">
+<!--
+new action
+-->
 <title>crunch-server-header</title>
 
 <variablelist>
@@ -2421,7 +2533,9 @@ www.example.net/*.style
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="crunch-if-none-match">
 <title>crunch-if-none-match</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -2572,7 +2686,9 @@ www.example.net/*.style
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="crunch-server-header">
 <title>crunch-server-header</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -2585,7 +2701,7 @@ www.example.net/*.style
   <term>Effect:</term>
   <listitem>
    <para>
-    Deletes every header send by the server that contains the string the user supplied as parameter.
+    Deletes every header sent by the server that contains the string the user supplied as parameter.
    </para>
   </listitem>
  </varlistentry>
@@ -3006,17 +3122,23 @@ problem-host.example.com</screen>
    <para>Parameterized.</para>
   </listitem>
  </varlistentry>
-
  <varlistentry>
   <term>Parameter:</term>
   <listitem>
    <para>
-    The name of a filter, as defined in the <link linkend="filter-file">filter file</link>
-    (typically <filename>default.filter</filename>, set by the
+    The name of a filter, as defined in the <link linkend="filter-file">filter file</link>.
+    Filters can be defined in one or more  files as defined by the 
     <literal><link linkend="filterfile">filterfile</link></literal>
-    option in the <link linkend="config">config file</link>). When used in its negative form,
-    and without parameters, filtering is completely disabled.
+    option in the <link linkend="config">config file</link>. 
+    <filename>default.filter</filename> is the collection of filters 
+    supplied by the developers. Locally defined filters should go 
+    in their own file, such as <filename>user.filter</filename>.
    </para>
+   <para>
+     When used in its negative form,
+     and without parameters, filtering is completely disabled.
+  </para>
   </listitem>
  </varlistentry>
  
@@ -3036,7 +3158,7 @@ problem-host.example.com</screen>
     noticeable on slower connections.
    </para>
    <para>
-    This is very powerful feature, but <quote>rolling your own</quote>
+    This is very powerful feature, and <quote>rolling your own</quote>
     filters requires a knowledge of regular expressions and HTML.
    </para>
    <para>
@@ -3176,7 +3298,9 @@ problem-host.example.com</screen>
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="force-text-mode">
 <title>force-text-mode</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -3225,7 +3349,7 @@ problem-host.example.com</screen>
    <warning> 
     <para>
      Think twice before activating this action. Filtering binary data
-     with regular expressions can cause file damages.
+     with regular expressions can cause file damage.
     </para>
    </warning>
   </listitem>
@@ -3248,7 +3372,9 @@ problem-host.example.com</screen>
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="handle-as-empty-document">
 <title>handle-as-empty-document</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -3412,7 +3538,9 @@ ad.doubleclick.net
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="hide-accept-language">
 <title>hide-accept-language</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -3465,7 +3593,7 @@ ad.doubleclick.net
    <para>
     Therefore it's a good idea to either only change the
     <quote>Accept-Language:</quote> header to languages you understand,
-    or to languages that aren't widely spread.
+    or to languages that aren't wide spread.
    </para>
    <para>
     Before setting the <quote>Accept-Language:</quote> header
@@ -3496,7 +3624,9 @@ ad.doubleclick.net
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="hide-content-disposition">
 <title>hide-content-disposition</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -3536,20 +3666,20 @@ ad.doubleclick.net
   <listitem>
    <para>
     Some servers set the <quote>Content-Disposition:</quote> HTTP header for
-    documents they assume you want to safe locally before viewing them.
+    documents they assume you want to save locally before viewing them.
     The <quote>Content-Disposition:</quote> header contains the file name
     the browser is supposed to use by default.
    </para>
    <para>
-    In most browser that understand this header, it makes it impossible to
+    In most browsers that understand this header, it makes it impossible to
     <emphasis>just view</emphasis> the document, without downloading it first,
     even if it's just a simple text file or an image.
    </para>
    <para>
     Removing the <quote>Content-Disposition:</quote> header helps
-    to prevent this annoyance, but some browser additionally check the
-    <quote>Content-Type:</quote> header, before they decide if the can
-    display a document without saving it first. In these cases you have
+    to prevent this annoyance, but some browsers additionally check the
+    <quote>Content-Type:</quote> header, before they decide if they can
+    display a document without saving it first. In these cases, you have
     to change this header as well, before the browser stops displaying
     download menus.
    </para>
@@ -3580,7 +3710,9 @@ ad.doubleclick.net
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="hide-if-modified-since">
 <title>hide-if-modified-since</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -3633,7 +3765,7 @@ ad.doubleclick.net
    <para>
     Randomizing the value of the <quote>If-Modified-Since:</quote> makes
     sure it isn't used as a cookie replacement, but you will run into
-    caching problems if the random range is to high.  
+    caching problems if the random range is too high.  
    </para>
    <para>
     It is a good idea to only use a small negative value and let
@@ -3666,7 +3798,9 @@ ad.doubleclick.net
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="hide-forwarded-for-headers">
 <title>hide-forwarded-for-headers</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -3987,6 +4121,73 @@ ad.doubleclick.net
 </sect3>
 
 
+<!--   ~~~~~       New section      ~~~~~     -->
+<sect3 renderas="sect4" id="inspect-jpegs">
+<title>inspect-jpegs</title>
+<!--
+new action
+-->
+<variablelist>
+ <varlistentry>
+  <term>Typical use:</term>
+  <listitem>
+   <para>To protect against the MS buffer over-run in JPEG processing</para>
+  </listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term>Effect:</term>
+  <listitem>
+   <para>
+    To protect against a known exploit
+   </para>
+  </listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term>Type:</term>
+  <!-- Boolean, Parameterized, Multi-value -->
+  <listitem>
+   <para>Boolean.</para>
+  </listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term>Parameter:</term>
+  <listitem>
+   <para>
+    N/A
+   </para>
+  </listitem>
+ </varlistentry>
+ <varlistentry>
+  <term>Notes:</term>
+  <listitem>
+   <para>
+    See Microsoft Security Bulletin MS04-028. JPEG images are one of the most 
+    common image types found across the Internet. The exploit as described can 
+    allow execution of code on the target system, giving an attacker access 
+    to the system in question by merely planting an altered JPEG image, which 
+    would have no obvious indications of what lurks inside. This action
+    prevents unwanted intrusion.
+   </para>
+  
+  </listitem>
+ </varlistentry>
+
+ <varlistentry>
+  <term>Example usage:</term>
+  <listitem>
+   <para><screen>+inspect-jpegs</screen></para>
+  </listitem>
+ </varlistentry>
+</variablelist>
+</sect3>
+
+
+
+
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="kill-popups">
 <title>kill-popups<anchor id="kill-popup"></title>
@@ -4260,7 +4461,9 @@ www.pclinuxonline.com</screen>
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="overwrite-last-modified">
 <title>overwrite-last-modified</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -4355,7 +4558,9 @@ www.pclinuxonline.com</screen>
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="redirect">
 <title>redirect</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -4773,7 +4978,9 @@ my-internal-testing-server.void</screen>
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect3 renderas="sect4" id="treat-forbidden-connects-like-blocks">
 <title>treat-forbidden-connects-like-blocks</title>
-
+<!--
+new action
+-->
 <variablelist>
  <varlistentry>
   <term>Typical use:</term>
@@ -4978,7 +5185,9 @@ my-internal-testing-server.void</screen>
  in order to function properly.
 </para>
 </sect2>
-
+<!--
+hal stop here
+-->
 <!--   ~~~~~       New section      ~~~~~     -->
 <sect2 id="act-examples">
 <title>Actions Files Tutorial</title>
@@ -4999,7 +5208,7 @@ Every config file should start with a short comment stating its purpose:
 </para>
 
 <para>
- <screen># Sample default.action file &lt;developers@privoxy.org&gt;</screen>
+ <screen># Sample default.action file &lt;ijbswa-developers@lists.sourceforge.net&gt;</screen>
 </para>
 
 <para>
@@ -5626,20 +5835,24 @@ ar.atwola.com/</screen>
 <!--   ~~~~~~~~       New section Header    ~~~~~~~~~     -->
 
 <sect1 id="filter-file">
-<title>The Filter File</title>
+<title>Filter Files</title>
 
 <para>
  All text substitutions that can be invoked through the
- <literal><link linkend="filter">filter</link></literal> action
- must first be defined in the filter file, which is typically
called <filename>default.filter</filename> and which can be
selected through the <literal>
+ <literal><link linkend="filter">filter</link></literal> action which 
+ must first be defined in a <quote>filter file</quote>, such as 
<filename>default.filter</filename>. Mulitple filter files can be
defined through the <literal>
  <link linkend="filterfile">filterfile</link></literal> config
- option.
+ option. The filters as supplied by the developers will be found in 
+ <filename>default.filter</filename>. It is recommended that any locally
+ defined or modified filters go in a separately defined file such as 
+ <filename>user.filter</filename>.
 </para>
 
 <para>
- Typical reasons for doing such substitutions are to eliminate
+ Typical reasons for doing these kinds of substitutions are to eliminate
  common annoyances in HTML and JavaScript, such as pop-up windows,
  exit consoles, crippled windows without navigation tools, the
  infamous &lt;BLINK&gt; tag etc, to suppress images with certain
@@ -5691,10 +5904,9 @@ ar.atwola.com/</screen>
  in a syntax that imitates <ulink url="http://www.perl.org/">Perl</ulink>'s
  <literal>s///</literal> operator. If you are familiar with Perl, you
  will find this to be quite intuitive, and may want to look at the
- <ulink url="http://www.oesterhelt.org/pcrs/pcrs.3.html">PCRS man page</ulink>
- for the subtle differences to Perl behaviour. Most notably, the non-standard
- option letter <literal>U</literal> is supported, which turns the default
- to ungreedy matching.
+ PCRS documentation for the subtle differences to Perl behaviour. Most
+ notably, the non-standard option letter <literal>U</literal> is supported,
+ which turns the default to ungreedy matching.
 </para>
 
 <para>
@@ -6181,7 +6393,7 @@ pre-defined filters for your convenience:
   <listitem>
    <para>
     Many Microsoft products that generate HTML use non-standard extensions (read:
-    violations) of the ISO 8859-1 aka Latin-1 character set. This causes those
+    violations) of the ISO 8859-1 aka Latin-1 character set. This can cause those
     HTML documents to display with errors on standard-compliant platforms. 
    </para>
    <para>
@@ -6189,7 +6401,13 @@ pre-defined filters for your convenience:
     It is not necessary when using MS products, and will cause corruption of  
     all documents that use 8-bit character sets other than Latin-1. It's mostly
     worthwhile for Europeans on non-MS platforms, if wierd garbage characters
-    sometimes appear on some pages.
+    sometimes appear on some pages, or user agents that don't correct for this on 
+    the fly.
+<!--
+    My version of Mozilla (ancient) shows litte square boxes for quote
+    characters, and apostrophes on moronized pages. So many pages have this, I
+    can read them fine now. HB 08/27/06
+--> 
    </para>
   </listitem>
  </varlistentry>
@@ -6459,7 +6677,11 @@ Requests</title>
  expressions</quote> in its <link linkend="actions-file">actions
  files</link> and <link linkend="filter-file">filter file</link>,
  through the <ulink url="http://www.pcre.org/">PCRE</ulink> and
+<!-- 
+ dead 08/27/06
  <ulink url="http://www.oesterhelt.org/pcrs/">PCRS</ulink> libraries.
+-->
+ <application>PCRS</application> libraries.
 </para>
 
 <para>
@@ -6847,12 +7069,13 @@ Requests</title>
     url="javascript:void(window.open('http://config.privoxy.org/toggle?mini=y','ijbstatus','width=250,height=2,resizable=yes,scrollbars=no,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());">Privoxy- View Status</ulink>
    </para>
   </listitem> 
-
+<!--
   <listitem>
    <para>
     <ulink url="javascript:w=Math.floor(screen.width/2);h=Math.floor(screen.height*0.9);void(window.open('http://www.privoxy.org/actions/index.php?url='+escape(location.href),'Feedback','screenx='+w+',width='+w+',height='+h+',scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());">Privoxy - Submit Actions File Feedback</ulink>
    </para>
   </listitem> 
+ --> 
   <listitem>
    <para>
     <ulink url="javascript:void(window.open('http://config.privoxy.org/show-url-info?url='+escape(location.href),'Why').focus());">Privoxy - Why?</ulink>
@@ -6965,8 +7188,8 @@ Requests</title>
    action applies (and the document type fits the action), the rest of the page is
    read into memory (up to a configurable limit). Then the filter rules (from
    <filename>default.filter</filename>) are processed against the buffered
-   content. Filters are applied in the order they are specified in the
-   <filename>default.filter</filename> file. Animated GIFs, if present, are
+   content. Filters are applied in the order they are specified in one of the
+   filter files. Animated GIFs, if present, are
    reduced to either the first or last frame, depending on the action
    setting.The entire page, which is now filtered, is then sent by
    <application>Privoxy</application> back to your browser. 
@@ -7034,7 +7257,7 @@ Requests</title>
  how the current configuration will handle it. This will not
  help with filtering effects (i.e. the <link
  linkend="FILTER"><quote>+filter</quote></link> action) from
the <filename>default.filter</filename> file since this is handled very
one of the filter files since this is handled very
  differently and not so easy to trap! It also will not tell you about any other
  URLs that may be embedded within the URL you are testing. For instance, images
  such as ads are expressed as URLs within the raw page source of HTML pages. So
@@ -7184,7 +7407,8 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
 
 <para>
  Notice the only difference here to the previous listing, is to 
- <quote>fast-redirects</quote> and <quote>session-cookies-only</quote>.
+ <quote>fast-redirects</quote> and <quote>session-cookies-only</quote>,
+ which are actived specifically for this site in our configuration.
 </para>
 
 <para>
@@ -7391,6 +7615,10 @@ In file: user.action <guibutton>[ View ]</guibutton> <guibutton>[ Edit ]</guibut
  Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
  $Log: user-manual.sgml,v $
+ Revision 2.13  2006/08/22 11:04:59  hal9
+ Silence warnings and errors. This should build now. New filters were only
+ stubbed in. More to be done.
+
  Revision 2.12  2006/08/14 08:40:39  fabiankeil
  Documented new actions that were part of
  the "minor Privoxy improvements".
index a08da89..64c5b9b 100644 (file)
@@ -1,19 +1,19 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >Actions Files</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="The Main Configuration File"
 HREF="config.html"><LINK
 REL="NEXT"
-TITLE="The Filter File"
+TITLE="Filter Files"
 HREF="filter-file.html"><LINK
 REL="STYLESHEET"
 TYPE="text/css"
@@ -37,7 +37,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -74,8 +74,8 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="ACTIONS-FILE"
->8. Actions Files</A
-></H1
+></A
+>8. Actions Files</H1
 ><P
 > The actions files are used to define what actions
  <SPAN
@@ -156,7 +156,7 @@ CLASS="FILENAME"
 >    <DIV
 CLASS="TABLE"
 ><A
-NAME="AEN1654"
+NAME="AEN1784"
 ></A
 ><P
 ><B
@@ -164,168 +164,338 @@ NAME="AEN1654"
 ></P
 ><TABLE
 BORDER="1"
-FRAME="border"
-RULES="all"
 CLASS="CALSTABLE"
-><COL
-WIDTH="1*"
-TITLE="C1"><COL
-WIDTH="1*"
-TITLE="C2"><COL
-WIDTH="1*"
-TITLE="C3"><COL
-WIDTH="1*"
-TITLE="C4"><THEAD
+><THEAD
 ><TR
 ><TH
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Feature</TH
 ><TH
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Cautious</TH
 ><TH
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Medium</TH
 ><TH
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Adventuresome</TH
 ></TR
 ></THEAD
 ><TBODY
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Ad-blocking by URL</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Ad-filtering by size</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >GIF de-animation</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Referer forging</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Cookie handling</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >none</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >session-only</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >kill</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Pop-up killing</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >unsolicited</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >unsolicited</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >all</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Fast redirects</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >HTML taming</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >JavaScript taming</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Web-bug killing</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Fun text replacements</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Image tag reordering</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Ad-filtering by link</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ><TR
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >Demoronizer</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >no</TD
 ><TD
+WIDTH="25%"
+ALIGN="LEFT"
+VALIGN="TOP"
 >yes</TD
 ></TR
 ></TBODY
@@ -409,9 +579,9 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN1753"
->8.1. Finding the Right Mix</A
-></H2
+NAME="AEN1883"
+></A
+>8.1. Finding the Right Mix</H2
 ><P
 > Note that some <A
 HREF="actions-file.html#ACTIONS"
@@ -443,9 +613,9 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN1760"
->8.2. How to Edit</A
-></H2
+NAME="AEN1890"
+></A
+>8.2. How to Edit</H2
 ><P
 > The easiest way to edit the actions files is with a browser by
  using our browser-based editor, which can be reached from <A
@@ -485,8 +655,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="ACTIONS-APPLY"
->8.3. How Actions are Applied to URLs</A
-></H2
+></A
+>8.3. How Actions are Applied to URLs</H2
 ><P
 > Actions files are divided into sections. There are special sections,
  like the <SPAN
@@ -502,26 +672,29 @@ HREF="actions-file.html#ALIASES"
  Below that, there is a list of URL patterns, each on a separate line.</P
 ><P
 > To determine which actions apply to a request, the URL of the request is
- compared to all patterns in each action file file. Every time it matches, the list of
+ compared to all patterns in each <SPAN
+CLASS="QUOTE"
+>"action file"</SPAN
+> file. Every time it matches, the list of
  applicable actions for the URL is incrementally updated, using the heading
  of the section in which the pattern is located. If multiple matches for
  the same URL set the same action differently, the last match wins. If not, 
  the effects are aggregated. E.g. a URL might match a regular section with 
- a heading line of <VAR
+ a heading line of <TT
 CLASS="LITERAL"
 >{ 
  +<A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
-> }</VAR
+> }</TT
 >,
- then later another one with just <VAR
+ then later another one with just <TT
 CLASS="LITERAL"
 >{
  +<A
 HREF="actions-file.html#BLOCK"
 >block</A
-> }</VAR
+> }</TT
 >, resulting
  in <SPAN
 CLASS="emphasis"
@@ -548,8 +721,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="AF-PATTERNS"
->8.4. Patterns</A
-></H2
+></A
+>8.4. Patterns</H2
 ><P
 > 
  As mentioned, <SPAN
@@ -578,25 +751,25 @@ CLASS="EMPHASIS"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > pattern has the form
- <VAR
+ <TT
 CLASS="LITERAL"
->&#60;domain&#62;/&#60;path&#62;</VAR
+>&#60;domain&#62;/&#60;path&#62;</TT
 >, where both the
- <VAR
+ <TT
 CLASS="LITERAL"
->&#60;domain&#62;</VAR
-> and <VAR
+>&#60;domain&#62;</TT
+> and <TT
 CLASS="LITERAL"
->&#60;path&#62;</VAR
+>&#60;path&#62;</TT
 > are
- optional. (This is why the special <VAR
+ optional. (This is why the special <TT
 CLASS="LITERAL"
->/</VAR
+>/</TT
 > pattern matches all
  URLs). Note that the protocol portion of the URL pattern (e.g.
- <VAR
+ <TT
 CLASS="LITERAL"
->http://</VAR
+>http://</TT
 >) should <SPAN
 CLASS="emphasis"
 ><I
@@ -611,60 +784,60 @@ CLASS="EMPHASIS"
 CLASS="VARIABLELIST"
 ><DL
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->www.example.com/</VAR
+>www.example.com/</TT
 ></DT
 ><DD
 ><P
->    is a domain-only pattern and will match any request to <VAR
+>    is a domain-only pattern and will match any request to <TT
 CLASS="LITERAL"
->www.example.com</VAR
+>www.example.com</TT
 >,
     regardless of which document on that server is requested.
    </P
 ></DD
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->www.example.com</VAR
+>www.example.com</TT
 ></DT
 ><DD
 ><P
->    means exactly the same. For domain-only patterns, the trailing <VAR
+>    means exactly the same. For domain-only patterns, the trailing <TT
 CLASS="LITERAL"
->/</VAR
+>/</TT
 > may
     be omitted.
    </P
 ></DD
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->www.example.com/index.html</VAR
+>www.example.com/index.html</TT
 ></DT
 ><DD
 ><P
->    matches only the single document <VAR
+>    matches only the single document <TT
 CLASS="LITERAL"
->/index.html</VAR
+>/index.html</TT
 >
-    on <VAR
+    on <TT
 CLASS="LITERAL"
->www.example.com</VAR
+>www.example.com</TT
 >.
    </P
 ></DD
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->/index.html</VAR
+>/index.html</TT
 ></DT
 ><DD
 ><P
->    matches the document <VAR
+>    matches the document <TT
 CLASS="LITERAL"
->/index.html</VAR
+>/index.html</TT
 >, regardless of the domain,
     i.e. on <SPAN
 CLASS="emphasis"
@@ -676,16 +849,16 @@ CLASS="EMPHASIS"
    </P
 ></DD
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->index.html</VAR
+>index.html</TT
 ></DT
 ><DD
 ><P
 >    matches nothing, since it would be  interpreted as a domain name and
-    there is no top-level domain called <VAR
+    there is no top-level domain called <TT
 CLASS="LITERAL"
->.html</VAR
+>.html</TT
 >.
    </P
 ></DD
@@ -696,9 +869,9 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN1833"
->8.4.1. The Domain Pattern</A
-></H3
+NAME="AEN1964"
+></A
+>8.4.1. The Domain Pattern</H3
 ><P
 > The matching of the domain part offers some flexible options: if the
  domain starts or ends with a dot, it becomes unanchored at that end. 
@@ -709,9 +882,9 @@ NAME="AEN1833"
 CLASS="VARIABLELIST"
 ><DL
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->.example.com</VAR
+>.example.com</TT
 ></DT
 ><DD
 ><P
@@ -722,16 +895,16 @@ CLASS="EMPHASIS"
 >ENDS</I
 ></SPAN
 > in
-    <VAR
+    <TT
 CLASS="LITERAL"
->.example.com</VAR
+>.example.com</TT
 >
    </P
 ></DD
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->www.</VAR
+>www.</TT
 ></DT
 ><DD
 ><P
@@ -742,16 +915,16 @@ CLASS="EMPHASIS"
 >STARTS</I
 ></SPAN
 > with
-    <VAR
+    <TT
 CLASS="LITERAL"
->www.</VAR
+>www.</TT
 >
    </P
 ></DD
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->.example.</VAR
+>.example.</TT
 ></DT
 ><DD
 ><P
@@ -761,13 +934,13 @@ CLASS="emphasis"
 CLASS="EMPHASIS"
 >CONTAINS</I
 ></SPAN
-> <VAR
+> <TT
 CLASS="LITERAL"
->.example.</VAR
+>.example.</TT
 >
-    (Correctly speaking: It matches any FQDN that contains <VAR
+    (Correctly speaking: It matches any FQDN that contains <TT
 CLASS="LITERAL"
->example</VAR
+>example</TT
 > as a domain.)
    </P
 ></DD
@@ -791,9 +964,9 @@ CLASS="QUOTE"
 CLASS="VARIABLELIST"
 ><DL
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->ad*.example.com</VAR
+>ad*.example.com</TT
 ></DT
 ><DD
 ><P
@@ -811,9 +984,9 @@ CLASS="QUOTE"
    </P
 ></DD
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->*ad*.example.com</VAR
+>*ad*.example.com</TT
 ></DT
 ><DD
 ><P
@@ -821,46 +994,46 @@ CLASS="LITERAL"
    </P
 ></DD
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->.?pix.com</VAR
+>.?pix.com</TT
 ></DT
 ><DD
 ><P
->    matches <VAR
+>    matches <TT
 CLASS="LITERAL"
->www.ipix.com</VAR
+>www.ipix.com</TT
 >,
-    <VAR
+    <TT
 CLASS="LITERAL"
->pictures.epix.com</VAR
->, <VAR
+>pictures.epix.com</TT
+>, <TT
 CLASS="LITERAL"
->a.b.c.d.e.upix.com</VAR
+>a.b.c.d.e.upix.com</TT
 > etc. 
    </P
 ></DD
 ><DT
-><VAR
+><TT
 CLASS="LITERAL"
->www[1-9a-ez].example.c*</VAR
+>www[1-9a-ez].example.c*</TT
 ></DT
 ><DD
 ><P
->     matches <VAR
+>     matches <TT
 CLASS="LITERAL"
->www1.example.com</VAR
+>www1.example.com</TT
 >, 
-     <VAR
+     <TT
 CLASS="LITERAL"
->www4.example.cc</VAR
->, <VAR
+>www4.example.cc</TT
+>, <TT
 CLASS="LITERAL"
->wwwd.example.cy</VAR
+>wwwd.example.cy</TT
 >, 
-     <VAR
+     <TT
 CLASS="LITERAL"
->wwwz.example.com</VAR
+>wwwz.example.com</TT
 > etc., but <SPAN
 CLASS="emphasis"
 ><I
@@ -868,9 +1041,9 @@ CLASS="EMPHASIS"
 >not</I
 ></SPAN
 > 
-     <VAR
+     <TT
 CLASS="LITERAL"
->wwww.example.com</VAR
+>wwww.example.com</TT
 >.
    </P
 ></DD
@@ -882,9 +1055,9 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN1895"
->8.4.2. The Path Pattern</A
-></H3
+NAME="AEN2026"
+></A
+>8.4.2. The Path Pattern</H3
 ><P
 > <SPAN
 CLASS="APPLICATION"
@@ -907,9 +1080,9 @@ HREF="http://www.pcre.org/man.txt"
 TARGET="_top"
 >http://www.pcre.org/man.txt</A
 >.
- You might also find the Perl man page on regular expressions (<VAR
+ You might also find the Perl man page on regular expressions (<TT
 CLASS="LITERAL"
->man perlre</VAR
+>man perlre</TT
 >)
  useful, which is available on-line at <A
 HREF="http://www.perldoc.com/perl5.6/pod/perlre.html"
@@ -938,13 +1111,13 @@ CLASS="EMPHASIS"
  <SPAN
 CLASS="QUOTE"
 >"(?-i)"</SPAN
-> switch: <VAR
+> switch: <TT
 CLASS="LITERAL"
->www.example.com/(?-i)PaTtErN.*</VAR
+>www.example.com/(?-i)PaTtErN.*</TT
 > will match
- only documents whose path starts with <VAR
+ only documents whose path starts with <TT
 CLASS="LITERAL"
->PaTtErN</VAR
+>PaTtErN</TT
 > in
  <SPAN
 CLASS="emphasis"
@@ -961,8 +1134,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="ACTIONS"
->8.5. Actions</A
-></H2
+></A
+>8.5. Actions</H2
 ><P
 > All actions are disabled by default, until they are explicitly enabled
  somewhere in an actions file. Actions are turned on if preceded with a
@@ -973,29 +1146,29 @@ CLASS="QUOTE"
 CLASS="QUOTE"
 >"-"</SPAN
 >. So a
- <VAR
+ <TT
 CLASS="LITERAL"
->+action</VAR
+>+action</TT
 > means <SPAN
 CLASS="QUOTE"
 >"do that action"</SPAN
 >, e.g.
- <VAR
+ <TT
 CLASS="LITERAL"
->+block</VAR
+>+block</TT
 > means <SPAN
 CLASS="QUOTE"
 >"please block URLs that match the
  following patterns"</SPAN
->, and <VAR
+>, and <TT
 CLASS="LITERAL"
->-block</VAR
+>-block</TT
 > means <SPAN
 CLASS="QUOTE"
 >"don't
- block URLs that match the following patterns, even if <VAR
+ block URLs that match the following patterns, even if <TT
 CLASS="LITERAL"
->+block</VAR
+>+block</TT
 >
  previously applied."</SPAN
 >&#13;</P
@@ -1003,9 +1176,9 @@ CLASS="LITERAL"
 > 
  Again, actions are invoked by placing them on a line, enclosed in curly braces and
  separated by whitespace, like in 
- <VAR
+ <TT
 CLASS="LITERAL"
->{+some-action -some-other-action{some-parameter}}</VAR
+>{+some-action -some-other-action{some-parameter}}</TT
 >,
  followed by a list of URL patterns, one per line, to which they apply.
  Together, the actions line and the following pattern lines make up a section
@@ -1038,19 +1211,27 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  +<VAR
+>  +<TT
 CLASS="REPLACEABLE"
->name</VAR
->        # enable action <VAR
+><I
+>name</I
+></TT
+>        # enable action <TT
 CLASS="REPLACEABLE"
->name</VAR
+><I
+>name</I
+></TT
 >
-  -<VAR
+  -<TT
 CLASS="REPLACEABLE"
->name</VAR
->        # disable action <VAR
+><I
+>name</I
+></TT
+>        # disable action <TT
 CLASS="REPLACEABLE"
->name</VAR
+><I
+>name</I
+></TT
 ></PRE
 ></TD
 ></TR
@@ -1059,9 +1240,9 @@ CLASS="REPLACEABLE"
   </P
 ><P
 >  
-   Example: <VAR
+   Example: <TT
 CLASS="LITERAL"
->+block</VAR
+>+block</TT
 >
   </P
 ></LI
@@ -1080,20 +1261,28 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  +<VAR
+>  +<TT
 CLASS="REPLACEABLE"
->name</VAR
->{<VAR
+><I
+>name</I
+></TT
+>{<TT
 CLASS="REPLACEABLE"
->param</VAR
->}  # enable action and set parameter to <VAR
+><I
+>param</I
+></TT
+>}  # enable action and set parameter to <TT
 CLASS="REPLACEABLE"
->param</VAR
+><I
+>param</I
+></TT
 >,
                # overwriting parameter from previous match if necessary
-  -<VAR
+  -<TT
 CLASS="REPLACEABLE"
->name</VAR
+><I
+>name</I
+></TT
 >         # disable action. The parameter can be omitted</PRE
 ></TD
 ></TR
@@ -1106,9 +1295,9 @@ CLASS="REPLACEABLE"
   </P
 ><P
 >  
-   Example: <VAR
+   Example: <TT
 CLASS="LITERAL"
->+hide-user-agent{ Mozilla 1.0 }</VAR
+>+hide-user-agent{ Mozilla 1.0 }</TT
 >
   </P
 ></LI
@@ -1143,30 +1332,44 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  +<VAR
+>  +<TT
 CLASS="REPLACEABLE"
->name</VAR
->{<VAR
+><I
+>name</I
+></TT
+>{<TT
 CLASS="REPLACEABLE"
->param</VAR
->}   # enable action and add <VAR
+><I
+>param</I
+></TT
+>}   # enable action and add <TT
 CLASS="REPLACEABLE"
->param</VAR
+><I
+>param</I
+></TT
 > to the list of parameters
-  -<VAR
+  -<TT
 CLASS="REPLACEABLE"
->name</VAR
->{<VAR
+><I
+>name</I
+></TT
+>{<TT
 CLASS="REPLACEABLE"
->param</VAR
->}   # remove the parameter <VAR
+><I
+>param</I
+></TT
+>}   # remove the parameter <TT
 CLASS="REPLACEABLE"
->param</VAR
+><I
+>param</I
+></TT
 > from the list of parameters
                 # If it was the last one left, disable the action.
-  <VAR
+  <TT
 CLASS="REPLACEABLE"
->-name</VAR
+><I
+>-name</I
+></TT
 >          # disable this action completely and remove all parameters from the list</PRE
 ></TD
 ></TR
@@ -1175,13 +1378,13 @@ CLASS="REPLACEABLE"
   </P
 ><P
 >  
-   Examples: <VAR
+   Examples: <TT
 CLASS="LITERAL"
->+add-header{X-Fun-Header: Some text}</VAR
+>+add-header{X-Fun-Header: Some text}</TT
 > and
-   <VAR
+   <TT
 CLASS="LITERAL"
->+filter{html-annoyances}</VAR
+>+filter{html-annoyances}</TT
 >
   </P
 ></LI
@@ -1222,8 +1425,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="ADD-HEADER"
->8.5.1. add-header</A
-></H4
+></A
+>8.5.1. add-header</H4
 ><P
 ></P
 ><DIV
@@ -1255,9 +1458,9 @@ CLASS="VARIABLELIST"
 >    Any string value is possible. Validity of the defined HTTP headers is not checked.
     It is recommended that you use the <SPAN
 CLASS="QUOTE"
->"<VAR
+>"<TT
 CLASS="LITERAL"
->X-</VAR
+>X-</TT
 >"</SPAN
 > prefix
     for custom headers.
@@ -1304,8 +1507,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="BLOCK"
->8.5.2. block</A
-></H4
+></A
+>8.5.2. block</H4
 ><P
 ></P
 ><DIV
@@ -1323,19 +1526,19 @@ CLASS="VARIABLELIST"
 ><P
 >    Requests for URLs to which this action applies are blocked, i.e. the requests are not
     forwarded to the remote server, but answered locally with a substitute page or image,
-    as determined by the <VAR
+    as determined by the <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
-></VAR
+></TT
 >
-    and <VAR
+    and <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#SET-IMAGE-BLOCKER"
 >set-image-blocker</A
-></VAR
+></TT
 > actions.
    </P
 ></DD
@@ -1393,23 +1596,23 @@ CLASS="EMPHASIS"
 >both</I
 ></SPAN
 > 
-    <VAR
+    <TT
 CLASS="LITERAL"
->block</VAR
-> and <VAR
+>block</TT
+> and <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
-></VAR
+></TT
 >,
     apply to the same request: it will then be replaced by an image. If 
-    <VAR
+    <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#SET-IMAGE-BLOCKER"
 >set-image-blocker</A
-></VAR
+></TT
 >
     (see below) also applies, the type of image will be determined by its parameter,
     if not, the standard checkerboard pattern is sent.
@@ -1423,12 +1626,12 @@ CLASS="APPLICATION"
     ads and other unwanted content.
    </P
 ><P
->    The <VAR
+>    The <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER"
 >filter</A
-></VAR
+></TT
 >
     action can perform a very similar task, by <SPAN
 CLASS="QUOTE"
@@ -1471,9 +1674,9 @@ CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
-NAME="CRUNCH-INCOMING-COOKIES"
->8.5.3. crunch-incoming-cookies</A
-></H4
+NAME="CONTENT-TYPE-OVERWRITE"
+></A
+>8.5.3. content-type-overwrite</H4
 ><P
 ></P
 ><DIV
@@ -1483,95 +1686,125 @@ CLASS="VARIABLELIST"
 >Typical use:</DT
 ><DD
 ><P
->    Prevent the web server from setting any cookies on your system
-   </P
+>Stop useless download menus from popping up, or change the browser's rendering mode</P
 ></DD
 ><DT
 >Effect:</DT
 ><DD
 ><P
->    Deletes any <SPAN
+>    Replaces the <SPAN
 CLASS="QUOTE"
->"Set-Cookie:"</SPAN
-> HTTP headers from server replies.
+>"Content-Type:"</SPAN
+> HTTP server header.
    </P
 ></DD
 ><DT
 >Type:</DT
 ><DD
 ><P
->Boolean.</P
+>Parameterized.</P
 ></DD
 ><DT
 >Parameter:</DT
 ><DD
 ><P
->    N/A
+>    Any string. 
    </P
 ></DD
 ><DT
 >Notes:</DT
 ><DD
 ><P
->    This action is only concerned with <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->incoming</I
-></SPAN
-> cookies. For
+>    The <SPAN
+CLASS="QUOTE"
+>"Content-Type:"</SPAN
+> HTTP server header is used by the
+    browser to decide what to do with the document. The value of this
+    header can cause the browser to open a download menu instead of
+    displaying the document by itself, even if the document's format is
+    supported by the browser. 
+   </P
+><P
+>    The declared content type can also affect which rendering mode
+    the browser chooses. If XHTML is delivered as <SPAN
+CLASS="QUOTE"
+>"text/html"</SPAN
+>,
+    many browsers treat it as yet another broken HTML document.
+    If it is send as <SPAN
+CLASS="QUOTE"
+>"application/xml"</SPAN
+>, browsers with
+    XHTML support will only display it, if the syntax is correct.
+   </P
+><P
+>    If you see a web site that proudly uses XHTML buttons, but sets
     <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->outgoing</I
-></SPAN
-> cookies, use
-    <VAR
+CLASS="QUOTE"
+>"Content-Type: text/html"</SPAN
+>, you can use Privoxy
+    to overwrite it with <SPAN
+CLASS="QUOTE"
+>"application/xml"</SPAN
+> and validate
+    the web master's claim inside your XHTML-supporting browser.
+    If the syntax is incorrect, the browser will complain loudly. 
+   </P
+><P
+>    You can also go the opposite direction: if your browser prints
+    error messages instead of rendering a document falsely declared
+    as XHTML, you can overwrite the content type with
+    <SPAN
+CLASS="QUOTE"
+>"text/html"</SPAN
+> and have it rendered as broken HTML document. 
+   </P
+><P
+>    By default <TT
+CLASS="LITERAL"
+>content-type-overwrite</TT
+> only replaces
+    <SPAN
+CLASS="QUOTE"
+>"Content-Type:"</SPAN
+> headers that look like some kind of text.
+    If you want to overwrite it unconditionally, you have to combine it with
+    <TT
 CLASS="LITERAL"
 ><A
-HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
->crunch-outgoing-cookies</A
-></VAR
+HREF="actions-file.html#FORCE-TEXT-MODE"
+>force-text-mode</A
+></TT
 >.
-    Use <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->both</I
-></SPAN
-> to disable cookies completely.
+    This limitation exists for a reason, think twice before circumventing it.
    </P
 ><P
->    It makes <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->no sense at all</I
-></SPAN
-> to use this action in conjunction
-    with the <VAR
+>    Most of the time it's easier to enable
+    <TT
 CLASS="LITERAL"
 ><A
-HREF="actions-file.html#SESSION-COOKIES-ONLY"
->session-cookies-only</A
-></VAR
-> action,
-    since it would prevent the session cookies from being set. See also 
-    <VAR
+HREF="filter-file.html#FILTER-SERVER-HEADERS"
+>filter-server-headers</A
+></TT
+>
+    and replace this action with a custom regular expression. It allows you
+    to activate it for every document of a certain site and it will still
+    only replace the content types you aimed at.
+   </P
+><P
+>    Of course you can apply <TT
 CLASS="LITERAL"
-><A
-HREF="actions-file.html#FILTER-CONTENT-COOKIES"
->filter-content-cookies</A
-></VAR
->.
+>content-type-overwrite</TT
+>
+    to a whole site and then make URL based exceptions, but it's a lot
+    more work to get the same precision. 
    </P
 ></DD
 ><DT
->Example usage:</DT
+>Example usage (sections):</DT
 ><DD
 ><P
->    <TABLE
+>     <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -1579,7 +1812,13 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+crunch-incoming-cookies</PRE
+># 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
 ></TD
 ></TR
 ></TABLE
@@ -1594,9 +1833,9 @@ CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
-NAME="CRUNCH-OUTGOING-COOKIES"
->8.5.4. crunch-outgoing-cookies</A
-></H4
+NAME="CRUNCH-CLIENT-HEADER"
+></A
+>8.5.4. crunch-server-header</H4
 ><P
 ></P
 ><DIV
@@ -1606,97 +1845,116 @@ CLASS="VARIABLELIST"
 >Typical use:</DT
 ><DD
 ><P
->    Prevent the web server from reading any cookies from your system
-   </P
+>Remove a client header <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has no dedicated action for.</P
 ></DD
 ><DT
 >Effect:</DT
 ><DD
 ><P
->    Deletes any <SPAN
-CLASS="QUOTE"
->"Cookie:"</SPAN
-> HTTP headers from client requests.
+>    Deletes every header send by the client that contains the string the user supplied as parameter.
    </P
 ></DD
 ><DT
 >Type:</DT
 ><DD
 ><P
->Boolean.</P
+>Parameterized.</P
 ></DD
 ><DT
 >Parameter:</DT
 ><DD
 ><P
->    N/A
+>    Any string.
    </P
 ></DD
 ><DT
 >Notes:</DT
 ><DD
 ><P
->    This action is only concerned with <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->outgoing</I
-></SPAN
-> cookies. For
+>    This action allows you to block client headers for which no dedicated
     <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->incoming</I
-></SPAN
-> cookies, use
-    <VAR
-CLASS="LITERAL"
-><A
-HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
->crunch-incoming-cookies</A
-></VAR
->.
-    Use <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->both</I
-></SPAN
-> to disable cookies completely.
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> action exists.
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> will remove every client header that
+    contains the string you supplied as parameter.
    </P
 ><P
->    It makes <SPAN
+>    Regular expressions are <SPAN
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
->no sense at all</I
+>not supported</I
 ></SPAN
-> to use this action in conjunction
-    with the <VAR
+> and you can't
+    use this action to block different headers in the same request, unless
+    they contain the same string.
+   </P
+><P
+>    <TT
+CLASS="LITERAL"
+>crunch-client-header</TT
+> is only meant for quick tests.
+    If you have to block several different headers, or only want to modify
+    parts of them, you should enable
+    <TT
 CLASS="LITERAL"
 ><A
-HREF="actions-file.html#SESSION-COOKIES-ONLY"
->session-cookies-only</A
-></VAR
-> action,
-    since it would prevent the session cookies from being read.
+HREF="filter-file.html#FILTER-CLIENT-HEADERS"
+>filter-client-headers</A
+></TT
+>
+    and create your own filter.
    </P
-></DD
-><DT
->Example usage:</DT
-><DD
+><DIV
+CLASS="WARNING"
 ><P
->    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
+></P
+><TABLE
+CLASS="WARNING"
+BORDER="1"
 WIDTH="90%"
 ><TR
 ><TD
-><PRE
-CLASS="SCREEN"
->+crunch-outgoing-cookies</PRE
-></TD
+ALIGN="CENTER"
+><B
+>Warning</B
+></TD
+></TR
+><TR
+><TD
+ALIGN="LEFT"
+><P
+>      Don't block any header without understanding the consequences.
+     </P
+></TD
+></TR
+></TABLE
+></DIV
+></DD
+><DT
+>Example usage (section):</DT
+><DD
+><P
+>     <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
+></TD
 ></TR
 ></TABLE
 >
@@ -1710,9 +1968,9 @@ CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
-NAME="DEANIMATE-GIFS"
->8.5.5. deanimate-gifs</A
-></H4
+NAME="CRUNCH-IF-NONE-MATCH"
+></A
+>8.5.5. crunch-if-none-match</H4
 ><P
 ></P
 ><DIV
@@ -1722,62 +1980,85 @@ CLASS="VARIABLELIST"
 >Typical use:</DT
 ><DD
 ><P
->Stop those annoying, distracting animated GIF images.</P
+>Prevent yet another way to track the user's steps between sessions.</P
 ></DD
 ><DT
 >Effect:</DT
 ><DD
 ><P
->    De-animate GIF animations, i.e. reduce them to their first or last image.
+>    Deletes the <SPAN
+CLASS="QUOTE"
+>"If-None-Match:"</SPAN
+> HTTP client header.
    </P
 ></DD
 ><DT
 >Type:</DT
 ><DD
 ><P
->Parameterized.</P
+>Boolean.</P
 ></DD
 ><DT
 >Parameter:</DT
 ><DD
 ><P
->    <SPAN
-CLASS="QUOTE"
->"last"</SPAN
-> or <SPAN
-CLASS="QUOTE"
->"first"</SPAN
->
+>    N/A
    </P
 ></DD
 ><DT
 >Notes:</DT
 ><DD
 ><P
->    This will also shrink the images considerably (in bytes, not pixels!). If
-    the option <SPAN
+>    Removing the <SPAN
 CLASS="QUOTE"
->"first"</SPAN
-> is given, the first frame of the animation
-    is used as the replacement. If <SPAN
+>"If-None-Match:"</SPAN
+> HTTP client header
+    is useful for filter testing, where you want to force a real
+    reload instead of getting status code <SPAN
 CLASS="QUOTE"
->"last"</SPAN
-> is given, the last
-    frame of the animation is used instead, which probably makes more sense for
-    most banner animations, but also has the risk of not showing the entire
-    last frame (if it is only a delta to an earlier frame).
+>"304"</SPAN
+> which
+    would cause the browser to use a cached copy of the page.
    </P
 ><P
->    You can safely use this action with patterns that will also match non-GIF
-    objects, because no attempt will be made at anything that doesn't look like
-    a GIF.
+>    It is also useful to make sure the header isn't used as a cookie
+    replacement.
+   </P
+><P
+>    Blocking the <SPAN
+CLASS="QUOTE"
+>"If-None-Match:"</SPAN
+> header shouldn't cause any
+    caching problems, as long as the <SPAN
+CLASS="QUOTE"
+>"If-Modified-Since:"</SPAN
+> header
+    isn't blocked as well.
+   </P
+><P
+>    It is recommended to use this action together with
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HIDE-IF-MODIFIED-SINCE"
+>hide-if-modified-since</A
+></TT
+>
+    and
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#OVERWRITE-LAST-MODIFIED"
+>overwrite-last-modified</A
+></TT
+>.
    </P
 ></DD
 ><DT
->Example usage:</DT
+>Example usage (section):</DT
 ><DD
 ><P
->      <TABLE
+>     <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -1785,12 +2066,16 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+deanimate-gifs{last}</PRE
+># Let the browser revalidate cached documents without being tracked across sessions
+{+hide-if-modified-since {-1} \
++overwrite-last-modified {randomize} \
++crunch-if-none-match}
+/   </PRE
 ></TD
 ></TR
 ></TABLE
 >
-    </P
+   </P
 ></DD
 ></DL
 ></DIV
@@ -1800,9 +2085,9 @@ CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
-NAME="DOWNGRADE-HTTP-VERSION"
->8.5.6. downgrade-http-version</A
-></H4
+NAME="CRUNCH-INCOMING-COOKIES"
+></A
+>8.5.6. crunch-incoming-cookies</H4
 ><P
 ></P
 ><DIV
@@ -1812,13 +2097,17 @@ CLASS="VARIABLELIST"
 >Typical use:</DT
 ><DD
 ><P
->Work around (very rare) problems with HTTP/1.1</P
+>    Prevent the web server from setting any cookies on your system
+   </P
 ></DD
 ><DT
 >Effect:</DT
 ><DD
 ><P
->    Downgrades HTTP/1.1 client requests and server replies to HTTP/1.0.
+>    Deletes any <SPAN
+CLASS="QUOTE"
+>"Set-Cookie:"</SPAN
+> HTTP headers from server replies.
    </P
 ></DD
 ><DT
@@ -1838,21 +2127,65 @@ CLASS="VARIABLELIST"
 >Notes:</DT
 ><DD
 ><P
->    This is a left-over from the time when <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
->
-    didn't support important HTTP/1.1 features well. It is left here for the
-    unlikely case that you experience HTTP/1.1 related problems with some server
-    out there. Not all (optional) HTTP/1.1 features are supported yet, so there
-    is a chance you might need this action.
+>    This action is only concerned with <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>incoming</I
+></SPAN
+> cookies. For
+    <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>outgoing</I
+></SPAN
+> cookies, use
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
+>crunch-outgoing-cookies</A
+></TT
+>.
+    Use <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>both</I
+></SPAN
+> to disable cookies completely.
+   </P
+><P
+>    It makes <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>no sense at all</I
+></SPAN
+> to use this action in conjunction
+    with the <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#SESSION-COOKIES-ONLY"
+>session-cookies-only</A
+></TT
+> action,
+    since it would prevent the session cookies from being set. See also 
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#FILTER-CONTENT-COOKIES"
+>filter-content-cookies</A
+></TT
+>.
    </P
 ></DD
 ><DT
->Example usage (section):</DT
+>Example usage:</DT
 ><DD
 ><P
->     <TABLE
+>    <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -1860,13 +2193,12 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->{+downgrade-http-version}
-problem-host.example.com</PRE
+>+crunch-incoming-cookies</PRE
 ></TD
 ></TR
 ></TABLE
 >
-    </P
+   </P
 ></DD
 ></DL
 ></DIV
@@ -1876,9 +2208,9 @@ CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
-NAME="FAST-REDIRECTS"
->8.5.7. fast-redirects</A
-></H4
+NAME="CRUNCH-SERVER-HEADER"
+></A
+>8.5.7. crunch-server-header</H4
 ><P
 ></P
 ><DIV
@@ -1888,66 +2220,100 @@ CLASS="VARIABLELIST"
 >Typical use:</DT
 ><DD
 ><P
->Fool some click-tracking scripts and speed up indirect links</P
+>Remove a server header <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> has no dedicated action for.</P
 ></DD
 ><DT
 >Effect:</DT
 ><DD
 ><P
->    Cut off all but the last valid URL from requests.
+>    Deletes every header sent by the server that contains the string the user supplied as parameter.
    </P
 ></DD
 ><DT
 >Type:</DT
 ><DD
 ><P
->Boolean.</P
+>Parameterized.</P
 ></DD
 ><DT
 >Parameter:</DT
 ><DD
 ><P
->    N/A
+>    Any string.
    </P
 ></DD
 ><DT
 >Notes:</DT
 ><DD
 ><P
->  
-    Many sites, like yahoo.com, don't just link to other sites. Instead, they
-    will link to some script on their own servers, giving the destination as a
-    parameter, which will then redirect you to the final target. URLs
-    resulting from this scheme typically look like:
+>    This action allows you to block server headers for which no dedicated
     <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> action exists. <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+    will remove every server header that contains the string you supplied as parameter.
+   </P
+><P
+>    Regular expressions are <SPAN
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
->http://some.place/click-tracker.cgi?target=http://some.where.else</I
+>not supported</I
 ></SPAN
->.
-  </P
-><P
->    Sometimes, there are even multiple consecutive redirects encoded in the
-    URL. These redirections via scripts make your web browsing more traceable,
-    since the server from which you follow such a link can see where you go
-    to. Apart from that, valuable bandwidth and time is wasted, while your
-    browser ask the server for one redirect after the other. Plus, it feeds
-    the advertisers.
+> and you can't
+    use this action to block different headers in the same request, unless
+    they contain the same string.
    </P
 ><P
->    This feature is currently not very smart and is scheduled for improvement.
-    It is likely to break some sites. You should expect to need possibly 
-    many exceptions to this action, if it is enabled by default in
+>    <TT
+CLASS="LITERAL"
+>crunch-server-header</TT
+> is only meant for quick tests.
+    If you have to block several different headers, or only want to modify
+    parts of them, you should enable
     <TT
-CLASS="FILENAME"
->default.action</TT
->. Some sites just don't work without 
-    it.
+CLASS="LITERAL"
+><A
+HREF="filter-file.html#FILTER-SERVER-HEADERS"
+>filter-server-headers</A
+></TT
+>
+    and create your own filter.
    </P
+><DIV
+CLASS="WARNING"
+><P
+></P
+><TABLE
+CLASS="WARNING"
+BORDER="1"
+WIDTH="90%"
+><TR
+><TD
+ALIGN="CENTER"
+><B
+>Warning</B
+></TD
+></TR
+><TR
+><TD
+ALIGN="LEFT"
+><P
+>     Don't block any header without understanding the consequences.
+     </P
+></TD
+></TR
+></TABLE
+></DIV
 ></DD
 ><DT
->Example usage:</DT
+>Example usage (section):</DT
 ><DD
 ><P
 >     <TABLE
@@ -1958,12 +2324,14 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->{+fast-redirects}</PRE
+># Crunch server headers that try to prevent caching
+{+crunch-server-header {no-cache}}
+/   </PRE
 ></TD
 ></TR
 ></TABLE
 >
-    </P
+   </P
 ></DD
 ></DL
 ></DIV
@@ -1973,9 +2341,9 @@ CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
-NAME="FILTER"
->8.5.8. filter</A
-></H4
+NAME="CRUNCH-OUTGOING-COOKIES"
+></A
+>8.5.8. crunch-outgoing-cookies</H4
 ><P
 ></P
 ><DIV
@@ -1985,173 +2353,88 @@ CLASS="VARIABLELIST"
 >Typical use:</DT
 ><DD
 ><P
->Get rid of HTML and JavaScript annoyances, banner advertisements (by size), do fun text replacements, etc.</P
+>    Prevent the web server from reading any cookies from your system
+   </P
 ></DD
 ><DT
 >Effect:</DT
 ><DD
 ><P
->    All files of text-based type, most notably HTML and JavaScript, to which this
-    action applies, are filtered on-the-fly through the specified regular expression
-    based substitutions. (Note: as of version 3.0.3 plain text documents 
-    are exempted from filtering, because web servers often use the
-    <VAR
-CLASS="LITERAL"
->text/plain</VAR
-> MIME type for all files whose type they
-    don't know.)
+>    Deletes any <SPAN
+CLASS="QUOTE"
+>"Cookie:"</SPAN
+> HTTP headers from client requests.
    </P
 ></DD
 ><DT
 >Type:</DT
 ><DD
 ><P
->Parameterized.</P
+>Boolean.</P
 ></DD
 ><DT
 >Parameter:</DT
 ><DD
 ><P
->    The name of a filter, as defined in the <A
-HREF="filter-file.html"
->filter file</A
->
-    (typically <TT
-CLASS="FILENAME"
->default.filter</TT
->, set by the
-    <VAR
-CLASS="LITERAL"
-><A
-HREF="config.html#FILTERFILE"
->filterfile</A
-></VAR
->
-    option in the <A
-HREF="config.html"
->config file</A
->). When used in its negative form,
-    and without parameters, filtering is completely disabled.
+>    N/A
    </P
 ></DD
 ><DT
 >Notes:</DT
 ><DD
 ><P
->    For your convenience, there are a number of pre-defined filters available 
-    in the distribution filter file that you can use. See the examples below for
-    a list.
-   </P
-><P
->    Filtering requires buffering the page content, which may appear to
-    slow down page rendering since nothing is displayed until all content has
-    passed the filters. (It does not really take longer, but seems that way
-    since the page is not incrementally displayed.) This effect will be more
-    noticeable on slower connections.
-   </P
-><P
->    This is very powerful feature, but <SPAN
-CLASS="QUOTE"
->"rolling your own"</SPAN
->
-    filters requires a knowledge of regular expressions and HTML.
-   </P
-><P
->    The amount of data that can be filtered is limited to the 
-    <VAR
-CLASS="LITERAL"
-><A
-HREF="config.html#BUFFER-LIMIT"
->buffer-limit</A
-></VAR
->
-    option in the main <A
-HREF="config.html"
->config file</A
->. The 
-    default is 4096 KB (4 Megs). Once this limit is exceeded, the buffered
-    data, and all pending data, is passed through unfiltered. 
-   </P
-><P
->    Inadequate MIME types, such as zipped files, are not filtered at all.
-    (Again, only text-based types except plain text). Encrypted SSL data
-    (from HTTPS servers) cannot be filtered either, since this would violate
-    the integrity of the secure transaction. In some situations it might
-    be necessary to protect certain text, like source code, from filtering
-    by defining appropriate <VAR
-CLASS="LITERAL"
->-filter</VAR
-> sections.
-   </P
-><P
->    At this time, <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> cannot (yet!) uncompress compressed
-    documents. If you want filtering to work on all documents, even those that
-    would normally be sent compressed, use the
-    <VAR
+>    This action is only concerned with <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>outgoing</I
+></SPAN
+> cookies. For
+    <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>incoming</I
+></SPAN
+> cookies, use
+    <TT
 CLASS="LITERAL"
 ><A
-HREF="actions-file.html#PREVENT-COMPRESSION"
->prevent-compression</A
-></VAR
->
-    action in conjunction with <VAR
-CLASS="LITERAL"
->filter</VAR
+HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
+>crunch-incoming-cookies</A
+></TT
 >.
+    Use <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>both</I
+></SPAN
+> to disable cookies completely.
    </P
 ><P
->    Filtering can achieve some of the same effects as the 
-    <VAR
+>    It makes <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>no sense at all</I
+></SPAN
+> to use this action in conjunction
+    with the <TT
 CLASS="LITERAL"
 ><A
-HREF="actions-file.html#BLOCK"
->block</A
-></VAR
->
-    action, i.e. it can be used to block ads and banners. But the mechanism 
-    works quite differently. One effective use, is to block ad banners 
-    based on their size (see below), since many of these seem to be somewhat 
-    standardized.
-   </P
-><P
->    <A
-HREF="contact.html"
->Feedback</A
-> with suggestions for new or
-    improved filters is particularly welcome!
-   </P
-><P
->    The below list has only the names and a one-line description of each
-    predefined filter. There are <A
-HREF="filter-file.html#PREDEFINED-FILTERS"
->more
-    verbose explanations</A
-> of what these filters do in the <A
-HREF="filter-file.html"
->filter file chapter</A
->.
+HREF="actions-file.html#SESSION-COOKIES-ONLY"
+>session-cookies-only</A
+></TT
+> action,
+    since it would prevent the session cookies from being read.
    </P
 ></DD
 ><DT
->Example usage (with filters from the distribution <TT
-CLASS="FILENAME"
->default.filter</TT
-> file).
-  See <A
-HREF="filter-file.html#PREDEFINED-FILTERS"
->the Predefined Filters section</A
-> for 
-  more explanation on each:</DT
+>Example usage:</DT
 ><DD
 ><P
->    <A
-NAME="FILTER-JS-ANNOYANCES"
-></A
->
-    <TABLE
+>    <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -2159,75 +2442,89 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{js-annoyances}       # Get rid of particularly annoying JavaScript abuse</PRE
+>+crunch-outgoing-cookies</PRE
 ></TD
 ></TR
 ></TABLE
 >
    </P
-><P
->    <A
-NAME="FILTER-JS-EVENTS"
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="DEANIMATE-GIFS"
 ></A
->
-    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->+filter{js-events}           # Kill all JS event bindings (Radically destructive! Only for extra nasty sites)</PRE
-></TD
-></TR
-></TABLE
->
+>8.5.9. deanimate-gifs</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Stop those annoying, distracting animated GIF images.</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    De-animate GIF animations, i.e. reduce them to their first or last image.
    </P
+></DD
+><DT
+>Type:</DT
+><DD
 ><P
->    <A
-NAME="FILTER-HTML-ANNOYANCES"
-></A
->
-    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->+filter{html-annoyances}     # Get rid of particularly annoying HTML abuse</PRE
-></TD
-></TR
-></TABLE
+>Parameterized.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    <SPAN
+CLASS="QUOTE"
+>"last"</SPAN
+> or <SPAN
+CLASS="QUOTE"
+>"first"</SPAN
 >
    </P
+></DD
+><DT
+>Notes:</DT
+><DD
 ><P
->    <A
-NAME="FILTER-CONTENT-COOKIES"
-></A
->
-    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->+filter{content-cookies}     # Kill cookies that come in the HTML or JS content</PRE
-></TD
-></TR
-></TABLE
->
+>    This will also shrink the images considerably (in bytes, not pixels!). If
+    the option <SPAN
+CLASS="QUOTE"
+>"first"</SPAN
+> is given, the first frame of the animation
+    is used as the replacement. If <SPAN
+CLASS="QUOTE"
+>"last"</SPAN
+> is given, the last
+    frame of the animation is used instead, which probably makes more sense for
+    most banner animations, but also has the risk of not showing the entire
+    last frame (if it is only a delta to an earlier frame).
    </P
 ><P
->    <A
-NAME="FILTER-REFRESH-TAGS"
-></A
->
-    <TABLE
+>    You can safely use this action with patterns that will also match non-GIF
+    objects, because no attempt will be made at anything that doesn't look like
+    a GIF.
+   </P
+></DD
+><DT
+>Example usage:</DT
+><DD
+><P
+>      <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -2235,75 +2532,74 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{refresh-tags}        # Kill automatic refresh tags (for dial-on-demand setups)</PRE
+>+deanimate-gifs{last}</PRE
 ></TD
 ></TR
 ></TABLE
 >
-   </P
-><P
->    <A
-NAME="FILTER-UNSOLICITED-POPUPS"
+    </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="DOWNGRADE-HTTP-VERSION"
 ></A
->
-    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->+filter{unsolicited-popups}  # Disable only unsolicited pop-up windows</PRE
-></TD
-></TR
-></TABLE
->
+>8.5.10. downgrade-http-version</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Work around (very rare) problems with HTTP/1.1</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    Downgrades HTTP/1.1 client requests and server replies to HTTP/1.0.
    </P
+></DD
+><DT
+>Type:</DT
+><DD
 ><P
->    <A
-NAME="FILTER-ALL-POPUPS"
-></A
->
-    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->+filter{all-popups}          # Kill all popups in JavaScript and HTML</PRE
-></TD
-></TR
-></TABLE
->
+>Boolean.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    N/A
    </P
+></DD
+><DT
+>Notes:</DT
+><DD
 ><P
->    <A
-NAME="FILTER-IMG-REORDER"
-></A
->
-    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->+filter{img-reorder}         # Reorder attributes in &#60;img&#62; tags to make the banners-by-* filters more effective</PRE
-></TD
-></TR
-></TABLE
+>    This is a left-over from the time when <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
 >
+    didn't support important HTTP/1.1 features well. It is left here for the
+    unlikely case that you experience HTTP/1.1 related problems with some server
+    out there. Not all (optional) HTTP/1.1 features are supported yet, so there
+    is a chance you might need this action.
    </P
+></DD
+><DT
+>Example usage (section):</DT
+><DD
 ><P
->    <A
-NAME="FILTER-BANNERS-BY-SIZE"
-></A
->
-    <TABLE
+>     <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -2311,37 +2607,178 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{banners-by-size}     # Kill banners by size</PRE
+>{+downgrade-http-version}
+problem-host.example.com</PRE
 ></TD
 ></TR
 ></TABLE
 >
+    </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="FAST-REDIRECTS"
+></A
+>8.5.11. fast-redirects</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Fool some click-tracking scripts and speed up indirect links.</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    Detects redirection URLs and redirects the browser without contacting
+    the redirection server first.
    </P
+></DD
+><DT
+>Type:</DT
+><DD
 ><P
->    <A
-NAME="FILTER-BANNERS-BY-LINK"
-></A
->
-    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->+filter{banners-by-link}     # Kill banners by their links to known clicktrackers</PRE
-></TD
-></TR
-></TABLE
+>Parameterized.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+></P
+><UL
+><LI
+><P
+>      <SPAN
+CLASS="QUOTE"
+>"simple-check"</SPAN
+> to just search for the string <SPAN
+CLASS="QUOTE"
+>"http://"</SPAN
 >
+      to detect redirection URLs.
+     </P
+></LI
+><LI
+><P
+>      <SPAN
+CLASS="QUOTE"
+>"check-decoded-url"</SPAN
+> to decode URLs (if necessary) before searching
+      for redirection URLs.
+     </P
+></LI
+></UL
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>  
+    Many sites, like yahoo.com, don't just link to other sites. Instead, they
+    will link to some script on their own servers, giving the destination as a
+    parameter, which will then redirect you to the final target. URLs
+    resulting from this scheme typically look like:
+    <SPAN
+CLASS="QUOTE"
+>"http://www.example.org/click-tracker.cgi?target=http%3a//www.example.net/"</SPAN
+>.
+  </P
+><P
+>    Sometimes, there are even multiple consecutive redirects encoded in the
+    URL. These redirections via scripts make your web browsing more traceable,
+    since the server from which you follow such a link can see where you go
+    to. Apart from that, valuable bandwidth and time is wasted, while your
+    browser asks the server for one redirect after the other. Plus, it feeds
+    the advertisers.
    </P
 ><P
->    <A
-NAME="FILTER-WEBBUGS"
-></A
+>    This feature is currently not very smart and is scheduled for improvement.
+    If it is enabled by default, you will have to create some exceptions to
+    this action. It can lead to failures in several ways: 
+   </P
+><P
+>    Not every URLs with other URLs as parameters is evil.
+    Some sites offer a real service that requires this information to work.
+    For example a validation service needs to know, which document to validate.
+    <TT
+CLASS="LITERAL"
+>fast-redirects</TT
+> assumes that every URL parameter that
+    looks like another URL is a redirection target, and will always redirect to
+    the last one. Most of the time the assumption is correct, but if it isn't,
+    the user gets redirected anyway.
+   </P
+><P
+>    Another failure occurs if the URL contains other parameters after the URL parameter.
+    The URL:
+    <SPAN
+CLASS="QUOTE"
+>"http://www.example.org/?redirect=http%3a//www.example.net/&#38;foo=bar"</SPAN
+>.
+    contains the redirection URL <SPAN
+CLASS="QUOTE"
+>"http://www.example.net/"</SPAN
+>,
+    followed by another parameter. <TT
+CLASS="LITERAL"
+>fast-redirects</TT
+> doesn't know that
+    and will cause a redirect to <SPAN
+CLASS="QUOTE"
+>"http://www.example.net/&#38;foo=bar"</SPAN
+>.
+    Depending on the target server configuration, the parameter will be silently ignored
+    or lead to a <SPAN
+CLASS="QUOTE"
+>"page not found"</SPAN
+> error. It is possible to fix these redirected
+    requests with <TT
+CLASS="LITERAL"
+><A
+HREF="filter-file.html#FILTER-CLIENT-HEADERS"
+>filter-client-headers</A
+></TT
 >
-    <TABLE
+    but it requires a little effort.
+   </P
+><P
+>    To detect a redirection URL, <TT
+CLASS="LITERAL"
+>fast-redirects</TT
+> only
+    looks for the string <SPAN
+CLASS="QUOTE"
+>"http://"</SPAN
+>, either in plain text
+    (invalid but often used) or encoded as <SPAN
+CLASS="QUOTE"
+>"http%3a//"</SPAN
+>.
+    Some sites use their own URL encoding scheme, encrypt the address
+    of the target server or replace it with a database id. In theses cases
+    <TT
+CLASS="LITERAL"
+>fast-redirects</TT
+> is fooled and the request reaches the
+    redirection server where it probably gets logged.
+   </P
+></DD
+><DT
+>Example usage:</DT
+><DD
+><P
+>     <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -2349,18 +2786,14 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{webbugs}             # Squish WebBugs (1x1 invisible GIFs used for user tracking)</PRE
+>+fast-redirects{simple-check}</PRE
 ></TD
 ></TR
 ></TABLE
 >
-   </P
+    </P
 ><P
->    <A
-NAME="FILTER-TINY-TEXTFORMS"
-></A
->
-    <TABLE
+>     <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -2368,26 +2801,217 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{tiny-textforms}      # Extend those tiny textareas up to 40x80 and kill the hard wrap</PRE
+>+fast-redirects{check-decoded-url}</PRE
 ></TD
 ></TR
 ></TABLE
 >
-   </P
-><P
->    <A
-NAME="FILTER-JUMPING-WINDOWS"
-></A
->
-    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
+    </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="FILTER"
+></A
+>8.5.12. filter</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Get rid of HTML and JavaScript annoyances, banner advertisements (by size), do fun text replacements, etc.</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    All files of text-based type, most notably HTML and JavaScript, to which this
+    action applies, are filtered on-the-fly through the specified regular expression
+    based substitutions. (Note: as of version 3.0.3 plain text documents 
+    are exempted from filtering, because web servers often use the
+    <TT
+CLASS="LITERAL"
+>text/plain</TT
+> MIME type for all files whose type they
+    don't know.)
+   </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Parameterized.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    The name of a filter, as defined in the <A
+HREF="filter-file.html"
+>filter file</A
+>.
+    Filters can be defined in one or more  files as defined by the 
+    <TT
+CLASS="LITERAL"
+><A
+HREF="config.html#FILTERFILE"
+>filterfile</A
+></TT
+>
+    option in the <A
+HREF="config.html"
+>config file</A
+>. 
+    <TT
+CLASS="FILENAME"
+>default.filter</TT
+> is the collection of filters 
+    supplied by the developers. Locally defined filters should go 
+    in their own file, such as <TT
+CLASS="FILENAME"
+>user.filter</TT
+>.
+   </P
+><P
+>     When used in its negative form,
+     and without parameters, filtering is completely disabled.
+  </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    For your convenience, there are a number of pre-defined filters available 
+    in the distribution filter file that you can use. See the examples below for
+    a list.
+   </P
+><P
+>    Filtering requires buffering the page content, which may appear to
+    slow down page rendering since nothing is displayed until all content has
+    passed the filters. (It does not really take longer, but seems that way
+    since the page is not incrementally displayed.) This effect will be more
+    noticeable on slower connections.
+   </P
+><P
+>    This is very powerful feature, and <SPAN
+CLASS="QUOTE"
+>"rolling your own"</SPAN
+>
+    filters requires a knowledge of regular expressions and HTML.
+   </P
+><P
+>    The amount of data that can be filtered is limited to the 
+    <TT
+CLASS="LITERAL"
+><A
+HREF="config.html#BUFFER-LIMIT"
+>buffer-limit</A
+></TT
+>
+    option in the main <A
+HREF="config.html"
+>config file</A
+>. The 
+    default is 4096 KB (4 Megs). Once this limit is exceeded, the buffered
+    data, and all pending data, is passed through unfiltered. 
+   </P
+><P
+>    Inadequate MIME types, such as zipped files, are not filtered at all.
+    (Again, only text-based types except plain text). Encrypted SSL data
+    (from HTTPS servers) cannot be filtered either, since this would violate
+    the integrity of the secure transaction. In some situations it might
+    be necessary to protect certain text, like source code, from filtering
+    by defining appropriate <TT
+CLASS="LITERAL"
+>-filter</TT
+> sections.
+   </P
+><P
+>    At this time, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> cannot (yet!) uncompress compressed
+    documents. If you want filtering to work on all documents, even those that
+    would normally be sent compressed, use the
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#PREVENT-COMPRESSION"
+>prevent-compression</A
+></TT
+>
+    action in conjunction with <TT
+CLASS="LITERAL"
+>filter</TT
+>.
+   </P
+><P
+>    Filtering can achieve some of the same effects as the 
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#BLOCK"
+>block</A
+></TT
+>
+    action, i.e. it can be used to block ads and banners. But the mechanism 
+    works quite differently. One effective use, is to block ad banners 
+    based on their size (see below), since many of these seem to be somewhat 
+    standardized.
+   </P
+><P
+>    <A
+HREF="contact.html"
+>Feedback</A
+> with suggestions for new or
+    improved filters is particularly welcome!
+   </P
+><P
+>    The below list has only the names and a one-line description of each
+    predefined filter. There are <A
+HREF="filter-file.html#PREDEFINED-FILTERS"
+>more
+    verbose explanations</A
+> of what these filters do in the <A
+HREF="filter-file.html"
+>filter file chapter</A
+>.
+   </P
+></DD
+><DT
+>Example usage (with filters from the distribution <TT
+CLASS="FILENAME"
+>default.filter</TT
+> file).
+  See <A
+HREF="filter-file.html#PREDEFINED-FILTERS"
+>the Predefined Filters section</A
+> for 
+  more explanation on each:</DT
+><DD
+><P
+>    <A
+NAME="FILTER-JS-ANNOYANCES"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{jumping-windows}     # Prevent windows from resizing and moving themselves</PRE
+>+filter{js-annoyances}       # Get rid of particularly annoying JavaScript abuse</PRE
 ></TD
 ></TR
 ></TABLE
@@ -2395,7 +3019,7 @@ CLASS="SCREEN"
    </P
 ><P
 >    <A
-NAME="FILTER-FRAMESET-BORDERS"
+NAME="FILTER-JS-EVENTS"
 ></A
 >
     <TABLE
@@ -2406,7 +3030,7 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{frameset-borders}    # Give frames a border and make them resizable</PRE
+>+filter{js-events}           # Kill all JS event bindings (Radically destructive! Only for extra nasty sites)</PRE
 ></TD
 ></TR
 ></TABLE
@@ -2414,7 +3038,7 @@ CLASS="SCREEN"
    </P
 ><P
 >    <A
-NAME="FILTER-DEMORONIZER"
+NAME="FILTER-HTML-ANNOYANCES"
 ></A
 >
     <TABLE
@@ -2425,7 +3049,7 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{demoronizer}         # Fix MS's non-standard use of standard charsets</PRE
+>+filter{html-annoyances}     # Get rid of particularly annoying HTML abuse</PRE
 ></TD
 ></TR
 ></TABLE
@@ -2433,7 +3057,7 @@ CLASS="SCREEN"
    </P
 ><P
 >    <A
-NAME="FILTER-SHOCKWAVE-FLASH"
+NAME="FILTER-CONTENT-COOKIES"
 ></A
 >
     <TABLE
@@ -2444,7 +3068,7 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{shockwave-flash}     # Kill embedded Shockwave Flash objects</PRE
+>+filter{content-cookies}     # Kill cookies that come in the HTML or JS content</PRE
 ></TD
 ></TR
 ></TABLE
@@ -2452,7 +3076,7 @@ CLASS="SCREEN"
    </P
 ><P
 >    <A
-NAME="FILTER-QUICKTIME-KIOSKMODE"
+NAME="FILTER-REFRESH-TAGS"
 ></A
 >
     <TABLE
@@ -2463,18 +3087,785 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{quicktime-kioskmode} # Make Quicktime movies saveable</PRE
+>+filter{refresh-tags}        # Kill automatic refresh tags (for dial-on-demand setups)</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-UNSOLICITED-POPUPS"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{unsolicited-popups}  # Disable only unsolicited pop-up windows</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-ALL-POPUPS"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{all-popups}          # Kill all popups in JavaScript and HTML</PRE
 ></TD
 ></TR
 ></TABLE
 >
    </P
 ><P
->    <A
-NAME="FILTER-FUN"
-></A
->
-    <TABLE
+>    <A
+NAME="FILTER-IMG-REORDER"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{img-reorder}         # Reorder attributes in &#60;img&#62; tags to make the banners-by-* filters more effective</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-BANNERS-BY-SIZE"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{banners-by-size}     # Kill banners by size</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-BANNERS-BY-LINK"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{banners-by-link}     # Kill banners by their links to known clicktrackers</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-WEBBUGS"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{webbugs}             # Squish WebBugs (1x1 invisible GIFs used for user tracking)</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-TINY-TEXTFORMS"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{tiny-textforms}      # Extend those tiny textareas up to 40x80 and kill the hard wrap</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-JUMPING-WINDOWS"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{jumping-windows}     # Prevent windows from resizing and moving themselves</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-FRAMESET-BORDERS"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{frameset-borders}    # Give frames a border and make them resizable</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-DEMORONIZER"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{demoronizer}         # Fix MS's non-standard use of standard charsets</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-SHOCKWAVE-FLASH"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{shockwave-flash}     # Kill embedded Shockwave Flash objects</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-QUICKTIME-KIOSKMODE"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{quicktime-kioskmode} # Make Quicktime movies saveable</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-FUN"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{fun}                 # Text replacements for subversive browsing fun!</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-CRUDE-PARENTAL"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{crude-parental}      # Crude parental filtering (demo only)</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+><P
+>    <A
+NAME="FILTER-IE-EXPLOITS"
+></A
+>
+    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+filter{ie-exploits}         # Disable some known Internet Explorer bug exploits</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="FORCE-TEXT-MODE"
+></A
+>8.5.13. force-text-mode</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Force <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to treat a document as if it was in some kind of <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>text</I
+></SPAN
+> format.   </P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    Declares a document as text, even if the <SPAN
+CLASS="QUOTE"
+>"Content-Type:"</SPAN
+> isn't detected as such.
+   </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Boolean.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    N/A
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    As explained <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#FILTER"
+>above</A
+></TT
+>,
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> tries to only filter files that are
+    in some kind of text format. The same restrictions apply to
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#CONTENT-TYPE-OVERWRITE"
+>content-type-overwrite</A
+></TT
+>.
+    <TT
+CLASS="LITERAL"
+>force-text-mode</TT
+> declares a document as text,
+    without looking at the <SPAN
+CLASS="QUOTE"
+>"Content-Type:"</SPAN
+> first.
+   </P
+><DIV
+CLASS="WARNING"
+><P
+></P
+><TABLE
+CLASS="WARNING"
+BORDER="1"
+WIDTH="90%"
+><TR
+><TD
+ALIGN="CENTER"
+><B
+>Warning</B
+></TD
+></TR
+><TR
+><TD
+ALIGN="LEFT"
+><P
+>     Think twice before activating this action. Filtering binary data
+     with regular expressions can cause file damage.
+    </P
+></TD
+></TR
+></TABLE
+></DIV
+></DD
+><DT
+>Example usage:</DT
+><DD
+><P
+>     <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+force-text-mode
+     </PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="HANDLE-AS-EMPTY-DOCUMENT"
+></A
+>8.5.14. handle-as-empty-document</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Mark URLs that should be replaced by empty documents <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>if they get blocked</I
+></SPAN
+></P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    This action alone doesn't do anything noticeable. It just marks URLs.
+    If the <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#BLOCK"
+>block</A
+></TT
+> action <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>also applies</I
+></SPAN
+>,
+    the presence or absence of this mark decides whether an HTML <SPAN
+CLASS="QUOTE"
+>"blocked"</SPAN
+>
+    page, or an empty document will be sent to the client as a substitute for the blocked content.
+    The <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>empty</I
+></SPAN
+> document isn't literally empty, but actually contains a single space.
+   </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Boolean.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    N/A
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    Some browsers complain about syntax errors if JavaScript documents
+    are blocked with <SPAN
+CLASS="APPLICATION"
+>Privoxy's</SPAN
+>
+    default HTML page; this option can be used to silence them.
+   </P
+><P
+>    The content type for the empty document can be specified with
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#CONTENT-TYPE-OVERWRITE"
+>content-type-overwrite{}</A
+></TT
+>,
+    but usually this isn't necessary.
+   </P
+></DD
+><DT
+>Example usage:</DT
+><DD
+><P
+>     <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 +handle-as-empty-document}
+example.org/.*\.js$
+     </PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="HANDLE-AS-IMAGE"
+></A
+>8.5.15. handle-as-image</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Mark URLs as belonging to images (so they'll be replaced by imagee <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>if they get blocked</I
+></SPAN
+>)</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    This action alone doesn't do anything noticeable. It just marks URLs as images.
+    If the <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#BLOCK"
+>block</A
+></TT
+> action <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>also applies</I
+></SPAN
+>,
+    the presence or absence of this mark decides whether an HTML <SPAN
+CLASS="QUOTE"
+>"blocked"</SPAN
+>
+    page, or a replacement image (as determined by the <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#SET-IMAGE-BLOCKER"
+>set-image-blocker</A
+></TT
+> action) will be sent to the
+    client as a substitute for the blocked content.
+   </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Boolean.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    N/A
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    The below generic example section is actually part of <TT
+CLASS="FILENAME"
+>default.action</TT
+>.
+    It marks all URLs with well-known image file name extensions as images and should
+    be left intact. 
+   </P
+><P
+>    Users will probably only want to use the handle-as-image action in conjunction with
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#BLOCK"
+>block</A
+></TT
+>, to block sources of banners, whose URLs don't
+    reflect the file type, like in the second example section.
+   </P
+><P
+>    Note that you cannot treat HTML pages as images in most cases. For instance, (in-line) ad
+    frames require an HTML page to be sent, or they won't display properly.
+    Forcing <TT
+CLASS="LITERAL"
+>handle-as-image</TT
+> in this situation will not replace the
+    ad frame with an image, but lead to error messages.
+   </P
+></DD
+><DT
+>Example usage (sections):</DT
+><DD
+><P
+>     <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><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 +handle-as-image}
+some.nasty-banner-server.com/junk.cgi?output=trash
+
+# Banner source! Who cares if they also have non-image content?
+ad.doubleclick.net </PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="HIDE-ACCEPT-LANGUAGE"
+></A
+>8.5.16. hide-accept-language</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Pretend to use different language settings.</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    Deletes or replaces the <SPAN
+CLASS="QUOTE"
+>"Accept-Language:"</SPAN
+> HTTP header in client requests.
+   </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Parameterized.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    Keyword: <SPAN
+CLASS="QUOTE"
+>"block"</SPAN
+>, or any user defined value.
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    Faking the browser's language settings can be useful to make a
+    foreign User-Agent set with
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HIDE-USER-AGENT"
+>hide-user-agent</A
+></TT
+>
+    more believable.
+   </P
+><P
+>    However some sites with content in different languages check the
+    <SPAN
+CLASS="QUOTE"
+>"Accept-Language:"</SPAN
+> to decide which one to take by default.
+    Sometimes it isn't possible to later switch to another language without
+    changing the <SPAN
+CLASS="QUOTE"
+>"Accept-Language:"</SPAN
+> header first.
+   </P
+><P
+>    Therefore it's a good idea to either only change the
+    <SPAN
+CLASS="QUOTE"
+>"Accept-Language:"</SPAN
+> header to languages you understand,
+    or to languages that aren't wide spread.
+   </P
+><P
+>    Before setting the <SPAN
+CLASS="QUOTE"
+>"Accept-Language:"</SPAN
+> header
+    to a rare language, you should consider that it helps to
+    make your requests unique and thus easier to trace.
+    If you don't plan to change this header frequently,
+    you should stick to a common language. 
+   </P
+></DD
+><DT
+>Example usage (section):</DT
+><DD
+><P
+>     <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -2482,37 +3873,116 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{fun}                 # Text replacements for subversive browsing fun!</PRE
+># 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
 >
    </P
-><P
->    <A
-NAME="FILTER-CRUDE-PARENTAL"
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="HIDE-CONTENT-DISPOSITION"
 ></A
->
-    <TABLE
-BORDER="0"
-BGCOLOR="#E0E0E0"
-WIDTH="90%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->+filter{crude-parental}      # Crude parental filtering (demo only)</PRE
-></TD
-></TR
-></TABLE
->
+>8.5.17. hide-content-disposition</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Prevent download menus for content you prefer to view inside the browser.</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    Deletes or replaces the <SPAN
+CLASS="QUOTE"
+>"Content-Disposition:"</SPAN
+> HTTP header set by some servers.
    </P
+></DD
+><DT
+>Type:</DT
+><DD
 ><P
->    <A
-NAME="FILTER-IE-EXPLOITS"
-></A
->
-    <TABLE
+>Parameterized.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    Keyword: <SPAN
+CLASS="QUOTE"
+>"block"</SPAN
+>, or any user defined value.
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    Some servers set the <SPAN
+CLASS="QUOTE"
+>"Content-Disposition:"</SPAN
+> HTTP header for
+    documents they assume you want to save locally before viewing them.
+    The <SPAN
+CLASS="QUOTE"
+>"Content-Disposition:"</SPAN
+> header contains the file name
+    the browser is supposed to use by default.
+   </P
+><P
+>    In most browsers that understand this header, it makes it impossible to
+    <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>just view</I
+></SPAN
+> the document, without downloading it first,
+    even if it's just a simple text file or an image.
+   </P
+><P
+>    Removing the <SPAN
+CLASS="QUOTE"
+>"Content-Disposition:"</SPAN
+> header helps
+    to prevent this annoyance, but some browsers additionally check the
+    <SPAN
+CLASS="QUOTE"
+>"Content-Type:"</SPAN
+> header, before they decide if they can
+    display a document without saving it first. In these cases, you have
+    to change this header as well, before the browser stops displaying
+    download menus.
+   </P
+><P
+>    It is also possible to change the server's file name suggestion
+    to another one, but in most cases it isn't worth the time to set
+    it up.
+   </P
+></DD
+><DT
+>Example usage:</DT
+><DD
+><P
+>     <TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -2520,7 +3990,11 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+filter{ie-exploits}         # Disable some known Internet Explorer bug exploits</PRE
+># 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
@@ -2535,9 +4009,9 @@ CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
-NAME="HANDLE-AS-IMAGE"
->8.5.9. handle-as-image</A
-></H4
+NAME="HIDE-IF-MODIFIED-SINCE"
+></A
+>8.5.18. hide-if-modified-since</H4
 ><P
 ></P
 ><DIV
@@ -2547,93 +4021,90 @@ CLASS="VARIABLELIST"
 >Typical use:</DT
 ><DD
 ><P
->Mark URLs as belonging to images (so they'll be replaced by images <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->if they get blocked</I
-></SPAN
->)</P
+>Prevent yet another way to track the user's steps between sessions.</P
 ></DD
 ><DT
 >Effect:</DT
 ><DD
 ><P
->    This action alone doesn't do anything noticeable. It just marks URLs as images.
-    If the <VAR
-CLASS="LITERAL"
-><A
-HREF="actions-file.html#BLOCK"
->block</A
-></VAR
-> action <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->also applies</I
-></SPAN
->,
-    the presence or absence of this mark decides whether an HTML <SPAN
+>    Deletes the <SPAN
 CLASS="QUOTE"
->"blocked"</SPAN
->
-    page, or a replacement image (as determined by the <VAR
-CLASS="LITERAL"
-><A
-HREF="actions-file.html#SET-IMAGE-BLOCKER"
->set-image-blocker</A
-></VAR
-> action) will be sent to the
-    client as a substitute for the blocked content.
+>"If-Modified-Since:"</SPAN
+> HTTP client header or modifies its value. 
    </P
 ></DD
 ><DT
 >Type:</DT
 ><DD
 ><P
->Boolean.</P
+>Parameterized.</P
 ></DD
 ><DT
 >Parameter:</DT
 ><DD
 ><P
->    N/A
+>    Keyword: <SPAN
+CLASS="QUOTE"
+>"block"</SPAN
+>, or a user defined value that specifies a range of hours.
    </P
 ></DD
 ><DT
 >Notes:</DT
 ><DD
 ><P
->    The below generic example section is actually part of <TT
-CLASS="FILENAME"
->default.action</TT
->.
-    It marks all URLs with well-known image file name extensions as images and should
-    be left intact. 
+>    Removing this header is useful for filter testing, where you want to force a real
+    reload instead of getting status code <SPAN
+CLASS="QUOTE"
+>"304"</SPAN
+>, which would cause the
+    browser to use a cached copy of the page.
    </P
 ><P
->    Users will probably only want to use the handle-as-image action in conjunction with
-    <VAR
+>    Instead of removing the header, <TT
+CLASS="LITERAL"
+>hide-if-modified-since</TT
+> can
+    also add or substract a random amount of time to/from the headers value.
+    You specify a range of hours were the random factor should be chosen from and
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> does the rest. A negative value means
+    subtracting, a positive value adding.
+   </P
+><P
+>    Randomizing the value of the <SPAN
+CLASS="QUOTE"
+>"If-Modified-Since:"</SPAN
+> makes
+    sure it isn't used as a cookie replacement, but you will run into
+    caching problems if the random range is too high.  
+   </P
+><P
+>    It is a good idea to only use a small negative value and let
+    <TT
 CLASS="LITERAL"
 ><A
-HREF="actions-file.html#BLOCK"
->block</A
-></VAR
->, to block sources of banners, whose URLs don't
-    reflect the file type, like in the second example section.
+HREF="actions-file.html#OVERWRITE-LAST-MODIFIED"
+>overwrite-last-modified</A
+></TT
+>
+    handle the greater changes.
    </P
 ><P
->    Note that you cannot treat HTML pages as images in most cases. For instance, (in-line) ad
-    frames require an HTML page to be sent, or they won't display properly.
-    Forcing <VAR
+>    It is also recommended to use this action together with
+    <TT
 CLASS="LITERAL"
->handle-as-image</VAR
-> in this situation will not replace the
-    ad frame with an image, but lead to error messages.
+><A
+HREF="actions-file.html#CRUNCH-IF-NONE-MATCH"
+>crunch-if-none-match</A
+></TT
+>.
    </P
 ></DD
 ><DT
->Example usage (sections):</DT
+>Example usage (section):</DT
 ><DD
 ><P
 >     <TABLE
@@ -2644,19 +4115,11 @@ WIDTH="90%"
 ><TD
 ><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 +handle-as-image}
-some.nasty-banner-server.com/junk.cgi?output=trash
-
-# Banner source! Who cares if they also have non-image content?
-ad.doubleclick.net </PRE
+># Let the browser revalidate without being tracked across sessions
+{+hide-if-modified-since {-1}\
++overwrite-last-modified {randomize}\
++crunch-if-none-match}
+/</PRE
 ></TD
 ></TR
 ></TABLE
@@ -2672,8 +4135,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="HIDE-FORWARDED-FOR-HEADERS"
->8.5.10. hide-forwarded-for-headers</A
-></H4
+></A
+>8.5.19. hide-forwarded-for-headers</H4
 ><P
 ></P
 ><DIV
@@ -2753,8 +4216,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="HIDE-FROM-HEADER"
->8.5.11. hide-from-header</A
-></H4
+></A
+>8.5.20. hide-from-header</H4
 ><P
 ></P
 ><DIV
@@ -2801,12 +4264,12 @@ CLASS="QUOTE"
 CLASS="QUOTE"
 >"block"</SPAN
 > will completely remove the header 
-    (not to be confused with the <VAR
+    (not to be confused with the <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 >
     action).
    </P
@@ -2864,8 +4327,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="HIDE-REFERRER"
->8.5.12. hide-referrer</A
-></H4
+></A
+>8.5.21. hide-referrer</H4
 ><A
 NAME="HIDE-REFERER"
 ></A
@@ -2907,8 +4370,15 @@ CLASS="QUOTE"
 ><P
 ><SPAN
 CLASS="QUOTE"
+>"conditional-block"</SPAN
+> to delete the header completely if the host has changed.</P
+></LI
+><LI
+><P
+><SPAN
+CLASS="QUOTE"
 >"block"</SPAN
-> to delete the header completely.</P
+> to delete the header unconditionally.</P
 ></LI
 ><LI
 ><P
@@ -2927,40 +4397,62 @@ CLASS="QUOTE"
 >Notes:</DT
 ><DD
 ><P
->    <SPAN
+>    <TT
+CLASS="LITERAL"
+>conditional-block</TT
+> is the only parameter,
+    that isn't easily detected in the server's log file. If it blocks the
+    referrer, the request will look like the visitor used a bookmark or
+    typed in the address directly.
+   </P
+><P
+>    Leaving the referrer unmodified for requests on the same host
+    allows the server owner to see the visitor's <SPAN
 CLASS="QUOTE"
->"forge"</SPAN
-> is the preferred option here, since some servers will
-    not send images back otherwise, in an attempt to prevent their valuable
-    content from being embedded elsewhere (and hence, without being surrounded
-    by <SPAN
-CLASS="emphasis"
-><I
-CLASS="EMPHASIS"
->their</I
-></SPAN
-> banners).
+>"click path"</SPAN
+>,
+    but in most cases she could also get that information by comparing
+    other parts of the log file: for example the User-Agent if it isn't
+    a very common one, or the user's IP address if it doesn't change between
+    different requests.
+   </P
+><P
+>    Always blocking the referrer, or using a custom one, can lead to
+    failures on servers that check the referrer before they answer any
+    requests, in an attempt to prevent their valuable content from being
+    embedded or linked to elsewhere.
+   </P
+><P
+>    Both <TT
+CLASS="LITERAL"
+>conditional-block</TT
+> and <TT
+CLASS="LITERAL"
+>forge</TT
+>
+    will work with referrer checks, as long as content and valid referring page
+    are on the same host. Most of the time that's the case.
    </P
 ><P
 >  
-   <VAR
+    <TT
 CLASS="LITERAL"
->hide-referer</VAR
+>hide-referer</TT
 > is an alternate spelling of
-   <VAR
+    <TT
 CLASS="LITERAL"
->hide-referrer</VAR
+>hide-referrer</TT
 > and the two can be can be freely
-   substituted with each other. (<SPAN
+    substituted with each other. (<SPAN
 CLASS="QUOTE"
 >"referrer"</SPAN
 > is the
-   correct English spelling, however the HTTP specification has a bug - it
-   requires it to be spelled as <SPAN
+    correct English spelling, however the HTTP specification has a bug - it
+    requires it to be spelled as <SPAN
 CLASS="QUOTE"
 >"referer"</SPAN
 >.) 
-  </P
+   </P
 ></DD
 ><DT
 >Example usage:</DT
@@ -3003,8 +4495,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="HIDE-USER-AGENT"
->8.5.13. hide-user-agent</A
-></H4
+></A
+>8.5.22. hide-user-agent</H4
 ><P
 ></P
 ><DIV
@@ -3062,20 +4554,17 @@ ALIGN="CENTER"
 ><TD
 ALIGN="LEFT"
 ><P
->     This breaks many web sites that depend on looking at this header in order
-     to customize their content for different browsers (which, by the
+>     This can lead to problems on web sites that depend on looking at this header in
+     order to customize their content for different browsers (which, by the
      way, is <SPAN
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
 >NOT</I
 ></SPAN
-> a <A
-HREF="http://www.javascriptkit.com/javaindex.shtml"
-TARGET="_top"
->smart way to do
-     that</A
->!).
+> the right thing to do: good web sites
+     work browser-independently). 
+     
     </P
 ></TD
 ></TR
@@ -3110,14 +4599,87 @@ CLASS="APPLICATION"
     (Must be just a silly MS goof, I'm sure :-).
    </P
 ><P
->    This action is scheduled for improvement.
+>    This action is scheduled for improvement.
+   </P
+></DD
+><DT
+>Example usage:</DT
+><DD
+><P
+>     <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+hide-user-agent{Netscape 6.1 (X11; I; Linux 2.4.18 i686)}</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="INSPECT-JPEGS"
+></A
+>8.5.23. inspect-jpegs</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>To protect against the MS buffer over-run in JPEG processing</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    To protect against a known exploit
+   </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Boolean.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    N/A
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    See Microsoft Security Bulletin MS04-028. JPEG images are one of the most 
+    common image types found across the Internet. The exploit as described can 
+    allow execution of code on the target system, giving an attacker access 
+    to the system in question by merely planting an altered JPEG image, which 
+    would have no obvious indications of what lurks inside. This action
+    prevents unwanted intrusion.
    </P
 ></DD
 ><DT
 >Example usage:</DT
 ><DD
 ><P
->     <TABLE
+><TABLE
 BORDER="0"
 BGCOLOR="#E0E0E0"
 WIDTH="90%"
@@ -3125,12 +4687,11 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+hide-user-agent{Netscape 6.1 (X11; I; Linux 2.4.18 i686)}</PRE
+>+inspect-jpegs</PRE
 ></TD
 ></TR
 ></TABLE
->
-   </P
+></P
 ></DD
 ></DL
 ></DIV
@@ -3141,9 +4702,9 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="KILL-POPUPS"
->8.5.14. kill-popups<A
-NAME="KILL-POPUP"
 ></A
+>8.5.24. kill-popups<A
+NAME="KILL-POPUP"
 ></A
 ></H4
 ><P
@@ -3183,72 +4744,78 @@ CLASS="VARIABLELIST"
 ><DD
 ><P
 >    This action is basically a built-in, hardwired special-purpose filter
-    action, but there are important differences: For <VAR
+    action, but there are important differences: For <TT
 CLASS="LITERAL"
->kill-popups</VAR
+>kill-popups</TT
 >,
     the document need not be buffered, so it can be incrementally rendered while
-    downloading. But <VAR
+    downloading. But <TT
 CLASS="LITERAL"
->kill-popups</VAR
+>kill-popups</TT
 > doesn't catch as many pop-ups as
-    <VAR
+    <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER-ALL-POPUPS"
->filter{<VAR
+>filter{<TT
 CLASS="REPLACEABLE"
->all-popups</VAR
+><I
+>all-popups</I
+></TT
 >}</A
-></VAR
+></TT
 >
-    does and is not as smart as <VAR
+    does and is not as smart as <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER-UNSOLICITED-POPUPS"
->filter{<VAR
+>filter{<TT
 CLASS="REPLACEABLE"
->unsolicited-popups</VAR
+><I
+>unsolicited-popups</I
+></TT
 >}</A
 >
-    </VAR
+    </TT
 >is.
    </P
 ><P
 >    Think of it as a fast and efficient replacement for a filter that you
     can use if you don't want any filtering at all. Note that it doesn't make
-    sense to combine it with any <VAR
+    sense to combine it with any <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER"
 >filter</A
-></VAR
+></TT
 > action,
-    since as soon as one <VAR
+    since as soon as one <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER"
 >filter</A
-></VAR
+></TT
 > applies,
     the whole document needs to be buffered anyway, which destroys the advantage of
-    the <VAR
+    the <TT
 CLASS="LITERAL"
->kill-popups</VAR
+>kill-popups</TT
 > action over its filter equivalent.
    </P
 ><P
 >    Killing all pop-ups unconditionally is problematic. Many shops and banks rely on
-    pop-ups to display forms, shopping carts etc, and the <VAR
+    pop-ups to display forms, shopping carts etc, and the <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER-UNSOLICITED-POPUPS"
->filter{<VAR
+>filter{<TT
 CLASS="REPLACEABLE"
->unsolicited-popups</VAR
+><I
+>unsolicited-popups</I
+></TT
 >}</A
 >
-    </VAR
+    </TT
 > does a fairly good job of catching only the unwanted ones.
    </P
 ><P
@@ -3261,15 +4828,17 @@ CLASS="EMPHASIS"
 ></SPAN
 > windows that appear when you close an other
     one), you might want to use
-    <VAR
+    <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER"
 >filter</A
->{<VAR
+>{<TT
 CLASS="REPLACEABLE"
->js-annoyances</VAR
->}</VAR
+><I
+>js-annoyances</I
+></TT
+>}</TT
 >
     instead. 
    </P
@@ -3301,8 +4870,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="LIMIT-CONNECT"
->8.5.15. limit-connect</A
-></H4
+></A
+>8.5.25. limit-connect</H4
 ><P
 ></P
 ><DIV
@@ -3315,7 +4884,7 @@ CLASS="VARIABLELIST"
 >Prevent abuse of <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> as a TCP proxy relay</P
+> as a TCP proxy relay or disable SSL for untrusted sites</P
 ></DD
 ><DT
 >Effect:</DT
@@ -3334,47 +4903,355 @@ CLASS="APPLICATION"
 >Parameter:</DT
 ><DD
 ><P
->    A comma-separated list of ports or port ranges (the latter using dashes, with the minimum
-    defaulting to 0 and the maximum to 65K).
+>    A comma-separated list of ports or port ranges (the latter using dashes, with the minimum
+    defaulting to 0 and the maximum to 65K).
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    By default, i.e. if no <TT
+CLASS="LITERAL"
+>limit-connect</TT
+> action applies,
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> only allows HTTP CONNECT
+    requests to port 443 (the standard, secure HTTPS port). Use 
+    <TT
+CLASS="LITERAL"
+>limit-connect</TT
+> if more fine-grained control is desired
+    for some or all destinations.
+   </P
+><P
+>    The CONNECT methods exists in HTTP to allow access to secure websites
+    (<SPAN
+CLASS="QUOTE"
+>"https://"</SPAN
+> URLs) through proxies. It works very simply:
+    the proxy connects to the server on the specified port, and then
+    short-circuits its connections to the client and to the remote server.
+    This can be a big security hole, since CONNECT-enabled proxies can be
+    abused as TCP relays very easily.
+  </P
+><P
+>   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> relays HTTPS traffic without seeing
+   the decoded content. Websites can leverage this limitation to circumvent Privoxy's
+   filters. By specifying an invalid port range you can disable HTTPS entirely.
+   If you plan to disable SSL by default, consider enabling 
+   <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS"
+>treat-forbidden-connects-like-blocks</A
+></TT
+>
+   as well, to be able to quickly create exceptions.
+  </P
+></DD
+><DT
+>Example usages:</DT
+><DD
+><P
+>     <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+limit-connect{443}                   # This is the default and need not be specified.
++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 traffic is allowed</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="PREVENT-COMPRESSION"
+></A
+>8.5.26. prevent-compression</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>    Ensure that servers send the content uncompressed, so it can be
+    passed through <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#FILTER"
+>filter</A
+></TT
+>s.
+   </P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    Removes the Accept-Encoding header which can be used to ask for compressed transfer.
+   </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Boolean.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    N/A
+   </P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    More and more websites send their content compressed by default, which
+    is generally a good idea and saves bandwidth. But for the <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#FILTER"
+>filter</A
+></TT
+>, <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#DEANIMATE-GIFS"
+>deanimate-gifs</A
+></TT
+>
+    and <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#KILL-POPUPS"
+>kill-popups</A
+></TT
+> actions to work,
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> needs access to the  uncompressed data.
+    Unfortunately, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> can't yet(!)  uncompress, filter, and
+    re-compress the content on the fly. So if you want to ensure that all websites, including
+    those that normally compress, can be filtered, you need to use this action.
+   </P
+><P
+>    This will slow down transfers from those websites, though. If you use any of the above-mentioned
+    actions, you will typically want to use <TT
+CLASS="LITERAL"
+>prevent-compression</TT
+> in conjunction
+    with them.
+   </P
+><P
+>    Note that some (rare) ill-configured sites don't handle requests for uncompressed
+    documents correctly (they send an empty document body). If you use <TT
+CLASS="LITERAL"
+>prevent-compression</TT
+>
+    per default, you'll have to add exceptions for those sites. See the example for how to do that.
+   </P
+></DD
+><DT
+>Example usage (sections):</DT
+><DD
+><P
+>    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+># Set default:
+#
+{+prevent-compression}
+/ # Match all sites
+
+# Make exceptions for ill sites:
+#
+{-prevent-compression}
+www.debianhelp.org
+www.pclinuxonline.com</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="OVERWRITE-LAST-MODIFIED"
+></A
+>8.5.27. overwrite-last-modified</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Prevent yet another way to track the user's steps between sessions.</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    Deletes the <SPAN
+CLASS="QUOTE"
+>"Last-Modified:"</SPAN
+> HTTP server header or modifies its value. 
+   </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Parameterized.</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>    One of the keywords: <SPAN
+CLASS="QUOTE"
+>"block"</SPAN
+>, <SPAN
+CLASS="QUOTE"
+>"reset-to-request-time"</SPAN
+>
+    and <SPAN
+CLASS="QUOTE"
+>"randomize"</SPAN
+>
    </P
 ></DD
 ><DT
 >Notes:</DT
 ><DD
 ><P
->    By default, i.e. if no <VAR
-CLASS="LITERAL"
->limit-connect</VAR
-> action applies,
+>    Removing the <SPAN
+CLASS="QUOTE"
+>"Last-Modified:"</SPAN
+> header is useful for filter
+    testing, where you want to force a real reload instead of getting status
+    code <SPAN
+CLASS="QUOTE"
+>"304"</SPAN
+>, which would cause the browser to reuse the old
+    version of the page.
+   </P
+><P
+>    The <SPAN
+CLASS="QUOTE"
+>"randomize"</SPAN
+> option overwrites the value of the
     <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> only allows HTTP CONNECT
-    requests to port 443 (the standard, secure HTTPS port). Use 
-    <VAR
+CLASS="QUOTE"
+>"Last-Modified:"</SPAN
+> header with a randomly chosen time
+    between the original value and the current time. In theory the server
+    could send each document with a different <SPAN
+CLASS="QUOTE"
+>"Last-Modified:"</SPAN
+>
+    header to track visits without using cookies. <SPAN
+CLASS="QUOTE"
+>"Randomize"</SPAN
+>
+    makes it impossible and the browser can still revalidate cached documents. 
+   </P
+><P
+>    <SPAN
+CLASS="QUOTE"
+>"reset-to-request-time"</SPAN
+> overwrites the value of the
+    <SPAN
+CLASS="QUOTE"
+>"Last-Modified:"</SPAN
+> header with the current time. You could use
+    this option together with
+    <TT
 CLASS="LITERAL"
->limit-connect</VAR
-> if more fine-grained control is desired
-    for some or all destinations.
+><A
+HREF="actions-file.html#HIDE-IF-MODIFIED-SINCE"
+>hided-if-modified-since</A
+></TT
+>
+    to further customize your random range.
    </P
 ><P
->    The CONNECT methods exists in HTTP to allow access to secure websites
-    (<SPAN
+>    The preferred parameter here is <SPAN
 CLASS="QUOTE"
->"https://"</SPAN
-> URLs) through proxies. It works very simply:
-    the proxy connects to the server on the specified port, and then
-    short-circuits its connections to the client and to the remote server.
-    This can be a big security hole, since CONNECT-enabled proxies can be
-    abused as TCP relays very easily.
-  </P
+>"randomize"</SPAN
+>. It is safe
+    to use, as long as the time settings are more or less correct.
+    If the server sets the <SPAN
+CLASS="QUOTE"
+>"Last-Modified:"</SPAN
+> header to the time
+    of the request, the random range becomes zero and the value stays the same.
+    Therefore you should later randomize it a second time with
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HIDE-IF-MODIFIED-SINCE"
+>hided-if-modified-since</A
+></TT
+>,
+    just to be sure. 
+   </P
 ><P
->   If you don't know what any of this means, there probably is no reason to 
-   change this one, since the default is already very restrictive.
-  </P
+>    It is also recommended to use this action together with
+    <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#CRUNCH-IF-NONE-MATCH"
+>crunch-if-none-match</A
+></TT
+>.
+   </P
 ></DD
 ><DT
->Example usages:</DT
+>Example usage:</DT
 ><DD
 ><P
 >     <TABLE
@@ -3385,10 +5262,11 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->+limit-connect{443}                   # This is the default and need not be specified.
-+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 (gaping security hole!)</PRE
+># Let the browser revalidate without being tracked across sessions
+{+hide-if-modified-since {-1}\
++overwrite-last-modified {randomize}\
++crunch-if-none-match}
+/</PRE
 ></TD
 ></TR
 ></TABLE
@@ -3403,9 +5281,9 @@ CLASS="SECT3"
 ><H4
 CLASS="SECT3"
 ><A
-NAME="PREVENT-COMPRESSION"
->8.5.16. prevent-compression</A
-></H4
+NAME="REDIRECT"
+></A
+>8.5.28. redirect</H4
 ><P
 ></P
 ><DIV
@@ -3415,91 +5293,76 @@ CLASS="VARIABLELIST"
 >Typical use:</DT
 ><DD
 ><P
->    Ensure that servers send the content uncompressed, so it can be
-    passed through <VAR
-CLASS="LITERAL"
-><A
-HREF="actions-file.html#FILTER"
->filter</A
-></VAR
->s
+>    Redirect requests to other sites.
    </P
 ></DD
 ><DT
 >Effect:</DT
 ><DD
 ><P
->    Adds a header to the request that asks for uncompressed transfer.
+>    Convinces the browser that the requested document has been moved
+    to another location and the browser should get it from there.
    </P
 ></DD
 ><DT
 >Type:</DT
 ><DD
 ><P
->Boolean.</P
+>Parameterized</P
 ></DD
 ><DT
 >Parameter:</DT
 ><DD
 ><P
->    N/A
+>    Any URL.
    </P
 ></DD
 ><DT
 >Notes:</DT
 ><DD
 ><P
->    More and more websites send their content compressed by default, which
-    is generally a good idea and saves bandwidth. But for the <VAR
+>    This action is useful to replace whole documents with your own
+    ones. For that to work, they have to be available on another server.
+   </P
+><P
+>    You can do the same by combining the actions
+    <TT
 CLASS="LITERAL"
 ><A
-HREF="actions-file.html#FILTER"
->filter</A
-></VAR
->, <VAR
+HREF="actions-file.html#BLOCK"
+>block</A
+></TT
+>,
+    <TT
 CLASS="LITERAL"
 ><A
-HREF="actions-file.html#DEANIMATE-GIFS"
->deanimate-gifs</A
-></VAR
->
-    and <VAR
+HREF="actions-file.html#HANDLE-AS-IMAGE"
+>handle-as-image</A
+></TT
+> and
+    <TT
 CLASS="LITERAL"
 ><A
-HREF="actions-file.html#KILL-POPUPS"
->kill-popups</A
-></VAR
-> actions to work,
-    <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> needs access to the  uncompressed data.
-    Unfortunately, <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> can't yet(!)  uncompress, filter, and
-    re-compress the content on the fly. So if you want to ensure that all websites, including
-    those that normally compress, can be filtered, you need to use this action.
-   </P
-><P
->    This will slow down transfers from those websites, though. If you use any of the above-mentioned
-    actions, you will typically want to use <VAR
-CLASS="LITERAL"
->prevent-compression</VAR
-> in conjunction
-    with them.
+HREF="actions-file.html#SET-IMAGE-BLOCKER"
+>set-image-blocker{URL}</A
+></TT
+>.
+    It doesn't sound right for non-image documents, and that's why this action
+    was created.
    </P
 ><P
->    Note that some (rare) ill-configured sites don't handle requests for uncompressed
-    documents correctly (they send an empty document body). If you use <VAR
+>    This action will be ignored if you use it together with
+    <TT
 CLASS="LITERAL"
->prevent-compression</VAR
->
-    per default, you'll have to add exceptions for those sites. See the example for how to do that.
+><A
+HREF="actions-file.html#BLOCK"
+>block</A
+></TT
+>.
    </P
 ></DD
 ><DT
->Example usage (sections):</DT
+>Example usage:</DT
 ><DD
 ><P
 >    <TABLE
@@ -3510,16 +5373,9 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
-># Set default:
-#
-{+prevent-compression}
-/ # Match all sites
-
-# Make exceptions for ill sites:
-#
-{-prevent-compression}
-www.debianhelp.org
-www.pclinuxonline.com</PRE
+># Replace example.com's style sheet with another one
+{+redirect{http://localhost/css-replacements/example.com.css}}
+example.com/stylesheet.css</PRE
 ></TD
 ></TR
 ></TABLE
@@ -3535,8 +5391,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="SEND-VANILLA-WAFER"
->8.5.17. send-vanilla-wafer</A
-></H4
+></A
+>8.5.29. send-vanilla-wafer</H4
 ><P
 ></P
 ><DIV
@@ -3608,8 +5464,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="SEND-WAFER"
->8.5.18. send-wafer</A
-></H4
+></A
+>8.5.30. send-wafer</H4
 ><P
 ></P
 ><DIV
@@ -3641,12 +5497,16 @@ CLASS="VARIABLELIST"
 ><P
 >    A string of the form <SPAN
 CLASS="QUOTE"
->"<VAR
+>"<TT
 CLASS="REPLACEABLE"
->name</VAR
->=<VAR
+><I
+>name</I
+></TT
+>=<TT
 CLASS="REPLACEABLE"
->value</VAR
+><I
+>value</I
+></TT
 >"</SPAN
 >.
    </P
@@ -3691,8 +5551,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="SESSION-COOKIES-ONLY"
->8.5.19. session-cookies-only</A
-></H4
+></A
+>8.5.31. session-cookies-only</H4
 ><P
 ></P
 ><DIV
@@ -3747,27 +5607,27 @@ CLASS="QUOTE"
 >Notes:</DT
 ><DD
 ><P
->    This is less strict than <VAR
+>    This is less strict than <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
 >crunch-incoming-cookies</A
-></VAR
+></TT
 > / 
-    <VAR
+    <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
 >crunch-outgoing-cookies</A
-></VAR
+></TT
 > and allows you to browse
     websites that insist or rely on setting cookies, without compromising your privacy too badly.
    </P
 ><P
 >    Most browsers will not permanently store cookies that have been processed by
-    <VAR
+    <TT
 CLASS="LITERAL"
->session-cookies-only</VAR
+>session-cookies-only</TT
 > and will forget about them between sessions.
     This makes profiling cookies useless, but won't break sites which require cookies so
     that you can log in for transactions. This is generally turned on for all 
@@ -3780,23 +5640,23 @@ CLASS="emphasis"
 CLASS="EMPHASIS"
 >no sense at all</I
 ></SPAN
-> to use <VAR
+> to use <TT
 CLASS="LITERAL"
->session-cookies-only</VAR
+>session-cookies-only</TT
 >
-    together with <VAR
+    together with <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
 >crunch-incoming-cookies</A
-></VAR
+></TT
 > or
-    <VAR
+    <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
 >crunch-outgoing-cookies</A
-></VAR
+></TT
 >. If you do, cookies
     will be plainly killed.
    </P
@@ -3825,9 +5685,9 @@ HREF="actions-file.html#FILTER-CONTENT-COOKIES"
 >content-cookies filter</A
 > 
      to block some types of cookies. Content cookies are not effected by 
-     <VAR
+     <TT
 CLASS="LITERAL"
->session-cookies-only</VAR
+>session-cookies-only</TT
 >.
    </P
 ></DD
@@ -3859,8 +5719,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="SET-IMAGE-BLOCKER"
->8.5.20. set-image-blocker</A
-></H4
+></A
+>8.5.32. set-image-blocker</H4
 ><P
 ></P
 ><DIV
@@ -3883,24 +5743,24 @@ CLASS="EMPHASIS"
 >both</I
 ></SPAN
 >
-     <VAR
+     <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 > <SPAN
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
 >and</I
 ></SPAN
-> <VAR
+> <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
-></VAR
+></TT
 > <SPAN
 CLASS="emphasis"
 ><I
@@ -3961,28 +5821,35 @@ CLASS="APPLICATION"
 ><P
 >      <SPAN
 CLASS="QUOTE"
->"<VAR
+>"<TT
 CLASS="REPLACEABLE"
->target-url</VAR
+><I
+>target-url</I
+></TT
 >"</SPAN
 > to
-      send a redirect to <VAR
+      send a redirect to <TT
 CLASS="REPLACEABLE"
->target-url</VAR
+><I
+>target-url</I
+></TT
 >. You can redirect
-      to any image anywhere, even in your local filesystem (via <SPAN
+      to any image anywhere, even in your local filesystem via <SPAN
 CLASS="QUOTE"
 >"file:///"</SPAN
-> URL).
+> URL. 
+      (But note that not all browsers support redirecting to a local file system).
      </P
 ><P
 >      A good application of redirects is to use special <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >-built-in
-      URLs, which send the built-in images, as <VAR
+      URLs, which send the built-in images, as <TT
 CLASS="REPLACEABLE"
->target-url</VAR
+><I
+>target-url</I
+></TT
 >.
       This has the same visual effect as specifying <SPAN
 CLASS="QUOTE"
@@ -4003,13 +5870,17 @@ CLASS="QUOTE"
 ><P
 >    The URLs for the built-in images are <SPAN
 CLASS="QUOTE"
->"http://config.privoxy.org/send-banner?type=<VAR
+>"http://config.privoxy.org/send-banner?type=<TT
 CLASS="REPLACEABLE"
->type</VAR
+><I
+>type</I
+></TT
 >"</SPAN
->, where <VAR
+>, where <TT
 CLASS="REPLACEABLE"
->type</VAR
+><I
+>type</I
+></TT
 > is
     either <SPAN
 CLASS="QUOTE"
@@ -4030,9 +5901,9 @@ CLASS="EMPHASIS"
 >NOT</I
 ></SPAN
 > to be
-    used in <VAR
+    used in <TT
 CLASS="LITERAL"
->set-image-blocker</VAR
+>set-image-blocker</TT
 >, but meant for use from <A
 HREF="filter-file.html"
 >filters</A
@@ -4103,12 +5974,133 @@ CLASS="SCREEN"
 ></DIV
 ><DIV
 CLASS="SECT3"
+><H4
+CLASS="SECT3"
+><A
+NAME="TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS"
+></A
+>8.5.33. treat-forbidden-connects-like-blocks</H4
+><P
+></P
+><DIV
+CLASS="VARIABLELIST"
+><DL
+><DT
+>Typical use:</DT
+><DD
+><P
+>Block forbidden connects with an easy to find error message.</P
+></DD
+><DT
+>Effect:</DT
+><DD
+><P
+>    If this action is enabled, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> no longer
+    makes a difference between forbidden connects and ordinary blocks. 
+   </P
+></DD
+><DT
+>Type:</DT
+><DD
+><P
+>Boolean</P
+></DD
+><DT
+>Parameter:</DT
+><DD
+><P
+>N/A</P
+></DD
+><DT
+>Notes:</DT
+><DD
+><P
+>    By default <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> answers
+    <A
+HREF="actions-file.html#LIMIT-CONNECT"
+>forbidden <SPAN
+CLASS="QUOTE"
+>"Connect"</SPAN
+> requests</A
+>
+    with a short error message inside the headers. If the browser doesn't display
+    headers (most don't), you just see an empty page.
+   </P
+><P
+>    With this action enabled, <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> displays
+    the message that is used for ordinary blocks instead. If you decide
+    to make an exception for the page in question, you can do so by
+    following the <SPAN
+CLASS="QUOTE"
+>"See why"</SPAN
+> link.
+   </P
+><P
+>    For <SPAN
+CLASS="QUOTE"
+>"Connect"</SPAN
+> requests the clients tell
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> which host they are interested
+    in, but not which document they plan to get later. As a result, the
+    <SPAN
+CLASS="QUOTE"
+>"Go there anyway"</SPAN
+> link becomes rather useless:
+    it lets the client request the home page of the forbidden host
+    through unencrypted HTTP, still using the port of the last request.
+   </P
+><P
+>    If you previously configured <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> to do the
+    request through a SSL tunnel, everything will work. Most likely you haven't
+    and the server will responds with an error message because it is expecting
+    HTTPS.
+   </P
+></DD
+><DT
+>Example usage:</DT
+><DD
+><P
+>    <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="90%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>+treat-forbidden-connects-like-blocks</PRE
+></TD
+></TR
+></TABLE
+>
+   </P
+></DD
+></DL
+></DIV
+></DIV
+><DIV
+CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN2855"
->8.5.21. Summary</A
-></H3
+NAME="AEN3543"
+></A
+>8.5.34. Summary</H3
 ><P
 > Note that many of these actions have the potential to cause a page to
  misbehave, possibly even not to display at all. There are many ways 
@@ -4127,8 +6119,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="ALIASES"
->8.6. Aliases</A
-></H2
+></A
+>8.6. Aliases</H2
 ><P
 > Custom <SPAN
 CLASS="QUOTE"
@@ -4375,8 +6367,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="ACT-EXAMPLES"
->8.7. Actions Files Tutorial</A
-></H2
+></A
+>8.7. Actions Files Tutorial</H2
 ><P
 > The above chapters have shown <A
 HREF="actions-file.html"
@@ -4410,9 +6402,9 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN2920"
->8.7.1. default.action</A
-></H3
+NAME="AEN3608"
+></A
+>8.7.1. default.action</H3
 ><P
 >Every config file should start with a short comment stating its purpose:</P
 ><P
@@ -4424,7 +6416,7 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="SCREEN"
-># Sample default.action file &#60;developers@privoxy.org&#62;</PRE
+># Sample default.action file &#60;ijbswa-developers@lists.sourceforge.net&#62;</PRE
 ></TD
 ></TR
 ></TABLE
@@ -4547,9 +6539,9 @@ CLASS="EMPHASIS"
 > The first regular section is probably the most important. It has only
  one pattern, <SPAN
 CLASS="QUOTE"
->"<VAR
+>"<TT
 CLASS="LITERAL"
->/</VAR
+>/</TT
 >"</SPAN
 >, but this pattern
  <A
@@ -4782,9 +6774,9 @@ CLASS="QUOTE"
  sites, i.e. sites that require minimum interference, because they are either
  very complex or very keen on tracking you (and have mechanisms in place that
  make them unusable for people who avoid being tracked). We will simply use
- our pre-defined <VAR
+ our pre-defined <TT
 CLASS="LITERAL"
->fragile</VAR
+>fragile</TT
 > alias instead of stating the list
  of actions explicitly:</P
 ><P
@@ -4834,12 +6826,12 @@ CLASS="SCREEN"
 ></TABLE
 ></P
 ><P
-> The <VAR
+> The <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FAST-REDIRECTS"
 >fast-redirects</A
-></VAR
+></TT
 >
  action, which we enabled per default above,  breaks some sites. So disable
  it for popular sites where we know it misbehaves:</P
@@ -4888,12 +6880,12 @@ CLASS="EMPHASIS"
 >and</I
 ></SPAN
 >
- information). We can mark any URL as an image with the <VAR
+ information). We can mark any URL as an image with the <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
-></VAR
+></TT
 > action,
  and marking all URLs that end in a known image file extension is a
  good start:</P
@@ -4933,11 +6925,11 @@ CLASS="EMPHASIS"
 ></SPAN
 >
  mark them as images in one go, with the help of our
- <VAR
+ <TT
 CLASS="LITERAL"
->block-as-image</VAR
+>block-as-image</TT
 > alias defined above. (We could of
- course just as well use <VAR
+ course just as well use <TT
 CLASS="LITERAL"
 >+<A
 HREF="actions-file.html#BLOCK"
@@ -4946,23 +6938,23 @@ HREF="actions-file.html#BLOCK"
  +<A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
-></VAR
+></TT
 > here.)
  Remember that the type of the replacement image is chosen by the
- <VAR
+ <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#SET-IMAGE-BLOCKER"
 >set-image-blocker</A
-></VAR
+></TT
 >
  action. Since all URLs have matched the default section with its
- <VAR
+ <TT
 CLASS="LITERAL"
 >+<A
 HREF="actions-file.html#SET-IMAGE-BLOCKER"
 >set-image-blocker</A
->{pattern}</VAR
+>{pattern}</TT
 >
  action before, it still applies and needn't be repeated:</P
 ><P
@@ -4998,24 +6990,24 @@ CLASS="APPLICATION"
 CLASS="QUOTE"
 >"blocked"</SPAN
 >
- by the <VAR
+ by the <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER"
 >filter</A
->{banners-by-size}</VAR
+>{banners-by-size}</TT
 >
  action, which we enabled above, and which deletes the references to banner
  images from the pages while they are loaded, so the browser doesn't request
  them anymore, and hence they don't need to be blocked here. But this naturally
  doesn't catch all banners, and some people choose not to use filters, so we
  need a comprehensive list of patterns for banner URLs here, and apply the
- <VAR
+ <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 > action to them.</P
 ><P
 > First comes a bunch of generic patterns, which do most of the work, by
@@ -5057,9 +7049,11 @@ count*.
 ></P
 ><P
 > You wouldn't believe how many advertisers actually call their banner
- servers ads.<VAR
+ servers ads.<TT
 CLASS="REPLACEABLE"
->company</VAR
+><I
+>company</I
+></TT
 >.com, or call the directory
  in which the banners are stored simply <SPAN
 CLASS="QUOTE"
@@ -5068,9 +7062,9 @@ CLASS="QUOTE"
  generic patterns are surprisingly effective.</P
 ><P
 > But being very generic, they necessarily also catch URLs that we don't want
- to block. The pattern <VAR
+ to block. The pattern <TT
 CLASS="LITERAL"
->.*ads.</VAR
+>.*ads.</TT
 > e.g. catches 
  <SPAN
 CLASS="QUOTE"
@@ -5102,12 +7096,12 @@ CLASS="EMPHASIS"
 ></SPAN
 >l.some-provider.net."</SPAN
 > So here come some
- well-known exceptions to the <VAR
+ well-known exceptions to the <TT
 CLASS="LITERAL"
 >+<A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 >
  section above.</P
 ><P
@@ -5117,34 +7111,34 @@ CLASS="QUOTE"
 >"downloads.sourcefroge.net"</SPAN
 >: Initially, all actions are deactivated,
  so it wouldn't get blocked. Then comes the defaults section, which matches the
- URL, but just deactivates the <VAR
+ URL, but just deactivates the <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 >
- action once again. Then it matches <VAR
+ action once again. Then it matches <TT
 CLASS="LITERAL"
->.*ads.</VAR
+>.*ads.</TT
 >, an exception to the
  general non-blocking policy, and suddenly
- <VAR
+ <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >+block</A
-></VAR
+></TT
 > applies. And now, it'll match
- <VAR
+ <TT
 CLASS="LITERAL"
->.*loads.</VAR
->, where <VAR
+>.*loads.</TT
+>, where <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >-block</A
-></VAR
+></TT
 >
  applies, so (unless it matches <SPAN
 CLASS="emphasis"
@@ -5153,12 +7147,12 @@ CLASS="EMPHASIS"
 >again</I
 ></SPAN
 > further down) it ends up
- with no <VAR
+ with no <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 > action applying.</P
 ><P
 > <TABLE
@@ -5204,12 +7198,12 @@ www.ugu.com/sui/ugu/adv</PRE
 CLASS="QUOTE"
 >"cvs"</SPAN
 > in them. Note that
- <VAR
+ <TT
 CLASS="LITERAL"
 >-<A
 HREF="actions-file.html#FILTER"
 >filter</A
-></VAR
+></TT
 >
  disables <SPAN
 CLASS="emphasis"
@@ -5251,9 +7245,9 @@ CLASS="SECT3"
 ><H3
 CLASS="SECT3"
 ><A
-NAME="AEN3086"
->8.7.2. user.action</A
-></H3
+NAME="AEN3774"
+></A
+>8.7.2. user.action</H3
 ><P
 > So far we are painting with a broad brush by setting general policies,
  which would be a reasonable starting point for many people. Now, 
@@ -5358,9 +7352,9 @@ allow-ads   = -block -filter{banners-by-size} -filter{banners-by-link}</PRE
 > Say you have accounts on some sites that you visit regularly, and
  you don't want to have to log in manually each time. So you'd like
  to allow persistent cookies for these sites. The
- <VAR
+ <TT
 CLASS="LITERAL"
->allow-all-cookies</VAR
+>allow-all-cookies</TT
 > alias defined above does exactly
  that, i.e. it disables crunching of cookies in any direction, and the 
  processing of cookies to make them only temporary.</P
@@ -5440,17 +7434,17 @@ CLASS="QUOTE"
 >"copy image location"</SPAN
 >
  and pasted the URL below while removing the leading http://, into a 
- <VAR
+ <TT
 CLASS="LITERAL"
->{ +block }</VAR
-> section. Note that <VAR
+>{ +block }</TT
+> section. Note that <TT
 CLASS="LITERAL"
 >{ +handle-as-image
- }</VAR
+ }</TT
 > need not be specified, since all URLs ending in
- <VAR
+ <TT
 CLASS="LITERAL"
->.gif</VAR
+>.gif</TT
 > will be tagged as images by the general rules as set
  in default.action anyway:</P
 ><P
@@ -5480,9 +7474,9 @@ CLASS="APPLICATION"
 >Privoxy</SPAN
 > to guess
  the file type just by looking at the URL. 
- You can use the <VAR
+ You can use the <TT
 CLASS="LITERAL"
->+block-as-image</VAR
+>+block-as-image</TT
 > alias defined above for
  these cases.
  Note that objects which match this rule but then turn out NOT to be an
@@ -5515,9 +7509,9 @@ ar.atwola.com/</PRE
 HREF="contact.html"
 >feedback</A
 >, so
- you just used the <VAR
+ you just used the <TT
 CLASS="LITERAL"
->fragile</VAR
+>fragile</TT
 > alias on the site, and
  -- <SPAN
 CLASS="emphasis"
@@ -5525,9 +7519,9 @@ CLASS="emphasis"
 CLASS="EMPHASIS"
 >whoa!</I
 ></SPAN
-> -- it worked. The <VAR
+> -- it worked. The <TT
 CLASS="LITERAL"
->fragile</VAR
+>fragile</TT
 >
  aliases disables those actions that are most likely to break a site. Also,
  good for testing purposes to see if it is <SPAN
@@ -5617,30 +7611,30 @@ CLASS="SCREEN"
 ></TABLE
 >   </P
 ><P
-> Note that <VAR
+> Note that <TT
 CLASS="LITERAL"
->allow-ads</VAR
+>allow-ads</TT
 > has been aliased to 
- <VAR
+ <TT
 CLASS="LITERAL"
 >-<A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 >, 
- <VAR
+ <TT
 CLASS="LITERAL"
 >-<A
 HREF="actions-file.html#FILTER-BANNERS-BY-SIZE"
 >filter{banners-by-size}</A
-></VAR
+></TT
 >, and 
- <VAR
+ <TT
 CLASS="LITERAL"
 >-<A
 HREF="actions-file.html#FILTER-BANNERS-BY-LINK"
 >filter{banners-by-link}</A
-></VAR
+></TT
 > above.</P
 ><P
 > <TT
@@ -5743,7 +7737,7 @@ VALIGN="top"
 WIDTH="33%"
 ALIGN="right"
 VALIGN="top"
->The Filter File</TD
+>Filter Files</TD
 ></TR
 ></TABLE
 ></DIV
index 8cc189f..96679a2 100644 (file)
@@ -1,13 +1,13 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >Appendix</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="See Also"
@@ -34,7 +34,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -67,16 +67,16 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="APPENDIX"
->14. Appendix</A
-></H1
+></A
+>14. Appendix</H1
 ><DIV
 CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
 NAME="REGEX"
->14.1. Regular Expressions</A
-></H2
+></A
+>14.1. Regular Expressions</H2
 ><P
 > <SPAN
 CLASS="APPLICATION"
@@ -98,10 +98,9 @@ HREF="http://www.pcre.org/"
 TARGET="_top"
 >PCRE</A
 > and
- <A
-HREF="http://www.oesterhelt.org/pcrs/"
-TARGET="_top"
->PCRS</A
+ <SPAN
+CLASS="APPLICATION"
+>PCRS</SPAN
 > libraries.</P
 ><P
 > If you are reading this, you probably don't understand what <SPAN
@@ -135,17 +134,17 @@ CLASS="QUOTE"
 CLASS="COMMAND"
 >dir</B
 > command in DOS. 
- <VAR
+ <TT
 CLASS="LITERAL"
->*.*</VAR
+>*.*</TT
 > matches all filenames. The <SPAN
 CLASS="QUOTE"
 >"special"</SPAN
 >
  character here is the asterisk which matches any and all characters. We can be
- more specific and use <VAR
+ more specific and use <TT
 CLASS="LITERAL"
->?</VAR
+>?</TT
 > to match just individual
  characters. So <SPAN
 CLASS="QUOTE"
@@ -428,9 +427,9 @@ CLASS="APPLICATION"
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
-><VAR
+><TT
 CLASS="LITERAL"
->/.*/banners/.*</VAR
+>/.*/banners/.*</TT
 ></I
 ></SPAN
 > - A  simple example
@@ -485,9 +484,9 @@ CLASS="QUOTE"
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
-><VAR
+><TT
 CLASS="LITERAL"
->/.*/adv((er)?ts?|ertis(ing|ements?))?/</VAR
+>/.*/adv((er)?ts?|ertis(ing|ements?))?/</TT
 ></I
 ></SPAN
 > - 
@@ -609,9 +608,9 @@ CLASS="QUOTE"
 CLASS="emphasis"
 ><I
 CLASS="EMPHASIS"
-><VAR
+><TT
 CLASS="LITERAL"
->/.*/advert[0-9]+\.(gif|jpe?g)</VAR
+>/.*/advert[0-9]+\.(gif|jpe?g)</TT
 ></I
 ></SPAN
 > - Again 
@@ -744,12 +743,12 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN3815"
+NAME="AEN4558"
+></A
 >14.2. <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
->'s Internal Pages</A
-></H2
+>'s Internal Pages</H2
 ><P
 > Since <SPAN
 CLASS="APPLICATION"
@@ -793,7 +792,7 @@ CLASS="APPLICATION"
    Privoxy main page: 
   </P
 ><A
-NAME="AEN3830"
+NAME="AEN4573"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -826,7 +825,7 @@ CLASS="APPLICATION"
     editing of actions files:
   </P
 ><A
-NAME="AEN3838"
+NAME="AEN4581"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -846,7 +845,7 @@ TARGET="_top"
     Show the source code version numbers:
   </P
 ><A
-NAME="AEN3843"
+NAME="AEN4586"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -866,7 +865,7 @@ TARGET="_top"
    Show the browser's request headers:
   </P
 ><A
-NAME="AEN3848"
+NAME="AEN4591"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -886,7 +885,7 @@ TARGET="_top"
    Show which actions apply to a URL and why:
   </P
 ><A
-NAME="AEN3853"
+NAME="AEN4596"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -910,7 +909,7 @@ CLASS="QUOTE"
    to run, but only as a pass-through proxy, with no actions taking place:
   </P
 ><A
-NAME="AEN3859"
+NAME="AEN4602"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -927,7 +926,7 @@ TARGET="_top"
 >   Short cuts. Turn off, then on: 
   </P
 ><A
-NAME="AEN3863"
+NAME="AEN4606"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -941,7 +940,7 @@ TARGET="_top"
    </P
 ></BLOCKQUOTE
 ><A
-NAME="AEN3866"
+NAME="AEN4609"
 ></A
 ><BLOCKQUOTE
 CLASS="BLOCKQUOTE"
@@ -965,8 +964,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="BOOKMARKLETS"
->14.2.1. Bookmarklets</A
-></H3
+></A
+>14.2.1. Bookmarklets</H3
 ><P
 > Below are some <SPAN
 CLASS="QUOTE"
@@ -1048,15 +1047,6 @@ TARGET="_top"
 ><LI
 ><P
 >    <A
-HREF="javascript:w=Math.floor(screen.width/2);h=Math.floor(screen.height*0.9);void(window.open('http://www.privoxy.org/actions/index.php?url='+escape(location.href),'Feedback','screenx='+w+',width='+w+',height='+h+',scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());"
-TARGET="_top"
->Privoxy - Submit Actions File Feedback</A
->
-   </P
-></LI
-><LI
-><P
->    <A
 HREF="javascript:void(window.open('http://config.privoxy.org/show-url-info?url='+escape(location.href),'Why').focus());"
 TARGET="_top"
 >Privoxy - Why?</A
@@ -1081,8 +1071,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="CHAIN"
->14.3. Chain of Events</A
-></H2
+></A
+>14.3. Chain of Events</H2
 ><P
 > Let's take a quick look at the basic sequence of events when a web page is 
  requested by your browser and <SPAN
@@ -1254,11 +1244,8 @@ CLASS="QUOTE"
 CLASS="FILENAME"
 >default.filter</TT
 >) are processed against the buffered
-   content. Filters are applied in the order they are specified in the
-   <TT
-CLASS="FILENAME"
->default.filter</TT
-> file. Animated GIFs, if present, are
+   content. Filters are applied in the order they are specified in one of the
+   filter files. Animated GIFs, if present, are
    reduced to either the first or last frame, depending on the action
    setting.The entire page, which is now filtered, is then sent by
    <SPAN
@@ -1307,8 +1294,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="ACTIONSANAT"
->14.4. Anatomy of an Action</A
-></H2
+></A
+>14.4. Anatomy of an Action</H2
 ><P
 > The way <SPAN
 CLASS="APPLICATION"
@@ -1385,10 +1372,7 @@ CLASS="QUOTE"
 >"+filter"</SPAN
 ></A
 > action) from
- the <TT
-CLASS="FILENAME"
->default.filter</TT
-> file since this is handled very
+ one of the filter files since this is handled very
  differently and not so easy to trap! It also will not tell you about any other
  URLs that may be embedded within the URL you are testing. For instance, images
  such as ads are expressed as URLs within the raw page source of HTML pages. So
@@ -1638,7 +1622,8 @@ CLASS="QUOTE"
 > and <SPAN
 CLASS="QUOTE"
 >"session-cookies-only"</SPAN
->.</P
+>,
+ which are actived specifically for this site in our configuration.</P
 ><P
 > Now another example, <SPAN
 CLASS="QUOTE"
@@ -1819,9 +1804,9 @@ CLASS="SCREEN"
 ></P
 ><P
 > Now the page displays ;-) Be sure to flush your browser's caches when 
- making such changes. Or, try using <VAR
+ making such changes. Or, try using <TT
 CLASS="LITERAL"
->Shift+Reload</VAR
+>Shift+Reload</TT
 >.</P
 ><P
 > But now what about a situation where we get no explicit matches like 
index 6e6354c..c48743b 100644 (file)
@@ -1,13 +1,13 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >The Main Configuration File</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="Privoxy Configuration"
@@ -37,7 +37,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -74,8 +74,8 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="CONFIG"
->7. The Main Configuration File</A
-></H1
+></A
+>7. The Main Configuration File</H1
 ><P
 > Again, the main configuration file is named <TT
 CLASS="FILENAME"
@@ -89,7 +89,7 @@ CLASS="FILENAME"
  values, all separated by whitespace (any number of spaces or tabs). For
  example:</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -101,29 +101,29 @@ CLASS="EMPHASIS"
 ></SPAN
 ></P
 >
- </VAR
+ </TT
 > </P
 ><P
-> Assigns the value <VAR
+> Assigns the value <TT
 CLASS="LITERAL"
->/etc/privoxy</VAR
+>/etc/privoxy</TT
 > to the option
- <VAR
+ <TT
 CLASS="LITERAL"
->confdir</VAR
+>confdir</TT
 > and thus indicates that the configuration
  directory is named <SPAN
 CLASS="QUOTE"
 >"/etc/privoxy/"</SPAN
 >.</P
 ><P
-> All options in the config file except for <VAR
+> All options in the config file except for <TT
 CLASS="LITERAL"
->confdir</VAR
+>confdir</TT
 > and
- <VAR
+ <TT
 CLASS="LITERAL"
->logdir</VAR
+>logdir</TT
 > are optional. Watch out in the below description
  for what happens if you leave them unset.</P
 ><P
@@ -139,8 +139,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="CONF-LOG-LOC"
->7.1. Configuration and Log File Locations</A
-></H2
+></A
+>7.1. Configuration and Log File Locations</H2
 ><P
 > <SPAN
 CLASS="APPLICATION"
@@ -165,8 +165,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="CONFDIR"
->7.1.1. confdir</A
-></H4
+></A
+>7.1.1. confdir</H4
 ><P
 ></P
 ><DIV
@@ -217,9 +217,9 @@ CLASS="EMPHASIS"
 ><P
 >    No trailing <SPAN
 CLASS="QUOTE"
->"<VAR
+>"<TT
 CLASS="LITERAL"
->/</VAR
+>/</TT
 >"</SPAN
 >, please
    </P
@@ -249,8 +249,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="LOGDIR"
->7.1.2. logdir</A
-></H4
+></A
+>7.1.2. logdir</H4
 ><P
 ></P
 ><DIV
@@ -309,9 +309,9 @@ CLASS="EMPHASIS"
 ><P
 >    No trailing <SPAN
 CLASS="QUOTE"
->"<VAR
+>"<TT
 CLASS="LITERAL"
->/</VAR
+>/</TT
 >"</SPAN
 >, please
    </P
@@ -325,8 +325,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="ACTIONSFILE"
->7.1.3. actionsfile</A
-></H4
+></A
+>7.1.3. actionsfile</H4
 ><A
 NAME="DEFAULT.ACTION"
 ></A
@@ -355,12 +355,12 @@ HREF="actions-file.html"
 >Type of value:</DT
 ><DD
 ><P
->File name, relative to <VAR
+>File name, relative to <TT
 CLASS="LITERAL"
->confdir</VAR
->, without the <VAR
+>confdir</TT
+>, without the <TT
 CLASS="LITERAL"
->.action</VAR
+>.action</TT
 > suffix</P
 ></DD
 ><DT
@@ -411,9 +411,9 @@ CLASS="LITERALLAYOUT"
 >Notes:</DT
 ><DD
 ><P
->    Multiple <VAR
+>    Multiple <TT
 CLASS="LITERAL"
->actionsfile</VAR
+>actionsfile</TT
 > lines are permitted, and are in fact recommended!
    </P
 ><P
@@ -449,8 +449,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="FILTERFILE"
->7.1.4. filterfile</A
-></H4
+></A
+>7.1.4. filterfile</H4
 ><A
 NAME="DEFAULT.FILTER"
 ></A
@@ -473,9 +473,9 @@ HREF="filter-file.html"
 >Type of value:</DT
 ><DD
 ><P
->File name, relative to <VAR
+>File name, relative to <TT
 CLASS="LITERAL"
->confdir</VAR
+>confdir</TT
 ></P
 ></DD
 ><DT
@@ -495,15 +495,17 @@ CLASS="EMPHASIS"
 ><DD
 ><P
 >    No textual content filtering takes place, i.e. all
-    <VAR
+    <TT
 CLASS="LITERAL"
 >+<A
 HREF="actions-file.html#FILTER"
 >filter</A
->{<VAR
+>{<TT
 CLASS="REPLACEABLE"
->name</VAR
->}</VAR
+><I
+>name</I
+></TT
+>}</TT
 >
     actions in the actions files are turned neutral.
    </P
@@ -533,19 +535,23 @@ CLASS="QUOTE"
    </P
 ><P
 >    The
-    <VAR
+    <TT
 CLASS="LITERAL"
 >+<A
 HREF="actions-file.html#FILTER"
 >filter</A
->{<VAR
+>{<TT
 CLASS="REPLACEABLE"
->name</VAR
->}</VAR
+><I
+>name</I
+></TT
+>}</TT
 >
-    actions rely on the relevant filter (<VAR
+    actions rely on the relevant filter (<TT
 CLASS="REPLACEABLE"
->name</VAR
+><I
+>name</I
+></TT
 >)
     to be defined in the filter file!
    </P
@@ -555,12 +561,12 @@ CLASS="FILENAME"
 >default.filter</TT
 > that contains
     a bunch of handy filters for common problems is included in the distribution.
-    See the section on the <VAR
+    See the section on the <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER"
 >filter</A
-></VAR
+></TT
 >
     action for a list.
    </P
@@ -574,8 +580,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="LOGFILE"
->7.1.5. logfile</A
-></H4
+></A
+>7.1.5. logfile</H4
 ><P
 ></P
 ><DIV
@@ -592,9 +598,9 @@ CLASS="VARIABLELIST"
 >Type of value:</DT
 ><DD
 ><P
->File name, relative to <VAR
+>File name, relative to <TT
 CLASS="LITERAL"
->logdir</VAR
+>logdir</TT
 ></P
 ></DD
 ><DT
@@ -613,9 +619,9 @@ CLASS="EMPHASIS"
 >Effect if unset:</DT
 ><DD
 ><P
->    No log file is used, all log messages go to the console (<VAR
+>    No log file is used, all log messages go to the console (<TT
 CLASS="LITERAL"
->STDERR</VAR
+>STDERR</TT
 >).
    </P
 ></DD
@@ -624,9 +630,9 @@ CLASS="LITERAL"
 ><DD
 ><P
 >    The logfile is where all logging and error messages are written. The level
-    of detail and number of messages are set with the <VAR
+    of detail and number of messages are set with the <TT
 CLASS="LITERAL"
->debug</VAR
+>debug</TT
 >
     option (see below). The logfile can be useful for tracking down a problem with
     <SPAN
@@ -679,8 +685,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="JARFILE"
->7.1.6. jarfile</A
-></H4
+></A
+>7.1.6. jarfile</H4
 ><P
 ></P
 ><DIV
@@ -697,9 +703,9 @@ CLASS="VARIABLELIST"
 >Type of value:</DT
 ><DD
 ><P
->File name, relative to <VAR
+>File name, relative to <TT
 CLASS="LITERAL"
->logdir</VAR
+>logdir</TT
 ></P
 ></DD
 ><DT
@@ -737,8 +743,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="TRUSTFILE"
->7.1.7. trustfile</A
-></H4
+></A
+>7.1.7. trustfile</H4
 ><P
 ></P
 ><DIV
@@ -755,9 +761,9 @@ CLASS="VARIABLELIST"
 >Type of value:</DT
 ><DD
 ><P
->File name, relative to <VAR
+>File name, relative to <TT
 CLASS="LITERAL"
->confdir</VAR
+>confdir</TT
 ></P
 ></DD
 ><DT
@@ -807,14 +813,14 @@ CLASS="APPLICATION"
     in one of two ways:
    </P
 ><P
->    Prepending a <VAR
+>    Prepending a <TT
 CLASS="LITERAL"
->~</VAR
+>~</TT
 > character limits access to this site 
     only (and any sub-paths within this site), e.g. 
-    <VAR
+    <TT
 CLASS="LITERAL"
->~www.example.com</VAR
+>~www.example.com</TT
 >. 
    </P
 ><P
@@ -825,9 +831,9 @@ CLASS="EMPHASIS"
 >trusted referrers</I
 ></SPAN
 >, by
-    prepending the name with a <VAR
+    prepending the name with a <TT
 CLASS="LITERAL"
->+</VAR
+>+</TT
 > character. The effect is that
     access to untrusted sites will be granted -- but only if a link from this
     trusted referrer was used. The link target will then be added to the
@@ -836,15 +842,15 @@ CLASS="QUOTE"
 >"trustfile"</SPAN
 > so that future, direct accesses will be granted.
     Sites added via this mechanism do not become trusted referrers themselves
-    (i.e. they are added with a <VAR
+    (i.e. they are added with a <TT
 CLASS="LITERAL"
->~</VAR
+>~</TT
 > designation).
    </P
 ><P
->    If you use the <VAR
+>    If you use the <TT
 CLASS="LITERAL"
->+</VAR
+>+</TT
 > operator in the trust file, it may grow 
     considerably over time.
    </P
@@ -853,16 +859,16 @@ CLASS="LITERAL"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > be compiled with
-    the <VAR
+    the <TT
 CLASS="LITERAL"
->--disable-force</VAR
->, <VAR
+>--disable-force</TT
+>, <TT
 CLASS="LITERAL"
->--disable-toggle</VAR
+>--disable-toggle</TT
 > and
-    <VAR
+    <TT
 CLASS="LITERAL"
-> --disable-editor</VAR
+> --disable-editor</TT
 > options, if this feature is to be
     used.
    </P
@@ -880,8 +886,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="LOCAL-SET-UP"
->7.2. Local Set-up Documentation</A
-></H2
+></A
+>7.2. Local Set-up Documentation</H2
 ><P
 >    If you intend to operate <SPAN
 CLASS="APPLICATION"
@@ -896,8 +902,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="USER-MANUAL"
->7.2.1. user-manual</A
-></H4
+></A
+>7.2.1. user-manual</H4
 ><P
 ></P
 ><DIV
@@ -938,14 +944,18 @@ CLASS="EMPHASIS"
 >    <A
 HREF="http://www.privoxy.org/user-manual/"
 TARGET="_top"
->http://www.privoxy.org/<VAR
+>http://www.privoxy.org/<TT
 CLASS="REPLACEABLE"
->version</VAR
+><I
+>version</I
+></TT
 >/user-manual/</A
 >
-    will be used, where <VAR
+    will be used, where <TT
 CLASS="REPLACEABLE"
->version</VAR
+><I
+>version</I
+></TT
 > is the <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
@@ -976,7 +986,7 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  user-manual  file:///usr/share/doc/privoxy-3.0.3/user-manual/</PRE
+>  user-manual  file:///usr/share/doc/privoxy-3.0.4/user-manual/</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1000,7 +1010,7 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  user-manual  file:/c:/some-dir/privoxy-3.0.3/user-manual/</PRE
+>  user-manual  file:/c:/some-dir/privoxy-3.0.4/user-manual/</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1018,7 +1028,7 @@ WIDTH="90%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  user-manual  file://///some-server/some-path/privoxy-3.0.3/user-manual/</PRE
+>  user-manual  file://///some-server/some-path/privoxy-3.0.4/user-manual/</PRE
 ></TD
 ></TR
 ></TABLE
@@ -1087,8 +1097,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="TRUST-INFO-URL"
->7.2.2. trust-info-url</A
-></H4
+></A
+>7.2.2. trust-info-url</H4
 ><P
 ></P
 ><DIV
@@ -1155,8 +1165,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="ADMIN-ADDRESS"
->7.2.3. admin-address</A
-></H4
+></A
+>7.2.3. admin-address</H4
 ><P
 ></P
 ><DIV
@@ -1198,12 +1208,12 @@ CLASS="EMPHASIS"
 >Notes:</DT
 ><DD
 ><P
->    If both <VAR
+>    If both <TT
 CLASS="LITERAL"
->admin-address</VAR
-> and <VAR
+>admin-address</TT
+> and <TT
 CLASS="LITERAL"
->proxy-info-url</VAR
+>proxy-info-url</TT
 >
     are unset, the whole "Local Privoxy Support" box on all generated pages will
     not be shown.
@@ -1218,8 +1228,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="PROXY-INFO-URL"
->7.2.4. proxy-info-url</A
-></H4
+></A
+>7.2.4. proxy-info-url</H4
 ><P
 ></P
 ><DIV
@@ -1265,12 +1275,12 @@ CLASS="EMPHASIS"
 >Notes:</DT
 ><DD
 ><P
->    If both <VAR
+>    If both <TT
 CLASS="LITERAL"
->admin-address</VAR
-> and <VAR
+>admin-address</TT
+> and <TT
 CLASS="LITERAL"
->proxy-info-url</VAR
+>proxy-info-url</TT
 >
     are unset, the whole "Local Privoxy Support" box on all generated pages will
     not be shown.
@@ -1289,17 +1299,17 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="DEBUGGING"
->7.3. Debugging</A
-></H2
+></A
+>7.3. Debugging</H2
 ><P
 >  These options are mainly useful when tracing a problem.
   Note that you might also want to invoke
   <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> with the <VAR
+> with the <TT
 CLASS="LITERAL"
->--no-daemon</VAR
+>--no-daemon</TT
 >
   command line option when debugging.
  </P
@@ -1309,8 +1319,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="DEBUG"
->7.3.1. debug</A
-></H4
+></A
+>7.3.1. debug</H4
 ><P
 ></P
 ><DIV
@@ -1388,9 +1398,9 @@ CLASS="PROGRAMLISTING"
    </P
 ><P
 >    To select multiple debug levels, you can either add them or use
-    multiple <VAR
+    multiple <TT
 CLASS="LITERAL"
->debug</VAR
+>debug</TT
 > lines.
    </P
 ><P
@@ -1443,8 +1453,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="SINGLE-THREADED"
->7.3.2. single-threaded</A
-></H4
+></A
+>7.3.2. single-threaded</H4
 ><P
 ></P
 ><DIV
@@ -1513,8 +1523,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="ACCESS-CONTROL"
->7.4. Access Control and Security</A
-></H2
+></A
+>7.4. Access Control and Security</H2
 ><P
 >  This section of the config file controls the security-relevant aspects
   of <SPAN
@@ -1528,8 +1538,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="LISTEN-ADDRESS"
->7.4.1. listen-address</A
-></H4
+></A
+>7.4.1. listen-address</H4
 ><P
 ></P
 ><DIV
@@ -1550,12 +1560,16 @@ CLASS="APPLICATION"
 >Type of value:</DT
 ><DD
 ><P
->[<VAR
+>[<TT
 CLASS="REPLACEABLE"
->IP-Address</VAR
->]:<VAR
+><I
+>IP-Address</I
+></TT
+>]:<TT
 CLASS="REPLACEABLE"
->Port</VAR
+><I
+>Port</I
+></TT
 ></P
 ></DD
 ><DT
@@ -1604,19 +1618,19 @@ HREF="config.html#ACLS"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > to untrusted users, you will
-    also want to turn off the <VAR
+    also want to turn off the <TT
 CLASS="LITERAL"
 ><A
 HREF="config.html#ENABLE-EDIT-ACTIONS"
 >enable-edit-actions</A
-></VAR
+></TT
 > and
-    <VAR
+    <TT
 CLASS="LITERAL"
 ><A
 HREF="config.html#ENABLE-REMOTE-TOGGLE"
 >enable-remote-toggle</A
-></VAR
+></TT
 >
     options!
    </P
@@ -1658,8 +1672,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="TOGGLE"
->7.4.2. toggle</A
-></H4
+></A
+>7.4.2. toggle</H4
 ><P
 ></P
 ><DIV
@@ -1704,9 +1718,9 @@ CLASS="QUOTE"
 >"toggled off"</SPAN
 > mode, i.e. behave like a normal, content-neutral
     proxy where all ad blocking, filtering, etc are disabled. See
-    <VAR
+    <TT
 CLASS="LITERAL"
->enable-remote-toggle</VAR
+>enable-remote-toggle</TT
 > below. This is not really useful
     anymore, since toggling is much easier via <A
 HREF="http://config.privoxy.org/toggle"
@@ -1732,8 +1746,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="ENABLE-REMOTE-TOGGLE"
->7.4.3. enable-remote-toggle</A
-></H4
+></A
+>7.4.3. enable-remote-toggle</H4
 ><P
 ></P
 ><DIV
@@ -1800,9 +1814,9 @@ CLASS="APPLICATION"
     <SPAN
 CLASS="QUOTE"
 >"ACLs"</SPAN
-> and <VAR
+> and <TT
 CLASS="LITERAL"
->listen-address</VAR
+>listen-address</TT
 > above) can
     toggle it for all users. So this option is <SPAN
 CLASS="emphasis"
@@ -1830,8 +1844,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="ENABLE-EDIT-ACTIONS"
->7.4.4. enable-edit-actions</A
-></H4
+></A
+>7.4.4. enable-edit-actions</H4
 ><P
 ></P
 ><DIV
@@ -1890,9 +1904,9 @@ CLASS="APPLICATION"
     <SPAN
 CLASS="QUOTE"
 >"ACLs"</SPAN
-> and <VAR
+> and <TT
 CLASS="LITERAL"
->listen-address</VAR
+>listen-address</TT
 > above) can
     modify its configuration for all users. So this option is <SPAN
 CLASS="emphasis"
@@ -1920,8 +1934,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="ACLS"
->7.4.5. ACLs: permit-access and deny-access</A
-></H4
+></A
+>7.4.5. ACLs: permit-access and deny-access</H4
 ><A
 NAME="PERMIT-ACCESS"
 ></A
@@ -1944,37 +1958,53 @@ CLASS="VARIABLELIST"
 >Type of value:</DT
 ><DD
 ><P
->    <VAR
+>    <TT
 CLASS="REPLACEABLE"
->src_addr</VAR
->[/<VAR
+><I
+>src_addr</I
+></TT
+>[/<TT
 CLASS="REPLACEABLE"
->src_masklen</VAR
+><I
+>src_masklen</I
+></TT
 >]
-    [<VAR
+    [<TT
 CLASS="REPLACEABLE"
->dst_addr</VAR
->[/<VAR
+><I
+>dst_addr</I
+></TT
+>[/<TT
 CLASS="REPLACEABLE"
->dst_masklen</VAR
+><I
+>dst_masklen</I
+></TT
 >]]
    </P
 ><P
->    Where <VAR
+>    Where <TT
 CLASS="REPLACEABLE"
->src_addr</VAR
+><I
+>src_addr</I
+></TT
 > and 
-   <VAR
+   <TT
 CLASS="REPLACEABLE"
->dst_addr</VAR
+><I
+>dst_addr</I
+></TT
 > are IP addresses in dotted decimal notation or valid
-    DNS names, and <VAR
+    DNS names, and <TT
 CLASS="REPLACEABLE"
->src_masklen</VAR
+><I
+>src_masklen</I
+></TT
 > and
-    <VAR
+    <TT
 CLASS="REPLACEABLE"
->dst_masklen</VAR
+><I
+>dst_masklen</I
+></TT
 > are subnet masks in CIDR notation, i.e. integer
     values from 2 to 30 representing the length (in bits) of the network address. The masks and the whole
     destination part are optional.
@@ -1996,9 +2026,9 @@ CLASS="EMPHASIS"
 >Effect if unset:</DT
 ><DD
 ><P
->    Don't restrict access further than implied by <VAR
+>    Don't restrict access further than implied by <TT
 CLASS="LITERAL"
->listen-address</VAR
+>listen-address</TT
 >
    </P
 ></DD
@@ -2043,30 +2073,32 @@ CLASS="EMPHASIS"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >
-    talks only to IP addresses that match at least one <VAR
+    talks only to IP addresses that match at least one <TT
 CLASS="LITERAL"
->permit-access</VAR
+>permit-access</TT
 > line
-    and don't match any subsequent <VAR
+    and don't match any subsequent <TT
 CLASS="LITERAL"
->deny-access</VAR
+>deny-access</TT
 > line. In other words, the
-    last match wins, with the default being <VAR
+    last match wins, with the default being <TT
 CLASS="LITERAL"
->deny-access</VAR
+>deny-access</TT
 >.
    </P
 ><P
 >    If <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> is using a forwarder (see <VAR
+> is using a forwarder (see <TT
 CLASS="LITERAL"
->forward</VAR
+>forward</TT
 > below)
-    for a particular destination URL, the <VAR
+    for a particular destination URL, the <TT
 CLASS="REPLACEABLE"
->dst_addr</VAR
+><I
+>dst_addr</I
+></TT
 >
     that is examined is the address of the forwarder and <SPAN
 CLASS="emphasis"
@@ -2107,16 +2139,18 @@ CLASS="QUOTE"
 ><DD
 ><P
 >    Explicitly define the default behavior if no ACL and
-    <VAR
+    <TT
 CLASS="LITERAL"
->listen-address</VAR
+>listen-address</TT
 > are set: <SPAN
 CLASS="QUOTE"
 >"localhost"</SPAN
 >
-    is OK. The absence of a <VAR
+    is OK. The absence of a <TT
 CLASS="REPLACEABLE"
->dst_addr</VAR
+><I
+>dst_addr</I
+></TT
 > implies that
     <SPAN
 CLASS="emphasis"
@@ -2190,8 +2224,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="BUFFER-LIMIT"
->7.4.6. buffer-limit</A
-></H4
+></A
+>7.4.6. buffer-limit</H4
 ><P
 ></P
 ><DIV
@@ -2227,13 +2261,13 @@ CLASS="VARIABLELIST"
 >Notes:</DT
 ><DD
 ><P
->    For content filtering, i.e. the <VAR
+>    For content filtering, i.e. the <TT
 CLASS="LITERAL"
->+filter</VAR
+>+filter</TT
 > and
-    <VAR
+    <TT
 CLASS="LITERAL"
->+deanimate-gif</VAR
+>+deanimate-gif</TT
 > actions, it is necessary that 
     <SPAN
 CLASS="APPLICATION"
@@ -2244,15 +2278,15 @@ CLASS="APPLICATION"
     Hence this option.
    </P
 ><P
->    When a document buffer size reaches the <VAR
+>    When a document buffer size reaches the <TT
 CLASS="LITERAL"
->buffer-limit</VAR
+>buffer-limit</TT
 >, it is
     flushed to the client unfiltered and no further attempt to
     filter the rest of the document is made. Remember that there may be multiple threads
-    running, which might require up to <VAR
+    running, which might require up to <TT
 CLASS="LITERAL"
->buffer-limit</VAR
+>buffer-limit</TT
 > Kbytes
     <SPAN
 CLASS="emphasis"
@@ -2277,8 +2311,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="FORWARDING"
->7.5. Forwarding</A
-></H2
+></A
+>7.5. Forwarding</H2
 ><P
 > This feature allows routing of HTTP requests through a chain of
  multiple proxies.
@@ -2307,8 +2341,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="FORWARD"
->7.5.1. forward</A
-></H4
+></A
+>7.5.1. forward</H4
 ><P
 ></P
 ><DIV
@@ -2325,46 +2359,58 @@ CLASS="VARIABLELIST"
 >Type of value:</DT
 ><DD
 ><P
->    <VAR
+>    <TT
 CLASS="REPLACEABLE"
->target_pattern</VAR
+><I
+>target_pattern</I
+></TT
 >
-    <VAR
+    <TT
 CLASS="REPLACEABLE"
->http_parent</VAR
->[:<VAR
+><I
+>http_parent</I
+></TT
+>[:<TT
 CLASS="REPLACEABLE"
->port</VAR
+><I
+>port</I
+></TT
 >]
    </P
 ><P
->    where <VAR
+>    where <TT
 CLASS="REPLACEABLE"
->target_pattern</VAR
+><I
+>target_pattern</I
+></TT
 > is a <A
 HREF="actions-file.html#AF-PATTERNS"
 >URL pattern</A
 > 
-    that specifies to which requests (i.e. URLs) this forward rule shall apply. Use <VAR
+    that specifies to which requests (i.e. URLs) this forward rule shall apply. Use <TT
 CLASS="LITERAL"
->/</VAR
+>/</TT
 > to
     denote <SPAN
 CLASS="QUOTE"
 >"all URLs"</SPAN
 >.
-    <VAR
+    <TT
 CLASS="REPLACEABLE"
->http_parent</VAR
->[:<VAR
+><I
+>http_parent</I
+></TT
+>[:<TT
 CLASS="REPLACEABLE"
->port</VAR
+><I
+>port</I
+></TT
 >]
     is the DNS name or IP address of the parent HTTP proxy through which the requests should be forwarded,
     optionally followed by its listening port (default: 8080).
-    Use a single dot (<VAR
+    Use a single dot (<TT
 CLASS="LITERAL"
->.</VAR
+>.</TT
 >) to denote <SPAN
 CLASS="QUOTE"
 >"no forwarding"</SPAN
@@ -2394,9 +2440,11 @@ CLASS="EMPHASIS"
 >Notes:</DT
 ><DD
 ><P
->    If <VAR
+>    If <TT
 CLASS="REPLACEABLE"
->http_parent</VAR
+><I
+>http_parent</I
+></TT
 > is <SPAN
 CLASS="QUOTE"
 >"."</SPAN
@@ -2459,8 +2507,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="SOCKS"
->7.5.2. forward-socks4 and forward-socks4a</A
-></H4
+></A
+>7.5.2. forward-socks4 and forward-socks4a</H4
 ><A
 NAME="FORWARD-SOCKS4"
 ></A
@@ -2483,51 +2531,69 @@ CLASS="VARIABLELIST"
 >Type of value:</DT
 ><DD
 ><P
->    <VAR
+>    <TT
 CLASS="REPLACEABLE"
->target_pattern</VAR
+><I
+>target_pattern</I
+></TT
 >
-    <VAR
+    <TT
 CLASS="REPLACEABLE"
->socks_proxy</VAR
->[:<VAR
+><I
+>socks_proxy</I
+></TT
+>[:<TT
 CLASS="REPLACEABLE"
->port</VAR
+><I
+>port</I
+></TT
 >]
-    <VAR
+    <TT
 CLASS="REPLACEABLE"
->http_parent</VAR
->[:<VAR
+><I
+>http_parent</I
+></TT
+>[:<TT
 CLASS="REPLACEABLE"
->port</VAR
+><I
+>port</I
+></TT
 >]
    </P
 ><P
->    where <VAR
+>    where <TT
 CLASS="REPLACEABLE"
->target_pattern</VAR
+><I
+>target_pattern</I
+></TT
 > is a <A
 HREF="actions-file.html#AF-PATTERNS"
 >URL pattern</A
 > 
-    that specifies to which requests (i.e. URLs) this forward rule shall apply. Use <VAR
+    that specifies to which requests (i.e. URLs) this forward rule shall apply. Use <TT
 CLASS="LITERAL"
->/</VAR
+>/</TT
 > to
     denote <SPAN
 CLASS="QUOTE"
 >"all URLs"</SPAN
 >.
-    <VAR
+    <TT
 CLASS="REPLACEABLE"
->http_parent</VAR
-> and <VAR
+><I
+>http_parent</I
+></TT
+> and <TT
 CLASS="REPLACEABLE"
->socks_proxy</VAR
+><I
+>socks_proxy</I
+></TT
 >
-    are IP addresses in dotted decimal notation or valid DNS names (<VAR
+    are IP addresses in dotted decimal notation or valid DNS names (<TT
 CLASS="REPLACEABLE"
->http_parent</VAR
+><I
+>http_parent</I
+></TT
 >
     may be <SPAN
 CLASS="QUOTE"
@@ -2536,9 +2602,11 @@ CLASS="QUOTE"
 CLASS="QUOTE"
 >"no HTTP forwarding"</SPAN
 >), and the optional 
-    <VAR
+    <TT
 CLASS="REPLACEABLE"
->port</VAR
+><I
+>port</I
+></TT
 > parameters are TCP ports, i.e. integer values from 1 to 64535
    </P
 ></DD
@@ -2568,20 +2636,22 @@ CLASS="EMPHASIS"
 >    Multiple lines are OK, they are checked in sequence, and the last match wins.
    </P
 ><P
->    The difference between <VAR
+>    The difference between <TT
 CLASS="LITERAL"
->forward-socks4</VAR
-> and <VAR
+>forward-socks4</TT
+> and <TT
 CLASS="LITERAL"
->forward-socks4a</VAR
+>forward-socks4a</TT
 >
     is that in the SOCKS 4A protocol, the DNS resolution of the target hostname happens on the SOCKS
     server, while in SOCKS 4 it happens locally.
    </P
 ><P
->    If <VAR
+>    If <TT
 CLASS="REPLACEABLE"
->http_parent</VAR
+><I
+>http_parent</I
+></TT
 > is <SPAN
 CLASS="QUOTE"
 >"."</SPAN
@@ -2646,8 +2716,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="ADVANCED-FORWARDING-EXAMPLES"
->7.5.3. Advanced Forwarding Examples</A
-></H4
+></A
+>7.5.3. Advanced Forwarding Examples</H4
 ><P
 > If you have links to multiple ISPs that provide various special content 
  only to their subscribers, you can configure multiple <SPAN
@@ -2716,9 +2786,9 @@ CLASS="APPLICATION"
 CLASS="APPLICATION"
 >squid</SPAN
 > locally, then chain as 
- <VAR
+ <TT
 CLASS="LITERAL"
->browser -&#62; squid -&#62; privoxy</VAR
+>browser -&#62; squid -&#62; privoxy</TT
 > is the recommended way. </P
 ><P
 > Assuming that <SPAN
@@ -2761,18 +2831,18 @@ CLASS="SCREEN"
 CLASS="APPLICATION"
 >squid</SPAN
 >'s address and port.
- Squid normally uses port 3128. If unsure consult <VAR
+ Squid normally uses port 3128. If unsure consult <TT
 CLASS="LITERAL"
->http_port</VAR
+>http_port</TT
 > in <TT
 CLASS="FILENAME"
 >squid.conf</TT
 >.</P
 ><P
 > You could just as well decide to only forward requests for Windows executables through
- a virus-scanning parent proxy, say, on <VAR
+ a virus-scanning parent proxy, say, on <TT
 CLASS="LITERAL"
->antivir.example.com</VAR
+>antivir.example.com</TT
 >, port 8010:</P
 ><P
 > <TABLE
@@ -2797,8 +2867,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="WINDOWS-GUI"
->7.6. Windows GUI Options</A
-></H2
+></A
+>7.6. Windows GUI Options</H2
 ><P
 > <SPAN
 CLASS="APPLICATION"
@@ -2822,7 +2892,7 @@ CLASS="QUOTE"
 >"Privoxy"</SPAN
 > is active. To turn off, set to 0.</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -2835,7 +2905,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ><A
 NAME="LOG-MESSAGES"
@@ -2851,7 +2921,7 @@ CLASS="APPLICATION"
 > will log messages to the console
  window:</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -2864,7 +2934,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ><A
 NAME="LOG-BUFFER-SIZE"
@@ -2884,7 +2954,7 @@ CLASS="QUOTE"
 > Warning: Setting this to 0 will result in the buffer to grow infinitely and
  eat up all your memory!</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -2897,7 +2967,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ><A
 NAME="LOG-MAX-LINES"
@@ -2909,7 +2979,7 @@ CLASS="APPLICATION"
 > is the maximum number of lines held
  in the log buffer. See above.</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -2922,7 +2992,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ><A
 NAME="LOG-HIGHLIGHT-MESSAGES"
@@ -2938,7 +3008,7 @@ CLASS="APPLICATION"
 > will highlight portions of the log
  messages with a bold-faced font:</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -2951,7 +3021,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ><A
 NAME="LOG-FONT-NAME"
@@ -2959,7 +3029,7 @@ NAME="LOG-FONT-NAME"
 ><P
 > The font used in the console window:</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -2972,7 +3042,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ><A
 NAME="LOG-FONT-SIZE"
@@ -2980,7 +3050,7 @@ NAME="LOG-FONT-SIZE"
 ><P
 > Font size used in the console window:</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -2993,7 +3063,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ><A
 NAME="SHOW-ON-TASK-BAR"
@@ -3010,7 +3080,7 @@ CLASS="APPLICATION"
 > will appear as a button on the Task bar
  when minimized:</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -3023,7 +3093,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ><A
 NAME="CLOSE-BUTTON-MINIMIZES"
@@ -3039,7 +3109,7 @@ CLASS="APPLICATION"
 > instead of closing
  the program (close with the exit option on the File menu).</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -3052,7 +3122,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ><A
 NAME="HIDE-CONSOLE"
@@ -3072,7 +3142,7 @@ CLASS="APPLICATION"
 > will disconnect from and hide  the
  command console.</P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
 >  <P
 CLASS="LITERALLAYOUT"
@@ -3085,7 +3155,7 @@ CLASS="EMPHASIS"
 ><br>
 &nbsp;&nbsp;&nbsp;</P
 > 
- </VAR
+ </TT
 ></P
 ></DIV
 ></DIV
index 60d38cf..463aa52 100644 (file)
@@ -1,13 +1,13 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >Privoxy Configuration</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="Starting Privoxy"
@@ -37,7 +37,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -74,11 +74,11 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="CONFIGURATION"
+></A
 >6. <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> Configuration</A
-></H1
+> Configuration</H1
 ><P
 >  All <SPAN
 CLASS="APPLICATION"
@@ -96,12 +96,12 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN585"
+NAME="AEN711"
+></A
 >6.1. Controlling <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> with Your Web Browser</A
-></H2
+> with Your Web Browser</H2
 ><P
 > <SPAN
 CLASS="APPLICATION"
@@ -130,7 +130,7 @@ CLASS="SCREEN"
 > <H2
 CLASS="BRIDGEHEAD"
 ><A
-NAME="AEN594"
+NAME="AEN720"
 ></A
 >    Privoxy Menu</H2
 ><P
@@ -186,7 +186,7 @@ TARGET="_top"
 ><TR
 ><TD
 >  Â Â Â Â Â Â Â Â &#9642;  <A
-HREF="http://www.privoxy.org/3.0.3/user-manual/"
+HREF="http://www.privoxy.org/   3.0.4/user-manual/"
 TARGET="_top"
 >Documentation</A
 >
@@ -251,8 +251,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="CONFOVERVIEW"
->6.2. Configuration Files Overview</A
-></H2
+></A
+>6.2. Configuration Files Overview</H2
 ><P
 > For Unix, *BSD and Linux, all configuration files are located in
  <TT
@@ -263,7 +263,9 @@ CLASS="FILENAME"
  <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> executable. </P
+> executable.  The name
+ and number of configuration files has changed from previous versions, and is
+ subject to change as development progresses.</P
 ><P
 > The installed defaults provide a reasonable starting point, though 
  some settings may be aggressive by some standards. For the time being, the
@@ -352,9 +354,9 @@ TARGET="_top"
 ></LI
 ><LI
 ><P
->    <TT
-CLASS="FILENAME"
->default.filter</TT
+>    <SPAN
+CLASS="QUOTE"
+>"Filter files"</SPAN
 > (the <A
 HREF="filter-file.html"
 >filter
@@ -362,8 +364,22 @@ HREF="filter-file.html"
 >) can be used to re-write the raw page content, including
     viewable text as well as embedded HTML and JavaScript, and whatever else
     lurks on any given web page. The filtering jobs are only pre-defined here;
-    whether to apply them or not is up to the actions files. Only one filter 
-    file may be defined.
+    whether to apply them or not is up to the actions files. 
+    <TT
+CLASS="FILENAME"
+>default.filter</TT
+> includes various filters made 
+    available for use by the developers. Some are much more intrusive than 
+    others, and all should be used with caution. You may define additional 
+    filter files in <TT
+CLASS="FILENAME"
+>config</TT
+> as you can with 
+    actions files. We suggest <TT
+CLASS="FILENAME"
+>user.filter</TT
+> for any 
+    locally defined filters or customizations.
    </P
 ></LI
 ></UL
@@ -371,31 +387,28 @@ HREF="filter-file.html"
 ><P
 > All files use the <SPAN
 CLASS="QUOTE"
->"<VAR
+>"<TT
 CLASS="LITERAL"
->#</VAR
+>#</TT
 >"</SPAN
 > character to denote a
  comment (the rest of the line will be ignored) and understand line continuation
- through placing a backslash ("<VAR
+ through placing a backslash ("<TT
 CLASS="LITERAL"
->\</VAR
+>\</TT
 >") as the very last character
- in a line. If the <VAR
+ in a line. If the <TT
 CLASS="LITERAL"
->#</VAR
+>#</TT
 > is preceded by a backslash, it looses
- its special function. Placing a <VAR
+ its special function. Placing a <TT
 CLASS="LITERAL"
->#</VAR
+>#</TT
 > in front of an otherwise
  valid configuration line to prevent it from being interpreted is called "commenting
  out" that line.</P
 ><P
-> The actions files and <TT
-CLASS="FILENAME"
->default.filter</TT
-> 
+> The actions files and filter files  
  can use Perl style <A
 HREF="appendix.html#REGEX"
 >regular expressions</A
@@ -427,6 +440,14 @@ CLASS="EMPHASIS"
 >old</I
 ></SPAN
 > listening address.</P
+><P
+> While under development, the configuration content is subject to change. 
+ The below documentation may not be accurate by the time you read this. 
+ Also, what constitutes a <SPAN
+CLASS="QUOTE"
+>"default"</SPAN
+> setting, may change, so 
+ please check all your configuration files on important issues.</P
 ></DIV
 ></DIV
 ><DIV
index f139b22..967d2ba 100644 (file)
@@ -1,4 +1,3 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
@@ -6,9 +5,10 @@
 Requests</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="Templates"
@@ -38,7 +38,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -75,9 +75,9 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="CONTACT"
+></A
 >11. Contacting the Developers, Bug Reporting and Feature
-Requests</A
-></H1
+Requests</H1
 ><P
 > We value your feedback. In fact, we rely on it to improve
  <SPAN
@@ -92,8 +92,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="CONTACT-SUPPORT"
->11.1. Get Support</A
-></H2
+></A
+>11.1. Get Support</H2
 ><P
 > For casual users, our 
  <A
@@ -120,9 +120,96 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
+NAME="REPORTING"
+></A
+>11.2. Reporting Problems</H2
+><P
+><SPAN
+CLASS="QUOTE"
+>"Problems"</SPAN
+> for our purposes, come in two forms:</P
+><P
+></P
+><UL
+><LI
+><P
+>    Configuration issues, such as ads that slip through, or sites that 
+    don't function properly due to one <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> 
+    <SPAN
+CLASS="QUOTE"
+>"action"</SPAN
+> or another being turned <SPAN
+CLASS="QUOTE"
+>"on"</SPAN
+>.
+   </P
+></LI
+><LI
+><P
+>    <SPAN
+CLASS="QUOTE"
+>"Bugs"</SPAN
+> in the programming code that makes up 
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, such as that might cause a crash.
+   </P
+></LI
+></UL
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
+NAME="CONTACT-ADS"
+></A
+>11.2.1. Reporting Ads or Other Configuration Problems</H3
+><P
+> Please send feedback on ads that slipped through, innocent images that were
+ blocked, sites that don't work properly, and other configuration related problem of 
+ <TT
+CLASS="FILENAME"
+>default.action</TT
+> file, to 
+ <A
+HREF="http://sourceforge.net/tracker/?group_id=11118&atid=460288"
+TARGET="_top"
+> http://sourceforge.net/tracker/?group_id=11118&#38;atid=460288</A
+>,
+ the Actions File Tracker.</P
+><P
+> New, improved <TT
+CLASS="FILENAME"
+>default.action</TT
+> files may occasionally be made
+ available based on your feedback. These will be announced on the <A
+HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce"
+TARGET="_top"
+>ijbswa-announce</A
+>
+ list and available from our the <A
+HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
+TARGET="_top"
+>files section</A
+> of
+ our <A
+HREF="http://sf.net/projects/ijbswa/"
+TARGET="_top"
+>project page</A
+>.</P
+></DIV
+><DIV
+CLASS="SECT3"
+><H3
+CLASS="SECT3"
+><A
 NAME="CONTACT-BUGS"
->11.2. Report Bugs</A
-></H2
+></A
+>11.2.2. Reporting Bugs</H3
 ><P
 > Please report all bugs <SPAN
 CLASS="emphasis"
@@ -138,13 +225,20 @@ TARGET="_top"
 >http://sourceforge.net/tracker/?group_id=11118&#38;atid=111118</A
 >. </P
 ><P
->  Before doing so, please make sure that the bug has not already been submitted
+>  Before doing so, please make sure that the bug has <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>not already been submitted</I
+></SPAN
+>
   and observe the additional hints at the top of the <A
 HREF="http://sourceforge.net/tracker/?func=add&group_id=11118&atid=111118"
 TARGET="_top"
 >submit
   form</A
->.</P
+>. If already submitted, please feel free to add any info to the 
+  original report that might help solve the issue.</P
 ><P
 > 
   Please try to verify that it is a <SPAN
@@ -161,16 +255,10 @@ TARGET="_top"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >, and see if the problem persists.
-  The <A
-HREF="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT"
-TARGET="_top"
->appendix
-  of the user manual</A
-> also has helpful information 
-  on action debugging. If you are using your own custom configuration, please try
+  If you are using your own custom configuration, please try
   the stock configs to see if the problem is configuration related.</P
 ><P
->  If not using the latest version, chances are that the bug has been found
+>  If not using the latest version, the bug may have been found
   and fixed in the meantime. We would appreciate if you could take the time
   to <A
 HREF="http://www.privoxy.org/user-manual/installation.html"
@@ -178,7 +266,127 @@ TARGET="_top"
 >upgrade
   to the latest version</A
 > (or  even the latest CVS snapshot) and verify
-  your bug, but this is not required for reporting.</P
+  your bug.</P
+><P
+>Please be sure to provide the following information:</P
+><P
+> <P
+></P
+><UL
+><LI
+><P
+>    The exact <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> version of the proxy software
+(if you got the source from CVS, please also give the date).
+   </P
+></LI
+><LI
+><P
+>    The operating system and verions you run
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> on, (e.g. <SPAN
+CLASS="APPLICATION"
+>Windows
+    XP</SPAN
+>).
+   </P
+></LI
+><LI
+><P
+>    The name, platform, and version of the <SPAN
+CLASS="APPLICATION"
+>browser</SPAN
+> 
+    you were using (e.g. <SPAN
+CLASS="APPLICATION"
+>Internet Explorer v5.5</SPAN
+> for Mac).
+   </P
+></LI
+><LI
+><P
+>    The URL where the problem occurred, or some way for us to duplicate the
+    problem (e.g. <TT
+CLASS="LITERAL"
+>http://somesite.example.com?somethingelse=123</TT
+>). 
+   </P
+></LI
+><LI
+><P
+>    Whether your version of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is one supplied
+    by the developers of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> via SourceForge,
+    or somewhere else.
+   </P
+></LI
+><LI
+><P
+>    Whether you are using <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> in tandem with 
+    another proxy such as <SPAN
+CLASS="APPLICATION"
+>TOR</SPAN
+>. If so, please try 
+    disabling the other proxy.
+   </P
+></LI
+><LI
+><P
+>    Whether you are using a personal firewall product. If so, does 
+    <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> work without it?
+   </P
+></LI
+><LI
+><P
+>    Any other pertinent information to help identify the problem such as config
+    or log file excerpts (yes, you should have log file entries for each
+    action taken).
+   </P
+></LI
+><LI
+><P
+>    <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>Please provide your SF login, or email address</I
+></SPAN
+>, in case we 
+    need to contact you.
+   </P
+></LI
+></UL
+></P
+><P
+>  The <A
+HREF="http://www.privoxy.org/user-manual/appendix.html#ACTIONSANAT"
+TARGET="_top"
+>appendix
+  of the user manual</A
+> also has helpful information 
+  on understanding <TT
+CLASS="LITERAL"
+>actions</TT
+>, and <TT
+CLASS="LITERAL"
+>action</TT
+> debugging. </P
+></DIV
 ></DIV
 ><DIV
 CLASS="SECT2"
@@ -186,8 +394,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="CONTACT-FEATURE"
->11.3. Request New Features</A
-></H2
+></A
+>11.3. Request New Features</H2
 ><P
 > You are welcome to submit ideas on new features or other proposals
  for improvement through our feature request tracker at
@@ -202,52 +410,9 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="CONTACT-ADS"
->11.4. Report Ads or Other Actions-Related Problems</A
-></H2
-><P
-> Please send feedback on ads that slipped through, innocent images that were blocked,
- and any other problems relating to the <TT
-CLASS="FILENAME"
->default.action</TT
-> file through
- our actions feedback mechanism located at
- <A
-HREF="javascript:w=Math.floor(screen.width/2);h=Math.floor(screen.height*0.9);void(window.open('http://www.privoxy.org/actions','Feedback','screenx='+w+',width='+w+',height='+h+',scrollbars=yes,toolbar=no,location=no,directories=no,status=no,menubar=no,copyhistory=no').focus());"
-TARGET="_top"
->http://www.privoxy.org/actions/</A
->.
- On this page, you will also find a bookmark which will take you back there from
- any troubled site and even pre-fill the form!</P
-><P
-> New, improved <TT
-CLASS="FILENAME"
->default.action</TT
-> files will occasionally be made
- available based on your feedback. These will be announced on the <A
-HREF="http://lists.sourceforge.net/lists/listinfo/ijbswa-announce"
-TARGET="_top"
->ijbswa-announce</A
->
- list and available from our the <A
-HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
-TARGET="_top"
->files section</A
-> of
- our <A
-HREF="http://sf.net/projects/ijbswa/"
-TARGET="_top"
->project page</A
->.</P
-></DIV
-><DIV
-CLASS="SECT2"
-><H2
-CLASS="SECT2"
-><A
 NAME="CONTACT-OTHER"
->11.5. Other</A
-></H2
+></A
+>11.4. Other</H2
 ><P
 >For any other issues, feel free to use the mailing lists. Technically interested users
 and people who wish to contribute to the project are also welcome on the developers list!
index 3e0331d..7aa42b0 100644 (file)
@@ -1,13 +1,13 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >Privoxy Copyright, License and History</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="Contacting the Developers, Bug Reporting and Feature
@@ -38,7 +38,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -75,18 +75,18 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="COPYRIGHT"
+></A
 >12. <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> Copyright, License and History</A
-></H1
+> Copyright, License and History</H1
 ><P
-> Copyright Â© 2001 - 2004 by Privoxy Developers <CODE
+> Copyright Â© 2001 - 2006 by Privoxy Developers <TT
 CLASS="EMAIL"
 >&#60;<A
-HREF="mailto:developers@privoxy.org"
->developers@privoxy.org</A
->&#62;</CODE
+HREF="mailto:ijbswa-developers@lists.sourceforge.net"
+>ijbswa-developers@lists.sourceforge.net</A
+>&#62;</TT
 ></P
 ><P
 > Some source code is based on code Copyright Â© 1997 by Anonymous Coders
@@ -100,9 +100,9 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN3561"
->12.1. License</A
-></H2
+NAME="AEN4312"
+></A
+>12.1. License</H2
 ><P
 > <SPAN
 CLASS="APPLICATION"
@@ -163,10 +163,10 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="HISTORY"
->12.2. History</A
-></H2
+></A
+>12.2. History</H2
 ><P
-> In the beginning, there was the
+> Along time ago, there was the
  <A
 HREF="http://www.junkbusters.com/ijb.html"
 TARGET="_top"
@@ -180,12 +180,12 @@ HREF="http://www.junkbusters.com/"
 TARGET="_top"
 >Junkbusters
  Corporation</A
->. It saved many users a lot of pain in the early days of
+>. This saved many users a lot of pain in the early days of
  web advertising and user tracking.</P
 ><P
 > But the web, its protocols and standards, and with it, the techniques for
- forcing  users to consume ads, give up autonomy over their browsing, and
- for spying on them, kept evolving. Unfortunately, the <SPAN
+ forcing  ads on users, give up autonomy over their browsing, and
+ for tracking them, keeps evolving. Unfortunately, the <SPAN
 CLASS="APPLICATION"
 >Internet
  Junkbuster</SPAN
@@ -250,37 +250,41 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="AUTHORS"
->12.3. Authors</A
-></H2
+></A
+>12.3. Authors</H2
 ><P
-> Current Developement Team:</P
+>Current Developement Team:</P
 ><P
 CLASS="LITERALLAYOUT"
->&nbsp;Hal&nbsp;Burgiss&nbsp;(docs)<br>
-&nbsp;Andreas&nbsp;Oesterhelt<br>
-&nbsp;David&nbsp;Schmidt&nbsp;(OS/2,&nbsp;Mac&nbsp;OSX&nbsp;ports)<br>
-&nbsp;<br>&#13;</P
+>&nbsp;David&nbsp;Schmidt<br>
+&nbsp;Fabian&nbsp;Keil<br>
+<br>
+Current&nbsp;Contributors:<br>
+<br>
+&nbsp;Hal&nbsp;Burgiss<br>
+&nbsp;Johny&nbsp;Agotnes&nbsp;<br>
+&nbsp;Moritz&nbsp;Barsnick<br>
+&nbsp;Mattes&nbsp;Dolak&nbsp;<br>
+&nbsp;Roland&nbsp;Rosenfeld<br>&#13;</P
 ><P
-> Current and Former Project Contributors:</P
+> Former Project Developers and Contributors:</P
 ><P
 CLASS="LITERALLAYOUT"
->&nbsp;Johny&nbsp;Agotnes&nbsp;<br>
-&nbsp;Rodrigo&nbsp;Barbosa&nbsp;(RPM&nbsp;specfiles)<br>
-&nbsp;Moritz&nbsp;Barsnick<br>
+>&nbsp;<br>
+&nbsp;Andreas&nbsp;Oesterhelt<br>
+&nbsp;Rodrigo&nbsp;Barbosa<br>
 &nbsp;Brian&nbsp;Dessent<br>
-&nbsp;Mattes&nbsp;Dolak&nbsp;<br>
 &nbsp;Jon&nbsp;Foster<br>
-&nbsp;Karsten&nbsp;Hopp&nbsp;(Red&nbsp;Hat)<br>
+&nbsp;Karsten&nbsp;Hopp<br>
 &nbsp;Alexander&nbsp;Lazic<br>
 &nbsp;Daniel&nbsp;Leite<br>
 &nbsp;Gábor&nbsp;Lipták<br>
-&nbsp;Adam&nbsp;Lock&nbsp;(Win32)<br>
+&nbsp;Adam&nbsp;Lock<br>
 &nbsp;Guy&nbsp;Laroche<br>
 &nbsp;Haroon&nbsp;Rafique<br>
-&nbsp;Roland&nbsp;Rosenfeld&nbsp;(Debian)<br>
-&nbsp;Georg&nbsp;Sauthoff&nbsp;(Gentoo)<br>
+&nbsp;Georg&nbsp;Sauthoff<br>
 &nbsp;Thomas&nbsp;Steudten<br>
-&nbsp;Joerg&nbsp;Strohmayer&nbsp;(Amiga)<br>
+&nbsp;Joerg&nbsp;Strohmayer<br>
 &nbsp;Rodney&nbsp;Stromlund<br>
 &nbsp;Sviatoslav&nbsp;Sviridov<br>
 &nbsp;Sarantis&nbsp;Paskalis<br>
index 1964283..99edd6c 100644 (file)
@@ -1,13 +1,13 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
->The Filter File</TITLE
+>Filter Files</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="Actions Files"
@@ -37,7 +37,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -74,32 +74,45 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="FILTER-FILE"
->9. The Filter File</A
-></H1
+></A
+>9. Filter Files</H1
 ><P
 > All text substitutions that can be invoked through the
- <VAR
+ <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER"
 >filter</A
-></VAR
-> action
- must first be defined in the filter file, which is typically
- called <TT
+></TT
+> action which 
+ must first be defined in a <SPAN
+CLASS="QUOTE"
+>"filter file"</SPAN
+>, such as 
+ <TT
 CLASS="FILENAME"
 >default.filter</TT
-> and which can be
- selected through the <VAR
+>. Mulitple filter files can be
+ defined through the <TT
 CLASS="LITERAL"
 > <A
 HREF="config.html#FILTERFILE"
 >filterfile</A
-></VAR
+></TT
 > config
- option.</P
+ option. The filters as supplied by the developers will be found in 
+ <TT
+CLASS="FILENAME"
+>default.filter</TT
+>. It is recommended that any locally
+ defined or modified filters go in a separately defined file such as 
+ <TT
+CLASS="FILENAME"
+>user.filter</TT
+>.
+ </P
 ><P
-> Typical reasons for doing such substitutions are to eliminate
+> Typical reasons for doing these kinds of substitutions are to eliminate
  common annoyances in HTML and JavaScript, such as pop-up windows,
  exit consoles, crippled windows without navigation tools, the
  infamous &#60;BLINK&#62; tag etc, to suppress images with certain
@@ -107,9 +120,9 @@ HREF="config.html#FILTERFILE"
  or just to have fun. The possibilities are endless.</P
 ><P
 > Filtering works on any text-based document type, including 
- HTML, JavaScript, CSS etc. (all <VAR
+ HTML, JavaScript, CSS etc. (all <TT
 CLASS="LITERAL"
->text/*</VAR
+>text/*</TT
 >
  MIME types, <SPAN
 CLASS="emphasis"
@@ -117,9 +130,9 @@ CLASS="emphasis"
 CLASS="EMPHASIS"
 >except</I
 ></SPAN
-> <VAR
+> <TT
 CLASS="LITERAL"
->text/plain</VAR
+>text/plain</TT
 >).
  Substitutions are made at the source level, so if you want to <SPAN
 CLASS="QUOTE"
@@ -145,9 +158,9 @@ CLASS="emphasis"
 CLASS="EMPHASIS"
 >keyword</I
 ></SPAN
-> <VAR
+> <TT
 CLASS="LITERAL"
->FILTER:</VAR
+>FILTER:</TT
 >, followed by
  the filter's <SPAN
 CLASS="emphasis"
@@ -185,20 +198,24 @@ TARGET="_top"
  user interface</A
 >.</P
 ><P
-> Once a filter called <VAR
+> Once a filter called <TT
 CLASS="REPLACEABLE"
->name</VAR
+><I
+>name</I
+></TT
 > has been defined
  in the filter file, it can be invoked by using an action of the form
- +<VAR
+ +<TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#FILTER"
 >filter</A
->{<VAR
+>{<TT
 CLASS="REPLACEABLE"
->name</VAR
->}</VAR
+><I
+>name</I
+></TT
+>}</TT
 >
  in any <A
 HREF="actions-file.html"
@@ -232,22 +249,17 @@ HREF="http://www.perl.org/"
 TARGET="_top"
 >Perl</A
 >'s
- <VAR
+ <TT
 CLASS="LITERAL"
->s///</VAR
+>s///</TT
 > operator. If you are familiar with Perl, you
  will find this to be quite intuitive, and may want to look at the
- <A
-HREF="http://www.oesterhelt.org/pcrs/pcrs.3.html"
-TARGET="_top"
->PCRS man page</A
->
- for the subtle differences to Perl behaviour. Most notably, the non-standard
- option letter <VAR
+ PCRS documentation for the subtle differences to Perl behaviour. Most
+ notably, the non-standard option letter <TT
 CLASS="LITERAL"
->U</VAR
-> is supported, which turns the default
- to ungreedy matching.</P
+>U</TT
+> is supported,
which turns the default to ungreedy matching.</P
 ><P
 > If you are new to regular expressions, you might want to take a look at
  the <A
@@ -264,9 +276,9 @@ TARGET="_top"
 HREF="http://perldoc.com/perl5.6.1/pod/perlop.html#s-PATTERN-REPLACEMENT-egimosx"
 TARGET="_top"
 >the 
- <VAR
+ <TT
 CLASS="LITERAL"
->s///</VAR
+>s///</TT
 > operator's syntax</A
 > and <A
 HREF="http://perldoc.com/perl5.6.1/pod/perlre.html"
@@ -280,9 +292,9 @@ CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
-NAME="AEN3212"
->9.1. Filter File Tutorial</A
-></H2
+NAME="AEN3902"
+></A
+>9.1. Filter File Tutorial</H2
 ><P
 > Now, let's complete our <SPAN
 CLASS="QUOTE"
@@ -327,9 +339,9 @@ CLASS="QUOTE"
 CLASS="QUOTE"
 >"foo"</SPAN
 > on each page. For global substitution,
- we'll need to add the <VAR
+ we'll need to add the <TT
 CLASS="LITERAL"
->g</VAR
+>g</TT
 > option:</P
 ><P
 > <TABLE
@@ -386,26 +398,26 @@ s|(&#60;script.*)document\.referrer(.*&#60;/script&#62;)|$1"Not Your Business!"$
 ></P
 ><P
 > Following the header line and a comment, you see the job. Note that it uses
- <VAR
+ <TT
 CLASS="LITERAL"
->|</VAR
-> as the delimiter instead of <VAR
+>|</TT
+> as the delimiter instead of <TT
 CLASS="LITERAL"
->/</VAR
+>/</TT
 >, because
  the pattern contains a forward slash, which would otherwise have to be escaped
- by a backslash (<VAR
+ by a backslash (<TT
 CLASS="LITERAL"
->\</VAR
+>\</TT
 >).</P
 ><P
-> Now, let's examine the pattern: it starts with the text <VAR
+> Now, let's examine the pattern: it starts with the text <TT
 CLASS="LITERAL"
->&#60;script.*</VAR
+>&#60;script.*</TT
 >
- enclosed in parentheses. Since the dot matches any character, and <VAR
+ enclosed in parentheses. Since the dot matches any character, and <TT
 CLASS="LITERAL"
->*</VAR
+>*</TT
 >
  means: <SPAN
 CLASS="QUOTE"
@@ -423,9 +435,9 @@ CLASS="EMPHASIS"
 > text, i.e.
  it matches the whole page, from the start of the first &#60;script&#62; tag.</P
 ><P
-> That's more than we want, but the pattern continues: <VAR
+> That's more than we want, but the pattern continues: <TT
 CLASS="LITERAL"
->document\.referrer</VAR
+>document\.referrer</TT
 >
  matches only the exact string <SPAN
 CLASS="QUOTE"
@@ -453,12 +465,12 @@ CLASS="EMPHASIS"
  in the page (and appear in that order).</P
 ><P
 > But there's still more pattern to go. The next element, again enclosed in parentheses,
- is <VAR
+ is <TT
 CLASS="LITERAL"
->.*&#60;/script&#62;</VAR
->. You already know what <VAR
+>.*&#60;/script&#62;</TT
+>. You already know what <TT
 CLASS="LITERAL"
->.*</VAR
+>.*</TT
 >
  means, so the whole pattern translates to: Match from the start of the first  &#60;script&#62;
  tag in a page to the end of the last &#60;script&#62; tag, provided that the text
@@ -469,17 +481,17 @@ CLASS="QUOTE"
 ><P
 > This is still not the whole story, since we have ignored the options and the parentheses:
  The portions of the page matched by sub-patterns that are enclosed in parentheses, will be
- remembered and be available through the variables <VAR
+ remembered and be available through the variables <TT
 CLASS="LITERAL"
->$1, $2, ...</VAR
+>$1, $2, ...</TT
 > in
- the substitute. The <VAR
+ the substitute. The <TT
 CLASS="LITERAL"
->U</VAR
+>U</TT
 > option switches to ungreedy matching, which means
- that the first <VAR
+ that the first <TT
 CLASS="LITERAL"
->.*</VAR
+>.*</TT
 > in the pattern will only <SPAN
 CLASS="QUOTE"
 >"eat up"</SPAN
@@ -497,9 +509,9 @@ CLASS="EMPHASIS"
  of <SPAN
 CLASS="QUOTE"
 >"document.referrer"</SPAN
->, and that the second <VAR
+>, and that the second <TT
 CLASS="LITERAL"
->.*</VAR
+>.*</TT
 > will
  only span the text up to the <SPAN
 CLASS="emphasis"
@@ -511,13 +523,13 @@ CLASS="EMPHASIS"
 CLASS="QUOTE"
 >"&#60;/script&#62;"</SPAN
 >
- tag. Furthermore, the <VAR
+ tag. Furthermore, the <TT
 CLASS="LITERAL"
->s</VAR
+>s</TT
 > option says that the match may span
- multiple lines in the page, and the <VAR
+ multiple lines in the page, and the <TT
 CLASS="LITERAL"
->g</VAR
+>g</TT
 > option again means that the
  substitution is global.</P
 ><P
@@ -530,27 +542,27 @@ CLASS="QUOTE"
  <SPAN
 CLASS="QUOTE"
 >"document.referrer"</SPAN
-> as <VAR
+> as <TT
 CLASS="LITERAL"
->$1</VAR
+>$1</TT
 >, and the part following
- that string, up to and including the closing tag, as <VAR
+ that string, up to and including the closing tag, as <TT
 CLASS="LITERAL"
->$2</VAR
+>$2</TT
 >.</P
 ><P
 > Now the pattern is deciphered, but wasn't this about substituting things? So
- lets look at the substitute: <VAR
+ lets look at the substitute: <TT
 CLASS="LITERAL"
->$1"Not Your Business!"$2</VAR
+>$1"Not Your Business!"$2</TT
 > is
- easy to read: The text remembered as <VAR
+ easy to read: The text remembered as <TT
 CLASS="LITERAL"
->$1</VAR
+>$1</TT
 >, followed by 
- <VAR
+ <TT
 CLASS="LITERAL"
->"Not Your Business!"</VAR
+>"Not Your Business!"</TT
 > (<SPAN
 CLASS="emphasis"
 ><I
@@ -558,27 +570,27 @@ CLASS="EMPHASIS"
 >including</I
 ></SPAN
 >
- the quotation marks!), followed by the text remembered as <VAR
+ the quotation marks!), followed by the text remembered as <TT
 CLASS="LITERAL"
->$2</VAR
+>$2</TT
 >.
  This produces an exact copy of the original string, with the middle part
  (the <SPAN
 CLASS="QUOTE"
 >"document.referrer"</SPAN
->) replaced by <VAR
+>) replaced by <TT
 CLASS="LITERAL"
 >"Not Your
- Business!"</VAR
+ Business!"</TT
 >.</P
 ><P
 > The whole job now reads: Replace <SPAN
 CLASS="QUOTE"
 >"document.referrer"</SPAN
 > by
- <VAR
+ <TT
 CLASS="LITERAL"
->"Not Your Business!"</VAR
+>"Not Your Business!"</TT
 > wherever it appears inside a
  &#60;script&#62; tag. Note that this job won't break JavaScript syntax,
  since both the original and the replacement are syntactically valid
@@ -604,31 +616,31 @@ s/window\.status\s*=\s*(['"]).*?\1/dUmMy=1/ig</PRE
 ></TABLE
 ></P
 ><P
-> <VAR
+> <TT
 CLASS="LITERAL"
->\s</VAR
+>\s</TT
 > stands for whitespace characters (space, tab, newline,
- carriage return, form feed), so that <VAR
+ carriage return, form feed), so that <TT
 CLASS="LITERAL"
->\s*</VAR
+>\s*</TT
 > means: <SPAN
 CLASS="QUOTE"
 >"zero
  or more whitespace"</SPAN
->. The <VAR
+>. The <TT
 CLASS="LITERAL"
->?</VAR
-> in <VAR
+>?</TT
+> in <TT
 CLASS="LITERAL"
->.*?</VAR
+>.*?</TT
 >
- makes this matching of arbitrary text ungreedy. (Note that the <VAR
+ makes this matching of arbitrary text ungreedy. (Note that the <TT
 CLASS="LITERAL"
->U</VAR
+>U</TT
 >
- option is not set). The <VAR
+ option is not set). The <TT
 CLASS="LITERAL"
->['"]</VAR
+>['"]</TT
 > construct means: <SPAN
 CLASS="QUOTE"
 >"a single
@@ -639,13 +651,13 @@ CLASS="EMPHASIS"
 >or</I
 ></SPAN
 > a double quote"</SPAN
->. Finally, <VAR
+>. Finally, <TT
 CLASS="LITERAL"
->\1</VAR
+>\1</TT
 > is
- a backreference to the first parenthesis just like <VAR
+ a backreference to the first parenthesis just like <TT
 CLASS="LITERAL"
->$1</VAR
+>$1</TT
 > above,
  with the difference that in the <SPAN
 CLASS="emphasis"
@@ -709,22 +721,22 @@ CLASS="QUOTE"
  <SPAN
 CLASS="QUOTE"
 >"&#60;body&#62;"</SPAN
-> tags with the dummy word <VAR
+> tags with the dummy word <TT
 CLASS="LITERAL"
->never</VAR
+>never</TT
 >.
- Note that the <VAR
+ Note that the <TT
 CLASS="LITERAL"
->i</VAR
+>i</TT
 > option makes the pattern matching
  case-insensitive. Also note that ungreedy matching alone doesn't always guarantee
- a minimal match: In the first parenthesis, we had to use <VAR
+ a minimal match: In the first parenthesis, we had to use <TT
 CLASS="LITERAL"
->[^&#62;]*</VAR
+>[^&#62;]*</TT
 >
- instead of <VAR
+ instead of <TT
 CLASS="LITERAL"
->.*</VAR
+>.*</TT
 > to prevent the match from exceeding the 
  &#60;body&#62; tag if it doesn't contain <SPAN
 CLASS="QUOTE"
@@ -752,9 +764,9 @@ s/microsoft(?!\.com)/MicroSuck/ig</PRE
 ></TABLE
 ></P
 ><P
-> Note the <VAR
+> Note the <TT
 CLASS="LITERAL"
->(?!\.com)</VAR
+>(?!\.com)</TT
 > part (a so-called negative lookahead)
  in the job's pattern, which means: Don't match, if the string 
  <SPAN
@@ -794,9 +806,9 @@ s* industry[ -]leading \
 ></TABLE
 ></P
 ><P
-> The <VAR
+> The <TT
 CLASS="LITERAL"
->x</VAR
+>x</TT
 > option in this job turns on extended syntax, and allows for
  e.g. the liberal use of (non-interpreted!) whitespace for nicer formatting. </P
 ><P
@@ -808,8 +820,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="PREDEFINED-FILTERS"
->9.2. The Pre-defined Filters</A
-></H2
+></A
+>9.2. The Pre-defined Filters</H2
 ><P
 >The distribution <TT
 CLASS="FILENAME"
@@ -839,12 +851,12 @@ CLASS="EMPHASIS"
 ><LI
 ><P
 >      replaces JavaScript references to the browser's referrer information
-      with the string "Not Your Business!". This compliments the <VAR
+      with the string "Not Your Business!". This compliments the <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#HIDE-REFERRER"
 >hide-referrer</A
-></VAR
+></TT
 > action on the content level.
      </P
 ></LI
@@ -912,12 +924,12 @@ CLASS="EMPHASIS"
 >    This filter will undo many common instances of HTML based abuse.
    </P
 ><P
->    The <VAR
+>    The <TT
 CLASS="LITERAL"
->BLINK</VAR
-> and <VAR
+>BLINK</TT
+> and <TT
 CLASS="LITERAL"
->MARQUEE</VAR
+>MARQUEE</TT
 > tags 
     are neutralized (yeah baby!), and browser windows will be created as
     resizable (as of course they should be!), and will have location,
@@ -936,19 +948,19 @@ CLASS="EMPHASIS"
 ><P
 >    Most cookies are set in the HTTP dialogue, where they can be intercepted
     by the
-    <VAR
+    <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
 >crunch-incoming-cookies</A
-></VAR
+></TT
 >
-    and <VAR
+    and <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
 >crunch-outgoing-cookies</A
-></VAR
+></TT
 >
     actions. But web sites increasingly make use of HTML meta tags and JavaScript
     to sneak cookies to the browser on the content level.
@@ -1031,12 +1043,12 @@ CLASS="EMPHASIS"
 ><DD
 ><P
 >    This is a helper filter that has no value if used alone. It makes the
-    <VAR
+    <TT
 CLASS="LITERAL"
->banners-by-size</VAR
-> and <VAR
+>banners-by-size</TT
+> and <TT
 CLASS="LITERAL"
->banners-by-link</VAR
+>banners-by-link</TT
 >
     (see below) filters more effective and should be enabled together with them.
    </P
@@ -1166,7 +1178,7 @@ CLASS="EMPHASIS"
 ><DD
 ><P
 >    Many Microsoft products that generate HTML use non-standard extensions (read:
-    violations) of the ISO 8859-1 aka Latin-1 character set. This causes those
+    violations) of the ISO 8859-1 aka Latin-1 character set. This can cause those
     HTML documents to display with errors on standard-compliant platforms. 
    </P
 ><P
@@ -1174,7 +1186,9 @@ CLASS="EMPHASIS"
     It is not necessary when using MS products, and will cause corruption of  
     all documents that use 8-bit character sets other than Latin-1. It's mostly
     worthwhile for Europeans on non-MS platforms, if wierd garbage characters
-    sometimes appear on some pages.
+    sometimes appear on some pages, or user agents that don't correct for this on 
+    the fly.
    </P
 ></DD
 ><DT
@@ -1279,6 +1293,36 @@ CLASS="FILENAME"
     anything regarding this filter.
    </P
 ></DD
+><DT
+><A
+NAME="FILTER-SERVER-HEADERS"
+></A
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>filter-server-headers</I
+></SPAN
+></DT
+><DD
+><P
+>   </P
+></DD
+><DT
+><A
+NAME="FILTER-CLIENT-HEADERS"
+></A
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>filter-client-headers</I
+></SPAN
+></DT
+><DD
+><P
+>   </P
+></DD
 ></DL
 ></DIV
 ></DIV
index 47f0b41..34a1405 100644 (file)
@@ -1,11 +1,11 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
->Privoxy 3.0.3 User Manual</TITLE
+>Privoxy 3.0.4 User Manual</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="NEXT"
 TITLE="Introduction"
 HREF="introduction.html"><LINK
@@ -27,8 +27,8 @@ CLASS="TITLEPAGE"
 CLASS="TITLE"
 ><A
 NAME="AEN2"
->Privoxy 3.0.3 User Manual</A
-></H1
+></A
+>Privoxy 3.0.4 User Manual</H1
 ><P
 CLASS="PUBDATE"
 > <SUB
@@ -45,16 +45,16 @@ TARGET="_top"
 ><BR></P
 ><P
 CLASS="PUBDATE"
->$Id: index.html,v 1.18.2.11 2004/01/31 00:05:44 oes Exp $<BR></P
+>$Id: user-manual.sgml,v 2.13 2006/08/22 11:04:59 hal9 Exp $<BR></P
 ><DIV
 ><DIV
 CLASS="ABSTRACT"
-><P
-></P
 ><A
 NAME="AEN9"
 ></A
 ><P
+></P
+><P
 >  The <I
 CLASS="CITETITLE"
 >User Manual</I
@@ -205,9 +205,18 @@ HREF="installation.html#INSTALLATION-KEEPUPDATED"
 ></DD
 ><DT
 >3. <A
-HREF="upgradersnote.html"
+HREF="whatsnew.html"
+>What's New in this Release</A
+></DT
+><DD
+><DL
+><DT
+>3.1. <A
+HREF="whatsnew.html#UPGRADERSNOTE"
 >Note to Upgraders</A
 ></DT
+></DL
+></DD
 ><DT
 >4. <A
 HREF="quickstart.html"
@@ -299,7 +308,7 @@ CLASS="APPLICATION"
 ><DL
 ><DT
 >6.1. <A
-HREF="configuration.html#AEN585"
+HREF="configuration.html#AEN711"
 >Controlling <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
@@ -490,12 +499,12 @@ HREF="actions-file.html"
 ><DL
 ><DT
 >8.1. <A
-HREF="actions-file.html#AEN1753"
+HREF="actions-file.html#AEN1883"
 >Finding the Right Mix</A
 ></DT
 ><DT
 >8.2. <A
-HREF="actions-file.html#AEN1760"
+HREF="actions-file.html#AEN1890"
 >How to Edit</A
 ></DT
 ><DT
@@ -512,12 +521,12 @@ HREF="actions-file.html#AF-PATTERNS"
 ><DL
 ><DT
 >8.4.1. <A
-HREF="actions-file.html#AEN1833"
+HREF="actions-file.html#AEN1964"
 >The Domain Pattern</A
 ></DT
 ><DT
 >8.4.2. <A
-HREF="actions-file.html#AEN1895"
+HREF="actions-file.html#AEN2026"
 >The Path Pattern</A
 ></DT
 ></DL
@@ -541,61 +550,111 @@ HREF="actions-file.html#BLOCK"
 ></DT
 ><DT
 >8.5.3. <A
+HREF="actions-file.html#CONTENT-TYPE-OVERWRITE"
+>content-type-overwrite</A
+></DT
+><DT
+>8.5.4. <A
+HREF="actions-file.html#CRUNCH-CLIENT-HEADER"
+>crunch-server-header</A
+></DT
+><DT
+>8.5.5. <A
+HREF="actions-file.html#CRUNCH-IF-NONE-MATCH"
+>crunch-if-none-match</A
+></DT
+><DT
+>8.5.6. <A
 HREF="actions-file.html#CRUNCH-INCOMING-COOKIES"
 >crunch-incoming-cookies</A
 ></DT
 ><DT
->8.5.4. <A
+>8.5.7. <A
+HREF="actions-file.html#CRUNCH-SERVER-HEADER"
+>crunch-server-header</A
+></DT
+><DT
+>8.5.8. <A
 HREF="actions-file.html#CRUNCH-OUTGOING-COOKIES"
 >crunch-outgoing-cookies</A
 ></DT
 ><DT
->8.5.5. <A
+>8.5.9. <A
 HREF="actions-file.html#DEANIMATE-GIFS"
 >deanimate-gifs</A
 ></DT
 ><DT
->8.5.6. <A
+>8.5.10. <A
 HREF="actions-file.html#DOWNGRADE-HTTP-VERSION"
 >downgrade-http-version</A
 ></DT
 ><DT
->8.5.7. <A
+>8.5.11. <A
 HREF="actions-file.html#FAST-REDIRECTS"
 >fast-redirects</A
 ></DT
 ><DT
->8.5.8. <A
+>8.5.12. <A
 HREF="actions-file.html#FILTER"
 >filter</A
 ></DT
 ><DT
->8.5.9. <A
+>8.5.13. <A
+HREF="actions-file.html#FORCE-TEXT-MODE"
+>force-text-mode</A
+></DT
+><DT
+>8.5.14. <A
+HREF="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT"
+>handle-as-empty-document</A
+></DT
+><DT
+>8.5.15. <A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
 ></DT
 ><DT
->8.5.10. <A
+>8.5.16. <A
+HREF="actions-file.html#HIDE-ACCEPT-LANGUAGE"
+>hide-accept-language</A
+></DT
+><DT
+>8.5.17. <A
+HREF="actions-file.html#HIDE-CONTENT-DISPOSITION"
+>hide-content-disposition</A
+></DT
+><DT
+>8.5.18. <A
+HREF="actions-file.html#HIDE-IF-MODIFIED-SINCE"
+>hide-if-modified-since</A
+></DT
+><DT
+>8.5.19. <A
 HREF="actions-file.html#HIDE-FORWARDED-FOR-HEADERS"
 >hide-forwarded-for-headers</A
 ></DT
 ><DT
->8.5.11. <A
+>8.5.20. <A
 HREF="actions-file.html#HIDE-FROM-HEADER"
 >hide-from-header</A
 ></DT
 ><DT
->8.5.12. <A
+>8.5.21. <A
 HREF="actions-file.html#HIDE-REFERRER"
 >hide-referrer</A
 ></DT
 ><DT
->8.5.13. <A
+>8.5.22. <A
 HREF="actions-file.html#HIDE-USER-AGENT"
 >hide-user-agent</A
 ></DT
 ><DT
->8.5.14. <A
+>8.5.23. <A
+HREF="actions-file.html#INSPECT-JPEGS"
+>inspect-jpegs</A
+></DT
+><DT
+>8.5.24. <A
 HREF="actions-file.html#KILL-POPUPS"
 >kill-popups<A
 NAME="KILL-POPUP"
@@ -603,38 +662,53 @@ NAME="KILL-POPUP"
 ></A
 ></DT
 ><DT
->8.5.15. <A
+>8.5.25. <A
 HREF="actions-file.html#LIMIT-CONNECT"
 >limit-connect</A
 ></DT
 ><DT
->8.5.16. <A
+>8.5.26. <A
 HREF="actions-file.html#PREVENT-COMPRESSION"
 >prevent-compression</A
 ></DT
 ><DT
->8.5.17. <A
+>8.5.27. <A
+HREF="actions-file.html#OVERWRITE-LAST-MODIFIED"
+>overwrite-last-modified</A
+></DT
+><DT
+>8.5.28. <A
+HREF="actions-file.html#REDIRECT"
+>redirect</A
+></DT
+><DT
+>8.5.29. <A
 HREF="actions-file.html#SEND-VANILLA-WAFER"
 >send-vanilla-wafer</A
 ></DT
 ><DT
->8.5.18. <A
+>8.5.30. <A
 HREF="actions-file.html#SEND-WAFER"
 >send-wafer</A
 ></DT
 ><DT
->8.5.19. <A
+>8.5.31. <A
 HREF="actions-file.html#SESSION-COOKIES-ONLY"
 >session-cookies-only</A
 ></DT
 ><DT
->8.5.20. <A
+>8.5.32. <A
 HREF="actions-file.html#SET-IMAGE-BLOCKER"
 >set-image-blocker</A
 ></DT
 ><DT
->8.5.21. <A
-HREF="actions-file.html#AEN2855"
+>8.5.33. <A
+HREF="actions-file.html#TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS"
+>treat-forbidden-connects-like-blocks</A
+></DT
+><DT
+>8.5.34. <A
+HREF="actions-file.html#AEN3543"
 >Summary</A
 ></DT
 ></DL
@@ -653,12 +727,12 @@ HREF="actions-file.html#ACT-EXAMPLES"
 ><DL
 ><DT
 >8.7.1. <A
-HREF="actions-file.html#AEN2920"
+HREF="actions-file.html#AEN3608"
 >default.action</A
 ></DT
 ><DT
 >8.7.2. <A
-HREF="actions-file.html#AEN3086"
+HREF="actions-file.html#AEN3774"
 >user.action</A
 ></DT
 ></DL
@@ -668,13 +742,13 @@ HREF="actions-file.html#AEN3086"
 ><DT
 >9. <A
 HREF="filter-file.html"
->The Filter File</A
+>Filter Files</A
 ></DT
 ><DD
 ><DL
 ><DT
 >9.1. <A
-HREF="filter-file.html#AEN3212"
+HREF="filter-file.html#AEN3902"
 >Filter File Tutorial</A
 ></DT
 ><DT
@@ -704,9 +778,23 @@ HREF="contact.html#CONTACT-SUPPORT"
 ></DT
 ><DT
 >11.2. <A
+HREF="contact.html#REPORTING"
+>Reporting Problems</A
+></DT
+><DD
+><DL
+><DT
+>11.2.1. <A
+HREF="contact.html#CONTACT-ADS"
+>Reporting Ads or Other Configuration Problems</A
+></DT
+><DT
+>11.2.2. <A
 HREF="contact.html#CONTACT-BUGS"
->Report Bugs</A
+>Reporting Bugs</A
 ></DT
+></DL
+></DD
 ><DT
 >11.3. <A
 HREF="contact.html#CONTACT-FEATURE"
@@ -714,11 +802,6 @@ HREF="contact.html#CONTACT-FEATURE"
 ></DT
 ><DT
 >11.4. <A
-HREF="contact.html#CONTACT-ADS"
->Report Ads or Other Actions-Related Problems</A
-></DT
-><DT
->11.5. <A
 HREF="contact.html#CONTACT-OTHER"
 >Other</A
 ></DT
@@ -736,7 +819,7 @@ CLASS="APPLICATION"
 ><DL
 ><DT
 >12.1. <A
-HREF="copyright.html#AEN3561"
+HREF="copyright.html#AEN4312"
 >License</A
 ></DT
 ><DT
@@ -770,7 +853,7 @@ HREF="appendix.html#REGEX"
 ></DT
 ><DT
 >14.2. <A
-HREF="appendix.html#AEN3815"
+HREF="appendix.html#AEN4558"
 ><SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
index c73538e..611c4e9 100644 (file)
@@ -1,20 +1,20 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >Installation</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="Introduction"
 HREF="introduction.html"><LINK
 REL="NEXT"
-TITLE="Note to Upgraders"
-HREF="upgradersnote.html"><LINK
+TITLE="What's New in this Release"
+HREF="whatsnew.html"><LINK
 REL="STYLESHEET"
 TYPE="text/css"
 HREF="../p_doc.css"></HEAD
@@ -37,7 +37,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -59,7 +59,7 @@ WIDTH="10%"
 ALIGN="right"
 VALIGN="bottom"
 ><A
-HREF="upgradersnote.html"
+HREF="whatsnew.html"
 ACCESSKEY="N"
 >Next</A
 ></TD
@@ -74,8 +74,8 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="INSTALLATION"
->2. Installation</A
-></H1
+></A
+>2. Installation</H1
 ><P
 > <SPAN
 CLASS="APPLICATION"
@@ -108,7 +108,7 @@ CLASS="EMPHASIS"
  you.</I
 ></SPAN
 > See the <A
-HREF="upgradersnote.html"
+HREF="whatsnew.html#UPGRADERSNOTE"
 >note to
  upgraders</A
 > section below.</P
@@ -118,8 +118,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="INSTALLATION-PACKAGES"
->2.1. Binary Packages</A
-></H2
+></A
+>2.1. Binary Packages</H2
 ><P
 >How to install the binary packages depends on your operating system:</P
 ><DIV
@@ -128,12 +128,12 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="INSTALLATION-PACK-RPM"
->2.1.1. Red Hat, SuSE and Conectiva RPMs</A
-></H3
+></A
+>2.1.1. Red Hat, SuSE and Conectiva RPMs</H3
 ><P
-> RPMs can be installed with <VAR
+> RPMs can be installed with <TT
 CLASS="LITERAL"
->rpm -Uvh privoxy-3.0.3-1.rpm</VAR
+>rpm -Uvh privoxy-3.0.4-1.rpm</TT
 >,
  and will use <TT
 CLASS="FILENAME"
@@ -163,9 +163,9 @@ CLASS="COMMAND"
 automatically start Privoxy in the boot process.</P
 ><P
 > If you have problems with failed dependencies, try rebuilding the SRC RPM: 
- <VAR
+ <TT
 CLASS="LITERAL"
->rpm --rebuild privoxy-3.0.3-1.src.rpm</VAR
+>rpm --rebuild privoxy-3.0.4-1.src.rpm</TT
 >. This 
  will use your locally installed libraries and RPM version. </P
 ><P
@@ -189,12 +189,12 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="INSTALLATION-DEB"
->2.1.2. Debian</A
-></H3
+></A
+>2.1.2. Debian</H3
 ><P
-> DEBs can be installed with <VAR
+> DEBs can be installed with <TT
 CLASS="LITERAL"
->apt-get install privoxy</VAR
+>apt-get install privoxy</TT
 >,
  and will use <TT
 CLASS="FILENAME"
@@ -208,13 +208,12 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="INSTALLATION-PACK-WIN"
->2.1.3. Windows</A
-></H3
+></A
+>2.1.3. Windows</H3
 ><P
 > Just double-click the installer, which will guide you through
  the installation process. You will find the configuration files
- in the same directory as you installed Privoxy in. We do not
- use the registry of Windows. </P
+ in the same directory as you installed Privoxy in. </P
 ></DIV
 ><DIV
 CLASS="SECT3"
@@ -222,12 +221,12 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="INSTALLATION-PACK-BINTGZ"
->2.1.4. Solaris, NetBSD, FreeBSD, HP-UX</A
-></H3
+></A
+>2.1.4. Solaris, NetBSD, FreeBSD, HP-UX</H3
 ><P
-> Create a new directory, <VAR
+> Create a new directory, <TT
 CLASS="LITERAL"
->cd</VAR
+>cd</TT
 > to it, then unzip and
  untar the archive. For the most part, you'll have to figure out where
  things go. </P
@@ -238,8 +237,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="INSTALLATION-OS2"
->2.1.5. OS/2</A
-></H3
+></A
+>2.1.5. OS/2</H3
 ><P
 > First, make sure that no previous installations of
  <SPAN
@@ -280,40 +279,40 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="INSTALLATION-MAC"
->2.1.6. Mac OSX</A
-></H3
+></A
+>2.1.6. Mac OSX</H3
 ><P
 > Unzip the downloaded file (you can either double-click on the file
  from the finder, or from the desktop if you downloaded it there).
  Then, double-click on the package installer icon named
- <VAR
+ <TT
 CLASS="LITERAL"
->Privoxy.pkg</VAR
+>Privoxy.pkg</TT
 >
  and follow the installation process.
  <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > will be installed in the folder
- <VAR
+ <TT
 CLASS="LITERAL"
->/Library/Privoxy</VAR
+>/Library/Privoxy</TT
 >.
  It will start automatically whenever you start up.  To prevent it from
  starting automatically, remove or rename the folder
- <VAR
+ <TT
 CLASS="LITERAL"
->/Library/StartupItems/Privoxy</VAR
+>/Library/StartupItems/Privoxy</TT
 >. </P
 ><P
 > To start Privoxy by hand, double-click on 
- <VAR
+ <TT
 CLASS="LITERAL"
->StartPrivoxy.command</VAR
+>StartPrivoxy.command</TT
 > in the
- <VAR
+ <TT
 CLASS="LITERAL"
->/Library/Privoxy</VAR
+>/Library/Privoxy</TT
 > folder.
  Or, type this command in the Terminal:</P
 ><P
@@ -340,8 +339,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="INSTALLATION-AMIGA"
->2.1.7. AmigaOS</A
-></H3
+></A
+>2.1.7. AmigaOS</H3
 ><P
 > Copy and then unpack the <TT
 CLASS="FILENAME"
@@ -360,8 +359,8 @@ CLASS="SECT3"
 CLASS="SECT3"
 ><A
 NAME="INSTALLATTION-GENTOO"
->2.1.8. Gentoo</A
-></H3
+></A
+>2.1.8. Gentoo</H3
 ><P
 > Gentoo source packages (Ebuilds) for <SPAN
 CLASS="APPLICATION"
@@ -378,13 +377,13 @@ CLASS="APPLICATION"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > under Gentoo just do 
- first <VAR
+ first <TT
 CLASS="LITERAL"
->emerge rsync</VAR
+>emerge rsync</TT
 > to get the latest changes from the 
- Portage tree. With <VAR
+ Portage tree. With <TT
 CLASS="LITERAL"
->emerge privoxy</VAR
+>emerge privoxy</TT
 > you install the latest 
  version.</P
 ><P
@@ -394,7 +393,7 @@ CLASS="FILENAME"
 >, the 
  documentation is in <TT
 CLASS="FILENAME"
->/usr/share/doc/privoxy-3.0.3</TT
+>/usr/share/doc/privoxy-3.0.4</TT
 >
  and the Log directory is in <TT
 CLASS="FILENAME"
@@ -408,8 +407,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="INSTALLATION-SOURCE"
->2.2. Building from Source</A
-></H2
+></A
+>2.2. Building from Source</H2
 ><P
 > The most convenient way to obtain the <SPAN
 CLASS="APPLICATION"
@@ -429,12 +428,7 @@ HREF="http://sourceforge.net/cvs/?group_id=11118"
 TARGET="_top"
 >the
  CVS repository</A
-> or simply download <A
-HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2"
-TARGET="_top"
->the nightly CVS
- tarball.</A
-></P
+>. </P
 ><P
 > To build <SPAN
 CLASS="APPLICATION"
@@ -457,12 +451,7 @@ TARGET="_top"
 > are required.</P
 ><P
 > When building from a source tarball (either release version or
- <A
-HREF="http://cvs.sourceforge.net/cvstarballs/ijbswa-cvsroot.tar.bz2"
-TARGET="_top"
->nightly CVS
- tarball</A
->), first unpack the source: </P
+ a nightly CVS tarball, first unpack the source: </P
 ><P
 > <TABLE
 BORDER="0"
@@ -472,8 +461,8 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="SCREEN"
-> tar xzvf privoxy-3.0.3-src* [.tgz or .tar.gz]
- cd privoxy-3.0.3</PRE
+> tar xzvf privoxy-3.0.4-beta-src* [.tgz or .tar.gz]
+ cd privoxy-3.0.4-beta</PRE
 ></TD
 ></TR
 ></TABLE
@@ -481,7 +470,8 @@ CLASS="SCREEN"
 ><P
 > For retrieving the current CVS sources, you'll need CVS installed.
  Note that sources from CVS are development quality, and may not be
- stable, or well tested. To download CVS source:</P
+ stable, or well tested. To download CVS source, check the Sourceforge
+ documentation, which might give commands like:</P
 ><P
 > <TABLE
 BORDER="0"
@@ -491,8 +481,8 @@ WIDTH="100%"
 ><TD
 ><PRE
 CLASS="SCREEN"
->  cvs -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa login
-  cvs -z3 -d:pserver:anonymous@cvs.ijbswa.sourceforge.net:/cvsroot/ijbswa co current
+>  cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
+  cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co current
   cd current</PRE
 ></TD
 ></TR
@@ -505,7 +495,72 @@ CLASS="FILENAME"
 >, which will 
  contain the source tree.</P
 ><P
-> Then, in either case, to build from unpacked tarball or CVS source:</P
+> You can also check out any <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ <SPAN
+CLASS="QUOTE"
+>"branch"</SPAN
+>, just exchange the <SPAN
+CLASS="APPLICATION"
+>current</SPAN
+>
+ name with the wanted branch name (Example: v_3_0_branch for the 3.0 cvs
+ tree).</P
+><P
+> It is also strongly recommended to not run <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>
+ as root, and instead it is suggested to create a <SPAN
+CLASS="QUOTE"
+>"privoxy"</SPAN
+> user
+ and group for this purpose. See your local documentation for the correct 
+ command line to do this. </P
+><P
+> <TT
+CLASS="FILENAME"
+>/etc/passwd</TT
+> might then look like:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>  privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> And then <TT
+CLASS="FILENAME"
+>/etc/group</TT
+>, like:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+>  privoxy:*:7777:</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> Some binary packages may do this for you.</P
+><P
+> Then, to build from either unpacked tarball or CVS source:</P
 ><P
 > <TABLE
 BORDER="0"
@@ -518,16 +573,19 @@ CLASS="SCREEN"
 > autoheader
  autoconf
  ./configure      # (--help to see options)
- make             # (the make from gnu, gmake for *BSD
+ make             # (the make from GNU, sometimes called gmake
  su 
  make -n install  # (to see where all the files will go)
- make install     # (to really install)</PRE
+ make -s install  # (to really install, -s to silence output)</PRE
 ></TD
 ></TR
 ></TABLE
 ></P
 ><P
->  If you have gnu make, you can have the first four steps 
+>  If you have GNU <B
+CLASS="COMMAND"
+>make</B
+>, you can have the first four steps
   automatically done for you by just typing:</P
 ><P
 > <TABLE
@@ -546,6 +604,204 @@ CLASS="SCREEN"
 ><P
 >  in the freshly downloaded or unpacked source directory.</P
 ><P
+> <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>WARNING:</I
+></SPAN
+> If installing as root, the install will fail
+ unless a non-root user or group is specified, or a <TT
+CLASS="LITERAL"
+>privoxy</TT
+>
+ user and group already exist on the system. If a non-root user is specified,
+ and no group, then the installation will try to also use a group of the same name
+ as <SPAN
+CLASS="QUOTE"
+>"user"</SPAN
+>. If a group is specified (and no user), then the
+ support files will be installed as writable by that group, and owned by the
+ user running the installation.</P
+><P
+> <B
+CLASS="COMMAND"
+>configure</B
+> accepts <TT
+CLASS="LITERAL"
+>--with-user</TT
+> and
+ <TT
+CLASS="LITERAL"
+>--with-group</TT
+> options for setting user and group ownership
+ of the configuration files (which need to be writable by the daemon). The
+ specified <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>user must already exist</I
+></SPAN
+>. When starting
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>, it should be run as this same user to
+ insure write access to configuration and log files.</P
+><P
+> Alternately, you can specify <TT
+CLASS="LITERAL"
+>user</TT
+> and <TT
+CLASS="LITERAL"
+>group</TT
+>
+ on the <B
+CLASS="COMMAND"
+>make</B
+> command line, but be sure both already exist:</P
+><P
+> <TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="SCREEN"
+> make -s install  USER=privoxy GROUP=privoxy</PRE
+></TD
+></TR
+></TABLE
+></P
+><P
+> The default installation path for <B
+CLASS="COMMAND"
+>make install</B
+> is 
+ <TT
+CLASS="FILENAME"
+>/usr/local</TT
+>. This may of course be customized with 
+ the various <B
+CLASS="COMMAND"
+>./configure</B
+> path options. If you are doing 
+ a root install to anywhere else besides <TT
+CLASS="FILENAME"
+>/usr/local</TT
+>, be
+ sure to set the appropriate paths with the correct configure options
+ (<B
+CLASS="COMMAND"
+>./configure --help</B
+>).</P
+><P
+> If you do install to <TT
+CLASS="FILENAME"
+>/usr/local</TT
+>, the install will use
+ <TT
+CLASS="LITERAL"
+>sysconfdir=$prefix/etc/privoxy</TT
+> by default. All other
+ destinations, and the direct usage of <TT
+CLASS="LITERAL"
+>--sysconfdir</TT
+> flag
+ behave like normal, i.e. will not add the extra <TT
+CLASS="FILENAME"
+>privoxy</TT
+>
+ directory. This is for a safer install, as there may already exist another
+ program that uses a file with the <SPAN
+CLASS="QUOTE"
+>"config"</SPAN
+> name, and thus makes
+ <TT
+CLASS="FILENAME"
+>/usr/local/etc</TT
+> cleaner.</P
+><P
+> If installing to <TT
+CLASS="FILENAME"
+>/usr/local</TT
+>, the docs will go by default
+ to <TT
+CLASS="FILENAME"
+>$prefix/share/doc</TT
+>. But if this directory doesn't
+ exist, it will then try <TT
+CLASS="FILENAME"
+>$prefix/doc</TT
+> and install there before
+ creating a new <TT
+CLASS="FILENAME"
+>$prefix/share/doc</TT
+> just for
+ <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>.</P
+><P
+> Again, if the installs goes to <TT
+CLASS="FILENAME"
+>/usr/local</TT
+>, the
+ <TT
+CLASS="LITERAL"
+>localstatedir</TT
+> (ie: <TT
+CLASS="FILENAME"
+>var/</TT
+>) will default
+ to <TT
+CLASS="FILENAME"
+>/var</TT
+> instead of <TT
+CLASS="LITERAL"
+>$prefix/var</TT
+> so
+ the logs will go to <TT
+CLASS="FILENAME"
+>/var/log/privoxy/</TT
+>, and the pid file
+ will be created in <TT
+CLASS="FILENAME"
+>/var/run/privoxy.pid</TT
+>. </P
+><P
+> <B
+CLASS="COMMAND"
+>make install</B
+> will attempt to set the correct values 
+ in <TT
+CLASS="FILENAME"
+>config</TT
+> (main configuration file). You may want 
+ to check this to make sure all values are correct. If appropriate,
+ an init script will be installed, but it is up to the user to determine 
+ how and where to start <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>. The init 
+ script should be checked for correct paths and values, if anything other than
+ a default install is done.</P
+><P
+> If install finds previous versions of any configuration files, these will not
+ be overwritten, and the new ones will be installed with a <SPAN
+CLASS="QUOTE"
+>"new"</SPAN
+>
+ extension. You will then need to manually update the installed configuration
+ files as needed. All template files will be overwritten. If you have
+ customized, local templates, you should save these first. If a previous
+ version of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> is already running, you will
+ have to restart it manually.</P
+><P
 > For more detailed instructions on how to build Redhat and SuSE RPMs,
  Windows self-extracting installers, building on platforms with
  special requirements etc, please consult the <A
@@ -560,8 +816,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="INSTALLATION-KEEPUPDATED"
->2.3. Keeping your Installation Up-to-Date</A
-></H2
+></A
+>2.3. Keeping your Installation Up-to-Date</H2
 ><P
 > As user feedback comes in and development continues, we will make updated versions
  of both the main <A
@@ -586,10 +842,10 @@ TARGET="_top"
  to our announce  mailing list</A
 >, ijbswa-announce@lists.sourceforge.net.</P
 ><P
-> In order not to loose your personal changes and adjustments when updating
- to the latest <VAR
+> In order not to lose your personal changes and adjustments when updating
+ to the latest <TT
 CLASS="LITERAL"
->default.action</VAR
+>default.action</TT
 > file we <SPAN
 CLASS="emphasis"
 ><I
@@ -597,9 +853,9 @@ CLASS="EMPHASIS"
 >strongly
  recommend</I
 ></SPAN
-> that you use <VAR
+> that you use <TT
 CLASS="LITERAL"
->user.action</VAR
+>user.action</TT
 > for your
  customization of <SPAN
 CLASS="APPLICATION"
@@ -644,7 +900,7 @@ WIDTH="33%"
 ALIGN="right"
 VALIGN="top"
 ><A
-HREF="upgradersnote.html"
+HREF="whatsnew.html"
 ACCESSKEY="N"
 >Next</A
 ></TD
@@ -664,7 +920,7 @@ VALIGN="top"
 WIDTH="33%"
 ALIGN="right"
 VALIGN="top"
->Note to Upgraders</TD
+>What's New in this Release</TD
 ></TR
 ></TABLE
 ></DIV
index b159116..842014a 100644 (file)
@@ -1,16 +1,16 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >Introduction</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="NEXT"
 TITLE="Installation"
@@ -37,7 +37,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -74,22 +74,42 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="INTRODUCTION"
->1. Introduction</A
-></H1
+></A
+>1. Introduction</H1
 ><P
-> This documentation is included with the current stable version of
+> This documentation is included with the current BETA version of
  <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
->, v.3.0.3.</P
+>, v.3.0.4, 
+ and is mostly complete at this point. The most up to date reference for the
+ time being is still the comments in the source files and in the individual
+ configuration files. Development of version 3.0 is currently nearing
+ completion, and includes many significant changes and enhancements over
+ earlier versions. The target release date for
+ stable v3.0 is <SPAN
+CLASS="QUOTE"
+>"soon"</SPAN
+> ;-).</P
+><P
+> Since this is a BETA version, not all new features are well tested. This
+ documentation may be slightly out of sync as a result (especially with 
+ CVS sources). And there <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>may be</I
+></SPAN
+> bugs, though hopefully
+ not many! </P
 ><DIV
 CLASS="SECT2"
 ><H2
 CLASS="SECT2"
 ><A
 NAME="FEATURES"
->1.1. Features</A
-></H2
+></A
+>1.1. Features</H2
 ><P
 > In addition to <SPAN
 CLASS="APPLICATION"
@@ -99,7 +119,8 @@ CLASS="APPLICATION"
  <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> provides new features:</P
+> provides new features,
+ some of them currently under development:</P
 ><P
 > <P
 ></P
@@ -241,7 +262,7 @@ ACCESSKEY="N"
 WIDTH="33%"
 ALIGN="left"
 VALIGN="top"
->Privoxy 3.0.3 User Manual</TD
+>Privoxy 3.0.4 User Manual</TD
 ><TD
 WIDTH="34%"
 ALIGN="center"
index 5bfc1c9..1237292 100644 (file)
@@ -1,17 +1,17 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >Quickstart to Using Privoxy</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
-TITLE="Note to Upgraders"
-HREF="upgradersnote.html"><LINK
+TITLE="What's New in this Release"
+HREF="whatsnew.html"><LINK
 REL="NEXT"
 TITLE="Starting Privoxy"
 HREF="startup.html"><LINK
@@ -37,7 +37,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -45,7 +45,7 @@ WIDTH="10%"
 ALIGN="left"
 VALIGN="bottom"
 ><A
-HREF="upgradersnote.html"
+HREF="whatsnew.html"
 ACCESSKEY="P"
 >Prev</A
 ></TD
@@ -74,10 +74,10 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="QUICKSTART"
+></A
 >4. Quickstart to Using <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-></A
 ></H1
 ><P
 > <P
@@ -85,15 +85,6 @@ CLASS="APPLICATION"
 ><UL
 ><LI
 ><P
->   If upgrading, from versions before 2.9.16, please back up any configuration
-   files. See the <A
-HREF="upgradersnote.html"
->Note to Upgraders</A
-> Section.
- </P
-></LI
-><LI
-><P
 >  Install <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
@@ -143,12 +134,12 @@ CLASS="APPLICATION"
 >Privoxy</SPAN
 > as HTTP and
    HTTPS (SSL) proxy by setting the proxy configuration for address of
-   <VAR
+   <TT
 CLASS="LITERAL"
->127.0.0.1</VAR
-> and port <VAR
+>127.0.0.1</TT
+> and port <TT
 CLASS="LITERAL"
->8118</VAR
+>8118</TT
 >.
    (<SPAN
 CLASS="APPLICATION"
@@ -248,7 +239,7 @@ HREF="contact.html"
 ></LI
 ><LI
 ><P
->   Now enjoy surfing with enhanced comfort and privacy!
+>   Now enjoy surfing with enhanced control, comfort and privacy!
   </P
 ></LI
 ></UL
@@ -259,8 +250,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="QUICKSTART-AD-BLOCKING"
->4.1. Quickstart to Ad Blocking</A
-></H2
+></A
+>4.1. Quickstart to Ad Blocking</H2
 ><P
 > Ad blocking is but one of <SPAN
 CLASS="APPLICATION"
@@ -369,25 +360,25 @@ CLASS="APPLICATION"
  or a server somewhere else on the Internet. Complex web pages will have many
  such embedded URLs.</P
 ><P
-> The actions we need to know about for ad blocking are:  <VAR
+> The actions we need to know about for ad blocking are:  <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
->, <VAR
+></TT
+>, <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
-></VAR
+></TT
 >, and
- <VAR
+ <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#SET-IMAGE-BLOCKER"
 >set-image-blocker</A
-></VAR
+></TT
 >:</P
 ><P
 > <P
@@ -395,12 +386,12 @@ HREF="actions-file.html#SET-IMAGE-BLOCKER"
 ><UL
 ><LI
 ><P
->   <VAR
+>   <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 > - this action stops
    any contact between your browser and any URL patterns that match this
    action's configuration. It can be used for blocking ads, but also anything
@@ -414,12 +405,12 @@ CLASS="APPLICATION"
 ></LI
 ><LI
 ><P
->   <VAR
+>   <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
-></VAR
+></TT
 > - 
    tells <SPAN
 CLASS="APPLICATION"
@@ -447,24 +438,24 @@ CLASS="QUOTE"
 ></LI
 ><LI
 ><P
->   <VAR
+>   <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#SET-IMAGE-BLOCKER"
 >set-image-blocker</A
-></VAR
+></TT
 > - tells
    <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > what to display in place of an ad image that
    has hit a block rule. For this to come into play, the URL must match a
-   <VAR
+   <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 > action somewhere in the
    configuration, <SPAN
 CLASS="emphasis"
@@ -473,12 +464,12 @@ CLASS="EMPHASIS"
 >and</I
 ></SPAN
 >, it must also match an
-   <VAR
+   <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#HANDLE-AS-IMAGE"
 >handle-as-image</A
-></VAR
+></TT
 > action.
   </P
 ><P
@@ -641,7 +632,7 @@ CLASS="GUIBUTTON"
 >  <DIV
 CLASS="FIGURE"
 ><A
-NAME="AEN389"
+NAME="AEN507"
 ></A
 ><P
 ><B
@@ -660,12 +651,12 @@ SRC="../images/files-in-use.jpg"></P
 ><LI
 ><P
 >   You should have a section with only
-   <VAR
+   <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 > listed under 
    <SPAN
 CLASS="QUOTE"
@@ -687,12 +678,12 @@ CLASS="QUOTE"
 >"Actions:"</SPAN
 >.
    This will bring up a list of all actions. Find
-   <VAR
+   <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 > near the top, and click
    in the <SPAN
 CLASS="QUOTE"
@@ -709,12 +700,12 @@ CLASS="GUIBUTTON"
 ></LI
 ><LI
 ><P
->   Now, in the <VAR
+>   Now, in the <TT
 CLASS="LITERAL"
 ><A
 HREF="actions-file.html#BLOCK"
 >block</A
-></VAR
+></TT
 > actions section,
    click the <SPAN
 CLASS="QUOTE"
@@ -730,9 +721,9 @@ CLASS="GUIMENUITEM"
 >Copy Link Location</SPAN
 >"</SPAN
 >.
-   Remove the <VAR
+   Remove the <TT
 CLASS="LITERAL"
->http://</VAR
+>http://</TT
 > at the beginning of the URL. Then, click
    <SPAN
 CLASS="QUOTE"
@@ -798,7 +789,7 @@ WIDTH="33%"
 ALIGN="left"
 VALIGN="top"
 ><A
-HREF="upgradersnote.html"
+HREF="whatsnew.html"
 ACCESSKEY="P"
 >Prev</A
 ></TD
@@ -826,7 +817,7 @@ ACCESSKEY="N"
 WIDTH="33%"
 ALIGN="left"
 VALIGN="top"
->Note to Upgraders</TD
+>What's New in this Release</TD
 ><TD
 WIDTH="34%"
 ALIGN="center"
index a469870..be89b37 100644 (file)
@@ -1,13 +1,13 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >See Also</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="Privoxy Copyright, License and History"
@@ -37,7 +37,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -74,8 +74,8 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="SEEALSO"
->13. See Also</A
-></H1
+></A
+>13. See Also</H1
 ><P
 > Other references and sites of interest to <SPAN
 CLASS="APPLICATION"
@@ -207,29 +207,7 @@ CLASS="QUOTE"
 ><P
 ></P
 >
- <P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
->   <A
-HREF="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/contrib/"
-TARGET="_top"
->http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/ijbswa/contrib/</A
->, cool
-   and fun ideas from <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> users.
-  </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
->
  <P
 ></P
 ><TABLE
@@ -270,30 +248,7 @@ TARGET="_top"
 ><P
 ></P
 >
- <P
-></P
-><TABLE
-BORDER="0"
-><TBODY
-><TR
-><TD
->   <A
-HREF="http://www.waldherr.org/junkbuster/"
-TARGET="_top"
->http://www.waldherr.org/junkbuster/</A
->,
-   Stefan Waldherr's version of Junkbuster, from which <SPAN
-CLASS="APPLICATION"
->Privoxy</SPAN
-> was
-   derived.
-  </TD
-></TR
-></TBODY
-></TABLE
-><P
-></P
->
  <P
 ></P
 ><TABLE
index bc1b506..1d9946b 100644 (file)
@@ -1,13 +1,13 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >Starting Privoxy</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
 TITLE="Quickstart to Using Privoxy"
@@ -37,7 +37,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -74,10 +74,10 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="STARTUP"
+></A
 >5. Starting <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-></A
 ></H1
 ><P
 > Before launching <SPAN
@@ -101,7 +101,7 @@ CLASS="APPLICATION"
 >  <DIV
 CLASS="FIGURE"
 ><A
-NAME="AEN440"
+NAME="AEN558"
 ></A
 ><P
 ><B
@@ -120,6 +120,38 @@ SRC="../images/proxy_setup.jpg"></P
 > 
  With <SPAN
 CLASS="APPLICATION"
+>Firefox</SPAN
+>, this can be set under:</P
+><P
+CLASS="LITERALLAYOUT"
+>&nbsp;<SPAN
+CLASS="GUIBUTTON"
+>Tools</SPAN
+><br>
+&nbsp;&nbsp;&nbsp;|_&nbsp;&nbsp;&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN
+CLASS="GUIBUTTON"
+>Options</SPAN
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN
+CLASS="GUIBUTTON"
+>General</SPAN
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN
+CLASS="GUIBUTTON"
+>Connection Settings</SPAN
+><br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<SPAN
+CLASS="GUIBUTTON"
+>Manual Proxy Configuration</SPAN
+></P
+><P
+> 
+ With <SPAN
+CLASS="APPLICATION"
 >Netscape</SPAN
 > (and
  <SPAN
@@ -197,7 +229,7 @@ CLASS="APPLICATION"
 > <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
-> is typically started by specifying the
+> itself is typically started by specifying the
  main configuration file to be used on the command line. If no configuration
  file is specified on the command line, <SPAN
 CLASS="APPLICATION"
@@ -217,8 +249,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="START-REDHAT"
->5.1. Red Hat and Conectiva</A
-></H2
+></A
+>5.1. Red Hat and Conectiva</H2
 ><P
 > We use a script. Note that Red Hat does not start Privoxy upon booting per
  default. It will use the file <TT
@@ -247,8 +279,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="START-DEBIAN"
->5.2. Debian</A
-></H2
+></A
+>5.2. Debian</H2
 ><P
 > We use a script. Note that Debian starts Privoxy upon booting per
  default.  It will use the file
@@ -278,8 +310,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="START-SUSE"
->5.3. SuSE</A
-></H2
+></A
+>5.3. SuSE</H2
 ><P
 >We use a script. It will use the file <TT
 CLASS="FILENAME"
@@ -308,8 +340,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="START-WINDOWS"
->5.4. Windows</A
-></H2
+></A
+>5.4. Windows</H2
 ><P
 >Click on the Privoxy Icon to start Privoxy. If no configuration file is
  specified on the command line, <SPAN
@@ -328,8 +360,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="START-UNICES"
->5.5. Solaris, NetBSD, FreeBSD, HP-UX and others</A
-></H2
+></A
+>5.5. Solaris, NetBSD, FreeBSD, HP-UX and others</H2
 ><P
 >Example Unix startup command:</P
 ><P
@@ -353,8 +385,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="START-OS2"
->5.6. OS/2</A
-></H2
+></A
+>5.6. OS/2</H2
 ><P
 > During installation, <SPAN
 CLASS="APPLICATION"
@@ -376,21 +408,21 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="START-MACOSX"
->5.7. Mac OSX</A
-></H2
+></A
+>5.7. Mac OSX</H2
 ><P
 > During installation, <SPAN
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > is configured to
  start automatically when the system restarts.  To start Privoxy by hand,
- double-click on the <VAR
+ double-click on the <TT
 CLASS="LITERAL"
->StartPrivoxy.command</VAR
+>StartPrivoxy.command</TT
 > icon in the
- <VAR
+ <TT
 CLASS="LITERAL"
->/Library/Privoxy</VAR
+>/Library/Privoxy</TT
 > folder.  Or, type this command
  in the Terminal:</P
 ><P
@@ -417,8 +449,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="START-AMIGAOS"
->5.8. AmigaOS</A
-></H2
+></A
+>5.8. AmigaOS</H2
 ><P
 > Start <SPAN
 CLASS="APPLICATION"
@@ -449,8 +481,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="START-GENTOO"
->5.9. Gentoo</A
-></H2
+></A
+>5.9. Gentoo</H2
 ><P
 > A script is again used. It will use the file <TT
 CLASS="FILENAME"
@@ -477,9 +509,9 @@ CLASS="SCREEN"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 > is not automatically started at 
- boot time by default. You can change this with the <VAR
+ boot time by default. You can change this with the <TT
 CLASS="LITERAL"
->rc-update</VAR
+>rc-update</TT
 > 
  command.</P
 ><P
@@ -505,8 +537,8 @@ CLASS="SECT2"
 CLASS="SECT2"
 ><A
 NAME="CMDOPTIONS"
->5.10. Command Line Options</A
-></H2
+></A
+>5.10. Command Line Options</H2
 ><P
 > <SPAN
 CLASS="APPLICATION"
index 3446ee2..1f9d53e 100644 (file)
@@ -1,16 +1,16 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <HTML
 ><HEAD
 ><TITLE
 >Templates</TITLE
 ><META
 NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
 REL="HOME"
-TITLE="Privoxy 3.0.3 User Manual"
+TITLE="Privoxy 3.0.4 User Manual"
 HREF="index.html"><LINK
 REL="PREVIOUS"
-TITLE="The Filter File"
+TITLE="Filter Files"
 HREF="filter-file.html"><LINK
 REL="NEXT"
 TITLE="Contacting the Developers, Bug Reporting and Feature
@@ -38,7 +38,7 @@ CELLSPACING="0"
 ><TH
 COLSPAN="3"
 ALIGN="center"
->Privoxy 3.0.3 User Manual</TH
+>Privoxy 3.0.4 User Manual</TH
 ></TR
 ><TR
 ><TD
@@ -75,8 +75,8 @@ CLASS="SECT1"
 CLASS="SECT1"
 ><A
 NAME="TEMPLATES"
->10. Templates</A
-></H1
+></A
+>10. Templates</H1
 ><P
 > All <SPAN
 CLASS="APPLICATION"
@@ -148,15 +148,15 @@ CLASS="EMPHASIS"
 >Not recommended for the casual user</I
 ></SPAN
 >). Note that
- just like in configuration files, lines starting with <VAR
+ just like in configuration files, lines starting with <TT
 CLASS="LITERAL"
->#</VAR
+>#</TT
 > are
  ignored when the templates are filled in.</P
 ><P
-> The place-holders are of the form <VAR
+> The place-holders are of the form <TT
 CLASS="LITERAL"
->@name@</VAR
+>@name@</TT
 >, and you will
  find a list of available symbols, which vary from template to template,
  in the comments at the start of each file. Note that these comments are not
@@ -170,7 +170,7 @@ CLASS="LITERAL"
 CLASS="APPLICATION"
 >Privoxy</SPAN
 >
- in in an alpha or beta development stage:</P
+ is in an alpha or beta development stage:</P
 ><P
 > <TABLE
 BORDER="0"
@@ -191,12 +191,12 @@ CLASS="SCREEN"
 ></P
 ><P
 > If the "unstable" symbol is set, everything in between and including
- <VAR
+ <TT
 CLASS="LITERAL"
->@if-unstable-start</VAR
-> and <VAR
+>@if-unstable-start</TT
+> and <TT
 CLASS="LITERAL"
->if-unstable-end@</VAR
+>if-unstable-end@</TT
 >
  will disappear, leaving nothing but an empty comment:</P
 ><P
@@ -214,9 +214,9 @@ CLASS="SCREEN"
 ></TABLE
 ></P
 ><P
-> There's also an if-then-else construct and an <VAR
+> There's also an if-then-else construct and an <TT
 CLASS="LITERAL"
->#include</VAR
+>#include</TT
 >
  mechanism, but you'll sure find out if you are inclined to edit the
  templates ;-)</P
@@ -225,9 +225,9 @@ CLASS="LITERAL"
  <A
 HREF="http://config.privoxy.org/send-stylesheet"
 TARGET="_top"
-><VAR
+><TT
 CLASS="LITERAL"
->http://config.privoxy.org/send-stylesheet</VAR
+>http://config.privoxy.org/send-stylesheet</TT
 ></A
 >.
  This is, of course, locally served by <SPAN
@@ -284,7 +284,7 @@ ACCESSKEY="N"
 WIDTH="33%"
 ALIGN="left"
 VALIGN="top"
->The Filter File</TD
+>Filter Files</TD
 ><TD
 WIDTH="34%"
 ALIGN="center"
diff --git a/doc/webserver/user-manual/whatsnew.html b/doc/webserver/user-manual/whatsnew.html
new file mode 100644 (file)
index 0000000..54a7fa9
--- /dev/null
@@ -0,0 +1,425 @@
+<HTML
+><HEAD
+><TITLE
+>What's New in this Release</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
+"><LINK
+REL="HOME"
+TITLE="Privoxy 3.0.4 User Manual"
+HREF="index.html"><LINK
+REL="PREVIOUS"
+TITLE="Installation"
+HREF="installation.html"><LINK
+REL="NEXT"
+TITLE="Quickstart to Using Privoxy"
+HREF="quickstart.html"><LINK
+REL="STYLESHEET"
+TYPE="text/css"
+HREF="../p_doc.css"></HEAD
+><BODY
+CLASS="SECT1"
+BGCOLOR="#EEEEEE"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><DIV
+CLASS="NAVHEADER"
+><TABLE
+SUMMARY="Header navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TH
+COLSPAN="3"
+ALIGN="center"
+>Privoxy 3.0.4 User Manual</TH
+></TR
+><TR
+><TD
+WIDTH="10%"
+ALIGN="left"
+VALIGN="bottom"
+><A
+HREF="installation.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="80%"
+ALIGN="center"
+VALIGN="bottom"
+></TD
+><TD
+WIDTH="10%"
+ALIGN="right"
+VALIGN="bottom"
+><A
+HREF="quickstart.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+></TABLE
+><HR
+ALIGN="LEFT"
+WIDTH="100%"></DIV
+><DIV
+CLASS="SECT1"
+><H1
+CLASS="SECT1"
+><A
+NAME="WHATSNEW"
+></A
+>3. What's New in this Release</H1
+><P
+> There are many new features in <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> 3.0.4
+ :</P
+><P
+> <P
+></P
+><UL
+><LI
+><P
+>    Mulitiple <A
+HREF="filter-file.html"
+>filter files</A
+> can now be specifed in <TT
+CLASS="FILENAME"
+>config</TT
+>.
+   </P
+></LI
+><LI
+><P
+>  
+   There are a number of new <A
+HREF="actions-file.html"
+>actions</A
+>:
+  </P
+><P
+>  <P
+></P
+><UL
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#CONTENT-TYPE-OVERWRITE"
+>content-type-overwrite</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#CRUNCH-CLIENT-HEADER"
+>crunch-client-header</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#CRUNCH-IF-NONE-MATCH"
+>crunch-if-none-match</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#CRUNCH-SERVER-HEADER"
+>crunch-server-header</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#FAST-REDIRECTS"
+>fast-redirects</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#FORCE-TEXT-MODE"
+>force-text-mode</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HANDLE-AS-EMPTY-DOCUMENT"
+>handle-as-empty-document</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HIDE-ACCEPT-LANGUAGE"
+>hide-accept-language</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HIDE-CONTENT-DISPOSITION"
+>hide-content-disposition</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HIDE-IF-MODIFIED-SINCE"
+>hide-if-modified-since</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#HIDE-REFERRER"
+>hide-referrer</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#INSPECT-JPEGS"
+>inspect-jpegs</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#OVERWRITE-LAST-MODIFIED"
+>overwrite-last-modified</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#REDIRECT"
+>redirect</A
+></TT
+>
+      </P
+></LI
+><LI
+><P
+>       <TT
+CLASS="LITERAL"
+><A
+HREF="actions-file.html#TREAT-FORBIDDEN-CONNECTS-LIKE-BLOCKS"
+>treat-forbidden-connects-like-blocks</A
+></TT
+>
+      </P
+></LI
+></UL
+>
+  </P
+></LI
+><LI
+><P
+>    <SPAN
+CLASS="APPLICATION"
+>MS-Windows</SPAN
+> versions can now be installed and 
+    started as a <SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>service</I
+></SPAN
+>.
+   </P
+></LI
+><LI
+><P
+>    In addition, there are various bug fixes and enhancements, including 
+    error pages are no longer cached, better DNS error handling, and logging 
+    improvements.
+   </P
+></LI
+></UL
+></P
+><DIV
+CLASS="SECT2"
+><H2
+CLASS="SECT2"
+><A
+NAME="UPGRADERSNOTE"
+></A
+>3.1. Note to Upgraders</H2
+><P
+> A quick list of things to be aware of before upgrading from earlier 
+ versions of <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+>:</P
+><P
+> <P
+></P
+><UL
+><LI
+><P
+>  
+    Some installers may remove earlier versions completely, including 
+    configuration files. Save any important configuration files!
+  </P
+></LI
+><LI
+><P
+>  
+   What constitutes a <SPAN
+CLASS="QUOTE"
+>"default"</SPAN
+> configuration has changed, 
+   and you may want to review which actions are <SPAN
+CLASS="QUOTE"
+>"on"</SPAN
+> by 
+   default. This is primarily a matter of emphasis, but some features 
+   you may have been used to, may now be <SPAN
+CLASS="QUOTE"
+>"off"</SPAN
+> by default.
+  </P
+></LI
+><LI
+><P
+>   
+   Some installers may not automatically start
+   <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+> after installation.
+  </P
+></LI
+></UL
+></P
+></DIV
+></DIV
+><DIV
+CLASS="NAVFOOTER"
+><HR
+ALIGN="LEFT"
+WIDTH="100%"><TABLE
+SUMMARY="Footer navigation table"
+WIDTH="100%"
+BORDER="0"
+CELLPADDING="0"
+CELLSPACING="0"
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+><A
+HREF="installation.html"
+ACCESSKEY="P"
+>Prev</A
+></TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+><A
+HREF="index.html"
+ACCESSKEY="H"
+>Home</A
+></TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+><A
+HREF="quickstart.html"
+ACCESSKEY="N"
+>Next</A
+></TD
+></TR
+><TR
+><TD
+WIDTH="33%"
+ALIGN="left"
+VALIGN="top"
+>Installation</TD
+><TD
+WIDTH="34%"
+ALIGN="center"
+VALIGN="top"
+>&nbsp;</TD
+><TD
+WIDTH="33%"
+ALIGN="right"
+VALIGN="top"
+>Quickstart to Using <SPAN
+CLASS="APPLICATION"
+>Privoxy</SPAN
+></TD
+></TR
+></TABLE
+></DIV
+></BODY
+></HTML
+>
\ No newline at end of file