aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog15
-rw-r--r--iconvdata/Makefile8
-rw-r--r--iconvdata/gconv-modules8
-rw-r--r--iconvdata/georgian-academy.c29
-rw-r--r--iconvdata/georgian-ps.c29
-rwxr-xr-xiconvdata/tst-tables.sh2
-rw-r--r--libio/genops.c18
-rw-r--r--locale/programs/ld-collate.c43
-rw-r--r--localedata/ChangeLog6
-rw-r--r--localedata/SUPPORTED1
-rw-r--r--localedata/charmaps/GEORGIAN-ACADEMY267
-rw-r--r--localedata/charmaps/GEORGIAN-PS267
-rw-r--r--localedata/locales/ka_GE5
-rw-r--r--malloc/set-freeres.c14
14 files changed, 686 insertions, 26 deletions
diff --git a/ChangeLog b/ChangeLog
index 0f24b15997..923c79caa1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2001-08-04 Ulrich Drepper <drepper@redhat.com>
+
+ * libio/genops.c (_IO_unbuffer_write): Force streams in narrow
+ orientation so that conversion modules aren't used anymore.
+ * malloc/set-freeres.c: Call _IO_cleanup before running subfreeres
+ functions to avoid using wide streams afterwards.
+
+ * iconvdata/Makefile: Add rules to build GEORGIAN-PS and
+ GEORGIAN-ACADEMY.
+ * iconvdata/georgian-ps.c: New file.
+ * iconvdata/georgian-academy.c: New file.
+ * iconvdata/gconv-modules: Add entries for GEORGIAN-PS and
+ GEORGIAN-ACADEMY.
+ * iconvdata/tst-tables.sh: Add GEORGIAN-PS and GEORGIAN-ACADEMY.
+
2001-08-03 Ulrich Drepper <drepper@redhat.com>
* locale/programs/ld-collate (insert_value): If symbol in order
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 53aeb2426c..419ea3c583 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -47,7 +47,8 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \
ISO_5428 ISO_10367-BOX MAC-IS MAC-UK NATS-DANO NATS-SEFI \
SAMI-WS2 ISO-IR-197 TIS-620 KOI8-U GBK ISIRI-3342 GBGBK \
ISO-2022-CN libISOIR165 UTF-16 UNICODE UTF-32 UTF-7 BIG5HKSCS \
- GB18030 ISO-2022-CN-EXT VISCII GBBIG5 CP10007 KOI8-T
+ GB18030 ISO-2022-CN-EXT VISCII GBBIG5 CP10007 KOI8-T \
+ GEORGIAN-PS GEORGIAN-ACADEMY
modules.so := $(addsuffix .so, $(modules))
@@ -138,7 +139,7 @@ distribute := gconv-modules extra-module.mk gap.awk gaptab.awk \
iso8859-16.c utf-16.c unicode.c utf-32.c utf-7.c big5hkscs.c \
iso-ir-165.c iso-ir-165.h gb18030.c iso-2022-cn-ext.c \
ibm932.c ibm932.h ibm943.c ibm943.h gbbig5.c cp10007.c \
- koi8-t.c
+ koi8-t.c georgian-ps.c georgian-academy.c
# We build the transformation modules only when we build shared libs.
ifeq (yes,$(build-shared))
@@ -177,7 +178,8 @@ gen-8bit-gap-modules := koi8-r latin-greek latin-greek-1 ibm256 ibm273 \
inis-cyrillic iso_2033 iso_5427 iso_5427-ext \
iso_5428 iso_10367-box mac-is nats-dano nats-sefi \
iso8859-13 iso8859-14 iso8859-15 mac-uk sami-ws2 \
- iso-ir-197 tis-620 koi8-u ibm874 cp10007 koi8-t
+ iso-ir-197 tis-620 koi8-u ibm874 cp10007 koi8-t \
+ georgian-ps georgian-academy
gen-special-modules := iso8859-7jp
diff --git a/iconvdata/gconv-modules b/iconvdata/gconv-modules
index 54692de455..1eacc1b51e 100644
--- a/iconvdata/gconv-modules
+++ b/iconvdata/gconv-modules
@@ -1434,3 +1434,11 @@ module INTERNAL VISCII// VISCII 1
# from to module cost
module KOI8-T// INTERNAL KOI8-T 1
module INTERNAL KOI8-T// KOI8-T 1
+
+# from to module cost
+module GEORGIAN-PS// INTERNAL GEORGIAN-PS 1
+module INTERNAL GEORGIAN-PS// GEORGIAN-PS 1
+
+# from to module cost
+module GEORGIAN-ACADEMY// INTERNAL GEORGIAN-ACADEMY 1
+module INTERNAL GEORGIAN-ACADEMY// GEORGIAN-ACADEMY 1
diff --git a/iconvdata/georgian-academy.c b/iconvdata/georgian-academy.c
new file mode 100644
index 0000000000..eb0e6364c2
--- /dev/null
+++ b/iconvdata/georgian-academy.c
@@ -0,0 +1,29 @@
+/* Conversion from and to GEORGIAN-ACADEMY.
+ Copyright (C) 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <stdint.h>
+
+/* Specify the conversion table. */
+#define TABLES <georgian-academy.h>
+
+#define CHARSET_NAME "GEORGIAN-ACADEMY//"
+#define HAS_HOLES 0 /* All 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/georgian-ps.c b/iconvdata/georgian-ps.c
new file mode 100644
index 0000000000..355eed3017
--- /dev/null
+++ b/iconvdata/georgian-ps.c
@@ -0,0 +1,29 @@
+/* Conversion from and to GEORGIAN-PS.
+ Copyright (C) 2001 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <stdint.h>
+
+/* Specify the conversion table. */
+#define TABLES <georgian-ps.h>
+
+#define CHARSET_NAME "GEORGIAN-PS//"
+#define HAS_HOLES 0 /* All 256 character are defined. */
+
+#include <8bit-gap.c>
diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh
index f403d17010..fea3914df3 100755
--- a/iconvdata/tst-tables.sh
+++ b/iconvdata/tst-tables.sh
@@ -183,6 +183,8 @@ cat <<EOF |
TIS-620
KOI8-U
VISCII
+ GEORGIAN-PS
+ GEORGIAN-ACADEMY
#ISIRI-3342 This charset concept is completely broken
#
# Multibyte encodings come here
diff --git a/libio/genops.c b/libio/genops.c
index ad6c7f7ea4..f68912ceb4 100644
--- a/libio/genops.c
+++ b/libio/genops.c
@@ -881,12 +881,18 @@ _IO_unbuffer_write ()
{
struct _IO_FILE *fp;
for (fp = (_IO_FILE *) _IO_list_all; fp; fp = fp->_chain)
- if (! (fp->_flags & _IO_UNBUFFERED)
- && (! (fp->_flags & _IO_NO_WRITES)
- || (fp->_flags & _IO_IS_APPENDING))
- /* Iff stream is un-orientated, it wasn't used. */
- && fp->_mode != 0)
- _IO_SETBUF (fp, NULL, 0);
+ {
+ if (! (fp->_flags & _IO_UNBUFFERED)
+ && (! (fp->_flags & _IO_NO_WRITES)
+ || (fp->_flags & _IO_IS_APPENDING))
+ /* Iff stream is un-orientated, it wasn't used. */
+ && fp->_mode != 0)
+ _IO_SETBUF (fp, NULL, 0);
+
+ /* Make sure that never again the wide char functions can be
+ used. */
+ fp->_mode = -1;
+ }
}
int
diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
index e9e92e2bf4..d19e3bba59 100644
--- a/locale/programs/ld-collate.c
+++ b/locale/programs/ld-collate.c
@@ -939,24 +939,37 @@ insert_value (struct linereader *ldfile, const char *symstr, size_t symlen,
{
/* It's no character, so look through the collation elements and
symbol list. */
- void *result;
-
- if (find_entry (&collate->sym_table, symstr, symlen, &result) == 0)
+ if (find_entry (&collate->elem_table, symstr, symlen,
+ (void **) &elem) != 0)
{
- /* It's a collation symbol. */
- struct symbol_t *sym = (struct symbol_t *) result;
- elem = sym->order;
+ void *result;
+ struct symbol_t *sym = NULL;
+
+ /* It's also collation element. Therefore it's either a
+ collating symbol or it's a character which is not
+ supported by the character set. In the later case we
+ simply create a dummy entry. */
+ if (find_entry (&collate->sym_table, symstr, symlen, &result) == 0)
+ {
+ /* It's a collation symbol. */
+ sym = (struct symbol_t *) result;
+
+ elem = sym->order;
+ }
if (elem == NULL)
- elem = sym->order = new_element (collate, NULL, 0, NULL,
- sym->name, strlen (sym->name), 0);
- }
- else if (find_entry (&collate->elem_table, symstr, symlen,
- (void **) &elem) != 0)
- {
- /* It's also no collation element. Therefore ignore it. */
- lr_ignore_rest (ldfile, 0);
- return 1;
+ {
+ elem = new_element (collate, NULL, 0, NULL, symstr, symlen, 0);
+
+ if (sym != NULL)
+ sym->order = elem;
+ else
+ /* Enter a fake element in the sequence table. This
+ won't cause anything in the output since there is
+ no multibyte or wide character associated with
+ it. */
+ insert_entry (&collate->seq_table, symstr, symlen, elem);
+ }
}
}
else
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index df3441a7c6..ce1734d0a6 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,9 @@
+2001-08-04 Ulrich Drepper <drepper@redhat.com>
+
+ * charmaps/GEORGIAN-PS: New file.
+ * charmaps/GEORGIAN-ACADEMY: New file.
+ * SUPPORTED: Add ka_GE/GEORGIAN-PS.
+
2001-08-03 Ulrich Drepper <drepper@redhat.com>
* Makefile: Add rules to build and run tst-mbswcs6.
diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
index a97b54d57d..296de2ee2a 100644
--- a/localedata/SUPPORTED
+++ b/localedata/SUPPORTED
@@ -107,6 +107,7 @@ it_IT/ISO-8859-1 \
it_IT@euro/ISO-8859-15 \
iw_IL/ISO-8859-8 \
ja_JP.EUC-JP/EUC-JP \
+ka_GE/GEORGIAN-PS \
kl_GL/ISO-8859-1 \
ko_KR.EUC-KR/EUC-KR \
ko_KR.UTF-8/UTF-8 \
diff --git a/localedata/charmaps/GEORGIAN-ACADEMY b/localedata/charmaps/GEORGIAN-ACADEMY
new file mode 100644
index 0000000000..9dc1bc9e78
--- /dev/null
+++ b/localedata/charmaps/GEORGIAN-ACADEMY
@@ -0,0 +1,267 @@
+<code_set_name> GEORGIAN-ACADEMY
+<comment_char> %
+<escape_char> /
+
+CHARMAP
+<U0000> /x00 NULL (NUL)
+<U0001> /x01 START OF HEADING (SOH)
+<U0002> /x02 START OF TEXT (STX)
+<U0003> /x03 END OF TEXT (ETX)
+<U0004> /x04 END OF TRANSMISSION (EOT)
+<U0005> /x05 ENQUIRY (ENQ)
+<U0006> /x06 ACKNOWLEDGE (ACK)
+<U0007> /x07 BELL (BEL)
+<U0008> /x08 BACKSPACE (BS)
+<U0009> /x09 CHARACTER TABULATION (HT)
+<U000A> /x0a LINE FEED (LF)
+<U000B> /x0b LINE TABULATION (VT)
+<U000C> /x0c FORM FEED (FF)
+<U000D> /x0d CARRIAGE RETURN (CR)
+<U000E> /x0e SHIFT OUT (SO)
+<U000F> /x0f SHIFT IN (SI)
+<U0010> /x10 DATALINK ESCAPE (DLE)
+<U0011> /x11 DEVICE CONTROL ONE (DC1)
+<U0012> /x12 DEVICE CONTROL TWO (DC2)
+<U0013> /x13 DEVICE CONTROL THREE (DC3)
+<U0014> /x14 DEVICE CONTROL FOUR (DC4)
+<U0015> /x15 NEGATIVE ACKNOWLEDGE (NAK)
+<U0016> /x16 SYNCHRONOUS IDLE (SYN)
+<U0017> /x17 END OF TRANSMISSION BLOCK (ETB)
+<U0018> /x18 CANCEL (CAN)
+<U0019> /x19 END OF MEDIUM (EM)
+<U001A> /x1a SUBSTITUTE (SUB)
+<U001B> /x1b ESCAPE (ESC)
+<U001C> /x1c FILE SEPARATOR (IS4)
+<U001D> /x1d GROUP SEPARATOR (IS3)
+<U001E> /x1e RECORD SEPARATOR (IS2)
+<U001F> /x1f UNIT SEPARATOR (IS1)
+<U0020> /x20 SPACE
+<U0021> /x21 EXCLAMATION MARK
+<U0022> /x22 QUOTATION MARK
+<U0023> /x23 NUMBER SIGN
+<U0024> /x24 DOLLAR SIGN
+<U0025> /x25 PERCENT SIGN
+<U0026> /x26 AMPERSAND
+<U0027> /x27 APOSTROPHE
+<U0028> /x28 LEFT PARENTHESIS
+<U0029> /x29 RIGHT PARENTHESIS
+<U002A> /x2a ASTERISK
+<U002B> /x2b PLUS SIGN
+<U002C> /x2c COMMA
+<U002D> /x2d HYPHEN-MINUS
+<U002E> /x2e FULL STOP
+<U002F> /x2f SOLIDUS
+<U0030> /x30 DIGIT ZERO
+<U0031> /x31 DIGIT ONE
+<U0032> /x32 DIGIT TWO
+<U0033> /x33 DIGIT THREE
+<U0034> /x34 DIGIT FOUR
+<U0035> /x35 DIGIT FIVE
+<U0036> /x36 DIGIT SIX
+<U0037> /x37 DIGIT SEVEN
+<U0038> /x38 DIGIT EIGHT
+<U0039> /x39 DIGIT NINE
+<U003A> /x3a COLON
+<U003B> /x3b SEMICOLON
+<U003C> /x3c LESS-THAN SIGN
+<U003D> /x3d EQUALS SIGN
+<U003E> /x3e GREATER-THAN SIGN
+<U003F> /x3f QUESTION MARK
+<U0040> /x40 COMMERCIAL AT
+<U0041> /x41 LATIN CAPITAL LETTER A
+<U0042> /x42 LATIN CAPITAL LETTER B
+<U0043> /x43 LATIN CAPITAL LETTER C
+<U0044> /x44 LATIN CAPITAL LETTER D
+<U0045> /x45 LATIN CAPITAL LETTER E
+<U0046> /x46 LATIN CAPITAL LETTER F
+<U0047> /x47 LATIN CAPITAL LETTER G
+<U0048> /x48 LATIN CAPITAL LETTER H
+<U0049> /x49 LATIN CAPITAL LETTER I
+<U004A> /x4a LATIN CAPITAL LETTER J
+<U004B> /x4b LATIN CAPITAL LETTER K
+<U004C> /x4c LATIN CAPITAL LETTER L
+<U004D> /x4d LATIN CAPITAL LETTER M
+<U004E> /x4e LATIN CAPITAL LETTER N
+<U004F> /x4f LATIN CAPITAL LETTER O
+<U0050> /x50 LATIN CAPITAL LETTER P
+<U0051> /x51 LATIN CAPITAL LETTER Q
+<U0052> /x52 LATIN CAPITAL LETTER R
+<U0053> /x53 LATIN CAPITAL LETTER S
+<U0054> /x54 LATIN CAPITAL LETTER T
+<U0055> /x55 LATIN CAPITAL LETTER U
+<U0056> /x56 LATIN CAPITAL LETTER V
+<U0057> /x57 LATIN CAPITAL LETTER W
+<U0058> /x58 LATIN CAPITAL LETTER X
+<U0059> /x59 LATIN CAPITAL LETTER Y
+<U005A> /x5a LATIN CAPITAL LETTER Z
+<U005B> /x5b LEFT SQUARE BRACKET
+<U005C> /x5c REVERSE SOLIDUS
+<U005D> /x5d RIGHT SQUARE BRACKET
+<U005E> /x5e CIRCUMFLEX ACCENT
+<U005F> /x5f LOW LINE
+<U0060> /x60 GRAVE ACCENT
+<U0061> /x61 LATIN SMALL LETTER A
+<U0062> /x62 LATIN SMALL LETTER B
+<U0063> /x63 LATIN SMALL LETTER C
+<U0064> /x64 LATIN SMALL LETTER D
+<U0065> /x65 LATIN SMALL LETTER E
+<U0066> /x66 LATIN SMALL LETTER F
+<U0067> /x67 LATIN SMALL LETTER G
+<U0068> /x68 LATIN SMALL LETTER H
+<U0069> /x69 LATIN SMALL LETTER I
+<U006A> /x6a LATIN SMALL LETTER J
+<U006B> /x6b LATIN SMALL LETTER K
+<U006C> /x6c LATIN SMALL LETTER L
+<U006D> /x6d LATIN SMALL LETTER M
+<U006E> /x6e LATIN SMALL LETTER N
+<U006F> /x6f LATIN SMALL LETTER O
+<U0070> /x70 LATIN SMALL LETTER P
+<U0071> /x71 LATIN SMALL LETTER Q
+<U0072> /x72 LATIN SMALL LETTER R
+<U0073> /x73 LATIN SMALL LETTER S
+<U0074> /x74 LATIN SMALL LETTER T
+<U0075> /x75 LATIN SMALL LETTER U
+<U0076> /x76 LATIN SMALL LETTER V
+<U0077> /x77 LATIN SMALL LETTER W
+<U0078> /x78 LATIN SMALL LETTER X
+<U0079> /x79 LATIN SMALL LETTER Y
+<U007A> /x7a LATIN SMALL LETTER Z
+<U007B> /x7b LEFT CURLY BRACKET
+<U007C> /x7c VERTICAL LINE
+<U007D> /x7d RIGHT CURLY BRACKET
+<U007E> /x7e TILDE
+<U007F> /x7f DELETE (DEL)
+<U0080> /x80 PADDING CHARACTER (PAD)
+<U0081> /x81 HIGH OCTET PRESET (HOP)
+<U201A> /x82 SINGLE LOW-9 QUOTATION MARK
+<U0192> /x83 LATIN SMALL LETTER F WITH HOOK
+<U201E> /x84 DOUBLE LOW-9 QUOTATION MARK
+<U2026> /x85 HORIZONTAL ELLIPSIS
+<U2020> /x86 DAGGER
+<U2021> /x87 DOUBLE DAGGER
+<U02C6> /x88 MODIFIER LETTER CIRCUMFLEX ACCENT
+<U2030> /x89 PER MILLE SIGN
+<U0160> /x8a LATIN CAPITAL LETTER S WITH CARON
+<U2039> /x8b SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+<U0152> /x8c LATIN CAPITAL LIGATURE OE
+<U008D> /x8d REVERSE LINE FEED (RI)
+<U008E> /x8e SINGLE-SHIFT TWO (SS2)
+<U008F> /x8f SINGLE-SHIFT THREE (SS3)
+<U0090> /x90 DEVICE CONTROL STRING (DCS)
+<U2018> /x91 LEFT SINGLE QUOTATION MARK
+<U2019> /x92 RIGHT SINGLE QUOTATION MARK
+<U201C> /x93 LEFT DOUBLE QUOTATION MARK
+<U201D> /x94 RIGHT DOUBLE QUOTATION MARK
+<U2022> /x95 BULLET
+<U2013> /x96 EN DASH
+<U2014> /x97 EM DASH
+<U02DC> /x98 SMALL TILDE
+<U2122> /x99 TRADE MARK SIGN
+<U0161> /x9a LATIN SMALL LETTER S WITH CARON
+<U203A> /x9b SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+<U0153> /x9c LATIN SMALL LIGATURE OE
+<U009D> /x9d OPERATING SYSTEM COMMAND (OSC)
+<U009E> /x9e PRIVACY MESSAGE (PM)
+<U0178> /x9f LATIN CAPITAL LETTER Y WITH DIAERESIS
+<U00A0> /xa0 NO-BREAK SPACE
+<U00A1> /xa1 INVERTED EXCLAMATION MARK
+<U00A2> /xa2 CENT SIGN
+<U00A3> /xa3 POUND SIGN
+<U00A4> /xa4 CURRENCY SIGN
+<U00A5> /xa5 YEN SIGN
+<U00A6> /xa6 BROKEN BAR
+<U00A7> /xa7 SECTION SIGN
+<U00A8> /xa8 DIAERESIS
+<U00A9> /xa9 COPYRIGHT SIGN
+<U00AA> /xaa FEMININE ORDINAL INDICATOR
+<U00AB> /xab LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00AC> /xac NOT SIGN
+<U00AD> /xad SOFT HYPHEN
+<U00AE> /xae REGISTERED SIGN
+<U00AF> /xaf MACRON
+<U00B0> /xb0 DEGREE SIGN
+<U00B1> /xb1 PLUS-MINUS SIGN
+<U00B2> /xb2 SUPERSCRIPT TWO
+<U00B3> /xb3 SUPERSCRIPT THREE
+<U00B4> /xb4 ACUTE ACCENT
+<U00B5> /xb5 MICRO SIGN
+<U00B6> /xb6 PILCROW SIGN
+<U00B7> /xb7 MIDDLE DOT
+<U00B8> /xb8 CEDILLA
+<U00B9> /xb9 SUPERSCRIPT ONE
+<U00BA> /xba MASCULINE ORDINAL INDICATOR
+<U00BB> /xbb RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00BC> /xbc VULGAR FRACTION ONE QUARTER
+<U00BD> /xbd VULGAR FRACTION ONE HALF
+<U00BE> /xbe VULGAR FRACTION THREE QUARTERS
+<U00BF> /xbf INVERTED QUESTION MARK
+<U10D0> /xc0 GEORGIAN LETTER AN
+<U10D1> /xc1 GEORGIAN LETTER BAN
+<U10D2> /xc2 GEORGIAN LETTER GAN
+<U10D3> /xc3 GEORGIAN LETTER DON
+<U10D4> /xc4 GEORGIAN LETTER EN
+<U10D5> /xc5 GEORGIAN LETTER VIN
+<U10D6> /xc6 GEORGIAN LETTER ZEN
+<U10D7> /xc7 GEORGIAN LETTER TAN
+<U10D8> /xc8 GEORGIAN LETTER IN
+<U10D9> /xc9 GEORGIAN LETTER KAN
+<U10DA> /xca GEORGIAN LETTER LAS
+<U10DB> /xcb GEORGIAN LETTER MAN
+<U10DC> /xcc GEORGIAN LETTER NAR
+<U10DD> /xcd GEORGIAN LETTER ON
+<U10DE> /xce GEORGIAN LETTER PAR
+<U10DF> /xcf GEORGIAN LETTER ZHAR
+<U10E0> /xd0 GEORGIAN LETTER RAE
+<U10E1> /xd1 GEORGIAN LETTER SAN
+<U10E2> /xd2 GEORGIAN LETTER TAR
+<U10E3> /xd3 GEORGIAN LETTER UN
+<U10E4> /xd4 GEORGIAN LETTER PHAR
+<U10E5> /xd5 GEORGIAN LETTER KHAR
+<U10E6> /xd6 GEORGIAN LETTER GHAN
+<U10E7> /xd7 GEORGIAN LETTER QAR
+<U10E8> /xd8 GEORGIAN LETTER SHIN
+<U10E9> /xd9 GEORGIAN LETTER CHIN
+<U10EA> /xda GEORGIAN LETTER CAN
+<U10EB> /xdb GEORGIAN LETTER JIL
+<U10EC> /xdc GEORGIAN LETTER CIL
+<U10ED> /xdd GEORGIAN LETTER CHAR
+<U10EE> /xde GEORGIAN LETTER XAN
+<U10EF> /xdf GEORGIAN LETTER JHAN
+<U10F0> /xe0 GEORGIAN LETTER HAE
+<U10F1> /xe1 GEORGIAN LETTER HE
+<U10F2> /xe2 GEORGIAN LETTER HIE
+<U10F3> /xe3 GEORGIAN LETTER WE
+<U10F4> /xe4 GEORGIAN LETTER HAR
+<U10F5> /xe5 GEORGIAN LETTER HOE
+<U10F6> /xe6 GEORGIAN LETTER FI
+<U00E7> /xe7 LATIN SMALL LETTER C WITH CEDILLA
+<U00E8> /xe8 LATIN SMALL LETTER E WITH GRAVE
+<U00E9> /xe9 LATIN SMALL LETTER E WITH ACUTE
+<U00EA> /xea LATIN SMALL LETTER E WITH CIRCUMFLEX
+<U00EB> /xeb LATIN SMALL LETTER E WITH DIAERESIS
+<U00EC> /xec LATIN SMALL LETTER I WITH GRAVE
+<U00ED> /xed LATIN SMALL LETTER I WITH ACUTE
+<U00EE> /xee LATIN SMALL LETTER I WITH CIRCUMFLEX
+<U00EF> /xef LATIN SMALL LETTER I WITH DIAERESIS
+<U00F0> /xf0 LATIN SMALL LETTER ETH (Icelandic)
+<U00F1> /xf1 LATIN SMALL LETTER N WITH TILDE
+<U00F2> /xf2 LATIN SMALL LETTER O WITH GRAVE
+<U00F3> /xf3 LATIN SMALL LETTER O WITH ACUTE
+<U00F4> /xf4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+<U00F5> /xf5 LATIN SMALL LETTER O WITH TILDE
+<U00F6> /xf6 LATIN SMALL LETTER O WITH DIAERESIS
+<U00F7> /xf7 DIVISION SIGN
+<U00F8> /xf8 LATIN SMALL LETTER O WITH STROKE
+<U00F9> /xf9 LATIN SMALL LETTER U WITH GRAVE
+<U00FA> /xfa LATIN SMALL LETTER U WITH ACUTE
+<U00FB> /xfb LATIN SMALL LETTER U WITH CIRCUMFLEX
+<U00FC> /xfc LATIN SMALL LETTER U WITH DIAERESIS
+<U00FD> /xfd LATIN SMALL LETTER Y WITH ACUTE
+<U00FE> /xfe LATIN SMALL LETTER THORN (Icelandic)
+<U00FF> /xff LATIN SMALL LETTER Y WITH DIAERESIS
+END CHARMAP
+
+WIDTH
+<U0020>...<U007E> 1
+<U0080>...<U00FF> 1
+END WIDTH
diff --git a/localedata/charmaps/GEORGIAN-PS b/localedata/charmaps/GEORGIAN-PS
new file mode 100644
index 0000000000..64615ff434
--- /dev/null
+++ b/localedata/charmaps/GEORGIAN-PS
@@ -0,0 +1,267 @@
+<code_set_name> GEORGIAN-PS
+<comment_char> %
+<escape_char> /
+
+CHARMAP
+<U0000> /x00 NULL (NUL)
+<U0001> /x01 START OF HEADING (SOH)
+<U0002> /x02 START OF TEXT (STX)
+<U0003> /x03 END OF TEXT (ETX)
+<U0004> /x04 END OF TRANSMISSION (EOT)
+<U0005> /x05 ENQUIRY (ENQ)
+<U0006> /x06 ACKNOWLEDGE (ACK)
+<U0007> /x07 BELL (BEL)
+<U0008> /x08 BACKSPACE (BS)
+<U0009> /x09 CHARACTER TABULATION (HT)
+<U000A> /x0a LINE FEED (LF)
+<U000B> /x0b LINE TABULATION (VT)
+<U000C> /x0c FORM FEED (FF)
+<U000D> /x0d CARRIAGE RETURN (CR)
+<U000E> /x0e SHIFT OUT (SO)
+<U000F> /x0f SHIFT IN (SI)
+<U0010> /x10 DATALINK ESCAPE (DLE)
+<U0011> /x11 DEVICE CONTROL ONE (DC1)
+<U0012> /x12 DEVICE CONTROL TWO (DC2)
+<U0013> /x13 DEVICE CONTROL THREE (DC3)
+<U0014> /x14 DEVICE CONTROL FOUR (DC4)
+<U0015> /x15 NEGATIVE ACKNOWLEDGE (NAK)
+<U0016> /x16 SYNCHRONOUS IDLE (SYN)
+<U0017> /x17 END OF TRANSMISSION BLOCK (ETB)
+<U0018> /x18 CANCEL (CAN)
+<U0019> /x19 END OF MEDIUM (EM)
+<U001A> /x1a SUBSTITUTE (SUB)
+<U001B> /x1b ESCAPE (ESC)
+<U001C> /x1c FILE SEPARATOR (IS4)
+<U001D> /x1d GROUP SEPARATOR (IS3)
+<U001E> /x1e RECORD SEPARATOR (IS2)
+<U001F> /x1f UNIT SEPARATOR (IS1)
+<U0020> /x20 SPACE
+<U0021> /x21 EXCLAMATION MARK
+<U0022> /x22 QUOTATION MARK
+<U0023> /x23 NUMBER SIGN
+<U0024> /x24 DOLLAR SIGN
+<U0025> /x25 PERCENT SIGN
+<U0026> /x26 AMPERSAND
+<U0027> /x27 APOSTROPHE
+<U0028> /x28 LEFT PARENTHESIS
+<U0029> /x29 RIGHT PARENTHESIS
+<U002A> /x2a ASTERISK
+<U002B> /x2b PLUS SIGN
+<U002C> /x2c COMMA
+<U002D> /x2d HYPHEN-MINUS
+<U002E> /x2e FULL STOP
+<U002F> /x2f SOLIDUS
+<U0030> /x30 DIGIT ZERO
+<U0031> /x31 DIGIT ONE
+<U0032> /x32 DIGIT TWO
+<U0033> /x33 DIGIT THREE
+<U0034> /x34 DIGIT FOUR
+<U0035> /x35 DIGIT FIVE
+<U0036> /x36 DIGIT SIX
+<U0037> /x37 DIGIT SEVEN
+<U0038> /x38 DIGIT EIGHT
+<U0039> /x39 DIGIT NINE
+<U003A> /x3a COLON
+<U003B> /x3b SEMICOLON
+<U003C> /x3c LESS-THAN SIGN
+<U003D> /x3d EQUALS SIGN
+<U003E> /x3e GREATER-THAN SIGN
+<U003F> /x3f QUESTION MARK
+<U0040> /x40 COMMERCIAL AT
+<U0041> /x41 LATIN CAPITAL LETTER A
+<U0042> /x42 LATIN CAPITAL LETTER B
+<U0043> /x43 LATIN CAPITAL LETTER C
+<U0044> /x44 LATIN CAPITAL LETTER D
+<U0045> /x45 LATIN CAPITAL LETTER E
+<U0046> /x46 LATIN CAPITAL LETTER F
+<U0047> /x47 LATIN CAPITAL LETTER G
+<U0048> /x48 LATIN CAPITAL LETTER H
+<U0049> /x49 LATIN CAPITAL LETTER I
+<U004A> /x4a LATIN CAPITAL LETTER J
+<U004B> /x4b LATIN CAPITAL LETTER K
+<U004C> /x4c LATIN CAPITAL LETTER L
+<U004D> /x4d LATIN CAPITAL LETTER M
+<U004E> /x4e LATIN CAPITAL LETTER N
+<U004F> /x4f LATIN CAPITAL LETTER O
+<U0050> /x50 LATIN CAPITAL LETTER P
+<U0051> /x51 LATIN CAPITAL LETTER Q
+<U0052> /x52 LATIN CAPITAL LETTER R
+<U0053> /x53 LATIN CAPITAL LETTER S
+<U0054> /x54 LATIN CAPITAL LETTER T
+<U0055> /x55 LATIN CAPITAL LETTER U
+<U0056> /x56 LATIN CAPITAL LETTER V
+<U0057> /x57 LATIN CAPITAL LETTER W
+<U0058> /x58 LATIN CAPITAL LETTER X
+<U0059> /x59 LATIN CAPITAL LETTER Y
+<U005A> /x5a LATIN CAPITAL LETTER Z
+<U005B> /x5b LEFT SQUARE BRACKET
+<U005C> /x5c REVERSE SOLIDUS
+<U005D> /x5d RIGHT SQUARE BRACKET
+<U005E> /x5e CIRCUMFLEX ACCENT
+<U005F> /x5f LOW LINE
+<U0060> /x60 GRAVE ACCENT
+<U0061> /x61 LATIN SMALL LETTER A
+<U0062> /x62 LATIN SMALL LETTER B
+<U0063> /x63 LATIN SMALL LETTER C
+<U0064> /x64 LATIN SMALL LETTER D
+<U0065> /x65 LATIN SMALL LETTER E
+<U0066> /x66 LATIN SMALL LETTER F
+<U0067> /x67 LATIN SMALL LETTER G
+<U0068> /x68 LATIN SMALL LETTER H
+<U0069> /x69 LATIN SMALL LETTER I
+<U006A> /x6a LATIN SMALL LETTER J
+<U006B> /x6b LATIN SMALL LETTER K
+<U006C> /x6c LATIN SMALL LETTER L
+<U006D> /x6d LATIN SMALL LETTER M
+<U006E> /x6e LATIN SMALL LETTER N
+<U006F> /x6f LATIN SMALL LETTER O
+<U0070> /x70 LATIN SMALL LETTER P
+<U0071> /x71 LATIN SMALL LETTER Q
+<U0072> /x72 LATIN SMALL LETTER R
+<U0073> /x73 LATIN SMALL LETTER S
+<U0074> /x74 LATIN SMALL LETTER T
+<U0075> /x75 LATIN SMALL LETTER U
+<U0076> /x76 LATIN SMALL LETTER V
+<U0077> /x77 LATIN SMALL LETTER W
+<U0078> /x78 LATIN SMALL LETTER X
+<U0079> /x79 LATIN SMALL LETTER Y
+<U007A> /x7a LATIN SMALL LETTER Z
+<U007B> /x7b LEFT CURLY BRACKET
+<U007C> /x7c VERTICAL LINE
+<U007D> /x7d RIGHT CURLY BRACKET
+<U007E> /x7e TILDE
+<U007F> /x7f DELETE (DEL)
+<U0080> /x80 PADDING CHARACTER (PAD)
+<U0081> /x81 HIGH OCTET PRESET (HOP)
+<U201A> /x82 SINGLE LOW-9 QUOTATION MARK
+<U0192> /x83 LATIN SMALL LETTER F WITH HOOK
+<U201E> /x84 DOUBLE LOW-9 QUOTATION MARK
+<U2026> /x85 HORIZONTAL ELLIPSIS
+<U2020> /x86 DAGGER
+<U2021> /x87 DOUBLE DAGGER
+<U02C6> /x88 MODIFIER LETTER CIRCUMFLEX ACCENT
+<U2030> /x89 PER MILLE SIGN
+<U0160> /x8a LATIN CAPITAL LETTER S WITH CARON
+<U2039> /x8b SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+<U0152> /x8c LATIN CAPITAL LIGATURE OE
+<U008D> /x8d REVERSE LINE FEED (RI)
+<U008E> /x8e SINGLE-SHIFT TWO (SS2)
+<U008F> /x8f SINGLE-SHIFT THREE (SS3)
+<U0090> /x90 DEVICE CONTROL STRING (DCS)
+<U2018> /x91 LEFT SINGLE QUOTATION MARK
+<U2019> /x92 RIGHT SINGLE QUOTATION MARK
+<U201C> /x93 LEFT DOUBLE QUOTATION MARK
+<U201D> /x94 RIGHT DOUBLE QUOTATION MARK
+<U2022> /x95 BULLET
+<U2013> /x96 EN DASH
+<U2014> /x97 EM DASH
+<U02DC> /x98 SMALL TILDE
+<U2122> /x99 TRADE MARK SIGN
+<U0161> /x9a LATIN SMALL LETTER S WITH CARON
+<U203A> /x9b SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+<U0153> /x9c LATIN SMALL LIGATURE OE
+<U009D> /x9d OPERATING SYSTEM COMMAND (OSC)
+<U009E> /x9e PRIVACY MESSAGE (PM)
+<U0178> /x9f LATIN CAPITAL LETTER Y WITH DIAERESIS
+<U00A0> /xa0 NO-BREAK SPACE
+<U00A1> /xa1 INVERTED EXCLAMATION MARK
+<U00A2> /xa2 CENT SIGN
+<U00A3> /xa3 POUND SIGN
+<U00A4> /xa4 CURRENCY SIGN
+<U00A5> /xa5 YEN SIGN
+<U00A6> /xa6 BROKEN BAR
+<U00A7> /xa7 SECTION SIGN
+<U00A8> /xa8 DIAERESIS
+<U00A9> /xa9 COPYRIGHT SIGN
+<U00AA> /xaa FEMININE ORDINAL INDICATOR
+<U00AB> /xab LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00AC> /xac NOT SIGN
+<U00AD> /xad SOFT HYPHEN
+<U00AE> /xae REGISTERED SIGN
+<U00AF> /xaf MACRON
+<U00B0> /xb0 DEGREE SIGN
+<U00B1> /xb1 PLUS-MINUS SIGN
+<U00B2> /xb2 SUPERSCRIPT TWO
+<U00B3> /xb3 SUPERSCRIPT THREE
+<U00B4> /xb4 ACUTE ACCENT
+<U00B5> /xb5 MICRO SIGN
+<U00B6> /xb6 PILCROW SIGN
+<U00B7> /xb7 MIDDLE DOT
+<U00B8> /xb8 CEDILLA
+<U00B9> /xb9 SUPERSCRIPT ONE
+<U00BA> /xba MASCULINE ORDINAL INDICATOR
+<U00BB> /xbb RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00BC> /xbc VULGAR FRACTION ONE QUARTER
+<U00BD> /xbd VULGAR FRACTION ONE HALF
+<U00BE> /xbe VULGAR FRACTION THREE QUARTERS
+<U00BF> /xbf INVERTED QUESTION MARK
+<U10D0> /xc0 GEORGIAN LETTER AN
+<U10D1> /xc1 GEORGIAN LETTER BAN
+<U10D2> /xc2 GEORGIAN LETTER GAN
+<U10D3> /xc3 GEORGIAN LETTER DON
+<U10D4> /xc4 GEORGIAN LETTER EN
+<U10D5> /xc5 GEORGIAN LETTER VIN
+<U10D6> /xc6 GEORGIAN LETTER ZEN
+<U10F1> /xc7 GEORGIAN LETTER HE
+<U10D7> /xc8 GEORGIAN LETTER TAN
+<U10D8> /xc9 GEORGIAN LETTER IN
+<U10D9> /xca GEORGIAN LETTER KAN
+<U10DA> /xcb GEORGIAN LETTER LAS
+<U10DB> /xcc GEORGIAN LETTER MAN
+<U10DC> /xcd GEORGIAN LETTER NAR
+<U10F2> /xce GEORGIAN LETTER HIE
+<U10DD> /xcf GEORGIAN LETTER ON
+<U10DE> /xd0 GEORGIAN LETTER PAR
+<U10DF> /xd1 GEORGIAN LETTER ZHAR
+<U10E0> /xd2 GEORGIAN LETTER RAE
+<U10E1> /xd3 GEORGIAN LETTER SAN
+<U10E2> /xd4 GEORGIAN LETTER TAR
+<U10F3> /xd5 GEORGIAN LETTER WE
+<U10E3> /xd6 GEORGIAN LETTER UN
+<U10E4> /xd7 GEORGIAN LETTER PHAR
+<U10E5> /xd8 GEORGIAN LETTER KHAR
+<U10E6> /xd9 GEORGIAN LETTER GHAN
+<U10E7> /xda GEORGIAN LETTER QAR
+<U10E8> /xdb GEORGIAN LETTER SHIN
+<U10E9> /xdc GEORGIAN LETTER CHIN
+<U10EA> /xdd GEORGIAN LETTER CAN
+<U10EB> /xde GEORGIAN LETTER JIL
+<U10EC> /xdf GEORGIAN LETTER CIL
+<U10ED> /xe0 GEORGIAN LETTER CHAR
+<U10EE> /xe1 GEORGIAN LETTER XAN
+<U10F4> /xe2 GEORGIAN LETTER HAR
+<U10EF> /xe3 GEORGIAN LETTER JHAN
+<U10F0> /xe4 GEORGIAN LETTER HAE
+<U10F5> /xe5 GEORGIAN LETTER HOE
+<U00E6> /xe6 LATIN SMALL LETTER AE
+<U00E7> /xe7 LATIN SMALL LETTER C WITH CEDILLA
+<U00E8> /xe8 LATIN SMALL LETTER E WITH GRAVE
+<U00E9> /xe9 LATIN SMALL LETTER E WITH ACUTE
+<U00EA> /xea LATIN SMALL LETTER E WITH CIRCUMFLEX
+<U00EB> /xeb LATIN SMALL LETTER E WITH DIAERESIS
+<U00EC> /xec LATIN SMALL LETTER I WITH GRAVE
+<U00ED> /xed LATIN SMALL LETTER I WITH ACUTE
+<U00EE> /xee LATIN SMALL LETTER I WITH CIRCUMFLEX
+<U00EF> /xef LATIN SMALL LETTER I WITH DIAERESIS
+<U00F0> /xf0 LATIN SMALL LETTER ETH (Icelandic)
+<U00F1> /xf1 LATIN SMALL LETTER N WITH TILDE
+<U00F2> /xf2 LATIN SMALL LETTER O WITH GRAVE
+<U00F3> /xf3 LATIN SMALL LETTER O WITH ACUTE
+<U00F4> /xf4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+<U00F5> /xf5 LATIN SMALL LETTER O WITH TILDE
+<U00F6> /xf6 LATIN SMALL LETTER O WITH DIAERESIS
+<U00F7> /xf7 DIVISION SIGN
+<U00F8> /xf8 LATIN SMALL LETTER O WITH STROKE
+<U00F9> /xf9 LATIN SMALL LETTER U WITH GRAVE
+<U00FA> /xfa LATIN SMALL LETTER U WITH ACUTE
+<U00FB> /xfb LATIN SMALL LETTER U WITH CIRCUMFLEX
+<U00FC> /xfc LATIN SMALL LETTER U WITH DIAERESIS
+<U00FD> /xfd LATIN SMALL LETTER Y WITH ACUTE
+<U00FE> /xfe LATIN SMALL LETTER THORN (Icelandic)
+<U00FF> /xff LATIN SMALL LETTER Y WITH DIAERESIS
+END CHARMAP
+
+WIDTH
+<U0020>...<U007E> 1
+<U0080>...<U00FF> 1
+END WIDTH
diff --git a/localedata/locales/ka_GE b/localedata/locales/ka_GE
index 7bccccab63..7f49e02310 100644
--- a/localedata/locales/ka_GE
+++ b/localedata/locales/ka_GE
@@ -158,3 +158,8 @@ tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025><U006C>"
int_select "8~10"
int_prefix "995"
END LC_TELEPHONE
+
+LC_NAME
+% FIXME
+copy "en_DK"
+END LC_NAME
diff --git a/malloc/set-freeres.c b/malloc/set-freeres.c
index 1724070704..d836d0c1bf 100644
--- a/malloc/set-freeres.c
+++ b/malloc/set-freeres.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,10 @@
#include <set-hooks.h>
#include <libc-internal.h>
+#ifdef USE_IN_LIBIO
+# include "../libio/libioP.h"
+#endif
+
DEFINE_HOOK (__libc_subfreeres, (void));
void
@@ -31,5 +35,11 @@ __libc_freeres (void)
static long int already_called;
if (compare_and_swap (&already_called, 0, 1))
- RUN_HOOK (__libc_subfreeres, ());
+ {
+#ifdef USE_IN_LIBIO
+ _IO_cleanup ();
+#endif
+
+ RUN_HOOK (__libc_subfreeres, ());
+ }
}