1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
5 >Privoxy Developer Manual</TITLE
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
11 HREF="introduction.html"><LINK
14 HREF="../p_doc.css"><META
15 HTTP-EQUIV="Content-Type"
17 charset=ISO-8859-1"></HEAD
33 >Privoxy Developer Manual</A
45 HREF="http://www.privoxy.org/"
47 >Privoxy Developers</A
54 >$Id: developer-manual.sgml,v 2.21 2008/08/16 08:51:28 fabiankeil Exp $<BR></P
64 > The developer manual provides guidance on coding, testing, packaging, documentation
65 and other issues of importance to those involved with
69 > development. It is mandatory (and helpful!) reading
70 for anyone who wants to join the team. Note that it's currently out of date
71 and may not be entirely correct. As always, patches are welcome.</P
73 > Please note that this document is constantly evolving. This copy represents
74 the state at the release of version 3.0.11.
75 You can find the latest version of the this manual at <A
76 HREF="http://www.privoxy.org/developer-manual/"
78 >http://www.privoxy.org/developer-manual/</A
82 >the Contact section</A
84 on how to contact the developers.</P
99 HREF="introduction.html"
106 HREF="introduction.html#QUICKSTART"
107 >Quickstart to Privoxy Development</A
114 >The CVS Repository</A
120 HREF="cvs.html#CVSACCESS"
125 HREF="cvs.html#CVSBRANCHES"
130 HREF="cvs.html#CVSCOMMIT"
131 >CVS Commit Guidelines</A
137 HREF="documentation.html"
138 >Documentation Guidelines</A
144 HREF="documentation.html#SGML"
145 >Quickstart to Docbook and SGML</A
149 HREF="documentation.html#DOCSTYLE"
153 > Documentation Style</A
157 HREF="documentation.html#AEN217"
158 >Privoxy Custom Entities</A
165 >Coding Guidelines</A
171 HREF="coding.html#S1"
176 HREF="coding.html#S2"
183 HREF="coding.html#S3"
184 >Comment, Comment, Comment</A
188 HREF="coding.html#S4"
189 >Use blocks for comments</A
193 HREF="coding.html#S5"
194 >Keep Comments on their own line</A
198 HREF="coding.html#S6"
199 >Comment each logical step</A
203 HREF="coding.html#S7"
204 >Comment All Functions Thoroughly</A
208 HREF="coding.html#S8"
209 >Comment at the end of braces if the
210 content is more than one screen length</A
216 HREF="coding.html#S9"
217 >Naming Conventions</A
223 HREF="coding.html#S10"
228 HREF="coding.html#S11"
233 HREF="coding.html#S12"
234 >Header file prototypes</A
238 HREF="coding.html#S13"
239 >Enumerations, and #defines</A
243 HREF="coding.html#S14"
250 HREF="coding.html#S15"
257 HREF="coding.html#S16"
258 >Put braces on a line by themselves.</A
262 HREF="coding.html#S17"
263 >ALL control statements should have a
268 HREF="coding.html#S18"
269 >Do not belabor/blow-up boolean
274 HREF="coding.html#S19"
275 >Use white space freely because it is
280 HREF="coding.html#S20"
281 >Don't use white space around structure
286 HREF="coding.html#S21"
287 >Make the last brace of a function stand
292 HREF="coding.html#S22"
293 >Use 3 character indentions</A
299 HREF="coding.html#S23"
306 HREF="coding.html#S24"
307 >Initialize all variables</A
313 HREF="coding.html#S25"
320 HREF="coding.html#S26"
321 >Name functions that return a boolean as a
326 HREF="coding.html#S27"
327 >Always specify a return type for a
332 HREF="coding.html#S28"
333 >Minimize function calls when iterating by
338 HREF="coding.html#S29"
339 >Pass and Return by Const Reference</A
343 HREF="coding.html#S30"
344 >Pass and Return by Value</A
348 HREF="coding.html#S31"
349 >Names of include files</A
353 HREF="coding.html#S32"
354 >Provide multiple inclusion
359 HREF="coding.html#S33"
360 >Use `extern "C"` when appropriate</A
364 HREF="coding.html#S34"
365 >Where Possible, Use Forward Struct
366 Declaration Instead of Includes</A
372 HREF="coding.html#S35"
373 >General Coding Practices</A
379 HREF="coding.html#S36"
384 HREF="coding.html#S37"
385 >Provide a default case for all switch
390 HREF="coding.html#S38"
391 >Try to avoid falling through cases in a
396 HREF="coding.html#S39"
397 >Use 'long' or 'short' Instead of
402 HREF="coding.html#S40"
403 >Don't mix size_t and other types</A
407 HREF="coding.html#S41"
408 >Declare each variable and struct on its
413 HREF="coding.html#S42"
414 >Use malloc/zalloc sparingly</A
418 HREF="coding.html#S43"
419 >The Programmer Who Uses 'malloc' is
420 Responsible for Ensuring 'free'</A
424 HREF="coding.html#S44"
425 >Add loaders to the `file_list' structure
430 HREF="coding.html#S45"
431 >"Uncertain" new code and/or changes to
432 existing code, use FIXME or XXX</A
438 HREF="coding.html#S46"
439 >Addendum: Template for files and function
447 >Testing Guidelines</A
453 HREF="testing.html#TESTING-PLAN"
454 >Testplan for releases</A
458 HREF="testing.html#TESTING-REPORT"
465 HREF="newrelease.html"
466 >Releasing a New Version</A
472 HREF="newrelease.html#VERSIONNUMBERS"
477 HREF="newrelease.html#BEFORERELEASE"
478 >Before the Release: Freeze</A
482 HREF="newrelease.html#THERELEASE"
483 >Building and Releasing the Packages</A
489 HREF="newrelease.html#PACK-GUIDELINES"
490 >Note on Privoxy Packaging</A
494 HREF="newrelease.html#NEWRELEASE-TARBALL"
499 HREF="newrelease.html#NEWRELEASE-RPM"
500 >SuSE, Conectiva or Red Hat RPM</A
504 HREF="newrelease.html#NEWRELEASE-OS2"
509 HREF="newrelease.html#NEWRELEASE-SOLARIS"
514 HREF="newrelease.html#NEWRELEASE-WINDOWS"
519 HREF="newrelease.html#NEWRELEASE-DEBIAN"
524 HREF="newrelease.html#NEWRELEASE-MACOSX"
529 HREF="newrelease.html#NEWRELEASE-FREEBSD"
534 HREF="newrelease.html#NEWRELEASE-HPUX"
539 HREF="newrelease.html#NEWRELEASE-AMIGA"
544 HREF="newrelease.html#NEWRELEASE-AIX"
551 HREF="newrelease.html#RELEASING"
552 >Uploading and Releasing Your Package</A
556 HREF="newrelease.html#AFTERRELEASE"
557 >After the Release</A
563 HREF="webserver-update.html"
564 >Update the Webserver</A
569 >Contacting the developers, Bug Reporting and Feature Requests</A
575 HREF="contact.html#CONTACT-SUPPORT"
580 HREF="contact.html#REPORTING"
581 >Reporting Problems</A
587 HREF="contact.html#CONTACT-ADS"
588 >Reporting Ads or Other Configuration Problems</A
592 HREF="contact.html#CONTACT-BUGS"
599 HREF="contact.html#CONTACT-FEATURE"
600 >Request New Features</A
604 HREF="contact.html#CONTACT-OTHER"
611 HREF="copyright.html"
612 >Privoxy Copyright, License and History</A
618 HREF="copyright.html#AEN1224"
623 HREF="copyright.html#AEN1240"
641 SUMMARY="Footer navigation table"
662 HREF="introduction.html"