1- /* $Id: pg_wchar.h,v 1.17 2000/08/25 14:24:09 ishii Exp $ */
1+ /* $Id: pg_wchar.h,v 1.18 2000/10/12 06:08:28 ishii Exp $ */
22
33#ifndef PG_WCHAR_H
44#define PG_WCHAR_H
@@ -82,6 +82,8 @@ typedef struct
8282 * client only */
8383void (* to_mic ) ();/* client encoding to MIC */
8484void (* from_mic ) ();/* MIC to client encoding */
85+ void (* to_unicode ) ();/* client encoding to UTF-8 */
86+ void (* from_unicode ) ();/* UTF-8 to client encoding */
8587}pg_encoding_conv_tbl ;
8688
8789extern pg_encoding_conv_tbl pg_conv_tbl [];
@@ -95,13 +97,27 @@ typedef struct
9597
9698extern pg_wchar_tbl pg_wchar_table [];
9799
100+ typedef struct
101+ {
102+ unsignedint utf ;/* UTF-8 */
103+ unsignedint code ;/* local code */
104+ unsignedchar encoding ;/* encoding */
105+ }pg_utf_to_local ;
106+
107+ typedef struct
108+ {
109+ unsignedint code ;/* local code */
110+ unsignedint utf ;/* UTF-8 */
111+ }pg_local_to_utf ;
112+
98113extern int pg_mb2wchar (const unsignedchar * ,pg_wchar * );
99114extern int pg_mb2wchar_with_len (const unsignedchar * ,pg_wchar * ,int );
100115extern int pg_char_and_wchar_strcmp (const char * ,const pg_wchar * );
101116extern int pg_wchar_strncmp (const pg_wchar * ,const pg_wchar * ,size_t );
102117extern int pg_char_and_wchar_strncmp (const char * ,const pg_wchar * ,size_t );
103118extern size_t pg_wchar_strlen (const pg_wchar * );
104119extern int pg_mblen (const unsignedchar * );
120+ extern int pg_mblen_with_encoding (const unsignedchar * ,int );
105121extern int pg_encoding_mblen (int ,const unsignedchar * );
106122extern int pg_mule_mblen (const unsignedchar * );
107123extern int pg_mic_mblen (const unsignedchar * );
@@ -120,6 +136,8 @@ extern intpg_get_client_encoding(void);
120136extern unsignedchar * pg_client_to_server (unsignedchar * ,int );
121137extern unsignedchar * pg_server_to_client (unsignedchar * ,int );
122138extern int pg_valid_client_encoding (const char * );
139+ extern pg_encoding_conv_tbl * pg_get_enc_ent (int );
140+ extern int pg_utf_mblen (const unsignedchar * );
123141
124142/* internally-used versions of functions. The PG_xxx forms of these
125143 * functions have fmgr-compatible interfaves.