Privoxy Developer Manual
-By: Privoxy Developers
+Copyright © 2001, 2002 by Privoxy Developers
-$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $
+$Id: developer-manual.sgml,v 1.41 2002/05/04 08:44:44 swa Exp $
The developer manual gives the users information on how to help the developer
team. It provides guidance on coding, testing, documentation and other issues.
8.4. Report ads or other filter problems
8.5. Other
-9. Copyright and History
+9. Copyright, License and History
9.1. Copyright
- 9.2. History
+ 9.2. License
+ 9.3. History
10. See also
Some common elements that you likely will use:
-, paragraph delimiter. Most text needs to be within paragraph elements (there
-are some exceptions).
-, the stylesheets make this italics.
-, files and directories.
-, command examples.
-, like
-, more or less.
-, list with bullets.
-, member of the above.
-, screen output, implies .
-, like HTML tag.
-, for, doh, quoting text.
+<para></para>, paragraph delimiter. Most text needs to be within paragraph
+elements (there are some exceptions).
+<emphasis></emphasis>, the stylesheets make this italics.
+<filename></filename>, files and directories.
+<command></command>, command examples.
+<literallayout></literallayout>, like <pre>, more or less.
+<itemizedlist></itemizedlist>, list with bullets.
+<listitem></listitem>, member of the above.
+<screen></screen>, screen output, implies <literallayout>.
+<ulink url="example.com"></ulink>, like HTML <a> tag.
+<quote></quote>, for, doh, quoting text.
Look at any of the existing docs for examples of all these and more.
Example:
-#include /* This is not a local include */
+#include <iostream.h> /* This is not a local include */
#include "config.h" /* This IS a local include */
Exception:
/* This is not a local include, but requires a path element. */
-#include
+#include <sys/fileName.h>
Note: Please! do not add "-I." to the Makefile without a _very_ good reason.
This duplicates the #include "file.h" behavior.
Example for file comments:
-const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $";
-/*********************************************************************
- *
- * File : $Source$
- *
- * Purpose : (Fill me in with a good description!)
- *
- * Copyright : Written by and Copyright (C) 2001 the SourceForge
- * Privoxy team. http://www.privoxy.org/
- *
- * Based on the Internet Junkbuster originally written
- * by and Copyright (C) 1997 Anonymous Coders and
- * Junkbusters Corporation. http://www.junkbusters.com
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
- * Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU General Public
- * License for more details.
- *
- * The GNU General Public License should be included with
- * this file. If not, you can view it at
- * http://www.gnu.org/copyleft/gpl.html
- * or write to the Free Software Foundation, Inc., 59
- * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Revisions :
- * $Log$
- *
- *********************************************************************/
-
-
-#include "config.h"
-
- ...necessary include files for us to do our work...
-
-const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
+const char FILENAME_rcs[] = "$Id: developer-manual.sgml,v 1.41 2002/05/04 08:44:44 swa Exp $";
+/*********************************************************************
+ *
+ * File : $Source$
+ *
+ * Purpose : (Fill me in with a good description!)
+ *
+ * Copyright : Written by and Copyright (C) 2001 the SourceForge
+ * Privoxy team. http://www.privoxy.org/
+ *
+ * Based on the Internet Junkbuster originally written
+ * by and Copyright (C) 1997 Anonymous Coders and
+ * Junkbusters Corporation. http://www.junkbusters.com
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+ * Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will
+ * be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ *
+ * The GNU General Public License should be included with
+ * this file. If not, you can view it at
+ * http://www.gnu.org/copyleft/gpl.html
+ * or write to the Free Software Foundation, Inc., 59
+ * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Revisions :
+ * $Log$
+ *
+ *********************************************************************/
+
+
+#include "config.h"
+
+ ...necessary include files for us to do our work...
+
+const char FILENAME_h_rcs[] = FILENAME_H_VERSION;
Note: This declares the rcs variables that should be added to the
"show-proxy-args" page. If this is a brand new creation by you, you are free to
Example for file header comments:
-#ifndef _FILENAME_H
-#define _FILENAME_H
-#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $"
-/*********************************************************************
- *
- * File : $Source$
- *
- * Purpose : (Fill me in with a good description!)
- *
- * Copyright : Written by and Copyright (C) 2001 the SourceForge
- * Privoxy team. http://www.privoxy.org/
- *
- * Based on the Internet Junkbuster originally written
- * by and Copyright (C) 1997 Anonymous Coders and
- * Junkbusters Corporation. http://www.junkbusters.com
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
- * Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at
- * your option) any later version.
- *
- * This program is distributed in the hope that it will
- * be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU General Public
- * License for more details.
- *
- * The GNU General Public License should be included with
- * this file. If not, you can view it at
- * http://www.gnu.org/copyleft/gpl.html
- * or write to the Free Software Foundation, Inc., 59
- * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Revisions :
- * $Log$
- *
- *********************************************************************/
-
-
-#include "project.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- ... function headers here ...
-
-
-/* Revision control strings from this header and associated .c file */
-extern const char FILENAME_rcs[];
-extern const char FILENAME_h_rcs[];
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* ndef _FILENAME_H */
-
-/*
- Local Variables:
- tab-width: 3
- end:
-*/
+#ifndef _FILENAME_H
+#define _FILENAME_H
+#define FILENAME_H_VERSION "$Id: developer-manual.sgml,v 1.41 2002/05/04 08:44:44 swa Exp $"
+/*********************************************************************
+ *
+ * File : $Source$
+ *
+ * Purpose : (Fill me in with a good description!)
+ *
+ * Copyright : Written by and Copyright (C) 2001 the SourceForge
+ * Privoxy team. http://www.privoxy.org/
+ *
+ * Based on the Internet Junkbuster originally written
+ * by and Copyright (C) 1997 Anonymous Coders and
+ * Junkbusters Corporation. http://www.junkbusters.com
+ *
+ * This program is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU General
+ * Public License as published by the Free Software
+ * Foundation; either version 2 of the License, or (at
+ * your option) any later version.
+ *
+ * This program is distributed in the hope that it will
+ * be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public
+ * License for more details.
+ *
+ * The GNU General Public License should be included with
+ * this file. If not, you can view it at
+ * http://www.gnu.org/copyleft/gpl.html
+ * or write to the Free Software Foundation, Inc., 59
+ * Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Revisions :
+ * $Log$
+ *
+ *********************************************************************/
+
+
+#include "project.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ ... function headers here ...
+
+
+/* Revision control strings from this header and associated .c file */
+extern const char FILENAME_rcs[];
+extern const char FILENAME_h_rcs[];
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* ndef _FILENAME_H */
+
+/*
+ Local Variables:
+ tab-width: 3
+ end:
+*/
Example for function comments:
-------------------------------------------------------------------------------
-9. Copyright and History
+9. Copyright, License and History
9.1. Copyright
+Permission is granted to copy, distribute and/or modify this document under the
+terms of the GNU Free Documentation License, Version 1.1 or any later version
+published by the Free Software Foundation with no Invariant Sections, no
+Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found
+http://www.gnu.org/licenses/fdl.html.
+
+-------------------------------------------------------------------------------
+
+9.2. License
+
Privoxy is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
-------------------------------------------------------------------------------
-9.2. History
+9.3. History
Privoxy is evolved, and derived from, the Internet Junkbuster, with many
improvments and enhancements over the original.
Privoxy Frequently Asked Questions
-By: Privoxy Developers
+Copyright © 2001, 2002 by Privoxy Developers
-$Id: faq.sgml,v 1.55 2002/05/04 00:41:56 hal9 Exp $
+$Id: faq.sgml,v 1.56 2002/05/04 08:44:44 swa Exp $
This FAQ gives users and developers alike answers to frequently asked questions
about Privoxy .
6.4. Report ads or other filter problems
6.5. Other
-7. Copyright and History
+7. Copyright, License and History
7.1. Copyright
- 7.2. History
+ 7.2. License
+ 7.3. History
1. General Information
1.1. What is this new version of Privoxy?
-The original Internet Junkbuster™ (tm) is a copyrighted product of
-Junkbusters Corporation. Development of this effort stopped some time ago as of
-version 2.0.2. Stefan Waldherr started the ijbswa project on Sourceforge to
-rekindle development. Other developers subsequently joined with Stefan, and
-have since added many new features, refinements and enhancements. The result of
-this effort is Privoxy.
+The original Internet JunkbusterTM (tm) is a copyrighted product of Junkbusters
+Corporation. Development of this effort stopped some time ago as of version
+2.0.2. Stefan Waldherr started the ijbswa project on Sourceforge to rekindle
+development. Other developers subsequently joined with Stefan, and have since
+added many new features, refinements and enhancements. The result of this
+effort is Privoxy.
Privoxy has evolved from the Junkbuster 2.0.2 code base, and has advanced
significantly at this point.
-------------------------------------------------------------------------------
-7. Copyright and History
+7. Copyright, License and History
7.1. Copyright
+Permission is granted to copy, distribute and/or modify this document under the
+terms of the GNU Free Documentation License, Version 1.1 or any later version
+published by the Free Software Foundation with no Invariant Sections, no
+Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found
+http://www.gnu.org/licenses/fdl.html.
+
+Portions of this document are "borrowed" from the original Junkbuster (tm) FAQ,
+and modified as appropriate for Privoxy.
+
+-------------------------------------------------------------------------------
+
+7.2. License
+
Privoxy is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
-------------------------------------------------------------------------------
-7.2. History
+7.3. History
Privoxy is evolved, and derived from, the Internet Junkbuster, with many
improvments and enhancements over the original.
Privoxy User Manual
-By: Privoxy Developers
+Copyright © 2001, 2002 by Privoxy Developers
-$Id: user-manual.sgml,v 1.103 2002/05/04 00:40:53 hal9 Exp $
+$Id: user-manual.sgml,v 1.104 2002/05/04 08:44:45 swa Exp $
The user manual gives users information on how to install, configure and use
Privoxy.
11.4. Report ads or other filter problems
11.5. Other
-12. Copyright and History
+12. Copyright, License and History
12.1. Copyright
- 12.2. History
+ 12.2. License
+ 12.3. History
13. See Also
14. Appendix
without Internet access. You will see the following section:
Privoxy Menu
- ?? View & change the current configuration
- ?? View the source code version numbers
- ?? View the request headers.
- ?? Look up which actions apply to a URL and why
- ?? Toggle Privoxy on or off
+ ? View & change the current configuration
+ ? View the source code version numbers
+ ? View the request headers.
+ ? Look up which actions apply to a URL and why
+ ? Toggle Privoxy on or off
This should be self-explanatory. Note the first item leads to an editor for the
-------------------------------------------------------------------------------
-12. Copyright and History
+12. Copyright, License and History
12.1. Copyright
+Permission is granted to copy, distribute and/or modify this document under the
+terms of the GNU Free Documentation License, Version 1.1 or any later version
+published by the Free Software Foundation with no Invariant Sections, no
+Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found
+http://www.gnu.org/licenses/fdl.html.
+
+-------------------------------------------------------------------------------
+
+12.2. License
+
Privoxy is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
-------------------------------------------------------------------------------
-12.2. History
+12.3. History
Privoxy is evolved, and derived from, the Internet Junkbuster, with many
improvments and enhancements over the original.
And finally we pull it all together in the bottom section and summarize how
Privoxy is applying all its "actions" to "google.com":
- Final results:
+ Final results:
-add-header -block +deanimate-gifs{last} -downgrade-http-version -fast-redirects
-filter{popups} -filter{fun} -filter{shockwave-flash} -filter{crude-parental}
+filter{html-annoyances} +filter{js-annoyances} +filter{content-cookies}
Now another example, "ad.doubleclick.net":
- { +block +handle-as-image }
+ { +block +handle-as-image }
.ad.doubleclick.net
{ +block +handle-as-image }
One last example. Let's try "http://www.rhapsodyk.net/adsl/HOWTO/". This one is
giving us problems. We are getting a blank page. Hmmm...
- Matches for http://www.rhapsodyk.net/adsl/HOWTO/:
+ Matches for http://www.rhapsodyk.net/adsl/HOWTO/:
{ -add-header -block +deanimate-gifs -downgrade-http-version +fast-redirects
+filter{html-annoyances} +filter{js-annoyances} +filter{kill-popups}
explicitly does not block ("{-block}") paths with "adsl". There are various
ways to handle such exceptions. Example:
- { -block }
+ { -block }
/adsl
Now the page displays ;-) Be sure to flush your browser's caches when making
But now what about a situation where we get no explicit matches like we did
with:
- { +block +handle-as-image }
+ { +block +handle-as-image }
/ads
That actually was very telling and pointed us quickly to where the problem was.
cause would be one of the "{+filter}" actions. Try adding the URL for the site
to one of aliases that turn off "+filter":
- {shop}
+ {shop}
.quietpc.com
.worldpay.com # for quietpc.com
.jungle.com
"{shop}" is an "alias" that expands to "{ -filter -session-cookies-only }". Or
you could do your own exception to negate filtering:
- {-filter}
+ {-filter}
.forbes.com
This would probably be most appropriately put in user.action, for local site