aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2006-12-01 13:03:16 +0000
committerMarcus Brinkmann <[email protected]>2006-12-01 13:03:16 +0000
commitfe892a7a2367df7b061192d8536ec9f347a50ed8 (patch)
tree0e4c166f3dd0641b295303b9ddac0a81d6d0805f
parentPost release version number bump (diff)
downloadlibgpg-error-fe892a7a2367df7b061192d8536ec9f347a50ed8.tar.gz
libgpg-error-fe892a7a2367df7b061192d8536ec9f347a50ed8.zip
2006-12-01 Marcus Brinkmann <[email protected]>
* src/gpg-error.c (get_err_from_number): Support source and code number in split format like "7.17".
-rw-r--r--ChangeLog5
-rw-r--r--src/gpg-error.c16
2 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 3129f51..6720256 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-12-01 Marcus Brinkmann <[email protected]>
+
+ * src/gpg-error.c (get_err_from_number): Support source and code
+ number in split format like "7.17".
+
2006-11-30 Werner Koch <[email protected]>
Released 1.5.
diff --git a/src/gpg-error.c b/src/gpg-error.c
index cc26292..ad49e82 100644
--- a/src/gpg-error.c
+++ b/src/gpg-error.c
@@ -257,12 +257,24 @@ get_err_from_number (char *str, gpg_error_t *err)
errno = 0;
nr = strtoul (str, &tail, 0);
- if (errno || *tail)
+ if (errno)
return 0;
- if (nr > UINT_MAX)
+ if (nr > GPG_ERR_CODE_DIM)
return 0;
+ if (*tail)
+ {
+ unsigned long cnr = strtoul (tail + 1, &tail, 0);
+ if (errno || *tail)
+ return 0;
+
+ if (cnr >= GPG_ERR_SOURCE_DIM)
+ return 0;
+
+ nr = gpg_err_make (nr, cnr);
+ }
+
*err = (unsigned int) nr;
return 1;
}