4 >Privoxy Developer Manual</TITLE
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.60"><LINK
10 HREF="introduction.html"><LINK
13 HREF="../p_doc.css"></HEAD
29 >Privoxy Developer Manual</A
41 HREF="http://www.privoxy.org"
43 >Privoxy Developers</A
50 >$Id: developer-manual.sgml,v 1.46.2.6 2002/08/10 11:40:25 oes Exp $<BR></P
60 > The developer manual provides guidance on coding, testing, packaging, documentation
61 and other issues of importance to those involved with
65 > development. It is mandatory (and helpful!) reading
66 for anyone who wants to join the team.</P
68 > Please note that this document is constantly evolving. This copy represents
69 the state at the release of version 2.9.20.
70 You can find the latest version of the this manual at <A
71 HREF="http://www.privoxy.org/developer-manual/"
73 >http://www.privoxy.org/developer-manual/</A
77 >the Contact section</A
79 on how to contact the developers.</P
94 HREF="introduction.html"
101 HREF="introduction.html#QUICKSTART"
102 >Quickstart to Privoxy Development</A
109 >The CVS Repository</A
115 HREF="cvs.html#CVSACCESS"
120 HREF="cvs.html#CVSCOMMIT"
121 >CVS Commit Guideline</A
125 HREF="cvs.html#CVSWHENASK"
126 >Discussing Changes First</A
132 HREF="documentation.html"
133 >Documentation Guidelines</A
139 HREF="documentation.html#SGML"
140 >Quickstart to Docbook and SGML</A
144 HREF="documentation.html#DOCSTYLE"
148 > Documentation Style</A
152 HREF="documentation.html#AEN221"
153 >Privoxy Custom Entities</A
160 >Coding Guidelines</A
166 HREF="coding.html#S1"
171 HREF="coding.html#S2"
178 HREF="coding.html#S3"
179 >Comment, Comment, Comment</A
183 HREF="coding.html#S4"
184 >Use blocks for comments</A
188 HREF="coding.html#S5"
189 >Keep Comments on their own line</A
193 HREF="coding.html#S6"
194 >Comment each logical step</A
198 HREF="coding.html#S7"
199 >Comment All Functions Thoroughly</A
203 HREF="coding.html#S8"
204 >Comment at the end of braces if the
205 content is more than one screen length</A
211 HREF="coding.html#S9"
212 >Naming Conventions</A
218 HREF="coding.html#S10"
223 HREF="coding.html#S11"
228 HREF="coding.html#S12"
229 >Header file prototypes</A
233 HREF="coding.html#S13"
234 >Enumerations, and #defines</A
238 HREF="coding.html#S14"
245 HREF="coding.html#S15"
252 HREF="coding.html#S16"
253 >Put braces on a line by themselves.</A
257 HREF="coding.html#S17"
258 >ALL control statements should have a
263 HREF="coding.html#S18"
264 >Do not belabor/blow-up boolean
269 HREF="coding.html#S19"
270 >Use white space freely because it is
275 HREF="coding.html#S20"
276 >Don't use white space around structure
281 HREF="coding.html#S21"
282 >Make the last brace of a function stand
287 HREF="coding.html#S22"
288 >Use 3 character indentions</A
294 HREF="coding.html#S23"
301 HREF="coding.html#S24"
302 >Initialize all variables</A
308 HREF="coding.html#S25"
315 HREF="coding.html#S26"
316 >Name functions that return a boolean as a
321 HREF="coding.html#S27"
322 >Always specify a return type for a
327 HREF="coding.html#S28"
328 >Minimize function calls when iterating by
333 HREF="coding.html#S29"
334 >Pass and Return by Const Reference</A
338 HREF="coding.html#S30"
339 >Pass and Return by Value</A
343 HREF="coding.html#S31"
344 >Names of include files</A
348 HREF="coding.html#S32"
349 >Provide multiple inclusion
354 HREF="coding.html#S33"
355 >Use `extern "C"` when appropriate</A
359 HREF="coding.html#S34"
360 >Where Possible, Use Forward Struct
361 Declaration Instead of Includes</A
367 HREF="coding.html#S35"
368 >General Coding Practices</A
374 HREF="coding.html#S36"
379 HREF="coding.html#S37"
380 >Provide a default case for all switch
385 HREF="coding.html#S38"
386 >Try to avoid falling through cases in a
391 HREF="coding.html#S39"
392 >Use 'long' or 'short' Instead of
397 HREF="coding.html#S40"
398 >Don't mix size_t and other types</A
402 HREF="coding.html#S41"
403 >Declare each variable and struct on its
408 HREF="coding.html#S42"
409 >Use malloc/zalloc sparingly</A
413 HREF="coding.html#S43"
414 >The Programmer Who Uses 'malloc' is
415 Responsible for Ensuring 'free'</A
419 HREF="coding.html#S44"
420 >Add loaders to the `file_list' structure
425 HREF="coding.html#S45"
426 >"Uncertain" new code and/or changes to
427 existing code, use FIXME</A
433 HREF="coding.html#S46"
434 >Addendum: Template for files and function
442 >Testing Guidelines</A
448 HREF="testing.html#TESTING-PLAN"
449 >Testplan for releases</A
453 HREF="testing.html#TESTING-REPORT"
460 HREF="newrelease.html"
461 >Releasing a New Version</A
467 HREF="newrelease.html#VERSIONNUMBERS"
472 HREF="newrelease.html#BEFORERELEASE"
473 >Before the Release: Freeze</A
477 HREF="newrelease.html#THERELEASE"
478 >Building and Releasing the Packages</A
484 HREF="newrelease.html#PACK-GUIDELINES"
485 >Note on Privoxy Packaging</A
489 HREF="newrelease.html#NEWRELEASE-TARBALL"
494 HREF="newrelease.html#NEWRELEASE-RPM"
495 >SuSE, Conectiva or Red Hat RPM</A
499 HREF="newrelease.html#NEWRELEASE-OS2"
504 HREF="newrelease.html#NEWRELEASE-SOLARIS"
509 HREF="newrelease.html#NEWRELEASE-WINDOWS"
514 HREF="newrelease.html#NEWRELEASE-DEBIAN"
519 HREF="newrelease.html#NEWRELEASE-MACOSX"
524 HREF="newrelease.html#NEWRELEASE-FREEBSD"
529 HREF="newrelease.html#NEWRELEASE-HPUX"
534 HREF="newrelease.html#NEWRELEASE-AMIGA"
539 HREF="newrelease.html#NEWRELEASE-AIX"
546 HREF="newrelease.html#RELEASING"
547 >Uploading and Releasing Your Package</A
551 HREF="newrelease.html#AFTERRELEASE"
552 >After the Release</A
558 HREF="webserver-update.html"
559 >Update the Webserver</A
564 >Contacting the developers, Bug Reporting and Feature Requests</A
570 HREF="contact.html#CONTACT-SUPPORT"
575 HREF="contact.html#CONTACT-BUGS"
580 HREF="contact.html#CONTACT-FEATURE"
581 >Request New Features</A
585 HREF="contact.html#CONTACT-ADS"
586 >Report Ads or Other Actions-Related Problems</A
590 HREF="contact.html#CONTACT-OTHER"
597 HREF="copyright.html"
598 >Privoxy Copyright, License and History</A
604 HREF="copyright.html#AEN1149"
609 HREF="copyright.html#AEN1165"
647 HREF="introduction.html"