diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2012-07-10 16:52:51 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2012-07-10 16:52:51 -0400 |
commit | b84da909d925f0f109757a5c0645e6d10f9fc57b (patch) | |
tree | 3971c58c6a7c03701630548a60f0359eee9b75ad /src/backend/utils/mb/mbutils.c | |
parent | 7f0b1f1c97dcc94583cc0d2d3c0b79ebde42c7ee (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 9a739019531..6f798154583 100644 --- a/src/backend/utils/mb/mbutils.c +++ b/src/backend/utils/mb/mbutils.c @@ -751,6 +751,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) |