diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2018-02-21 22:35:50 +0100 |
---|---|---|
committer | Robert C. Helling <helling@atdotde.de> | 2018-03-05 16:23:55 +0100 |
commit | bec3e806831290f11c8b46a01dc2295ffc307ca4 (patch) | |
tree | b7f539162aa7f30b24dbe3fdd8b75838a70e97cc /core/membuffer.h | |
parent | 9a8a0afa29776c195c6a6acbb77b5d70cecea0c9 (diff) | |
download | subsurface-bec3e806831290f11c8b46a01dc2295ffc307ca4.tar.gz |
Localization: Make Qt's locale-aware formatting accessible from C
This commit introduces functions:
- QString asprintf_loc(const char *cformat, ...);
- int snprintf_loc(char *dst, size_t size, const char *cformat, ...);
- put_format_loc(struct membuffer *, const char *fmt, ...);
and their va_arg equivalents, which use Qt's QString::arg() formatting
options to render the strings.
The snprintf_loc() function takes care not to truncate multi-byte
UTF-8 encodings. Thus, on overflow, the resulting string might be
shorter than size-1.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'core/membuffer.h')
-rw-r--r-- | core/membuffer.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/core/membuffer.h b/core/membuffer.h index bd0a46d3a..00213f615 100644 --- a/core/membuffer.h +++ b/core/membuffer.h @@ -22,6 +22,7 @@ struct membuffer { extern char *detach_buffer(struct membuffer *b); extern void free_buffer(struct membuffer *); +extern void make_room(struct membuffer *b, unsigned int size); extern void flush_buffer(struct membuffer *, FILE *); extern void put_bytes(struct membuffer *, const char *, int); extern void put_string(struct membuffer *, const char *); @@ -29,7 +30,9 @@ extern void put_quoted(struct membuffer *, const char *, int, int); extern void strip_mb(struct membuffer *); extern const char *mb_cstring(struct membuffer *); extern __printf(2, 0) void put_vformat(struct membuffer *, const char *, va_list); +extern __printf(2, 0) void put_vformat_loc(struct membuffer *, const char *, va_list); extern __printf(2, 3) void put_format(struct membuffer *, const char *fmt, ...); +extern __printf(2, 3) void put_format_loc(struct membuffer *, const char *fmt, ...); extern __printf(2, 0) char *add_to_string_va(const char *old, const char *fmt, va_list args); extern __printf(2, 3) char *add_to_string(const char *old, const char *fmt, ...); |