diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2012-07-10 16:52:36 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2012-07-10 16:52:36 -0400 |
commit | f12960d8c9ce454a37c2082549b7766ce36627d2 (patch) | |
tree | bd9bee6a61d9f5c304be9928eb90c13a0e8d4649 /src/backend/utils/mb/mbutils.c | |
parent | 7c460f0ba745611f4dadf413daa4ed9059951f92 (diff) |
Back-patch addition of pg_wchar-to-multibyte conversion functionality.
Back-patch of commits 72dd6291f216440f6bb61a8733729a37c7e3b2d2,
f6a05fd973a102f7e66c491d3f854864b8d24844, and
60e9c224a197aa37abb1aa3aefa3aad42da61f7f.
This is needed to support fixing the regex prefix extraction bug in
back branches.
Diffstat (limited to 'src/backend/utils/mb/mbutils.c')
-rw-r--r-- | src/backend/utils/mb/mbutils.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c index 848c26f41fb..287ff808fc1 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -710,6 +710,28 @@ pg_encoding_mb2wchar_with_len(int encoding, return (*pg_wchar_table[encoding].mb2wchar_with_len) ((const unsigned char *) from, to, len); } +/* convert a wchar string to a multibyte */ +int +pg_wchar2mb(const pg_wchar *from, char *to) +{ + return (*pg_wchar_table[DatabaseEncoding->encoding].wchar2mb_with_len) (from, (unsigned char *)to, pg_wchar_strlen(from)); +} + +/* convert a wchar string to a multibyte with a limited length */ +int +pg_wchar2mb_with_len(const pg_wchar *from, char *to, int len) +{ + return (*pg_wchar_table[DatabaseEncoding->encoding].wchar2mb_with_len) (from, (unsigned char *)to, len); +} + +/* same, with any encoding */ +int +pg_encoding_wchar2mb_with_len(int encoding, + const pg_wchar *from, char *to, int len) +{ + return (*pg_wchar_table[encoding].wchar2mb_with_len) (from, (unsigned char *)to, len); +} + /* returns the byte length of a multibyte character */ int pg_mblen(const char *mbstr) |