diff options
| author | 2023-04-10 09:14:44 +0200 | |
|---|---|---|
| committer | 2023-04-10 09:14:44 +0200 | |
| commit | 74098ec443b479ce751c28d875c53ec274fcc3a4 (patch) | |
| tree | 179b5e62e3cdc2830a226de0c0669bd66823c859 /xs_encdec.h | |
| parent | More work in status entries. (diff) | |
| download | snac2-74098ec443b479ce751c28d875c53ec274fcc3a4.tar.gz snac2-74098ec443b479ce751c28d875c53ec274fcc3a4.tar.xz snac2-74098ec443b479ce751c28d875c53ec274fcc3a4.zip | |
Backport from xs.
Diffstat (limited to 'xs_encdec.h')
| -rw-r--r-- | xs_encdec.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/xs_encdec.h b/xs_encdec.h index 5966583..b88736e 100644 --- a/xs_encdec.h +++ b/xs_encdec.h | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | 6 | ||
| 7 | xs_str *xs_hex_enc(const xs_val *data, int size); | 7 | xs_str *xs_hex_enc(const xs_val *data, int size); |
| 8 | xs_val *xs_hex_dec(const xs_str *hex, int *size); | 8 | xs_val *xs_hex_dec(const xs_str *hex, int *size); |
| 9 | int xs_is_hex(const char *str); | ||
| 9 | xs_str *xs_base64_enc(const xs_val *data, int sz); | 10 | xs_str *xs_base64_enc(const xs_val *data, int sz); |
| 10 | xs_val *xs_base64_dec(const xs_str *data, int *size); | 11 | xs_val *xs_base64_dec(const xs_str *data, int *size); |
| 11 | xs_str *xs_utf8_enc(xs_str *str, unsigned int cpoint); | 12 | xs_str *xs_utf8_enc(xs_str *str, unsigned int cpoint); |
| @@ -65,6 +66,18 @@ xs_val *xs_hex_dec(const xs_str *hex, int *size) | |||
| 65 | } | 66 | } |
| 66 | 67 | ||
| 67 | 68 | ||
| 69 | int xs_is_hex(const char *str) | ||
| 70 | /* returns 1 if str is an hex string */ | ||
| 71 | { | ||
| 72 | while (*str) { | ||
| 73 | if (strchr("0123456789abcdefABCDEF", *str++) == NULL) | ||
| 74 | return 0; | ||
| 75 | } | ||
| 76 | |||
| 77 | return 1; | ||
| 78 | } | ||
| 79 | |||
| 80 | |||
| 68 | xs_str *xs_base64_enc(const xs_val *data, int sz) | 81 | xs_str *xs_base64_enc(const xs_val *data, int sz) |
| 69 | /* encodes data to base64 */ | 82 | /* encodes data to base64 */ |
| 70 | { | 83 | { |