1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
5 >Privoxy Developer Manual</TITLE
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
11 HREF="introduction.html"><LINK
14 HREF="../p_doc.css"></HEAD
30 >Privoxy Developer Manual</A
42 HREF="http://www.privoxy.org"
44 >Privoxy Developers</A
51 >$Id: index.html,v 1.19.2.7 2004/01/31 00:05:44 oes Exp $<BR></P
61 > The developer manual provides guidance on coding, testing, packaging, documentation
62 and other issues of importance to those involved with
66 > development. It is mandatory (and helpful!) reading
67 for anyone who wants to join the team.</P
69 > Please note that this document is constantly evolving. This copy represents
70 the state at the release of version 3.0.3.
71 You can find the latest version of the this manual at <A
72 HREF="http://www.privoxy.org/developer-manual/"
74 >http://www.privoxy.org/developer-manual/</A
78 >the Contact section</A
80 on how to contact the developers.</P
95 HREF="introduction.html"
102 HREF="introduction.html#QUICKSTART"
103 >Quickstart to Privoxy Development</A
110 >The CVS Repository</A
116 HREF="cvs.html#CVSACCESS"
121 HREF="cvs.html#CVSBRANCHES"
126 HREF="cvs.html#CVSCOMMIT"
127 >CVS Commit Guidelines</A
133 HREF="documentation.html"
134 >Documentation Guidelines</A
140 HREF="documentation.html#SGML"
141 >Quickstart to Docbook and SGML</A
145 HREF="documentation.html#DOCSTYLE"
149 > Documentation Style</A
153 HREF="documentation.html#AEN233"
154 >Privoxy Custom Entities</A
161 >Coding Guidelines</A
167 HREF="coding.html#S1"
172 HREF="coding.html#S2"
179 HREF="coding.html#S3"
180 >Comment, Comment, Comment</A
184 HREF="coding.html#S4"
185 >Use blocks for comments</A
189 HREF="coding.html#S5"
190 >Keep Comments on their own line</A
194 HREF="coding.html#S6"
195 >Comment each logical step</A
199 HREF="coding.html#S7"
200 >Comment All Functions Thoroughly</A
204 HREF="coding.html#S8"
205 >Comment at the end of braces if the
206 content is more than one screen length</A
212 HREF="coding.html#S9"
213 >Naming Conventions</A
219 HREF="coding.html#S10"
224 HREF="coding.html#S11"
229 HREF="coding.html#S12"
230 >Header file prototypes</A
234 HREF="coding.html#S13"
235 >Enumerations, and #defines</A
239 HREF="coding.html#S14"
246 HREF="coding.html#S15"
253 HREF="coding.html#S16"
254 >Put braces on a line by themselves.</A
258 HREF="coding.html#S17"
259 >ALL control statements should have a
264 HREF="coding.html#S18"
265 >Do not belabor/blow-up boolean
270 HREF="coding.html#S19"
271 >Use white space freely because it is
276 HREF="coding.html#S20"
277 >Don't use white space around structure
282 HREF="coding.html#S21"
283 >Make the last brace of a function stand
288 HREF="coding.html#S22"
289 >Use 3 character indentions</A
295 HREF="coding.html#S23"
302 HREF="coding.html#S24"
303 >Initialize all variables</A
309 HREF="coding.html#S25"
316 HREF="coding.html#S26"
317 >Name functions that return a boolean as a
322 HREF="coding.html#S27"
323 >Always specify a return type for a
328 HREF="coding.html#S28"
329 >Minimize function calls when iterating by
334 HREF="coding.html#S29"
335 >Pass and Return by Const Reference</A
339 HREF="coding.html#S30"
340 >Pass and Return by Value</A
344 HREF="coding.html#S31"
345 >Names of include files</A
349 HREF="coding.html#S32"
350 >Provide multiple inclusion
355 HREF="coding.html#S33"
356 >Use `extern "C"` when appropriate</A
360 HREF="coding.html#S34"
361 >Where Possible, Use Forward Struct
362 Declaration Instead of Includes</A
368 HREF="coding.html#S35"
369 >General Coding Practices</A
375 HREF="coding.html#S36"
380 HREF="coding.html#S37"
381 >Provide a default case for all switch
386 HREF="coding.html#S38"
387 >Try to avoid falling through cases in a
392 HREF="coding.html#S39"
393 >Use 'long' or 'short' Instead of
398 HREF="coding.html#S40"
399 >Don't mix size_t and other types</A
403 HREF="coding.html#S41"
404 >Declare each variable and struct on its
409 HREF="coding.html#S42"
410 >Use malloc/zalloc sparingly</A
414 HREF="coding.html#S43"
415 >The Programmer Who Uses 'malloc' is
416 Responsible for Ensuring 'free'</A
420 HREF="coding.html#S44"
421 >Add loaders to the `file_list' structure
426 HREF="coding.html#S45"
427 >"Uncertain" new code and/or changes to
428 existing code, use FIXME</A
434 HREF="coding.html#S46"
435 >Addendum: Template for files and function
443 >Testing Guidelines</A
449 HREF="testing.html#TESTING-PLAN"
450 >Testplan for releases</A
454 HREF="testing.html#TESTING-REPORT"
461 HREF="newrelease.html"
462 >Releasing a New Version</A
468 HREF="newrelease.html#VERSIONNUMBERS"
473 HREF="newrelease.html#BEFORERELEASE"
474 >Before the Release: Freeze</A
478 HREF="newrelease.html#THERELEASE"
479 >Building and Releasing the Packages</A
485 HREF="newrelease.html#PACK-GUIDELINES"
486 >Note on Privoxy Packaging</A
490 HREF="newrelease.html#NEWRELEASE-TARBALL"
495 HREF="newrelease.html#NEWRELEASE-RPM"
496 >SuSE, Conectiva or Red Hat RPM</A
500 HREF="newrelease.html#NEWRELEASE-OS2"
505 HREF="newrelease.html#NEWRELEASE-SOLARIS"
510 HREF="newrelease.html#NEWRELEASE-WINDOWS"
515 HREF="newrelease.html#NEWRELEASE-DEBIAN"
520 HREF="newrelease.html#NEWRELEASE-MACOSX"
525 HREF="newrelease.html#NEWRELEASE-FREEBSD"
530 HREF="newrelease.html#NEWRELEASE-HPUX"
535 HREF="newrelease.html#NEWRELEASE-AMIGA"
540 HREF="newrelease.html#NEWRELEASE-AIX"
547 HREF="newrelease.html#RELEASING"
548 >Uploading and Releasing Your Package</A
552 HREF="newrelease.html#AFTERRELEASE"
553 >After the Release</A
559 HREF="webserver-update.html"
560 >Update the Webserver</A
565 >Contacting the developers, Bug Reporting and Feature Requests</A
571 HREF="contact.html#CONTACT-SUPPORT"
576 HREF="contact.html#CONTACT-BUGS"
581 HREF="contact.html#CONTACT-FEATURE"
582 >Request New Features</A
586 HREF="contact.html#CONTACT-ADS"
587 >Report Ads or Other Actions-Related Problems</A
591 HREF="contact.html#CONTACT-OTHER"
598 HREF="copyright.html"
599 >Privoxy Copyright, License and History</A
605 HREF="copyright.html#AEN1177"
610 HREF="copyright.html#AEN1193"
628 SUMMARY="Footer navigation table"
649 HREF="introduction.html"