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"></HEAD
30 >Privoxy Developer Manual</A
42 HREF="http://www.privoxy.org/"
44 >Privoxy Developers</A
51 >$Id: developer-manual.sgml,v 2.15 2008/01/19 15:03:05 hal9 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. Note that it's currently out of date
68 and may not be entirely correct. As always, patches are welcome.</P
70 > Please note that this document is constantly evolving. This copy represents
71 the state at the release of version 3.0.8.
72 You can find the latest version of the this manual at <A
73 HREF="http://www.privoxy.org/developer-manual/"
75 >http://www.privoxy.org/developer-manual/</A
79 >the Contact section</A
81 on how to contact the developers.</P
96 HREF="introduction.html"
103 HREF="introduction.html#QUICKSTART"
104 >Quickstart to Privoxy Development</A
111 >The CVS Repository</A
117 HREF="cvs.html#CVSACCESS"
122 HREF="cvs.html#CVSBRANCHES"
127 HREF="cvs.html#CVSCOMMIT"
128 >CVS Commit Guidelines</A
134 HREF="documentation.html"
135 >Documentation Guidelines</A
141 HREF="documentation.html#SGML"
142 >Quickstart to Docbook and SGML</A
146 HREF="documentation.html#DOCSTYLE"
150 > Documentation Style</A
154 HREF="documentation.html#AEN217"
155 >Privoxy Custom Entities</A
162 >Coding Guidelines</A
168 HREF="coding.html#S1"
173 HREF="coding.html#S2"
180 HREF="coding.html#S3"
181 >Comment, Comment, Comment</A
185 HREF="coding.html#S4"
186 >Use blocks for comments</A
190 HREF="coding.html#S5"
191 >Keep Comments on their own line</A
195 HREF="coding.html#S6"
196 >Comment each logical step</A
200 HREF="coding.html#S7"
201 >Comment All Functions Thoroughly</A
205 HREF="coding.html#S8"
206 >Comment at the end of braces if the
207 content is more than one screen length</A
213 HREF="coding.html#S9"
214 >Naming Conventions</A
220 HREF="coding.html#S10"
225 HREF="coding.html#S11"
230 HREF="coding.html#S12"
231 >Header file prototypes</A
235 HREF="coding.html#S13"
236 >Enumerations, and #defines</A
240 HREF="coding.html#S14"
247 HREF="coding.html#S15"
254 HREF="coding.html#S16"
255 >Put braces on a line by themselves.</A
259 HREF="coding.html#S17"
260 >ALL control statements should have a
265 HREF="coding.html#S18"
266 >Do not belabor/blow-up boolean
271 HREF="coding.html#S19"
272 >Use white space freely because it is
277 HREF="coding.html#S20"
278 >Don't use white space around structure
283 HREF="coding.html#S21"
284 >Make the last brace of a function stand
289 HREF="coding.html#S22"
290 >Use 3 character indentions</A
296 HREF="coding.html#S23"
303 HREF="coding.html#S24"
304 >Initialize all variables</A
310 HREF="coding.html#S25"
317 HREF="coding.html#S26"
318 >Name functions that return a boolean as a
323 HREF="coding.html#S27"
324 >Always specify a return type for a
329 HREF="coding.html#S28"
330 >Minimize function calls when iterating by
335 HREF="coding.html#S29"
336 >Pass and Return by Const Reference</A
340 HREF="coding.html#S30"
341 >Pass and Return by Value</A
345 HREF="coding.html#S31"
346 >Names of include files</A
350 HREF="coding.html#S32"
351 >Provide multiple inclusion
356 HREF="coding.html#S33"
357 >Use `extern "C"` when appropriate</A
361 HREF="coding.html#S34"
362 >Where Possible, Use Forward Struct
363 Declaration Instead of Includes</A
369 HREF="coding.html#S35"
370 >General Coding Practices</A
376 HREF="coding.html#S36"
381 HREF="coding.html#S37"
382 >Provide a default case for all switch
387 HREF="coding.html#S38"
388 >Try to avoid falling through cases in a
393 HREF="coding.html#S39"
394 >Use 'long' or 'short' Instead of
399 HREF="coding.html#S40"
400 >Don't mix size_t and other types</A
404 HREF="coding.html#S41"
405 >Declare each variable and struct on its
410 HREF="coding.html#S42"
411 >Use malloc/zalloc sparingly</A
415 HREF="coding.html#S43"
416 >The Programmer Who Uses 'malloc' is
417 Responsible for Ensuring 'free'</A
421 HREF="coding.html#S44"
422 >Add loaders to the `file_list' structure
427 HREF="coding.html#S45"
428 >"Uncertain" new code and/or changes to
429 existing code, use FIXME or XXX</A
435 HREF="coding.html#S46"
436 >Addendum: Template for files and function
444 >Testing Guidelines</A
450 HREF="testing.html#TESTING-PLAN"
451 >Testplan for releases</A
455 HREF="testing.html#TESTING-REPORT"
462 HREF="newrelease.html"
463 >Releasing a New Version</A
469 HREF="newrelease.html#VERSIONNUMBERS"
474 HREF="newrelease.html#BEFORERELEASE"
475 >Before the Release: Freeze</A
479 HREF="newrelease.html#THERELEASE"
480 >Building and Releasing the Packages</A
486 HREF="newrelease.html#PACK-GUIDELINES"
487 >Note on Privoxy Packaging</A
491 HREF="newrelease.html#NEWRELEASE-TARBALL"
496 HREF="newrelease.html#NEWRELEASE-RPM"
497 >SuSE, Conectiva or Red Hat RPM</A
501 HREF="newrelease.html#NEWRELEASE-OS2"
506 HREF="newrelease.html#NEWRELEASE-SOLARIS"
511 HREF="newrelease.html#NEWRELEASE-WINDOWS"
516 HREF="newrelease.html#NEWRELEASE-DEBIAN"
521 HREF="newrelease.html#NEWRELEASE-MACOSX"
526 HREF="newrelease.html#NEWRELEASE-FREEBSD"
531 HREF="newrelease.html#NEWRELEASE-HPUX"
536 HREF="newrelease.html#NEWRELEASE-AMIGA"
541 HREF="newrelease.html#NEWRELEASE-AIX"
548 HREF="newrelease.html#RELEASING"
549 >Uploading and Releasing Your Package</A
553 HREF="newrelease.html#AFTERRELEASE"
554 >After the Release</A
560 HREF="webserver-update.html"
561 >Update the Webserver</A
566 >Contacting the developers, Bug Reporting and Feature Requests</A
572 HREF="contact.html#CONTACT-SUPPORT"
577 HREF="contact.html#REPORTING"
578 >Reporting Problems</A
584 HREF="contact.html#CONTACT-ADS"
585 >Reporting Ads or Other Configuration Problems</A
589 HREF="contact.html#CONTACT-BUGS"
596 HREF="contact.html#CONTACT-FEATURE"
597 >Request New Features</A
601 HREF="contact.html#CONTACT-OTHER"
608 HREF="copyright.html"
609 >Privoxy Copyright, License and History</A
615 HREF="copyright.html#AEN1223"
620 HREF="copyright.html#AEN1239"
638 SUMMARY="Footer navigation table"
659 HREF="introduction.html"