diff options
author | Werner Koch <wk@gnupg.org> | 2007-03-19 16:44:59 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2007-03-19 16:44:59 +0100 |
commit | 9e95c2dff6374fea6007711635063d8c1ab4fb2b (patch) | |
tree | 257f186fed764c911913911ff35037a28ff11532 /common | |
parent | Changes to let the key listing use estream to help systems without (diff) | |
download | gnupg2-9e95c2dff6374fea6007711635063d8c1ab4fb2b.tar.xz gnupg2-9e95c2dff6374fea6007711635063d8c1ab4fb2b.zip |
Allow export to work on systems without funopen/fopencookie.
Diffstat (limited to 'common')
-rw-r--r-- | common/ChangeLog | 1 | ||||
-rw-r--r-- | common/miscellaneous.c | 16 | ||||
-rw-r--r-- | common/util.h | 2 |
3 files changed, 19 insertions, 0 deletions
diff --git a/common/ChangeLog b/common/ChangeLog index 58695ed35..e42bebfd4 100644 --- a/common/ChangeLog +++ b/common/ChangeLog @@ -1,5 +1,6 @@ 2007-03-19 Werner Koch <wk@g10code.com> + * miscellaneous.c (print_hexstring): New. * estream.c (es_fprintf_unlocked): New. (es_write_sanitized): New. (es_write_hexstring): New. diff --git a/common/miscellaneous.c b/common/miscellaneous.c index 948c8ef48..498c2ab60 100644 --- a/common/miscellaneous.c +++ b/common/miscellaneous.c @@ -67,6 +67,22 @@ print_utf8_string( FILE *fp, const byte *p, size_t n ) print_utf8_string2 (fp, p, n, 0); } +/* Write LENGTH bytes of BUFFER to FP as a hex encoded string. + RESERVED must be 0. */ +void +print_hexstring (FILE *fp, const void *buffer, size_t length, int reserved) +{ +#define tohex(n) ((n) < 10 ? ((n) + '0') : (((n) - 10) + 'A')) + const unsigned char *s; + + for (s = buffer; length; s++, length--) + { + putc ( tohex ((*s>>4)&15), fp); + putc ( tohex (*s&15), fp); + } +#undef tohex +} + char * make_printable_string (const void *p, size_t n, int delim ) { diff --git a/common/util.h b/common/util.h index 324fbb265..2cf6e6cbe 100644 --- a/common/util.h +++ b/common/util.h @@ -185,6 +185,8 @@ const char *print_fname_stdin (const char *s); void print_string (FILE *fp, const byte *p, size_t n, int delim); void print_utf8_string2 ( FILE *fp, const byte *p, size_t n, int delim); void print_utf8_string (FILE *fp, const byte *p, size_t n); +void print_hexstring (FILE *fp, const void *buffer, size_t length, + int reserved); char *make_printable_string (const void *p, size_t n, int delim); int is_file_compressed (const char *s, int *ret_rc); |