summaryrefslogtreecommitdiffstats
path: root/doc/HACKING
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2016-04-25 17:49:46 +0200
committerWerner Koch <wk@gnupg.org>2016-04-25 17:49:46 +0200
commit2502a76d8edbca035fd2a1879f2132c36b51e2c1 (patch)
tree72de84da3b9ea0bf64d252c0fe9f8187b20b2ddb /doc/HACKING
parentcommon: Use new function to print a failure of xtrymalloc. (diff)
downloadgnupg2-2502a76d8edbca035fd2a1879f2132c36b51e2c1.tar.xz
gnupg2-2502a76d8edbca035fd2a1879f2132c36b51e2c1.zip
doc: Explain use of common error variable names.
--
Diffstat (limited to 'doc/HACKING')
-rw-r--r--doc/HACKING31
1 files changed, 24 insertions, 7 deletions
diff --git a/doc/HACKING b/doc/HACKING
index 11ae53b89..d2168d65b 100644
--- a/doc/HACKING
+++ b/doc/HACKING
@@ -74,7 +74,6 @@ do this after this scissor line:
Note that such a comment will be removed if the git commit option
=--cleanup=scissor= is used.
-
** License policy
GnuPG is licensed under the GPLv3+ with some files under a mixed
@@ -131,12 +130,13 @@ Note that such a comment will be removed if the git commit option
- Ignore signed/unsigned pointer mismatches
- No arithmetic on void pointers; cast to char* first.
- We use our own printf style functions like =es_printf=, and
- =es_asprintf= which implement most C99 features with the exception
- of =wchar_t= (which should anyway not be used). Please always use
- them and do not resort to those provided by libc. The rationale
- for using them is that we know that the format specifiers work on
- all platforms and that we do not need to chase platform dependent
- bugs.
+ =gpgrt_asprintf= (or the =es_asprintf= macro) which implement most
+ C99 features with the exception of =wchar_t= (which should anyway
+ not be used). Please use them always and do not resort to those
+ provided by libc. The rationale for using them is that we know
+ that the format specifiers work on all platforms and that we do
+ not need to chase platform dependent bugs. Note also that in
+ gnupg asprintf is a macro already evaluating to gpgrt_asprintf.
- It is common to have a label named "leave" for a function's
cleanup and return code. This helps with freeing memory and is a
convenient location to set a breakpoint for debugging.
@@ -150,6 +150,23 @@ Note that such a comment will be removed if the git commit option
end up in BSS.
- Use --enable-maintainer-mode with configure.
+** Variable names
+
+ Follow the GNU standards. Here are some conventions you may want to
+ stick to (do not rename existing "wrong" uses without a goog
+ reason).
+
+ - err :: This conveys an error code of type =gpg_error_t= which is
+ compatible to an =int=. To compare such a variable to a
+ GPG_ERR_ constant, it is necessary to map the value like
+ this: =gpg_err_code(err)=.
+ - ec :: This is used for a gpg-error code which has no source part
+ (=gpg_err_code_t=) and will eventually be used as input to
+ =gpg_err_make=.
+ - rc :: Used for all kind of other errors; for example system
+ calls. The value is not compatible with gpg-error.
+
+
*** C99 language features
In GnuPG 2.x, but *not in 1.4* and not in most libraries, a limited