mirror of
https://github.com/postgres/postgres.git
synced 2025-04-24 10:47:04 +03:00
Avoid dependency on backend's multibyte module as possible.
Now frontend/libpq has its own version of pg_encoding_to_char and pg_char_to_encoding.
This commit is contained in:
parent
e5b6b0ebb9
commit
0b10d35e2b
@ -4,7 +4,7 @@
|
|||||||
#
|
#
|
||||||
# Copyright (c) 1994, Regents of the University of California
|
# Copyright (c) 1994, Regents of the University of California
|
||||||
#
|
#
|
||||||
# $Header: /cvsroot/pgsql/src/interfaces/libpq/Makefile,v 1.46 2000/10/25 16:13:52 petere Exp $
|
# $Header: /cvsroot/pgsql/src/interfaces/libpq/Makefile,v 1.47 2000/10/30 10:31:45 ishii Exp $
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \
|
|||||||
pqexpbuffer.o dllist.o pqsignal.o $(SNPRINTF) $(INET_ATON)
|
pqexpbuffer.o dllist.o pqsignal.o $(SNPRINTF) $(INET_ATON)
|
||||||
|
|
||||||
ifdef MULTIBYTE
|
ifdef MULTIBYTE
|
||||||
OBJS+= common.o wchar.o conv.o big5.o mbutils.o
|
OBJS+= common.o wchar.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Add libraries that libpq depends (or might depend) on into the
|
# Add libraries that libpq depends (or might depend) on into the
|
||||||
@ -57,9 +57,7 @@ inet_aton.c: $(backend_src)/port/inet_aton.c
|
|||||||
rm -f $@ && $(LN_S) $< .
|
rm -f $@ && $(LN_S) $< .
|
||||||
|
|
||||||
ifdef MULTIBYTE
|
ifdef MULTIBYTE
|
||||||
maps = iso8859.map UTF_to_EUC_JP.map EUC_JP_to_UTF.map sjis.map
|
common.c wchar.c : % : $(backend_src)/utils/mb/%
|
||||||
conv.c: $(maps)
|
|
||||||
common.c wchar.c conv.c big5.c mbutils.c $(maps) : % : $(backend_src)/utils/mb/%
|
|
||||||
rm -f $@ && $(LN_S) $< .
|
rm -f $@ && $(LN_S) $< .
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.142 2000/10/23 14:50:44 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-connect.c,v 1.143 2000/10/30 10:31:46 ishii Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -2694,3 +2694,70 @@ defaultNoticeProcessor(void *arg, const char *message)
|
|||||||
/* Note: we expect the supplied string to end with a newline already. */
|
/* Note: we expect the supplied string to end with a newline already. */
|
||||||
fprintf(stderr, "%s", message);
|
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"},
|
||||||
|
{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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user