summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2007-03-19 16:44:59 +0100
committerWerner Koch <wk@gnupg.org>2007-03-19 16:44:59 +0100
commit9e95c2dff6374fea6007711635063d8c1ab4fb2b (patch)
tree257f186fed764c911913911ff35037a28ff11532 /common
parentChanges to let the key listing use estream to help systems without (diff)
downloadgnupg2-9e95c2dff6374fea6007711635063d8c1ab4fb2b.tar.xz
gnupg2-9e95c2dff6374fea6007711635063d8c1ab4fb2b.zip
Allow export to work on systems without funopen/fopencookie.
Diffstat (limited to 'common')
-rw-r--r--common/ChangeLog1
-rw-r--r--common/miscellaneous.c16
-rw-r--r--common/util.h2
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);