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 2.3 2002/09/05 02:27:59 hal9 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 > Please note that this document is constantly evolving. This copy represents
66 the state at the release of version 3.1.1.
67 You can find the latest version of the this manual at <A
68 HREF="http://www.privoxy.org/developer-manual/"
70 >http://www.privoxy.org/developer-manual/</A
74 >the Contact section</A
76 on how to contact the developers.</P
91 HREF="introduction.html"
98 HREF="introduction.html#QUICKSTART"
99 >Quickstart to Privoxy Development</A
106 >The CVS Repository</A
112 HREF="cvs.html#CVSACCESS"
117 HREF="cvs.html#CVSBRANCHES"
122 HREF="cvs.html#CVSCOMMIT"
123 >CVS Commit Guidelines</A
129 HREF="documentation.html"
130 >Documentation Guidelines</A
136 HREF="documentation.html#SGML"
137 >Quickstart to Docbook and SGML</A
141 HREF="documentation.html#DOCSTYLE"
145 > Documentation Style</A
149 HREF="documentation.html#AEN233"
150 >Privoxy Custom Entities</A
157 >Coding Guidelines</A
163 HREF="coding.html#S1"
168 HREF="coding.html#S2"
175 HREF="coding.html#S3"
176 >Comment, Comment, Comment</A
180 HREF="coding.html#S4"
181 >Use blocks for comments</A
185 HREF="coding.html#S5"
186 >Keep Comments on their own line</A
190 HREF="coding.html#S6"
191 >Comment each logical step</A
195 HREF="coding.html#S7"
196 >Comment All Functions Thoroughly</A
200 HREF="coding.html#S8"
201 >Comment at the end of braces if the
202 content is more than one screen length</A
208 HREF="coding.html#S9"
209 >Naming Conventions</A
215 HREF="coding.html#S10"
220 HREF="coding.html#S11"
225 HREF="coding.html#S12"
226 >Header file prototypes</A
230 HREF="coding.html#S13"
231 >Enumerations, and #defines</A
235 HREF="coding.html#S14"
242 HREF="coding.html#S15"
249 HREF="coding.html#S16"
250 >Put braces on a line by themselves.</A
254 HREF="coding.html#S17"
255 >ALL control statements should have a
260 HREF="coding.html#S18"
261 >Do not belabor/blow-up boolean
266 HREF="coding.html#S19"
267 >Use white space freely because it is
272 HREF="coding.html#S20"
273 >Don't use white space around structure
278 HREF="coding.html#S21"
279 >Make the last brace of a function stand
284 HREF="coding.html#S22"
285 >Use 3 character indentions</A
291 HREF="coding.html#S23"
298 HREF="coding.html#S24"
299 >Initialize all variables</A
305 HREF="coding.html#S25"
312 HREF="coding.html#S26"
313 >Name functions that return a boolean as a
318 HREF="coding.html#S27"
319 >Always specify a return type for a
324 HREF="coding.html#S28"
325 >Minimize function calls when iterating by
330 HREF="coding.html#S29"
331 >Pass and Return by Const Reference</A
335 HREF="coding.html#S30"
336 >Pass and Return by Value</A
340 HREF="coding.html#S31"
341 >Names of include files</A
345 HREF="coding.html#S32"
346 >Provide multiple inclusion
351 HREF="coding.html#S33"
352 >Use `extern "C"` when appropriate</A
356 HREF="coding.html#S34"
357 >Where Possible, Use Forward Struct
358 Declaration Instead of Includes</A
364 HREF="coding.html#S35"
365 >General Coding Practices</A
371 HREF="coding.html#S36"
376 HREF="coding.html#S37"
377 >Provide a default case for all switch
382 HREF="coding.html#S38"
383 >Try to avoid falling through cases in a
388 HREF="coding.html#S39"
389 >Use 'long' or 'short' Instead of
394 HREF="coding.html#S40"
395 >Don't mix size_t and other types</A
399 HREF="coding.html#S41"
400 >Declare each variable and struct on its
405 HREF="coding.html#S42"
406 >Use malloc/zalloc sparingly</A
410 HREF="coding.html#S43"
411 >The Programmer Who Uses 'malloc' is
412 Responsible for Ensuring 'free'</A
416 HREF="coding.html#S44"
417 >Add loaders to the `file_list' structure
422 HREF="coding.html#S45"
423 >"Uncertain" new code and/or changes to
424 existing code, use FIXME</A
430 HREF="coding.html#S46"
431 >Addendum: Template for files and function
439 >Testing Guidelines</A
445 HREF="testing.html#TESTING-PLAN"
446 >Testplan for releases</A
450 HREF="testing.html#TESTING-REPORT"
457 HREF="newrelease.html"
458 >Releasing a New Version</A
464 HREF="newrelease.html#VERSIONNUMBERS"
469 HREF="newrelease.html#BEFORERELEASE"
470 >Before the Release: Freeze</A
474 HREF="newrelease.html#THERELEASE"
475 >Building and Releasing the Packages</A
481 HREF="newrelease.html#PACK-GUIDELINES"
482 >Note on Privoxy Packaging</A
486 HREF="newrelease.html#NEWRELEASE-TARBALL"
491 HREF="newrelease.html#NEWRELEASE-RPM"
492 >SuSE, Conectiva or Red Hat RPM</A
496 HREF="newrelease.html#NEWRELEASE-OS2"
501 HREF="newrelease.html#NEWRELEASE-SOLARIS"
506 HREF="newrelease.html#NEWRELEASE-WINDOWS"
511 HREF="newrelease.html#NEWRELEASE-DEBIAN"
516 HREF="newrelease.html#NEWRELEASE-MACOSX"
521 HREF="newrelease.html#NEWRELEASE-FREEBSD"
526 HREF="newrelease.html#NEWRELEASE-HPUX"
531 HREF="newrelease.html#NEWRELEASE-AMIGA"
536 HREF="newrelease.html#NEWRELEASE-AIX"
543 HREF="newrelease.html#RELEASING"
544 >Uploading and Releasing Your Package</A
548 HREF="newrelease.html#AFTERRELEASE"
549 >After the Release</A
555 HREF="webserver-update.html"
556 >Update the Webserver</A
561 >Contacting the developers, Bug Reporting and Feature Requests</A
567 HREF="contact.html#CONTACT-SUPPORT"
572 HREF="contact.html#CONTACT-BUGS"
577 HREF="contact.html#CONTACT-FEATURE"
578 >Request New Features</A
582 HREF="contact.html#CONTACT-ADS"
583 >Report Ads or Other Actions-Related Problems</A
587 HREF="contact.html#CONTACT-OTHER"
594 HREF="copyright.html"
595 >Privoxy Copyright, License and History</A
601 HREF="copyright.html#AEN1170"
606 HREF="copyright.html#AEN1186"
624 SUMMARY="Footer navigation table"
645 HREF="introduction.html"