4 >Privoxy Developer Manual</TITLE
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.64
11 HREF="introduction.html"><LINK
14 HREF="../p_doc.css"></HEAD
30 >Privoxy Developer Manual</A
47 >By: Privoxy Developers<BR></SPAN
52 >$Id: developer-manual.sgml,v 1.33 2002/04/12 03:49:53 hal9 Exp $<BR></P
65 > The developer manual gives the users information on how to help the developer
66 team. It provides guidance on coding, testing, documentation and other
73 > is a web proxy with advanced filtering
74 capabilities for protecting privacy, filtering web page content, managing
75 cookies, controlling access, and removing ads, banners, pop-ups and other
76 obnoxious Internet junk. <SPAN
80 flexible configuration and can be customized to suit individual needs and
84 > has application for both
85 stand-alone systems and multi-user networks.</P
90 > is based on the code of the
93 >Internet Junkbuster</SPAN
98 > was originally written by Junkbusters
99 Corporation, and was released as free open-source software under the GNU GPL.
100 Stefan Waldherr made many improvements, and started the SourceForge project
101 to continue development.</P
110 > tradition, but adds many
111 refinements, enhancements and new features.</P
113 > You can find the latest version of the this manual at <A
114 HREF="http://www.privoxy.org/developer-manual/"
116 >http://www.privoxy.org/developer-manual/</A
121 >the Contact section</A
123 on how to contact the developers.</P
134 >Table of Contents</B
138 HREF="index.html#INTRO"
143 HREF="introduction.html"
148 HREF="quickstart.html"
149 >Quickstart to Privoxy Development</A
153 HREF="documentation.html"
154 >Documentation Guidelines</A
160 HREF="documentation.html#SGML"
161 >Quickstart to Docbook and SGML</A
165 HREF="documentation.html#DOCSTYLE"
169 > Documentation Style</A
173 HREF="documentation.html#AEN186"
174 >Privoxy Custom Entities</A
181 >Coding Guidelines</A
187 HREF="coding.html#S1"
192 HREF="coding.html#S2"
199 HREF="coding.html#S3"
200 >Comment, Comment, Comment</A
204 HREF="coding.html#S4"
205 >Use blocks for comments</A
209 HREF="coding.html#S5"
210 >Keep Comments on their own line</A
214 HREF="coding.html#S6"
215 >Comment each logical step</A
219 HREF="coding.html#S7"
220 >Comment All Functions Thoroughly</A
224 HREF="coding.html#S8"
225 >Comment at the end of braces if the
226 content is more than one screen length</A
232 HREF="coding.html#S9"
233 >Naming Conventions</A
239 HREF="coding.html#S10"
244 HREF="coding.html#S11"
249 HREF="coding.html#S12"
250 >Header file prototypes</A
254 HREF="coding.html#S13"
255 >Enumerations, and #defines</A
259 HREF="coding.html#S14"
266 HREF="coding.html#S15"
273 HREF="coding.html#S16"
274 >Put braces on a line by themselves.</A
278 HREF="coding.html#S17"
279 >ALL control statements should have a
284 HREF="coding.html#S18"
285 >Do not belabor/blow-up boolean
290 HREF="coding.html#S19"
291 >Use white space freely because it is
296 HREF="coding.html#S20"
297 >Don't use white space around structure
302 HREF="coding.html#S21"
303 >Make the last brace of a function stand
308 HREF="coding.html#S22"
309 >Use 3 character indentions</A
315 HREF="coding.html#S23"
322 HREF="coding.html#S24"
323 >Initialize all variables</A
329 HREF="coding.html#S25"
336 HREF="coding.html#S26"
337 >Name functions that return a boolean as a
342 HREF="coding.html#S27"
343 >Always specify a return type for a
348 HREF="coding.html#S28"
349 >Minimize function calls when iterating by
354 HREF="coding.html#S29"
355 >Pass and Return by Const Reference</A
359 HREF="coding.html#S30"
360 >Pass and Return by Value</A
364 HREF="coding.html#S31"
365 >Names of include files</A
369 HREF="coding.html#S32"
370 >Provide multiple inclusion
375 HREF="coding.html#S33"
376 >Use `extern "C"` when appropriate</A
380 HREF="coding.html#S34"
381 >Where Possible, Use Forward Struct
382 Declaration Instead of Includes</A
388 HREF="coding.html#S35"
389 >General Coding Practices</A
395 HREF="coding.html#S36"
400 HREF="coding.html#S37"
401 >Provide a default case for all switch
406 HREF="coding.html#S38"
407 >Try to avoid falling through cases in a
412 HREF="coding.html#S39"
413 >Use 'long' or 'short' Instead of
418 HREF="coding.html#S40"
419 >Don't mix size_t and other types</A
423 HREF="coding.html#S41"
424 >Declare each variable and struct on its
429 HREF="coding.html#S42"
430 >Use malloc/zalloc sparingly</A
434 HREF="coding.html#S43"
435 >The Programmer Who Uses 'malloc' is
436 Responsible for Ensuring 'free'</A
440 HREF="coding.html#S44"
441 >Add loaders to the `file_list' structure
446 HREF="coding.html#S45"
447 >"Uncertain" new code and/or changes to
448 existing code, use FIXME</A
454 HREF="coding.html#S46"
455 >Addendum: Template for files and function
463 >Version Control Guidelines</A
468 >Testing Guidelines</A
474 HREF="testing.html#TESTING-PLAN"
475 >Testplan for releases</A
479 HREF="testing.html#TESTING-REPORT"
486 HREF="newrelease.html"
487 >Releasing a new version</A
493 HREF="newrelease.html#BEFORERELEASE"
494 >Before the Release</A
498 HREF="newrelease.html#NEWRELEASE-WEB"
499 >Update the webserver</A
503 HREF="newrelease.html#NEWRELEASE-RPM"
508 HREF="newrelease.html#NEWRELEASE-OS2"
513 HREF="newrelease.html#NEWRELEASE-SOLARIS"
518 HREF="newrelease.html#NEWRELEASE-WINDOWS"
523 HREF="newrelease.html#NEWRELEASE-DEBIAN"
528 HREF="newrelease.html#NEWRELEASE-MACOSX"
533 HREF="newrelease.html#NEWRELEASE-FREEBSD"
538 HREF="newrelease.html#NEWRELEASE-TARBALL"
543 HREF="newrelease.html#NEWRELEASE-HPUX"
548 HREF="newrelease.html#NEWRELEASE-AMIGA"
553 HREF="newrelease.html#NEWRELEASE-AIX"
561 >Contacting the developers, Bug Reporting and Feature Requests</A
565 HREF="copyright.html"
566 >Copyright and History</A
572 HREF="copyright.html#AEN962"
577 HREF="copyright.html#AEN969"
626 HREF="introduction.html"