head	1.8;
access;
symbols
	REL9_0_0:1.8
	REL9_1_ALPHA1:1.8
	REL9_0_RC1:1.8
	REL9_0_BETA4:1.8
	REL9_0_STABLE:1.8.0.14
	REL9_0_BETA3:1.8
	REL9_0_BETA2:1.8
	REL7_4_29:1.4
	REL8_0_25:1.4
	REL8_1_21:1.4
	REL8_2_17:1.5
	REL8_3_11:1.5
	REL8_4_4:1.8
	REL9_0_BETA1:1.8
	REL9_0_ALPHA5_BRANCH:1.8.0.12
	REL9_0_ALPHA5:1.8
	REL7_4_28:1.4
	REL8_0_24:1.4
	REL8_1_20:1.4
	REL8_2_16:1.5
	REL8_3_10:1.5
	REL8_4_3:1.8
	REL9_0_ALPHA4:1.8
	REL9_0_ALPHA4_BRANCH:1.8.0.10
	REL8_5_ALPHA3:1.8
	REL8_5_ALPHA3_BRANCH:1.8.0.8
	REL7_4_27:1.4
	REL8_0_23:1.4
	REL8_1_19:1.4
	REL8_2_15:1.5
	REL8_3_9:1.5
	REL8_4_2:1.8
	REL8_5_ALPHA2:1.8
	REL8_5_ALPHA2_BRANCH:1.8.0.6
	REL7_4_26:1.4
	REL8_0_22:1.4
	REL8_1_18:1.4
	REL8_2_14:1.5
	REL8_3_8:1.5
	REL8_4_1:1.8
	REL8_5_ALPHA1:1.8
	REL8_5_ALPHA1_BRANCH:1.8.0.4
	REL8_4_STABLE:1.8.0.2
	REL8_4_0:1.8
	REL8_4_RC2:1.8
	REL8_4_RC1:1.8
	REL8_4_BETA2:1.8
	REL8_4_BETA1:1.8
	REL7_4_25:1.4
	REL8_0_21:1.4
	REL8_1_17:1.4
	REL8_2_13:1.5
	REL8_3_7:1.5
	REL7_4_24:1.4
	REL8_0_20:1.4
	REL8_1_16:1.4
	REL8_2_12:1.5
	REL8_3_6:1.5
	REL7_4_23:1.4
	REL8_0_19:1.4
	REL8_1_15:1.4
	REL8_2_11:1.5
	REL8_3_5:1.5
	REL7_4_22:1.4
	REL8_0_18:1.4
	REL8_1_14:1.4
	REL8_2_10:1.5
	REL8_3_4:1.5
	REL7_4_21:1.4
	REL8_0_17:1.4
	REL8_1_13:1.4
	REL8_2_9:1.5
	REL8_3_3:1.5
	REL7_4_20:1.4
	REL8_0_16:1.4
	REL8_1_12:1.4
	REL8_2_8:1.5
	REL8_3_2:1.5
	REL8_2_7:1.5
	REL8_3_1:1.5
	REL8_3_STABLE:1.5.0.4
	REL8_3_0:1.5
	REL8_3_RC2:1.5
	REL7_3_21:1.4
	REL7_4_19:1.4
	REL8_0_15:1.4
	REL8_1_11:1.4
	REL8_2_6:1.5
	REL8_3_RC1:1.5
	REL8_3_BETA4:1.5
	REL8_3_BETA3:1.5
	REL8_3_BETA2:1.5
	REL8_3_BETA1:1.5
	REL7_3_20:1.4
	REL7_4_18:1.4
	REL8_0_14:1.4
	REL8_1_10:1.4
	REL8_2_5:1.5
	REL7_3_19:1.4
	REL7_4_17:1.4
	REL8_0_13:1.4
	REL8_1_9:1.4
	REL8_2_4:1.5
	REL8_0_12:1.4
	REL8_1_8:1.4
	REL8_2_3:1.5
	REL7_3_18:1.4
	REL7_4_16:1.4
	REL8_0_11:1.4
	REL8_1_7:1.4
	REL8_2_2:1.5
	REL8_0_10:1.4
	REL8_1_6:1.4
	REL8_2_1:1.5
	REL7_4_15:1.4
	REL7_3_17:1.4
	REL8_2_STABLE:1.5.0.2
	REL8_2_0:1.5
	REL8_2_RC1:1.5
	REL8_2_BETA3:1.5
	REL8_2_BETA2:1.5
	REL8_1_5:1.4
	REL8_0_9:1.4
	REL7_4_14:1.4
	REL7_3_16:1.4
	REL8_2_BETA1:1.5
	REL7_3_15:1.4
	REL7_4_13:1.4
	REL8_0_8:1.4
	REL8_1_4:1.4
	REL7_3_14:1.4
	REL7_4_12:1.4
	REL8_0_7:1.4
	REL8_1_3:1.4
	REL7_3_13:1.4
	REL7_4_11:1.4
	REL8_0_6:1.4
	REL8_1_2:1.4
	REL7_3_12:1.4
	REL7_4_10:1.4
	REL8_0_5:1.4
	REL8_1_1:1.4
	REL8_1_STABLE:1.4.0.12
	REL8_1_0:1.4
	REL8_1_0RC1:1.4
	REL8_1_0BETA4:1.4
	REL8_1_0BETA3:1.4
	REL7_3_11:1.4
	REL7_4_9:1.4
	REL8_0_4:1.4
	REL8_1_0BETA2:1.4
	REL8_1_0BETA1:1.4
	REL7_2_8:1.3
	REL7_3_10:1.4
	REL7_4_8:1.4
	REL8_0_3:1.4
	REL8_0_2:1.4
	REL7_2_7:1.3
	REL7_3_9:1.4
	REL7_4_7:1.4
	REL8_0_1:1.4
	REL8_0_STABLE:1.4.0.10
	REL8_0_0:1.4.0.8
	REL8_0_0RC5:1.4
	REL8_0_0RC4:1.4
	REL8_0_0RC3:1.4
	REL8_0_0RC2:1.4
	REL8_0_0RC1:1.4
	REL8_0_0BETA5:1.4
	REL8_0_0BETA4:1.4
	REL7_4_6:1.4
	REL7_3_8:1.4
	REL7_2_6:1.3
	REL8_0_0BETA3:1.4
	REL8_0_0BETA2:1.4
	REL7_2_5:1.3
	REL7_4_5:1.4
	REL7_3_7:1.4
	REL7_4_4:1.4
	REL8_0_0BETA1:1.4
	REL7_4_3:1.4
	REL7_4_2:1.4
	REL7_3_6:1.4
	REL7_4_1:1.4
	REL7_3_5:1.4
	REL7_4:1.4
	REL7_4_RC2:1.4
	REL7_4_STABLE:1.4.0.6
	REL7_4_RC1:1.4
	REL7_4_BETA5:1.4
	REL7_4_BETA4:1.4
	REL7_4_BETA3:1.4
	REL7_4_BETA2:1.4
	WIN32_DEV:1.4.0.4
	REL7_4_BETA1:1.4
	REL7_3_4:1.4
	REL7_3_2:1.4
	REL7_2_4:1.3
	REL7_3_STABLE:1.4.0.2
	REL7_2_3:1.3
	REL7_2_STABLE:1.3.0.4
	REL7_2:1.3
	REL7_2_RC2:1.3
	REL7_2_RC1:1.3
	REL7_2_BETA5:1.3
	REL7_2_BETA4:1.3
	REL7_2_BETA3:1.3
	REL7_2_BETA2:1.3
	REL7_2_BETA1:1.3
	REL7_1_2:1.3
	REL7_1_STABLE:1.3.0.2
	REL7_1_BETA:1.3
	REL7_1_BETA3:1.3
	REL7_1_BETA2:1.3
	REL7_1:1.3
	REL7_0_PATCHES:1.2.0.2
	REL7_0:1.2
	REL6_5_PATCHES:1.1.0.4
	REL6_5:1.1
	REL6_4:1.1.0.2;
locks; strict;
comment	@# @;


1.8
date	2008.06.17.18.22.43;	author momjian;	state Exp;
branches;
next	1.7;

1.7
date	2008.03.21.13.23.28;	author momjian;	state Exp;
branches;
next	1.6;

1.6
date	2008.03.20.17.55.15;	author momjian;	state Exp;
branches;
next	1.5;

1.5
date	2006.02.18.16.15.22;	author petere;	state Exp;
branches;
next	1.4;

1.4
date	2002.09.03.21.45.43;	author petere;	state Exp;
branches;
next	1.3;

1.3
date	2000.10.25.19.44.44;	author tgl;	state Exp;
branches;
next	1.2;

1.2
date	2000.01.13.01.08.14;	author ishii;	state Exp;
branches;
next	1.1;

1.1
date	98.07.24.03.31.55;	author scrappy;	state Exp;
branches;
next	;


desc
@@


1.8
log
@Add URL for introduction to multibyte programming in C.
@
text
@$PostgreSQL: pgsql/src/backend/utils/mb/README,v 1.7 2008/03/21 13:23:28 momjian Exp $

Encodings
=========

encnames.c:	public functions for both the backend and the frontend.
conv.c:		static functions and a public table for code conversion
wchar.c:	mostly static functions and a public table for mb string and
		multibyte conversion
mbutils.c:	public functions for the backend only.
		requires conv.c and wchar.c
wstrcmp.c:	strcmp for mb
wstrncmp.c:	strncmp for mb
win866.c:	a tool to generate KOI8 <--> CP866 conversion table
iso.c:		a tool to generate KOI8 <--> ISO8859-5 conversion table
win1251.c:	a tool to generate KOI8 <--> CP1251 conversion table

Introduction
------------
	http://www.cprogramming.com/tutorial/unicode.html
@


1.7
log
@More README src cleanups.
@
text
@d1 1
a1 1
$PostgreSQL: pgsql/src/backend/utils/mb/README,v 1.6 2008/03/20 17:55:15 momjian Exp $
d17 4
@


1.6
log
@Make source code READMEs more consistent.  Add CVS tags to all README files.
@
text
@d1 1
a1 1
$PostgreSQL: pgsql/src/backend/access/gist/README,v 1.3 2005/09/16 14:40:54 teodor Exp $
d4 1
a4 1
---------
@


1.5
log
@Add support for Windows codepages 1253, 1254, 1255, and 1257 and clean
up a bunch of the support utilities.

In src/backend/utils/mb/Unicode remove nearly duplicate copies of the
UCS_to_XXX perl script and replace with one version to handle all generic
files.  Update the Makefile so that it knows about all the map files.
This produces a slight difference in some of the map files, using a
uniform naming convention and not mapping the null character.

In src/backend/utils/mb/conversion_procs create a master utf8<->win
codepage function like the ISO 8859 versions instead of having a separate
handler for each conversion.

There is an externally visible change in the name of the win1258 to utf8
conversion.  According to the documentation notes, it was named
incorrectly and this changes it to a standard name.

Running the Unicode mapping perl scripts has shown some additional mapping
changes in koi8r and iso8859-7.
@
text
@d1 5
@


1.4
log
@Remove all traces of multibyte and locale options.  Clean up comments
referring to "multibyte" where it really means character encoding.
@
text
@d1 1
a1 2
common.c:	public functions for both the backend and the frontend.
		requires conv.c and wchar.c
d5 1
a5 1
mbutilc.c:	public functions for the backend only.
d9 1
a9 1
alt.c:		a tool to generate KOI8 <--> CP866 conversion table
d11 1
a11 4
win.c:		a tool to generate KOI8 <--> CP1251 conversion table
big5.c:		conversion between BIG5 and Mule Internal Code(CNS 116643-1992
		plane 1 and plane 2).
utftest.c:	test driver for utf2wchar()
@


1.3
log
@Support SET/SHOW/RESET client_encoding and server_encoding even when
MULTIBYTE support is not compiled (you just can't set them to anything
but SQL_ASCII).  This should reduce interoperability problems between
MB-enabled clients and non-MB-enabled servers.
@
text
@d5 1
a5 1
		multi-byte conversion
d15 1
a15 1
utftest.c:	test driver for utf2wchar()@


1.2
log
@Add UDC (User Defined Characters) support to SJIS/EUC_JP conversion
Update README so that it reflects all source file names
Add an entry to make sjistest (testing between SJIS/EUC_JP conversion)
@
text
@a9 1
varable.c:	public functions for show/set/reset variable commands
@


1.1
log
@
I really hope that I haven't missed anything in this one...

From: t-ishii@@sra.co.jp

Attached are patches to enhance the multi-byte support.  (patches are
against 7/18 snapshot)

* determine encoding at initdb/createdb rather than compile time

Now initdb/createdb has an option to specify the encoding. Also, I
modified the syntax of CREATE DATABASE to accept encoding option. See
README.mb for more details.

For this purpose I have added new column "encoding" to pg_database.
Also pg_attribute and pg_class are changed to catch up the
modification to pg_database.  Actually I haved added pg_database_mb.h,
pg_attribute_mb.h and pg_class_mb.h. These are used only when MB is
enabled. The reason having separate files is I couldn't find a way to
use ifdef or whatever in those files. I have to admit it looks
ugly. No way.

* support for PGCLIENTENCODING when issuing COPY command

commands/copy.c modified.

* support for SQL92 syntax "SET NAMES"

See gram.y.

* support for LATIN2-5
* add UNICODE regression test case
* new test suite for MB

New directory test/mb added.

* clean up source files

Basic idea is to have MB's own subdirectory for easier maintenance.
These are include/mb and backend/utils/mb.
@
text
@d11 6
@
