summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq/fe-connect.c
diff options
context:
space:
mode:
authorTatsuo Ishii2001-09-06 04:57:30 +0000
committerTatsuo Ishii2001-09-06 04:57:30 +0000
commit227767112c3d3a6562b27e0a0da064d8b8ca1ebf (patch)
tree83793014a004ba5098dba7f6c31ec6992049c80d /src/interfaces/libpq/fe-connect.c
parent50aa3020ac925d3f537fe580e218f8d9cec9fc5b (diff)
Commit Karel's patch.
------------------------------------------------------------------- Subject: Re: [PATCHES] encoding names From: Karel Zak <[email protected]> To: Peter Eisentraut <[email protected]> Cc: pgsql-patches <[email protected]> Date: Fri, 31 Aug 2001 17:24:38 +0200 On Thu, Aug 30, 2001 at 01:30:40AM +0200, Peter Eisentraut wrote: > > - convert encoding 'name' to 'id' > > I thought we decided not to add functions returning "new" names until we > know exactly what the new names should be, and pending schema Ok, the patch not to add functions. > better > > ...(): encoding name too long Fixed. I found new bug in command/variable.c in parse_client_encoding(), nobody probably never see this error: if (pg_set_client_encoding(encoding)) { elog(ERROR, "Conversion between %s and %s is not supported", value, GetDatabaseEncodingName()); } because pg_set_client_encoding() returns -1 for error and 0 as true. It's fixed too. IMHO it can be apply. Karel PS: * following files are renamed: src/utils/mb/Unicode/KOI8_to_utf8.map --> src/utils/mb/Unicode/koi8r_to_utf8.map src/utils/mb/Unicode/WIN_to_utf8.map --> src/utils/mb/Unicode/win1251_to_utf8.map src/utils/mb/Unicode/utf8_to_KOI8.map --> src/utils/mb/Unicode/utf8_to_koi8r.map src/utils/mb/Unicode/utf8_to_WIN.map --> src/utils/mb/Unicode/utf8_to_win1251.map * new file: src/utils/mb/encname.c * removed file: src/utils/mb/common.c -- Karel Zak <[email protected]> http://home.zf.jcu.cz/~zakkr/ C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
Diffstat (limited to 'src/interfaces/libpq/fe-connect.c')
-rw-r--r--src/interfaces/libpq/fe-connect.c77
1 files changed, 4 insertions, 73 deletions
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 9301d1b1cfb..8829c69e32b 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.176 2001/08/21 20:39:52 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.177 2001/09/06 04:57:30 ishii Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1659,7 +1659,7 @@ keep_going: /* We will come back to here until there
/* set client encoding in pg_conn struct */
encoding = PQgetvalue(res, 0, 0);
if (!encoding) /* this should not happen */
- conn->client_encoding = SQL_ASCII;
+ conn->client_encoding = PG_SQL_ASCII;
else
conn->client_encoding = pg_char_to_encoding(encoding);
PQclear(res);
@@ -2758,7 +2758,8 @@ PQsetClientEncoding(PGconn *conn, const char *encoding)
return (status);
}
-#else
+#else /* without multibytle support */
+
int
PQsetClientEncoding(PGconn *conn, const char *encoding)
{
@@ -2832,73 +2833,3 @@ defaultNoticeProcessor(void *arg, const char *message)
/* Note: we expect the supplied string to end with a newline already. */
fprintf(stderr, "%s", message);
}
-
-#ifdef MULTIBYTE
-/*
- * convert an encoding string to encoding symbol value.
- * case is ignored.
- * if there's no valid encoding, returns -1
- */
-
-typedef struct
-{
- int encoding; /* encoding symbol value */
- char *name; /* encoding string */
-} PQ_encoding_conv_tbl;
-
-static PQ_encoding_conv_tbl pq_conv_tbl[] = {
- {SQL_ASCII, "SQL_ASCII"},
- {EUC_JP, "EUC_JP"},
- {EUC_CN, "EUC_CN"},
- {EUC_KR, "EUC_KR"},
- {EUC_TW, "EUC_TW"},
- {UNICODE, "UNICODE"},
- {MULE_INTERNAL, "MULE_INTERNAL"},
- {LATIN1, "LATIN1"},
- {LATIN2, "LATIN2"},
- {LATIN3, "LATIN3"},
- {LATIN4, "LATIN4"},
- {LATIN5, "LATIN5"},
- {KOI8, "KOI8"},
- {WIN, "WIN"},
- {ALT, "ALT"},
- {SJIS, "SJIS"},
- {BIG5, "BIG5"},
- {WIN1250, "WIN1250"},
- {-1, ""}
-};
-
-int
-pg_char_to_encoding(const char *s)
-{
- PQ_encoding_conv_tbl *p = pq_conv_tbl;
-
- if (!s)
- return (-1);
-
- for (; p->encoding >= 0; p++)
- {
- if (!strcasecmp(s, p->name))
- break;
- }
- return (p->encoding);
-}
-
-/*
- * convert encoding symbol to encoding char.
- * if there's no valid encoding symbol, returns ""
- */
-const char *
-pg_encoding_to_char(int encoding)
-{
- PQ_encoding_conv_tbl *p = pq_conv_tbl;
-
- for (; p->encoding >= 0; p++)
- {
- if (p->encoding == encoding)
- return (p->name);
- }
- return ("");
-}
-
-#endif