diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2009-04-23 15:24:38 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2009-04-23 17:50:18 +0200 |
commit | 80420745ff2998626a302b5f863db8364e858f8f (patch) | |
tree | 5e6a24950a0f4a79bc35996959889962ad8a6472 /lib/util | |
parent | ae6af9ecbfce559a50d95853d6e66b8aa8788741 (diff) | |
download | samba-80420745ff2998626a302b5f863db8364e858f8f.tar.gz samba-80420745ff2998626a302b5f863db8364e858f8f.tar.xz samba-80420745ff2998626a302b5f863db8364e858f8f.zip |
Add a new non-convenience version of push_codepoint.
Diffstat (limited to 'lib/util')
-rw-r--r-- | lib/util/charset/charcnv.c | 4 | ||||
-rw-r--r-- | lib/util/charset/charset.h | 3 | ||||
-rw-r--r-- | lib/util/charset/tests/iconv.c | 2 | ||||
-rw-r--r-- | lib/util/charset/util_unistr.c | 13 |
4 files changed, 15 insertions, 7 deletions
diff --git a/lib/util/charset/charcnv.c b/lib/util/charset/charcnv.c index 94d47a9f7f0..a479f444265 100644 --- a/lib/util/charset/charcnv.c +++ b/lib/util/charset/charcnv.c @@ -430,7 +430,7 @@ _PUBLIC_ codepoint_t next_codepoint_convenience(struct smb_iconv_convenience *ic return the number of bytes occupied by the CH_UNIX character, or -1 on failure */ -_PUBLIC_ ssize_t push_codepoint(struct smb_iconv_convenience *ic, +_PUBLIC_ ssize_t push_codepoint_convenience(struct smb_iconv_convenience *ic, char *str, codepoint_t c) { smb_iconv_t descriptor; @@ -478,3 +478,5 @@ _PUBLIC_ ssize_t push_codepoint(struct smb_iconv_convenience *ic, } return 5 - olen; } + + diff --git a/lib/util/charset/charset.h b/lib/util/charset/charset.h index 37c5acafafa..2c8aa41ad5c 100644 --- a/lib/util/charset/charset.h +++ b/lib/util/charset/charset.h @@ -151,11 +151,12 @@ ssize_t iconv_talloc(TALLOC_CTX *mem_ctx, extern struct smb_iconv_convenience *global_iconv_convenience; codepoint_t next_codepoint(const char *str, size_t *size); +ssize_t push_codepoint(char *str, codepoint_t c); /* codepoints */ codepoint_t next_codepoint_convenience(struct smb_iconv_convenience *ic, const char *str, size_t *size); -ssize_t push_codepoint(struct smb_iconv_convenience *ic, +ssize_t push_codepoint_convenience(struct smb_iconv_convenience *ic, char *str, codepoint_t c); codepoint_t toupper_m(codepoint_t val); codepoint_t tolower_m(codepoint_t val); diff --git a/lib/util/charset/tests/iconv.c b/lib/util/charset/tests/iconv.c index 091876f63b6..e8d7bc13840 100644 --- a/lib/util/charset/tests/iconv.c +++ b/lib/util/charset/tests/iconv.c @@ -288,7 +288,7 @@ static bool test_codepoint(struct torture_context *tctx, unsigned int codepoint) size_t size, size2; codepoint_t c; - size = push_codepoint(lp_iconv_convenience(tctx->lp_ctx), (char *)buf, codepoint); + size = push_codepoint_convenience(lp_iconv_convenience(tctx->lp_ctx), (char *)buf, codepoint); torture_assert(tctx, size != -1 || (codepoint >= 0xd800 && codepoint <= 0x10000), "Invalid Codepoint range"); diff --git a/lib/util/charset/util_unistr.c b/lib/util/charset/util_unistr.c index ea2bfeab9f1..812129cffbc 100644 --- a/lib/util/charset/util_unistr.c +++ b/lib/util/charset/util_unistr.c @@ -444,7 +444,7 @@ _PUBLIC_ char *strlower_talloc(TALLOC_CTX *ctx, const char *src) c = tolower_m(c); - c_size = push_codepoint(iconv_convenience, dest+size, c); + c_size = push_codepoint_convenience(iconv_convenience, dest+size, c); if (c_size == -1) { talloc_free(dest); return NULL; @@ -490,7 +490,7 @@ _PUBLIC_ char *strupper_talloc_n(TALLOC_CTX *ctx, const char *src, size_t n) c = toupper_m(c); - c_size = push_codepoint(iconv_convenience, dest+size, c); + c_size = push_codepoint_convenience(iconv_convenience, dest+size, c); if (c_size == -1) { talloc_free(dest); return NULL; @@ -551,7 +551,7 @@ _PUBLIC_ void strlower_m(char *s) while (*s) { size_t c_size, c_size2; codepoint_t c = next_codepoint_convenience(iconv_convenience, s, &c_size); - c_size2 = push_codepoint(iconv_convenience, d, tolower_m(c)); + c_size2 = push_codepoint_convenience(iconv_convenience, d, tolower_m(c)); if (c_size2 > c_size) { DEBUG(0,("FATAL: codepoint 0x%x (0x%x) expanded from %d to %d bytes in strlower_m\n", c, tolower_m(c), (int)c_size, (int)c_size2)); @@ -590,7 +590,7 @@ _PUBLIC_ void strupper_m(char *s) while (*s) { size_t c_size, c_size2; codepoint_t c = next_codepoint_convenience(iconv_convenience, s, &c_size); - c_size2 = push_codepoint(iconv_convenience, d, toupper_m(c)); + c_size2 = push_codepoint_convenience(iconv_convenience, d, toupper_m(c)); if (c_size2 > c_size) { DEBUG(0,("FATAL: codepoint 0x%x (0x%x) expanded from %d to %d bytes in strupper_m\n", c, toupper_m(c), (int)c_size, (int)c_size2)); @@ -992,3 +992,8 @@ _PUBLIC_ codepoint_t next_codepoint(const char *str, size_t *size) { return next_codepoint_convenience(get_iconv_convenience(), str, size); } + +_PUBLIC_ ssize_t push_codepoint(char *str, codepoint_t c) +{ + return push_codepoint(get_iconv_convenience(), str, c); +} |