2002-06-03 Marcus Brinkmann <marcus@g10code.de>
* key.c: Include <ctype.h>. (_gpgme_key_append_name): Skip one more char when processing escaped char. Submitted by Marc Mutz <mutz@kde.org>. Handle hexadecimal encodings. Also reported by Marc. Thanks!
This commit is contained in:
parent
b024a61d89
commit
7892a2a64f
@ -1,3 +1,10 @@
|
||||
2002-06-03 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* key.c: Include <ctype.h>.
|
||||
(_gpgme_key_append_name): Skip one more char when
|
||||
processing escaped char. Submitted by Marc Mutz <mutz@kde.org>.
|
||||
Handle hexadecimal encodings. Also reported by Marc. Thanks!
|
||||
|
||||
2002-06-02 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* ath.h: Enable the _gpgme_ prefix. Fix all those prefix macros.
|
||||
|
30
gpgme/key.c
30
gpgme/key.c
@ -24,6 +24,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "util.h"
|
||||
#include "ops.h"
|
||||
@ -627,17 +628,28 @@ _gpgme_key_append_name (GpgmeKey key, const char *s)
|
||||
*d++ = '\\';
|
||||
*d++ = '\0';
|
||||
}
|
||||
else if (s[1] == 'x' && my_isdigit (s[2]) && my_isdigit (s[3]))
|
||||
else if (s[1] == 'x' && isxdigit (s[2]) && isxdigit (s[3]))
|
||||
{
|
||||
unsigned int val = (s[2]-'0')*16 + (s[3]-'0');
|
||||
if (!val)
|
||||
int val = hextobyte (&s[2]);
|
||||
if (val == -1)
|
||||
{
|
||||
*d++ = '\\';
|
||||
*d++ = '\0';
|
||||
}
|
||||
else
|
||||
*(byte*)d++ = val;
|
||||
s += 3;
|
||||
/* Should not happen. */
|
||||
*d++ = *s++;
|
||||
*d++ = *s++;
|
||||
*d++ = *s++;
|
||||
*d++ = *s++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!val)
|
||||
{
|
||||
*d++ = '\\';
|
||||
*d++ = '\0';
|
||||
}
|
||||
else
|
||||
*(byte*)d++ = val;
|
||||
s += 4;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user