4 >Privoxy Developer Manual</TITLE
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
11 HREF="introduction.html"><LINK
14 HREF="../p_doc.css"></HEAD
29 NAME="AEN2">Privoxy Developer Manual</H1
40 HREF="http://www.privoxy.org"
42 >Privoxy Developers</A
49 >$Id: developer-manual.sgml,v 1.46.2.4 2002/05/29 00:30:59 mal0rd Exp $<BR></P
57 > The developer manual provides guidance on coding, testing, packaging, documentation
58 and other issues of importance to those involved with
62 > development. It is mandatory (and helpful!) reading
63 for anyone who wants to join the team.</P
65 > You can find the latest version of the this manual at <A
66 HREF="http://www.privoxy.org/developer-manual/"
68 >http://www.privoxy.org/developer-manual/</A
72 >the Contact section</A
74 on how to contact the developers.</P
89 HREF="introduction.html"
96 HREF="introduction.html#QUICKSTART"
97 >Quickstart to Privoxy Development</A
104 >The CVS Repository</A
110 HREF="cvs.html#CVSACCESS"
115 HREF="cvs.html#CVSCOMMIT"
116 >CVS Commit Guideline</A
120 HREF="cvs.html#CVSWHENASK"
121 >Discussing Changes First</A
127 HREF="documentation.html"
128 >Documentation Guidelines</A
134 HREF="documentation.html#SGML"
135 >Quickstart to Docbook and SGML</A
139 HREF="documentation.html#DOCSTYLE"
143 > Documentation Style</A
147 HREF="documentation.html#AEN217"
148 >Privoxy Custom Entities</A
155 >Coding Guidelines</A
161 HREF="coding.html#S1"
166 HREF="coding.html#S2"
173 HREF="coding.html#S3"
174 >Comment, Comment, Comment</A
178 HREF="coding.html#S4"
179 >Use blocks for comments</A
183 HREF="coding.html#S5"
184 >Keep Comments on their own line</A
188 HREF="coding.html#S6"
189 >Comment each logical step</A
193 HREF="coding.html#S7"
194 >Comment All Functions Thoroughly</A
198 HREF="coding.html#S8"
199 >Comment at the end of braces if the
200 content is more than one screen length</A
206 HREF="coding.html#S9"
207 >Naming Conventions</A
213 HREF="coding.html#S10"
218 HREF="coding.html#S11"
223 HREF="coding.html#S12"
224 >Header file prototypes</A
228 HREF="coding.html#S13"
229 >Enumerations, and #defines</A
233 HREF="coding.html#S14"
240 HREF="coding.html#S15"
247 HREF="coding.html#S16"
248 >Put braces on a line by themselves.</A
252 HREF="coding.html#S17"
253 >ALL control statements should have a
258 HREF="coding.html#S18"
259 >Do not belabor/blow-up boolean
264 HREF="coding.html#S19"
265 >Use white space freely because it is
270 HREF="coding.html#S20"
271 >Don't use white space around structure
276 HREF="coding.html#S21"
277 >Make the last brace of a function stand
282 HREF="coding.html#S22"
283 >Use 3 character indentions</A
289 HREF="coding.html#S23"
296 HREF="coding.html#S24"
297 >Initialize all variables</A
303 HREF="coding.html#S25"
310 HREF="coding.html#S26"
311 >Name functions that return a boolean as a
316 HREF="coding.html#S27"
317 >Always specify a return type for a
322 HREF="coding.html#S28"
323 >Minimize function calls when iterating by
328 HREF="coding.html#S29"
329 >Pass and Return by Const Reference</A
333 HREF="coding.html#S30"
334 >Pass and Return by Value</A
338 HREF="coding.html#S31"
339 >Names of include files</A
343 HREF="coding.html#S32"
344 >Provide multiple inclusion
349 HREF="coding.html#S33"
350 >Use `extern "C"` when appropriate</A
354 HREF="coding.html#S34"
355 >Where Possible, Use Forward Struct
356 Declaration Instead of Includes</A
362 HREF="coding.html#S35"
363 >General Coding Practices</A
369 HREF="coding.html#S36"
374 HREF="coding.html#S37"
375 >Provide a default case for all switch
380 HREF="coding.html#S38"
381 >Try to avoid falling through cases in a
386 HREF="coding.html#S39"
387 >Use 'long' or 'short' Instead of
392 HREF="coding.html#S40"
393 >Don't mix size_t and other types</A
397 HREF="coding.html#S41"
398 >Declare each variable and struct on its
403 HREF="coding.html#S42"
404 >Use malloc/zalloc sparingly</A
408 HREF="coding.html#S43"
409 >The Programmer Who Uses 'malloc' is
410 Responsible for Ensuring 'free'</A
414 HREF="coding.html#S44"
415 >Add loaders to the `file_list' structure
420 HREF="coding.html#S45"
421 >"Uncertain" new code and/or changes to
422 existing code, use FIXME</A
428 HREF="coding.html#S46"
429 >Addendum: Template for files and function
437 >Testing Guidelines</A
443 HREF="testing.html#TESTING-PLAN"
444 >Testplan for releases</A
448 HREF="testing.html#TESTING-REPORT"
455 HREF="newrelease.html"
456 >Releasing a New Version</A
462 HREF="newrelease.html#VERSIONNUMBERS"
467 HREF="newrelease.html#BEFORERELEASE"
468 >Before the Release: Freeze</A
472 HREF="newrelease.html#THERELEASE"
473 >Building and Releasing the Packages</A
479 HREF="newrelease.html#PACK-GUIDELINES"
480 >Note on Privoxy Packaging</A
484 HREF="newrelease.html#NEWRELEASE-TARBALL"
489 HREF="newrelease.html#NEWRELEASE-RPM"
490 >SuSE, Conectiva or Red Hat RPM</A
494 HREF="newrelease.html#NEWRELEASE-OS2"
499 HREF="newrelease.html#NEWRELEASE-SOLARIS"
504 HREF="newrelease.html#NEWRELEASE-WINDOWS"
509 HREF="newrelease.html#NEWRELEASE-DEBIAN"
514 HREF="newrelease.html#NEWRELEASE-MACOSX"
519 HREF="newrelease.html#NEWRELEASE-FREEBSD"
524 HREF="newrelease.html#NEWRELEASE-HPUX"
529 HREF="newrelease.html#NEWRELEASE-AMIGA"
534 HREF="newrelease.html#NEWRELEASE-AIX"
541 HREF="newrelease.html#RELEASING"
542 >Uploading and Releasing Your Package</A
546 HREF="newrelease.html#AFTERRELEASE"
547 >After the Release</A
553 HREF="webserver-update.html"
554 >Update the Webserver</A
559 >Contacting the developers, Bug Reporting and Feature Requests</A
565 HREF="contact.html#CONTACT-SUPPORT"
570 HREF="contact.html#CONTACT-BUGS"
575 HREF="contact.html#CONTACT-FEATURE"
576 >Request New Features</A
580 HREF="contact.html#CONTACT-ADS"
581 >Report Ads or Other Actions-Related Problems</A
585 HREF="contact.html#CONTACT-OTHER"
592 HREF="copyright.html"
593 >Privoxy Copyright, License and History</A
599 HREF="copyright.html#AEN1137"
604 HREF="copyright.html#AEN1153"
622 SUMMARY="Footer navigation table"
643 HREF="introduction.html"