4 >Privoxy Developer Manual</TITLE
7 CONTENT="Modular DocBook HTML Stylesheet Version 1.64
11 HREF="introduction.html"><LINK
14 HREF="../p_doc.css"></HEAD
30 >Privoxy Developer Manual</A
47 >By: Privoxy Developers<BR></SPAN
52 >$Id: developer-manual.sgml,v 1.40 2002/05/04 00:43:43 hal9 Exp $<BR></P
62 > The developer manual gives the users information on how to help the developer
63 team. It provides guidance on coding, testing, documentation and other
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
75 >the Contact section</A
77 on how to contact the developers.</P
92 HREF="introduction.html"
99 HREF="introduction.html#QUICKSTART"
100 >Quickstart to Privoxy Development</A
107 >The CVS Repository</A
113 HREF="cvs.html#CVSACCESS"
118 HREF="cvs.html#CVSCOMMIT"
119 >CVS Commit Guideline</A
123 HREF="cvs.html#CVSWHENASK"
124 >Discussing Changes First</A
130 HREF="documentation.html"
131 >Documentation Guidelines</A
137 HREF="documentation.html#SGML"
138 >Quickstart to Docbook and SGML</A
142 HREF="documentation.html#DOCSTYLE"
146 > Documentation Style</A
150 HREF="documentation.html#AEN209"
151 >Privoxy Custom Entities</A
158 >Coding Guidelines</A
164 HREF="coding.html#S1"
169 HREF="coding.html#S2"
176 HREF="coding.html#S3"
177 >Comment, Comment, Comment</A
181 HREF="coding.html#S4"
182 >Use blocks for comments</A
186 HREF="coding.html#S5"
187 >Keep Comments on their own line</A
191 HREF="coding.html#S6"
192 >Comment each logical step</A
196 HREF="coding.html#S7"
197 >Comment All Functions Thoroughly</A
201 HREF="coding.html#S8"
202 >Comment at the end of braces if the
203 content is more than one screen length</A
209 HREF="coding.html#S9"
210 >Naming Conventions</A
216 HREF="coding.html#S10"
221 HREF="coding.html#S11"
226 HREF="coding.html#S12"
227 >Header file prototypes</A
231 HREF="coding.html#S13"
232 >Enumerations, and #defines</A
236 HREF="coding.html#S14"
243 HREF="coding.html#S15"
250 HREF="coding.html#S16"
251 >Put braces on a line by themselves.</A
255 HREF="coding.html#S17"
256 >ALL control statements should have a
261 HREF="coding.html#S18"
262 >Do not belabor/blow-up boolean
267 HREF="coding.html#S19"
268 >Use white space freely because it is
273 HREF="coding.html#S20"
274 >Don't use white space around structure
279 HREF="coding.html#S21"
280 >Make the last brace of a function stand
285 HREF="coding.html#S22"
286 >Use 3 character indentions</A
292 HREF="coding.html#S23"
299 HREF="coding.html#S24"
300 >Initialize all variables</A
306 HREF="coding.html#S25"
313 HREF="coding.html#S26"
314 >Name functions that return a boolean as a
319 HREF="coding.html#S27"
320 >Always specify a return type for a
325 HREF="coding.html#S28"
326 >Minimize function calls when iterating by
331 HREF="coding.html#S29"
332 >Pass and Return by Const Reference</A
336 HREF="coding.html#S30"
337 >Pass and Return by Value</A
341 HREF="coding.html#S31"
342 >Names of include files</A
346 HREF="coding.html#S32"
347 >Provide multiple inclusion
352 HREF="coding.html#S33"
353 >Use `extern "C"` when appropriate</A
357 HREF="coding.html#S34"
358 >Where Possible, Use Forward Struct
359 Declaration Instead of Includes</A
365 HREF="coding.html#S35"
366 >General Coding Practices</A
372 HREF="coding.html#S36"
377 HREF="coding.html#S37"
378 >Provide a default case for all switch
383 HREF="coding.html#S38"
384 >Try to avoid falling through cases in a
389 HREF="coding.html#S39"
390 >Use 'long' or 'short' Instead of
395 HREF="coding.html#S40"
396 >Don't mix size_t and other types</A
400 HREF="coding.html#S41"
401 >Declare each variable and struct on its
406 HREF="coding.html#S42"
407 >Use malloc/zalloc sparingly</A
411 HREF="coding.html#S43"
412 >The Programmer Who Uses 'malloc' is
413 Responsible for Ensuring 'free'</A
417 HREF="coding.html#S44"
418 >Add loaders to the `file_list' structure
423 HREF="coding.html#S45"
424 >"Uncertain" new code and/or changes to
425 existing code, use FIXME</A
431 HREF="coding.html#S46"
432 >Addendum: Template for files and function
440 >Testing Guidelines</A
446 HREF="testing.html#TESTING-PLAN"
447 >Testplan for releases</A
451 HREF="testing.html#TESTING-REPORT"
458 HREF="newrelease.html"
459 >Releasing a New Version</A
465 HREF="newrelease.html#VERSIONNUMBERS"
470 HREF="newrelease.html#BEFORERELEASE"
471 >Before the Release: Freeze</A
475 HREF="newrelease.html#THERELEASE"
476 >Building and Releasing the Packages</A
482 HREF="newrelease.html#NEWRELEASE-TARBALL"
487 HREF="newrelease.html#NEWRELEASE-RPM"
488 >SuSE or Red Hat RPM</A
492 HREF="newrelease.html#NEWRELEASE-OS2"
497 HREF="newrelease.html#NEWRELEASE-SOLARIS"
502 HREF="newrelease.html#NEWRELEASE-WINDOWS"
507 HREF="newrelease.html#NEWRELEASE-DEBIAN"
512 HREF="newrelease.html#NEWRELEASE-MACOSX"
517 HREF="newrelease.html#NEWRELEASE-FREEBSD"
522 HREF="newrelease.html#NEWRELEASE-HPUX"
527 HREF="newrelease.html#NEWRELEASE-AMIGA"
532 HREF="newrelease.html#NEWRELEASE-AIX"
539 HREF="newrelease.html#RELEASING"
540 >Uploading and Releasing Your Package</A
544 HREF="newrelease.html#AFTERRELEASE"
545 >After the Release</A
551 HREF="webserver-update.html"
552 >Update the Webserver</A
557 >Contacting the developers, Bug Reporting and Feature Requests</A
563 HREF="contact.html#CONTACT-SUPPORT"
568 HREF="contact.html#CONTACT-BUGS"
573 HREF="contact.html#CONTACT-FEATURE"
574 >Request new features</A
578 HREF="contact.html#CONTACT-ADS"
579 >Report ads or other filter problems</A
583 HREF="contact.html#CONTACT-OTHER"
590 HREF="copyright.html"
591 >Copyright and History</A
597 HREF="copyright.html#AEN1057"
602 HREF="copyright.html#AEN1064"
640 HREF="introduction.html"