X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=doc%2Fwebserver%2Fdeveloper-manual%2Findex.html;h=1ddbf5b30a277834b6568b86c22c98003b6e6e87;hp=319b5bbf34ec221f42c8b51569f7f903c33a1052;hb=61a5d3fc15169d9f6b0c21e3a56d893f4d672eb4;hpb=07cf496b6edcbd3cf315ec7c48f2c94be27357b1 diff --git a/doc/webserver/developer-manual/index.html b/doc/webserver/developer-manual/index.html index 319b5bbf..1ddbf5b3 100644 --- a/doc/webserver/developer-manual/index.html +++ b/doc/webserver/developer-manual/index.html @@ -1,403 +1,183 @@ - - - Privoxy Developer Manual - + - - + - - +
-

Privoxy Developer - Manual

- -

Copyright © - 2001-2009 by Privoxy - Developers

- -

$Id: developer-manual.sgml,v 2.36 2011/09/04 - 11:10:12 fabiankeil Exp $

- -
- - -

The developer manual provides guidance on coding, testing, - packaging, documentation and other issues of importance to those - involved with Privoxy development. - It is mandatory (and helpful!) reading for anyone who wants to join - the team. Note that it's currently out of date and may not be - entirely correct. As always, patches are welcome.

- -

Please note that this document is constantly evolving. This copy - represents the state at the release of version 3.0.18. You can find - the latest version of the this manual at http://www.privoxy.org/developer-manual/. Please see - the Contact section on how to contact the - developers.

+

Privoxy Developer Manual

+

Copyright + © 2001-2021 by Privoxy Developers

+
+
+ +

The developer manual provides guidance on coding, testing, packaging, documentation and other issues of + importance to those involved with Privoxy development. It is mandatory (and + helpful!) reading for anyone who wants to join the team. Note that it's currently out of date and may not be + entirely correct. As always, patches are welcome.

+

Please note that this document is constantly evolving. This copy represents the state at the release of + version 3.0.34. You can find the latest version of the this manual at https://www.privoxy.org/developer-manual/. + Please have a look at the contact + section in the user manual if you are interested in contacting the developers.

+

-
-
Table of Contents
- +
Table of Contents
1. Introduction
-
-
1.1. Quickstart to - Privoxy Development
+
1.1. Quickstart to Privoxy Development
- -
2. The CVS Repository
- +
2. The Git Repository
-
2.1. Access to CVS
- -
2.2. Branches
- -
2.3. CVS Commit - Guidelines
+
2.1. Access to Git
+
2.2. Branches
+
2.3. Git Commit Guidelines
-
3. Documentation Guidelines
-
-
3.1. Quickstart to Docbook - and SGML
- -
3.2. Privoxy Documentation Style
- -
3.3. Privoxy Custom - Entities
+
3.1. Quickstart to Docbook and SGML
+
3.2. Privoxy Documentation + Style
+
3.3. Privoxy Custom Entities
-
4. Coding Guidelines
-
4.1. Introduction
-
4.2. Using Comments
-
-
4.2.1. Comment, Comment, - Comment
- -
4.2.2. Use blocks for - comments
- -
4.2.3. Keep Comments on their - own line
- -
4.2.4. Comment each logical - step
- -
4.2.5. Comment All Functions - Thoroughly
- -
4.2.6. Comment at the end of - braces if the content is more than one screen length
+
4.2.1. Comment, Comment, Comment
+
4.2.2. Use blocks for comments
+
4.2.3. Keep Comments on their own line
+
4.2.4. Comment each logical step
+
4.2.5. Comment All Functions Thoroughly
+
4.2.6. Comment at the end of braces if the content is more than one screen + length
-
4.3. Naming Conventions
-
4.3.1. Variable Names
-
4.3.2. Function Names
- -
4.3.3. Header file - prototypes
- -
4.3.4. Enumerations, and - #defines
- +
4.3.3. Header file prototypes
+
4.3.4. Enumerations, and #defines
4.3.5. Constants
-
4.4. Using Space
-
-
4.4.1. Put braces on a line by - themselves.
- -
4.4.2. ALL control statements - should have a block
- -
4.4.3. Do not belabor/blow-up - boolean expressions
- -
4.4.4. Use white space freely - because it is free
- -
4.4.5. Don't use white space - around structure operators
- -
4.4.6. Make the last brace of a - function stand out
- -
4.4.7. Use 3 character - indentions
+
4.4.1. Put braces on a line by themselves.
+
4.4.2. ALL control statements should have a block
+
4.4.3. Do not belabor/blow-up boolean expressions
+
4.4.4. Use white space freely because it is free
+
4.4.5. Don't use white space around structure operators
+
4.4.6. Make the last brace of a function stand out
+
4.4.7. Use 3 character indentions
-
4.5. Initializing
-
-
4.5.1. Initialize all - variables
+
4.5.1. Initialize all variables
-
4.6. Functions
-
-
4.6.1. Name functions that - return a boolean as a question.
- -
4.6.2. Always specify a return - type for a function.
- -
4.6.3. Minimize function calls - when iterating by using variables
- -
4.6.4. Pass and Return by Const - Reference
- -
4.6.5. Pass and Return by - Value
- -
4.6.6. Names of include - files
- -
4.6.7. Provide multiple - inclusion protection
- -
4.6.8. Use `extern "C"` when - appropriate
- -
4.6.9. Where Possible, Use - Forward Struct Declaration Instead of Includes
+
4.6.1. Name functions that return a boolean as a question.
+
4.6.2. Always specify a return type for a function.
+
4.6.3. Minimize function calls when iterating by using variables
+
4.6.4. Pass and Return by Const Reference
+
4.6.5. Pass and Return by Value
+
4.6.6. Names of include files
+
4.6.7. Provide multiple inclusion protection
+
4.6.8. Use `extern "C"` when appropriate
+
4.6.9. Where Possible, Use Forward Struct Declaration Instead of + Includes
- -
4.7. General Coding - Practices
- +
4.7. General Coding Practices
-
4.7.1. Turn on - warnings
- -
4.7.2. Provide a default case - for all switch statements
- -
4.7.3. Try to avoid falling - through cases in a switch statement.
- -
4.7.4. Use 'long' or 'short' - Instead of 'int'
- -
4.7.5. Don't mix size_t and - other types
- -
4.7.6. Declare each variable - and struct on its own line.
- -
4.7.7. Use malloc/zalloc - sparingly
- -
4.7.8. The Programmer Who Uses - 'malloc' is Responsible for Ensuring 'free'
- -
4.7.9. Add loaders to the - `file_list' structure and in order
- -
4.7.10. "Uncertain" new code - and/or changes to existing code, use FIXME or XXX
+
4.7.1. Turn on warnings
+
4.7.2. Provide a default case for all switch statements
+
4.7.3. Try to avoid falling through cases in a switch statement.
+
4.7.4. Don't mix size_t and other types
+
4.7.5. Declare each variable and struct on its own line.
+
4.7.6. Use malloc/zalloc sparingly
+
4.7.7. The Programmer Who Uses 'malloc' is Responsible for Ensuring + 'free'
+
4.7.8. Add loaders to the `file_list' structure and in order
+
4.7.9. "Uncertain" new code and/or changes to existing code, use + XXX
- -
4.8. Addendum: Template for files - and function comment blocks:
+
4.8. Addendum: Template for files and function comment blocks:
-
5. Testing Guidelines
-
-
5.1. Testplan for - releases
- -
5.2. Test - reports
+
5.1. Testplan for releases
+
5.2. Testing with Privoxy-Regression-Test
+
5.3. Fuzzing Privoxy
-
6. Releasing a New Version
-
-
6.1. Version - numbers
- -
6.2. Before the - Release: Freeze
- -
6.3. Building and - Releasing the Packages
- +
6.1. Version numbers
+
6.2. Before the Release
+
6.3. Building and Releasing the Packages
-
6.3.1. Note on - Privoxy Packaging
- -
6.3.2. Source Tarball
- -
6.3.3. SuSE, - Conectiva or Red Hat RPM
- -
6.3.4. OS/2
- -
6.3.5. Solaris
- -
6.3.6. Windows
- -
6.3.7. Debian
- -
6.3.8. Mac OS - X
- -
6.3.9. FreeBSD
- -
6.3.10. HP-UX - 11
- -
6.3.11. Amiga - OS
- -
6.3.12. AIX
+
6.3.1. Note on Privoxy Packaging
+
6.3.2. Source Tarball
+
6.3.3. Windows
+
6.3.4. Debian
+
6.3.5. macOS / OS X
+
6.3.6. FreeBSD
- -
6.4. Uploading and - Releasing Your Package
- -
6.5. After the - Release
+
6.4. Uploading and Releasing Your Package
+
6.5. After the Release
-
7. Update the Webserver
- -
8. Contacting the developers, Bug - Reporting and Feature Requests
- -
-
-
8.1. Get - Support
- -
8.2. Reporting - Problems
- -
-
-
8.2.1. Reporting Ads - or Other Configuration Problems
- -
8.2.2. Reporting - Bugs
-
-
- -
8.3. Request New - Features
- -
8.4. Mailing - Lists
-
-
- -
9. Privoxy Copyright, License and - History
- -
-
-
9.1. License
- -
9.2. History
-
-
- -
10. See also
-