diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2023-01-02 01:20:40 +0100 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2023-01-02 01:20:40 +0100 |
commit | 73f3ec01f5819df17f3b6d10fda6cab9b688711e (patch) | |
tree | a669f073bcaa0b18b403aa3d75f71ebeb58240e9 /src/bencoding.c | |
parent | pridobivanje peerov deluje (diff) | |
download | travnik-73f3ec01f5819df17f3b6d10fda6cab9b688711e.tar travnik-73f3ec01f5819df17f3b6d10fda6cab9b688711e.tar.gz travnik-73f3ec01f5819df17f3b6d10fda6cab9b688711e.tar.bz2 travnik-73f3ec01f5819df17f3b6d10fda6cab9b688711e.tar.lz travnik-73f3ec01f5819df17f3b6d10fda6cab9b688711e.tar.xz travnik-73f3ec01f5819df17f3b6d10fda6cab9b688711e.tar.zst travnik-73f3ec01f5819df17f3b6d10fda6cab9b688711e.zip |
Diffstat (limited to 'src/bencoding.c')
-rw-r--r-- | src/bencoding.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/bencoding.c b/src/bencoding.c index b32e2ea..e456486 100644 --- a/src/bencoding.c +++ b/src/bencoding.c @@ -197,12 +197,16 @@ int b2json_charsize (unsigned char a) { return 2; if (a < ' ') return 6; + if (a > 127) + return 1; return 1; } /** * write a string representation of a character in a JSON string * + * non-ASCII characters are replaced with a '.' + * * @param dest [out] destination * @param a [in] the character in question * @return the destination pointer, incremented for the number of bytes written @@ -239,6 +243,9 @@ char * b2json_charrepr (char * dest, unsigned char a) { sprintf(buf, "\\u00%02x", a); strncpy(dest, buf, 6); return dest+6; + } else if (a > 127) { + *dest++ = '.'; + return dest; } else { *dest++ = a; return dest; |