summaryrefslogtreecommitdiff
path: root/src/backend/utils/mb
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/mb')
-rw-r--r--src/backend/utils/mb/conv.c33
-rw-r--r--src/backend/utils/mb/wchar.c4
2 files changed, 34 insertions, 3 deletions
diff --git a/src/backend/utils/mb/conv.c b/src/backend/utils/mb/conv.c
index bca95c5f6b..01c92e3b9a 100644
--- a/src/backend/utils/mb/conv.c
+++ b/src/backend/utils/mb/conv.c
@@ -2,7 +2,7 @@
* conversion between client encoding and server internal encoding
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
- * $Id: conv.c,v 1.1 1998/07/24 03:31:56 scrappy Exp $
+ * $Id: conv.c,v 1.2 1998/08/24 01:13:59 momjian Exp $
*/
#include <stdio.h>
#include <string.h>
@@ -369,7 +369,38 @@ static void mic2latin5(unsigned char *mic, unsigned char *p, int len)
mic2latin(mic, p, len, LC_ISO8859_5);
}
+/*
+ * ASCII ---> MIC
+ */
+static void ascii2mic(unsigned char *l, unsigned char *p, int len)
+{
+ int c1;
+
+ while (len-- > 0 && (c1 = *l++)) {
+ *p++ = (c1 & 0x7f);
+ }
+ *p = '\0';
+}
+
+/*
+ * MIC ---> ASCII
+ */
+static void mic2ascii(unsigned char *mic, unsigned char *p, int len)
+{
+ int c1;
+
+ while (len > 0 && (c1 = *mic)) {
+ if (c1 > 0x7f) {
+ printBogusChar(&mic, &p);
+ } else { /* should be ASCII */
+ *p++ = c1;
+ }
+ }
+ *p = '\0';
+}
+
pg_encoding_conv_tbl pg_conv_tbl[] = {
+ {SQL_ASCII, "SQL_ASCII", 0, ascii2mic, mic2ascii}, /* SQL/ACII */
{EUC_JP, "EUC_JP", 0, euc_jp2mic, mic2euc_jp}, /* EUC_JP */
{EUC_CN, "EUC_CN", 0, euc_cn2mic, mic2euc_cn}, /* EUC_CN */
{EUC_KR, "EUC_KR", 0, euc_kr2mic, mic2euc_kr}, /* EUC_KR */
diff --git a/src/backend/utils/mb/wchar.c b/src/backend/utils/mb/wchar.c
index ecb7b54359..f83c462867 100644
--- a/src/backend/utils/mb/wchar.c
+++ b/src/backend/utils/mb/wchar.c
@@ -1,7 +1,7 @@
/*
* conversion functions between pg_wchar and multi-byte streams.
* Tatsuo Ishii
- * $Id: wchar.c,v 1.1 1998/07/24 03:31:57 scrappy Exp $
+ * $Id: wchar.c,v 1.2 1998/08/24 01:14:01 momjian Exp $
*/
#include "mb/pg_wchar.h"
@@ -316,6 +316,7 @@ static int pg_sjis_mblen(const unsigned char *s)
}
pg_wchar_tbl pg_wchar_table[] = {
+ {0, 0},
{pg_eucjp2wchar_with_len, pg_eucjp_mblen},
{pg_euccn2wchar_with_len, pg_euccn_mblen},
{pg_euckr2wchar_with_len, pg_euckr_mblen},
@@ -347,7 +348,6 @@ pg_wchar_tbl pg_wchar_table[] = {
{0, 0},
{0, 0},
{0, 0},
- {0, 0},
{0, pg_sjis_mblen}
};