diff options
author | Marcus Brinkmann <[email protected]> | 2006-12-01 13:03:16 +0000 |
---|---|---|
committer | Marcus Brinkmann <[email protected]> | 2006-12-01 13:03:16 +0000 |
commit | fe892a7a2367df7b061192d8536ec9f347a50ed8 (patch) | |
tree | 0e4c166f3dd0641b295303b9ddac0a81d6d0805f /src | |
parent | Post release version number bump (diff) | |
download | libgpg-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".
Diffstat (limited to 'src')
-rw-r--r-- | src/gpg-error.c | 16 |
1 files changed, 14 insertions, 2 deletions
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; } |