aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-12-19 00:32:58 +0000
committerUlrich Drepper <drepper@redhat.com>1999-12-19 00:32:58 +0000
commitcf7dc78aa55e57dc64dbca311507e54eaa8ebc73 (patch)
tree85e6cb69c7f87786529628fb03c0b9b3391f352c
parent63a34b0f0196ec397b79cecd8bac4b1612981ad0 (diff)
downloadglibc-cf7dc78aa55e57dc64dbca311507e54eaa8ebc73.tar
glibc-cf7dc78aa55e57dc64dbca311507e54eaa8ebc73.tar.gz
glibc-cf7dc78aa55e57dc64dbca311507e54eaa8ebc73.tar.bz2
glibc-cf7dc78aa55e57dc64dbca311507e54eaa8ebc73.zip
Update.
* malloc/Versions: Export __libc_freeres for GLIBC_2.1.
-rw-r--r--ChangeLog2
-rw-r--r--localedata/ChangeLog6
-rw-r--r--localedata/charmaps/ISIRI-3342367
-rw-r--r--localedata/locales/fa_IR510
-rw-r--r--malloc/Versions4
5 files changed, 889 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 4cc94489c7..dcaef16fa3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
1999-12-18 Ulrich Drepper <drepper@cygnus.com>
+ * malloc/Versions: Export __libc_freeres for GLIBC_2.1.
+
* sysdeps/unix/sysv/linux/i386/setrlimit.c: Declare local variable
result if necessary.
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index cfa1896974..3fb6f33f5e 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,9 @@
+1999-12-18 Ulrich Drepper <drepper@cygnus.com>
+
+ * charmaps/ISIRI-3342: New file.
+ * locales/fa_IR: New file.
+ Contributed by Roozbeh Pournader <roozbeh@sina.sharif.ac.ir>.
+
1999-12-10 Ulrich Drepper <drepper@cygnus.com>
* locales/de_DE: Correct syntax of multi-character weights.
diff --git a/localedata/charmaps/ISIRI-3342 b/localedata/charmaps/ISIRI-3342
new file mode 100644
index 0000000000..a0ad685d17
--- /dev/null
+++ b/localedata/charmaps/ISIRI-3342
@@ -0,0 +1,367 @@
+<code_set_name> ISIRI-3342
+<comment_char> %
+<escape_char> /
+% version: 0.0
+% repertoiremap:
+% source: Iranian standard ISIRI 3342 (1993)
+% author: Pablo Saratxaga, and Roozbeh Pournader
+% email: pablo@mandrakesoft.com, roozbeh@sina.sharif.ac.ir
+
+% I think the mnemonic for upper space (0xA0) should be different from
+% lower space (0x20). Because the semantics are different, although they
+% are mapped to a single Unicode character. This is specially important
+% when specifying LC_CTYPE. Because we need to distinguish the characters.
+% Also, their BIDI behaviour is different of course. This is true also
+% of other characters like punctuations, etc.
+% Please note that the Unicode equivalents of the Persian part (0x80..0xFF)
+% are for compatiblity purposes only. I have also changed the fourth
+% column consisting of names to reflect the difference. The names are
+% invented on the pattern of Unicode character names. --RP
+%
+% NOTE: Some entries were missing in the mnemonics.ds file; We invented our
+% own. Those are: <zwnj>, <zwj>, <!+>, <Rl>, <%+>, <.+>, <,f>, <(+>,
+% <)+>, <*X+>, <+f>, <-f>, <.f>, <//f>, <0f>..<9f>, <:f>, <<f>, <=f>,
+% </>f>, <kf>, <yf>, <)/>+>, <<(+>, <!)+>, <(!+>, <<<+>, </>/>+>, <*+>,
+% <!!+>, and <////+>. Also, all character sequences
+% <NU>..<US>, <SP>, <DT> have counter-parts <NU+>..<US+>, <SP+>, <DT+>
+
+CHARMAP
+<NU> /x00 <U0000> NULL (NUL)
+<SH> /x01 <U0001> START OF HEADING (SOH)
+<SX> /x02 <U0002> START OF TEXT (STX)
+<EX> /x03 <U0003> END OF TEXT (ETX)
+<ET> /x04 <U0004> END OF TRANSMISSION (EOT)
+<EQ> /x05 <U0005> ENQUIRY (ENQ)
+<AK> /x06 <U0006> ACKNOWLEDGE (ACK)
+<BL> /x07 <U0007> BELL (BEL)
+<BS> /x08 <U0008> BACKSPACE (BS)
+<HT> /x09 <U0009> CHARACTER TABULATION (HT)
+<LF> /x0A <U000A> LINE FEED (LF)
+<VT> /x0B <U000B> LINE TABULATION (VT)
+<FF> /x0C <U000C> FORM FEED (FF)
+<CR> /x0D <U000D> CARRIAGE RETURN (CR)
+<SO> /x0E <U000E> SHIFT OUT (SO)
+<SI> /x0F <U000F> SHIFT IN (SI)
+<DL> /x10 <U0010> DATALINK ESCAPE (DLE)
+<D1> /x11 <U0011> DEVICE CONTROL ONE (DC1)
+<D2> /x12 <U0012> DEVICE CONTROL TWO (DC2)
+<D3> /x13 <U0013> DEVICE CONTROL THREE (DC3)
+<D4> /x14 <U0014> DEVICE CONTROL FOUR (DC4)
+<NK> /x15 <U0015> NEGATIVE ACKNOWLEDGE (NAK)
+<SY> /x16 <U0016> SYNCHRONOUS IDLE (SYN)
+<EB> /x17 <U0017> END OF TRANSMISSION BLOCK (ETB)
+<CN> /x18 <U0018> CANCEL (CAN)
+<EM> /x19 <U0019> END OF MEDIUM (EM)
+<SB> /x1A <U001A> SUBSTITUTE (SUB)
+<EC> /x1B <U001B> ESCAPE (ESC)
+<FS> /x1C <U001C> FILE SEPARATOR (IS4)
+<GS> /x1D <U001D> GROUP SEPARATOR (IS3)
+<RS> /x1E <U001E> RECORD SEPARATOR (IS2)
+<US> /x1F <U001F> UNIT SEPARATOR (IS1)
+<SP> /x20 <U0020> SPACE
+<!> /x21 <U0021> EXCLAMATION MARK
+<"> /x22 <U0022> QUOTATION MARK
+<Nb> /x23 <U0023> NUMBER SIGN
+<DO> /x24 <U0024> DOLLAR SIGN
+<%> /x25 <U0025> PERCENT SIGN
+<&> /x26 <U0026> AMPERSAND
+<'> /x27 <U0027> APOSTROPHE
+<(> /x28 <U0028> LEFT PARENTHESIS
+<)> /x29 <U0029> RIGHT PARENTHESIS
+<*> /x2A <U002A> ASTERISK
+<+> /x2B <U002B> PLUS SIGN
+<,> /x2C <U002C> COMMA
+<-> /x2D <U002D> HYPHEN-MINUS
+<.> /x2E <U002E> FULL STOP
+<//> /x2F <U002F> SOLIDUS
+<0> /x30 <U0030> DIGIT ZERO
+<1> /x31 <U0031> DIGIT ONE
+<2> /x32 <U0032> DIGIT TWO
+<3> /x33 <U0033> DIGIT THREE
+<4> /x34 <U0034> DIGIT FOUR
+<5> /x35 <U0035> DIGIT FIVE
+<6> /x36 <U0036> DIGIT SIX
+<7> /x37 <U0037> DIGIT SEVEN
+<8> /x38 <U0038> DIGIT EIGHT
+<9> /x39 <U0039> DIGIT NINE
+<:> /x3A <U003A> COLON
+<;> /x3B <U003B> SEMICOLON
+<<> /x3C <U003C> LESS-THAN SIGN
+<=> /x3D <U003D> EQUALS SIGN
+</>> /x3E <U003E> GREATER-THAN SIGN
+<?> /x3F <U003F> QUESTION MARK
+<At> /x40 <U0040> COMMERCIAL AT
+<A> /x41 <U0041> LATIN CAPITAL LETTER A
+<B> /x42 <U0042> LATIN CAPITAL LETTER B
+<C> /x43 <U0043> LATIN CAPITAL LETTER C
+<D> /x44 <U0044> LATIN CAPITAL LETTER D
+<E> /x45 <U0045> LATIN CAPITAL LETTER E
+<F> /x46 <U0046> LATIN CAPITAL LETTER F
+<G> /x47 <U0047> LATIN CAPITAL LETTER G
+<H> /x48 <U0048> LATIN CAPITAL LETTER H
+<I> /x49 <U0049> LATIN CAPITAL LETTER I
+<J> /x4A <U004A> LATIN CAPITAL LETTER J
+<K> /x4B <U004B> LATIN CAPITAL LETTER K
+<L> /x4C <U004C> LATIN CAPITAL LETTER L
+<M> /x4D <U004D> LATIN CAPITAL LETTER M
+<N> /x4E <U004E> LATIN CAPITAL LETTER N
+<O> /x4F <U004F> LATIN CAPITAL LETTER O
+<P> /x50 <U0050> LATIN CAPITAL LETTER P
+<Q> /x51 <U0051> LATIN CAPITAL LETTER Q
+<R> /x52 <U0052> LATIN CAPITAL LETTER R
+<S> /x53 <U0053> LATIN CAPITAL LETTER S
+<T> /x54 <U0054> LATIN CAPITAL LETTER T
+<U> /x55 <U0055> LATIN CAPITAL LETTER U
+<V> /x56 <U0056> LATIN CAPITAL LETTER V
+<W> /x57 <U0057> LATIN CAPITAL LETTER W
+<X> /x58 <U0058> LATIN CAPITAL LETTER X
+<Y> /x59 <U0059> LATIN CAPITAL LETTER Y
+<Z> /x5A <U005A> LATIN CAPITAL LETTER Z
+<<(> /x5B <U005B> LEFT SQUARE BRACKET
+<////> /x5C <U005C> REVERSE SOLIDUS
+<)/>> /x5D <U005D> RIGHT SQUARE BRACKET
+<'/>> /x5E <U005E> CIRCUMFLEX ACCENT
+<_> /x5F <U005F> LOW LINE
+<'!> /x60 <U0060> GRAVE ACCENT
+<a> /x61 <U0061> LATIN SMALL LETTER A
+<b> /x62 <U0062> LATIN SMALL LETTER B
+<c> /x63 <U0063> LATIN SMALL LETTER C
+<d> /x64 <U0064> LATIN SMALL LETTER D
+<e> /x65 <U0065> LATIN SMALL LETTER E
+<f> /x66 <U0066> LATIN SMALL LETTER F
+<g> /x67 <U0067> LATIN SMALL LETTER G
+<h> /x68 <U0068> LATIN SMALL LETTER H
+<i> /x69 <U0069> LATIN SMALL LETTER I
+<j> /x6A <U006A> LATIN SMALL LETTER J
+<k> /x6B <U006B> LATIN SMALL LETTER K
+<l> /x6C <U006C> LATIN SMALL LETTER L
+<m> /x6D <U006D> LATIN SMALL LETTER M
+<n> /x6E <U006E> LATIN SMALL LETTER N
+<o> /x6F <U006F> LATIN SMALL LETTER O
+<p> /x70 <U0070> LATIN SMALL LETTER P
+<q> /x71 <U0071> LATIN SMALL LETTER Q
+<r> /x72 <U0072> LATIN SMALL LETTER R
+<s> /x73 <U0073> LATIN SMALL LETTER S
+<t> /x74 <U0074> LATIN SMALL LETTER T
+<u> /x75 <U0075> LATIN SMALL LETTER U
+<v> /x76 <U0076> LATIN SMALL LETTER V
+<w> /x77 <U0077> LATIN SMALL LETTER W
+<x> /x78 <U0078> LATIN SMALL LETTER X
+<y> /x79 <U0079> LATIN SMALL LETTER Y
+<z> /x7A <U007A> LATIN SMALL LETTER Z
+<(!> /x7B <U007B> LEFT CURLY BRACKET
+<!!> /x7C <U007C> VERTICAL LINE
+<!)> /x7D <U007D> RIGHT CURLY BRACKET
+<'?> /x7E <U007E> TILDE
+<DT> /x7F <U007F> DELETE (DEL)
+
+<NU+> /x80 <U0000> ARABIC NULL (NUL)
+<SH+> /x81 <U0001> ARABIC START OF HEADING (SOH)
+<SX+> /x82 <U0002> ARABIC START OF TEXT (STX)
+<EX+> /x83 <U0003> ARABIC END OF TEXT (ETX)
+<ET+> /x84 <U0004> ARABIC END OF TRANSMISSION (EOT)
+<EQ+> /x85 <U0005> ARABIC ENQUIRY (ENQ)
+<AK+> /x86 <U0006> ARABIC ACKNOWLEDGE (ACK)
+<BL+> /x87 <U0007> ARABIC BELL (BEL)
+<BS+> /x88 <U0008> ARABIC BACKSPACE (BS)
+<HT+> /x89 <U0009> ARABIC CHARACTER TABULATION (HT)
+<LF+> /x8A <U000A> ARABIC LINE FEED (LF)
+<VT+> /x8B <U000B> ARABIC LINE TABULATION (VT)
+<FF+> /x8C <U000C> ARABIC FORM FEED (FF)
+<CR+> /x8D <U000D> ARABIC CARRIAGE RETURN (CR)
+<SO+> /x8E <U000E> ARABIC SHIFT OUT (SO)
+<SI+> /x8F <U000F> ARABIC SHIFT IN (SI)
+<DL+> /x90 <U0010> ARABIC DATALINK ESCAPE (DLE)
+<D1+> /x91 <U0011> ARABIC DEVICE CONTROL ONE (DC1)
+<D2+> /x92 <U0012> ARABIC DEVICE CONTROL TWO (DC2)
+<D3+> /x93 <U0013> ARABIC DEVICE CONTROL THREE (DC3)
+<D4+> /x94 <U0014> ARABIC DEVICE CONTROL FOUR (DC4)
+<NK+> /x95 <U0015> ARABIC NEGATIVE ACKNOWLEDGE (NAK)
+<SY+> /x96 <U0016> ARABIC SYNCHRONOUS IDLE (SYN)
+<EB+> /x97 <U0017> ARABIC END OF TRANSMISSION BLOCK (ETB)
+<CN+> /x98 <U0018> ARABIC CANCEL (CAN)
+<EM+> /x99 <U0019> ARABIC END OF MEDIUM (EM)
+<SB+> /x9A <U001A> ARABIC SUBSTITUTE (SUB)
+<EC+> /x9B <U001B> ARABIC ESCAPE (ESC)
+<FS+> /x9C <U001C> ARABIC FILE SEPARATOR (IS4)
+<GS+> /x9D <U001D> ARABIC GROUP SEPARATOR (IS3)
+<RS+> /x9E <U001E> ARABIC RECORD SEPARATOR (IS2)
+<US+> /x9F <U001F> ARABIC UNIT SEPARATOR (IS1)
+
+<SP+> /xA0 <U0020> ARABIC SPACE
+<zwnj> /xA1 <U200C> ZERO WIDTH NON-JOINER
+<zwj> /xA2 <U200D> ZERO WIDTH JOINER
+<!+> /xA3 <U0021> ARABIC EXCLAMATION MARK
+<Rl> /xA4 <U00A4> RIAL SIGN
+<%+> /xA5 <U066A> ARABIC PERCENT SIGN
+<.+> /xA6 <U002E> ARABIC FULL STOP
+<,f> /xA7 <U066C> ARABIC THOUSANDS SEPARATOR
+<(+> /xA8 <U0029> ARABIC CLOSING PARENTHESIS
+<)+> /xA9 <U0028> ARABIC OPENING PARENTHESIS
+<*X+> /xAA <U00D7> ARABIC MULTIPLICATION SIGN
+<+f> /xAB <U002B> ARABIC PLUS SIGN
+<,+> /xAC <U060C> ARABIC COMMA
+<-f> /xAD <U002D> ARABIC HYPHEN-MINUS
+<.f> /xAE <U066B> ARABIC DECIMAL SEPARATOR
+<//f> /xAF <U002F> ARABIC SOLIDUS
+<0f> /xB0 <U06F0> EXTENDED ARABIC-INDIC DIGIT ZERO
+<1f> /xB1 <U06F1> EXTENDED ARABIC-INDIC DIGIT ONE
+<2f> /xB2 <U06F2> EXTENDED ARABIC-INDIC DIGIT TWO
+<3f> /xB3 <U06F3> EXTENDED ARABIC-INDIC DIGIT THREE
+<4f> /xB4 <U06F4> EXTENDED ARABIC-INDIC DIGIT FOUR
+<5f> /xB5 <U06F5> EXTENDED ARABIC-INDIC DIGIT FIVE
+<6f> /xB6 <U06F6> EXTENDED ARABIC-INDIC DIGIT SIX
+<7f> /xB7 <U06F7> EXTENDED ARABIC-INDIC DIGIT SEVEN
+<8f> /xB8 <U06F8> EXTENDED ARABIC-INDIC DIGIT EIGHT
+<9f> /xB9 <U06F9> EXTENDED ARABIC-INDIC DIGIT NINE
+<:f> /xBA <U003A> ARABIC COLON
+<;+> /xBB <U061B> ARABIC SEMICOLON
+</>f> /xBC <U003C> ARABIC GREATER-THAN SIGN
+<=f> /xBD <U003D> ARABIC EQUALS SIGN
+<<f> /xBE <U003E> ARABIC LESS-THAN SIGN
+<?+> /xBF <U061F> ARABIC QUESTION MARK
+<aM> /xC0 <U0622> ARABIC LETTER ALEF WITH MADDA ABOVE
+<a+> /xC1 <U0627> ARABIC LETTER ALEF
+<H'> /xC2 <U0621> ARABIC LETTER HAMZA
+<b+> /xC3 <U0628> ARABIC LETTER BEH
+<p+> /xC4 <U067E> ARABIC LETTER PEH
+<t+> /xC5 <U062A> ARABIC LETTER TEH
+<tk> /xC6 <U062B> ARABIC LETTER THEH
+<g+> /xC7 <U062C> ARABIC LETTER JEEM
+<tc> /xC8 <U0686> ARABIC LETTER TCHEH
+<hk> /xC9 <U062D> ARABIC LETTER HAH
+<x+> /xCA <U062E> ARABIC LETTER KHAH
+<d+> /xCB <U062F> ARABIC LETTER DAL
+<dk> /xCC <U0630> ARABIC LETTER THAL
+<r+> /xCD <U0631> ARABIC LETTER REH
+<z+> /xCE <U0632> ARABIC LETTER ZAIN
+<zj> /xCF <U0698> ARABIC LETTER JEH
+<s+> /xD0 <U0633> ARABIC LETTER SEEN
+<sn> /xD1 <U0634> ARABIC LETTER SHEEN
+<c+> /xD2 <U0635> ARABIC LETTER SAD
+<dd> /xD3 <U0636> ARABIC LETTER DAD
+<tj> /xD4 <U0637> ARABIC LETTER TAH
+<zH> /xD5 <U0638> ARABIC LETTER ZAH
+<e+> /xD6 <U0639> ARABIC LETTER AIN
+<i+> /xD7 <U063A> ARABIC LETTER GHAIN
+<f+> /xD8 <U0641> ARABIC LETTER FEH
+<q+> /xD9 <U0642> ARABIC LETTER QAF
+<kf> /xDA <U06A9> ARABIC LETTER KEHEH
+<gf> /xDB <U06AF> ARABIC LETTER GAF
+<l+> /xDC <U0644> ARABIC LETTER LAM
+<m+> /xDD <U0645> ARABIC LETTER MEEM
+<n+> /xDE <U0646> ARABIC LETTER NOON
+<w+> /xDF <U0648> ARABIC LETTER WAW
+<h+> /xE0 <U0647> ARABIC LETTER HEH
+<yf> /xE1 <U06CC> ARABIC LETTER FARSI YEH
+<<(+> /xE2 <U005D> ARABIC CLOSING SQUARE BRACKET
+<)/>+> /xE3 <U005B> ARABIC OPENING SQUARE BRACKET
+<(!+> /xE4 <U007D> ARABIC CLOSING CURLY BRACKET
+<!)+> /xE5 <U007B> ARABIC OPENING CURLY BRACKET
+<<<> /xE6 <U00AB> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+</>/>> /xE7 <U00BB> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<*+> /xE8 <U002A> ARABIC ASTERISK
+<++> /xE9 <U0640> ARABIC TATWEEL
+<!!+> /xEA <U007C> ARABIC VERTICAL LINE
+<////+> /xEB <U005C> ARABIC REVERSE SOLIDUS
+<//+> /xF0 <U064E> ARABIC FATHA
+<1+> /xF1 <U0650> ARABIC KASRA
+<'+> /xF2 <U064F> ARABIC DAMMA
+<:+> /xF3 <U064B> ARABIC FATHATAN
+<=+> /xF4 <U064D> ARABIC KASRATAN
+<"+> /xF5 <U064C> ARABIC DAMMATAN
+<3+> /xF6 <U0651> ARABIC SHADDA
+<0+> /xF7 <U0652> ARABIC SUKUN
+<aH> /xF8 <U0623> ARABIC LETTER ALEF WITH HAMZA ABOVE
+<wH> /xF9 <U0624> ARABIC LETTER WAW WITH HAMZA ABOVE
+<ah> /xFA <U0625> ARABIC LETTER ALEF WITH HAMZA BELOW
+<yH> /xFB <U0626> ARABIC LETTER YEH WITH HAMZA ABOVE
+<tm> /xFC <U0629> ARABIC LETTER TEH MARBUTA
+<k+> /xFD <U0643> ARABIC LETTER KAF
+<y+> /xFE <U064A> ARABIC LETTER YEH
+<DT+> /xFF <U007F> ARABIC DELETE
+
+<NUL> /x00 <U0000> NULL (NUL)
+<SOH> /x01 <U0001> START OF HEADING (SOH)
+<STX> /x02 <U0002> START OF TEXT (STX)
+<ETX> /x03 <U0003> END OF TEXT (ETX)
+<EOT> /x04 <U0004> END OF TRANSMISSION (EOT)
+<ENQ> /x05 <U0005> ENQUIRY (ENQ)
+<ACK> /x06 <U0006> ACKNOWLEDGE (ACK)
+<alert> /x07 <U0007> BELL (BEL)
+<BEL> /x07 <U0007> BELL (BEL)
+<backspace> /x08 <U0008> BACKSPACE (BS)
+<tab> /x09 <U0009> CHARACTER TABULATION (HT)
+<newline> /x0A <U000A> LINE FEED (LF)
+<vertical-tab> /x0B <U000B> LINE TABULATION (VT)
+<form-feed> /x0C <U000C> FORM FEED (FF)
+<carriage-return> /x0D <U000D> CARRIAGE RETURN (CR)
+<DLE> /x10 <U0010> DATALINK ESCAPE (DLE)
+<DC1> /x11 <U0011> DEVICE CONTROL ONE (DC1)
+<DC2> /x12 <U0012> DEVICE CONTROL TWO (DC2)
+<DC3> /x13 <U0013> DEVICE CONTROL THREE (DC3)
+<DC4> /x14 <U0014> DEVICE CONTROL FOUR (DC4)
+<NAK> /x15 <U0015> NEGATIVE ACKNOWLEDGE (NAK)
+<SYN> /x16 <U0016> SYNCHRONOUS IDLE (SYN)
+<ETB> /x17 <U0017> END OF TRANSMISSION BLOCK (ETB)
+<CAN> /x18 <U0018> CANCEL (CAN)
+<SUB> /x1A <U001A> SUBSTITUTE (SUB)
+<ESC> /x1B <U001B> ESCAPE (ESC)
+<IS4> /x1C <U001C> FILE SEPARATOR (IS4)
+<IS3> /x1D <U001D> GROUP SEPARATOR (IS3)
+<intro> /x1D <U001D> GROUP SEPARATOR (IS3)
+<IS2> /x1E <U001E> RECORD SEPARATOR (IS2)
+<IS1> /x1F <U001F> UNIT SEPARATOR (IS1)
+<DEL> /x7F <U007F> DELETE (DEL)
+<space> /x20 <U0020> SPACE
+<exclamation-mark> /x21 <U0021> EXCLAMATION MARK
+<quotation-mark> /x22 <U0022> QUOTATION MARK
+<number-sign> /x23 <U0023> NUMBER SIGN
+<dollar-sign> /x24 <U0024> DOLLAR SIGN
+<percent-sign> /x25 <U0025> PERCENT SIGN
+<ampersand> /x26 <U0026> AMPERSAND
+<apostrophe> /x27 <U0027> APOSTROPHE
+<left-parenthesis> /x28 <U0028> LEFT PARENTHESIS
+<right-parenthesis> /x29 <U0029> RIGHT PARENTHESIS
+<asterisk> /x2A <U002A> ASTERISK
+<plus-sign> /x2B <U002B> PLUS SIGN
+<comma> /x2C <U002C> COMMA
+<hyphen> /x2D <U002D> HYPHEN-MINUS
+<hyphen-minus> /x2D <U002D> HYPHEN-MINUS
+<period> /x2E <U002E> FULL STOP
+<full-stop> /x2E <U002E> FULL STOP
+<slash> /x2F <U002F> SOLIDUS
+<solidus> /x2F <U002F> SOLIDUS
+<zero> /x30 <U0030> DIGIT ZERO
+<one> /x31 <U0031> DIGIT ONE
+<two> /x32 <U0032> DIGIT TWO
+<three> /x33 <U0033> DIGIT THREE
+<four> /x34 <U0034> DIGIT FOUR
+<five> /x35 <U0035> DIGIT FIVE
+<six> /x36 <U0036> DIGIT SIX
+<seven> /x37 <U0037> DIGIT SEVEN
+<eight> /x38 <U0038> DIGIT EIGHT
+<nine> /x39 <U0039> DIGIT NINE
+<colon> /x3A <U003A> COLON
+<semicolon> /x3B <U003B> SEMICOLON
+<less-than-sign> /x3C <U003C> LESS-THAN SIGN
+<equals-sign> /x3D <U003D> EQUALS SIGN
+<greater-than-sign> /x3E <U003E> GREATER-THAN SIGN
+<question-mark> /x3F <U003F> QUESTION MARK
+<commercial-at> /x40 <U0040> COMMERCIAL AT
+<left-square-bracket> /x5B <U005B> LEFT SQUARE BRACKET
+<backslash> /x5C <U005C> REVERSE SOLIDUS
+<reverse-solidus> /x5C <U005C> REVERSE SOLIDUS
+<right-square-bracket> /x5D <U005D> RIGHT SQUARE BRACKET
+<circumflex> /x5E <U005E> CIRCUMFLEX ACCENT
+<circumflex-accent> /x5E <U005E> CIRCUMFLEX ACCENT
+<underscore> /x5F <U005F> LOW LINE
+<low-line> /x5F <U005F> LOW LINE
+<grave-accent> /x60 <U0060> GRAVE ACCENT
+<left-brace> /x7B <U007B> LEFT CURLY BRACKET
+<left-curly-bracket> /x7B <U007B> LEFT CURLY BRACKET
+<vertical-line> /x7C <U007C> VERTICAL LINE
+<right-brace> /x7D <U007D> RIGHT CURLY BRACKET
+<right-curly-bracket> /x7D <U007D> RIGHT CURLY BRACKET
+<tilde> /x7E <U007E> TILDE
+END CHARMAP
diff --git a/localedata/locales/fa_IR b/localedata/locales/fa_IR
new file mode 100644
index 0000000000..2287576434
--- /dev/null
+++ b/localedata/locales/fa_IR
@@ -0,0 +1,510 @@
+comment_char %
+escape_char /
+%
+% Persian Language Locale for Iran with ISIRI-3342 character set
+% Source: The Persian Internet Project
+% Address: Computing Center, Sharif University of Technology,
+% Azadi Ave, Tehran, Iran
+% Contact: Roozbeh Pournader
+% Email: roozbeh@sina.sharif.ac.ir
+% Tel: +98 21 6022378
+% Fax:
+% Language: fa
+% Territory: IR
+% Revision: 0.0
+% Date: 1999-12-11
+% Users: general
+% Repertoiremap:
+% Charset: ISIRI-3342
+% Distribution and use is free, also
+% for commercial purposes.
+
+% Note that the following can not be used for character sets
+% other than ISIRI-3342. It is dependent to the ISIRI-3342
+% BIDI behaviour which is not the same as Unicode BIDI behaviour.
+% So, another versions will be needed for UTF-8 and IRAN-SYSTEM.
+
+LC_CTYPE
+%
+upper <A>;<B>;<C>;<D>;<E>;<F>;<G>;<H>;<I>;<J>;<K>;<L>;<M>;/
+ <N>;<O>;<P>;<Q>;<R>;<S>;<T>;<U>;<V>;<W>;<X>;<Y>;<Z>
+%
+lower <a>;<b>;<c>;<d>;<e>;<f>;<g>;<h>;<i>;<j>;<k>;<l>;<m>;/
+ <n>;<o>;<p>;<q>;<r>;<s>;<t>;<u>;<v>;<w>;<x>;<y>;<z>
+%
+alpha <A>;<B>;<C>;<D>;<E>;<F>;<G>;<H>;<I>;<J>;<K>;<L>;<M>;/
+ <N>;<O>;<P>;<Q>;<R>;<S>;<T>;<U>;<V>;<W>;<X>;<Y>;<Z>;/
+ <a>;<b>;<c>;<d>;<e>;<f>;<g>;<h>;<i>;<j>;<k>;<l>;<m>;/
+ <n>;<o>;<p>;<q>;<r>;<s>;<t>;<u>;<v>;<w>;<x>;<y>;<z>;/
+ <aM>;<a+>;<H'>;<b+>;<p+>;<t+>;<tk>;<g+>;<tc>;<hk>;/
+ <x+>;<d+>;<dk>;<r+>;<z+>;<zj>;<s+>;<sn>;<c+>;<dd>;/
+ <tj>;<zH>;<e+>;<i+>;<f+>;<q+>;<kf>;<gf>;<l+>;<m+>;/
+ <n+>;<w+>;<h+>;<yf>;<aH>;<wH>;<ah>;<yh>;<tm>;<k+>;<y+>
+%
+% I'm not sure how can I make Persian digits get accepted
+% as digits.
+%
+digit <0>;...;<9>;/
+ <0f>;...;<9f>
+%
+xdigit <0>;<1>;<2>;<3>;<4>;/
+ <5>;<6>;<7>;<8>;<9>;/
+ <A>;<B>;<C>;<D>;<E>;<F>;/
+ <a>;<b>;<c>;<d>;<e>;<f>
+%
+blank <SP>;<HT>;<SP+>;<HT+>
+%
+space <SP>;<LF>;<VT>;<FF>;<CR>;<HT>;/
+ <SP+>;<LF+>;<VT+>;<FF+>;<CR+>;<HT+>
+%
+cntrl <NU>;<SH>;<SX>;<EX>;<ET>;<EQ>;/
+ <AK>;<BL>;<BS>;<HT>;<LF>;<VT>;/
+ <FF>;<CR>;<SO>;<SI>;<DL>;<D1>;/
+ <D2>;<D3>;<D4>;<NK>;<SY>;<EB>;/
+ <CN>;<EM>;<SB>;<EC>;<FS>;<GS>;/
+ <RS>;<US>;/
+ <NU+>;<SH+>;<SX+>;<EX+>;<ET+>;<EQ+>;/
+ <AK+>;<BL+>;<BS+>;<HT+>;<LF+>;<VT+>;/
+ <FF+>;<CR+>;<SO+>;<SI+>;<DL+>;<D1+>;/
+ <D2+>;<D3+>;<D4+>;<NK+>;<SY+>;<EB+>;/
+ <CN+>;<EM+>;<SB+>;<EC+>;<FS+>;<GS+>;/
+ <RS+>;<US+>;/
+ <zwnj>;<zwj>
+%
+punct <!>;<">;<Nb>;<DO>;<%>;<&>;<'>;/
+ <(>;<)>;<*>;<+>;<,>;<->;<.>;/
+ <//>;<:>;<;>;<<>;<=>;</>>;<?>;/
+ <At>;<<(>;<////>;<)/>>;<'/>>;/
+ <_>;<'!>;<(!>;<!!>;<!)>;<'?>;/
+ <!+>;<Rl>;<%+>;<.+>;<,f>;<(+>;/
+ <)+>;<*X+>;<+f>;<,+>;<-f>;<.f>;/
+ <//f>;<:f>;<;+>;</>f>;<=f>;/
+ <<f>;<?+>;<<(+>;<)/>+>;<(!+>;/
+ <!)+>;<<<>;</>/>>;<*+>;<++>;/
+ <!!+>;<////>;<//+>;<1+>;<'+>;/
+ <:+>;<=+>;<"+>;<3+>;<0+>
+%
+tolower (<A>,<a>);(<B>,<b>);(<C>,<c>);(<D>,<d>);(<E>,<e>);/
+ (<F>,<f>);(<G>,<g>);(<H>,<h>);(<I>,<i>);(<J>,<j>);/
+ (<K>,<k>);(<L>,<l>);(<M>,<m>);(<N>,<n>);(<O>,<o>);/
+ (<P>,<p>);(<Q>,<q>);(<R>,<r>);(<S>,<s>);(<T>,<t>);/
+ (<U>,<u>);(<V>,<v>);(<W>,<w>);(<X>,<x>);(<Y>,<y>);(<Z>,<z>)
+%
+toupper (<a>,<A>);(<b>,<B>);(<c>,<C>);(<d>,<D>);(<e>,<E>);/
+ (<f>,<F>);(<g>,<G>);(<h>,<H>);(<i>,<I>);(<j>,<J>);/
+ (<k>,<K>);(<l>,<L>);(<m>,<M>);(<n>,<N>);(<o>,<O>);/
+ (<p>,<P>);(<q>,<Q>);(<r>,<R>);(<s>,<S>);(<t>,<T>);/
+ (<u>,<U>);(<v>,<V>);(<w>,<W>);(<x>,<X>);(<y>,<Y>);(<z>,<Z>)
+END LC_CTYPE
+
+LC_COLLATE
+
+% Based on en_DK collation specifications.
+% Many lines are deleted because ISIRI-3342 does
+% not support any Latin character not in ASCII.
+% The four part sorting is preserved to maintain
+% compatiblity with original en_DK.P
+
+% Ordering algorithm:
+% 1. Spaces and hyphen (but not soft
+% hyphen) before punctuation
+% characters, punctuation characters
+% before numbers,
+% umbers before letters.
+% 2. A distinction is made with regards
+% to case as noted below.
+% 3. Special characters are ignored
+% when comparing letters, but then
+% they are considered
+% 4. Latin script is sorted before Arabic
+% to attract notice in index, etc.
+%
+% collating symbols
+
+collating-symbol <CAPITAL>
+collating-symbol <SMALL>
+
+collating-symbol <NONE>
+collating-symbol <SPECIAL>
+
+% Latin collation order:
+% letter;accent;case;specials
+% which becomes
+% letter;variant;harekat;specials
+% for Persian.
+
+order_start forward;forward;forward;position
+
+% <CAPITAL> or <SMALL> letters first:
+
+<CAPITAL>
+<SMALL>
+
+% Accents:
+
+<NONE>
+<SPECIAL>
+
+<SP> IGNORE;IGNORE;IGNORE;<SP>
+<SP+> IGNORE;IGNORE;IGNORE;<SP+>
+<HT> IGNORE;IGNORE;IGNORE;<HT>
+<HT+> IGNORE;IGNORE;IGNORE;<HT+>
+<VT> IGNORE;IGNORE;IGNORE;<VT>
+<VT+> IGNORE;IGNORE;IGNORE;<VT+>
+<CR> IGNORE;IGNORE;IGNORE;<CR>
+<CR+> IGNORE;IGNORE;IGNORE;<CR+>
+<LF> IGNORE;IGNORE;IGNORE;<LF>
+<LF+> IGNORE;IGNORE;IGNORE;<LF+>
+<FF> IGNORE;IGNORE;IGNORE;<FF>
+<FF+> IGNORE;IGNORE;IGNORE;<FF+>
+<_> IGNORE;IGNORE;IGNORE;<_>
+<-> IGNORE;IGNORE;IGNORE;<->
+<-f> IGNORE;IGNORE;IGNORE;<-f>
+<++> IGNORE;IGNORE;IGNORE;<++>
+<,> IGNORE;IGNORE;IGNORE;<,>
+<;> IGNORE;IGNORE;IGNORE;<;>
+<:> IGNORE;IGNORE;IGNORE;<:>
+<:f> IGNORE;IGNORE;IGNORE;<:f>
+<!> IGNORE;IGNORE;IGNORE;<!>
+<!+> IGNORE;IGNORE;IGNORE;<!+>
+<?> IGNORE;IGNORE;IGNORE;<?>
+<//> IGNORE;IGNORE;IGNORE;<//>
+<//f> IGNORE;IGNORE;IGNORE;<//f>
+<.> IGNORE;IGNORE;IGNORE;<.>
+<.+> IGNORE;IGNORE;IGNORE;<.+>
+<'!> IGNORE;IGNORE;IGNORE;<'!>
+<'/>> IGNORE;IGNORE;IGNORE;<'/>>
+<'?> IGNORE;IGNORE;IGNORE;<'?>
+<'> IGNORE;IGNORE;IGNORE;<'>
+<"> IGNORE;IGNORE;IGNORE;<">
+<<<> IGNORE;IGNORE;IGNORE;<<<>
+</>/>> IGNORE;IGNORE;IGNORE;</>/>>
+<(> IGNORE;IGNORE;IGNORE;<(>
+<)+> IGNORE;IGNORE;IGNORE;<)+>
+<)> IGNORE;IGNORE;IGNORE;<)>
+<(+> IGNORE;IGNORE;IGNORE;<(+>
+<<(> IGNORE;IGNORE;IGNORE;<<(>
+<)/>+> IGNORE;IGNORE;IGNORE;<)/>+>
+<)/>> IGNORE;IGNORE;IGNORE;<)/>>
+<<(+> IGNORE;IGNORE;IGNORE;<<(+>
+<(!> IGNORE;IGNORE;IGNORE;<(!>
+<!)+> IGNORE;IGNORE;IGNORE;<!)+>
+<!)> IGNORE;IGNORE;IGNORE;<!)>
+<(!+> IGNORE;IGNORE;IGNORE;<(!+>
+<At> IGNORE;IGNORE;IGNORE;<At>
+<DO> IGNORE;IGNORE;IGNORE;<DO>
+<*> IGNORE;IGNORE;IGNORE;<*>
+<*+> IGNORE;IGNORE;IGNORE;<*+>
+<////> IGNORE;IGNORE;IGNORE;<////>
+<////+> IGNORE;IGNORE;IGNORE;<////+>
+<&> IGNORE;IGNORE;IGNORE;<&>
+<Nb> IGNORE;IGNORE;IGNORE;<Nb>
+<%> IGNORE;IGNORE;IGNORE;<%>
+<+> IGNORE;IGNORE;IGNORE;<+>
+<+f> IGNORE;IGNORE;IGNORE;<+f>
+<*X+> IGNORE;IGNORE;IGNORE;<*X+>
+<<> IGNORE;IGNORE;IGNORE;<<>
+<<f> IGNORE;IGNORE;IGNORE;<<f>
+<=> IGNORE;IGNORE;IGNORE;<=>
+<=f> IGNORE;IGNORE;IGNORE;<=f>
+</>> IGNORE;IGNORE;IGNORE;</>>
+</>f> IGNORE;IGNORE;IGNORE;</>f>
+<!!> IGNORE;IGNORE;IGNORE;<!!>
+<!!+> IGNORE;IGNORE;IGNORE;<!!+>
+<NU> IGNORE;IGNORE;IGNORE;<NU>
+<SH> IGNORE;IGNORE;IGNORE;<SH>
+<SX> IGNORE;IGNORE;IGNORE;<SX>
+<EX> IGNORE;IGNORE;IGNORE;<EX>
+<ET> IGNORE;IGNORE;IGNORE;<ET>
+<EQ> IGNORE;IGNORE;IGNORE;<EQ>
+<AK> IGNORE;IGNORE;IGNORE;<AK>
+<BL> IGNORE;IGNORE;IGNORE;<BL>
+<BS> IGNORE;IGNORE;IGNORE;<BS>
+<SO> IGNORE;IGNORE;IGNORE;<SO>
+<SI> IGNORE;IGNORE;IGNORE;<SI>
+<DL> IGNORE;IGNORE;IGNORE;<DL>
+<D1> IGNORE;IGNORE;IGNORE;<D1>
+<D2> IGNORE;IGNORE;IGNORE;<D2>
+<D3> IGNORE;IGNORE;IGNORE;<D3>
+<D4> IGNORE;IGNORE;IGNORE;<D4>
+<NK> IGNORE;IGNORE;IGNORE;<NK>
+<SY> IGNORE;IGNORE;IGNORE;<SY>
+<EB> IGNORE;IGNORE;IGNORE;<EB>
+<CN> IGNORE;IGNORE;IGNORE;<CN>
+<EM> IGNORE;IGNORE;IGNORE;<EM>
+<SB> IGNORE;IGNORE;IGNORE;<SB>
+<EC> IGNORE;IGNORE;IGNORE;<EC>
+<FS> IGNORE;IGNORE;IGNORE;<FS>
+<GS> IGNORE;IGNORE;IGNORE;<GS>
+<RS> IGNORE;IGNORE;IGNORE;<RS>
+<US> IGNORE;IGNORE;IGNORE;<US>
+<DT> IGNORE;IGNORE;IGNORE;<DT>
+<NU+> IGNORE;IGNORE;IGNORE;<NU+>
+<SH+> IGNORE;IGNORE;IGNORE;<SH+>
+<SX+> IGNORE;IGNORE;IGNORE;<SX+>
+<EX+> IGNORE;IGNORE;IGNORE;<EX+>
+<ET+> IGNORE;IGNORE;IGNORE;<ET+>
+<EQ+> IGNORE;IGNORE;IGNORE;<EQ+>
+<AK+> IGNORE;IGNORE;IGNORE;<AK+>
+<BL+> IGNORE;IGNORE;IGNORE;<BL+>
+<BS+> IGNORE;IGNORE;IGNORE;<BS+>
+<SO+> IGNORE;IGNORE;IGNORE;<SO+>
+<SI+> IGNORE;IGNORE;IGNORE;<SI+>
+<DL+> IGNORE;IGNORE;IGNORE;<DL+>
+<D1+> IGNORE;IGNORE;IGNORE;<D1+>
+<D2+> IGNORE;IGNORE;IGNORE;<D2+>
+<D3+> IGNORE;IGNORE;IGNORE;<D3+>
+<D4+> IGNORE;IGNORE;IGNORE;<D4+>
+<NK+> IGNORE;IGNORE;IGNORE;<NK+>
+<SY+> IGNORE;IGNORE;IGNORE;<SY+>
+<EB+> IGNORE;IGNORE;IGNORE;<EB+>
+<CN+> IGNORE;IGNORE;IGNORE;<CN+>
+<EM+> IGNORE;IGNORE;IGNORE;<EM+>
+<SB+> IGNORE;IGNORE;IGNORE;<SB+>
+<EC+> IGNORE;IGNORE;IGNORE;<EC+>
+<FS+> IGNORE;IGNORE;IGNORE;<FS+>
+<GS+> IGNORE;IGNORE;IGNORE;<GS+>
+<RS+> IGNORE;IGNORE;IGNORE;<RS+>
+<US+> IGNORE;IGNORE;IGNORE;<US+>
+<DT+> IGNORE;IGNORE;IGNORE;<DT+>
+<zwnj> IGNORE;IGNORE;IGNORE;<zwnj>
+<zwj> IGNORE;IGNORE;IGNORE;<zwj>
+UNDEFINED IGNORE;IGNORE;IGNORE
+
+<0> <0>;<0>;IGNORE;IGNORE
+<1> <1>;<1>;IGNORE;IGNORE
+<2> <2>;<2>;IGNORE;IGNORE
+<3> <3>;<3>;IGNORE;IGNORE
+<4> <4>;<4>;IGNORE;IGNORE
+<5> <5>;<5>;IGNORE;IGNORE
+<6> <6>;<6>;IGNORE;IGNORE
+<7> <7>;<7>;IGNORE;IGNORE
+<8> <8>;<8>;IGNORE;IGNORE
+<9> <9>;<9>;IGNORE;IGNORE
+
+<A> <A>;<NONE>;<CAPITAL>;IGNORE
+<a> <A>;<NONE>;<SMALL>;IGNORE
+<B> <B>;<NONE>;<CAPITAL>;IGNORE
+<b> <B>;<NONE>;<SMALL>;IGNORE
+<C> <C>;<NONE>;<CAPITAL>;IGNORE
+<c> <C>;<NONE>;<SMALL>;IGNORE
+<D> <D>;<NONE>;<CAPITAL>;IGNORE
+<d> <D>;<NONE>;<SMALL>;IGNORE
+<E> <E>;<NONE>;<CAPITAL>;IGNORE
+<e> <E>;<NONE>;<SMALL>;IGNORE
+<F> <F>;<NONE>;<CAPITAL>;IGNORE
+<f> <F>;<NONE>;<SMALL>;IGNORE
+<G> <G>;<NONE>;<CAPITAL>;IGNORE
+<g> <G>;<NONE>;<SMALL>;IGNORE
+<H> <H>;<NONE>;<CAPITAL>;IGNORE
+<h> <H>;<NONE>;<SMALL>;IGNORE
+<I> <I>;<NONE>;<CAPITAL>;IGNORE
+<i> <I>;<NONE>;<SMALL>;IGNORE
+<J> <J>;<NONE>;<CAPITAL>;IGNORE
+<j> <J>;<NONE>;<SMALL>;IGNORE
+<K> <K>;<NONE>;<CAPITAL>;IGNORE
+<k> <K>;<NONE>;<SMALL>;IGNORE
+<L> <L>;<NONE>;<CAPITAL>;IGNORE
+<l> <L>;<NONE>;<SMALL>;IGNORE
+<M> <M>;<NONE>;<CAPITAL>;IGNORE
+<m> <M>;<NONE>;<SMALL>;IGNORE
+<N> <N>;<NONE>;<CAPITAL>;IGNORE
+<n> <N>;<NONE>;<SMALL>;IGNORE
+<O> <O>;<NONE>;<CAPITAL>;IGNORE
+<o> <O>;<NONE>;<SMALL>;IGNORE
+<P> <P>;<NONE>;<CAPITAL>;IGNORE
+<p> <P>;<NONE>;<SMALL>;IGNORE
+<Q> <Q>;<NONE>;<CAPITAL>;IGNORE
+<q> <Q>;<NONE>;<SMALL>;IGNORE
+<R> <R>;<NONE>;<CAPITAL>;IGNORE
+<r> <R>;<NONE>;<SMALL>;IGNORE
+<S> <S>;<NONE>;<CAPITAL>;IGNORE
+<s> <S>;<NONE>;<SMALL>;IGNORE
+<T> <T>;<NONE>;<CAPITAL>;IGNORE
+<t> <T>;<NONE>;<SMALL>;IGNORE
+<U> <U>;<NONE>;<CAPITAL>;IGNORE
+<u> <U>;<NONE>;<SMALL>;IGNORE
+<V> <V>;<NONE>;<CAPITAL>;IGNORE
+<v> <V>;<NONE>;<SMALL>;IGNORE
+<W> <W>;<NONE>;<CAPITAL>;IGNORE
+<w> <W>;<NONE>;<SMALL>;IGNORE
+<X> <X>;<NONE>;<CAPITAL>;IGNORE
+<x> <X>;<NONE>;<SMALL>;IGNORE
+<Y> <Y>;<NONE>;<CAPITAL>;IGNORE
+<y> <Y>;<NONE>;<SMALL>;IGNORE
+<Z> <Z>;<NONE>;<CAPITAL>;IGNORE
+<z> <Z>;<NONE>;<SMALL>;IGNORE
+
+% Persian digits have equal weight to Latin ones,
+% but sorted after them if the strings are equal.
+
+<0f> <0>;<0f>;IGNORE;IGNORE
+<1f> <1>;<1f>;IGNORE;IGNORE
+<2f> <2>;<2f>;IGNORE;IGNORE
+<3f> <3>;<3f>;IGNORE;IGNORE
+<4f> <4>;<4f>;IGNORE;IGNORE
+<5f> <5>;<5f>;IGNORE;IGNORE
+<6f> <6>;<6f>;IGNORE;IGNORE
+<7f> <7>;<7f>;IGNORE;IGNORE
+<8f> <8>;<8f>;IGNORE;IGNORE
+<9f> <9>;<9f>;IGNORE;IGNORE
+
+<,+> IGNORE;IGNORE;IGNORE;<,+>
+<;+> IGNORE;IGNORE;IGNORE;<;+>
+<?+> IGNORE;IGNORE;IGNORE;<?+>
+<%+> IGNORE;IGNORE;IGNORE;<%+>
+
+% I am not sure where should I put the next two characters.
+<.f> IGNORE;IGNORE;IGNORE;<.f>
+<,f> IGNORE;IGNORE;IGNORE;<,f>
+
+% Rial sign is considered as a sequence of its composing letters.
+% If equal, it comes first.
+
+<Rl> "<r+><yf><a+><l+>";"<NONE><NONE><NONE><NONE>";IGNORE;IGNORE
+
+<aM> <aM>;<aM>;IGNORE;IGNORE
+<a+> <a+>;<a+>;IGNORE;IGNORE
+<H'> <H'>;<H'>;IGNORE;IGNORE
+<aH> <H'>;<aH>;IGNORE;IGNORE
+<wH> <H'>;<wH>;IGNORE;IGNORE
+<ah> <H'>;<ah>;IGNORE;IGNORE
+<yH> <H'>;<yH>;IGNORE;IGNORE
+<b+> <b+>;<b+>;IGNORE;IGNORE
+<p+> <p+>;<p+>;IGNORE;IGNORE
+<t+> <t+>;<t+>;IGNORE;IGNORE
+<tk> <tk>;<tk>;IGNORE;IGNORE
+<g+> <g+>;<g+>;IGNORE;IGNORE
+<tc> <tc>;<tc>;IGNORE;IGNORE
+<hk> <hk>;<hk>;IGNORE;IGNORE
+<x+> <x+>;<x+>;IGNORE;IGNORE
+<d+> <d+>;<d+>;IGNORE;IGNORE
+<dk> <dk>;<dk>;IGNORE;IGNORE
+<r+> <r+>;<r+>;IGNORE;IGNORE
+<z+> <z+>;<z+>;IGNORE;IGNORE
+<zj> <zj>;<zj>;IGNORE;IGNORE
+<s+> <s+>;<s+>;IGNORE;IGNORE
+<sn> <sn>;<sn>;IGNORE;IGNORE
+<c+> <c+>;<c+>;IGNORE;IGNORE
+<dd> <dd>;<dd>;IGNORE;IGNORE
+<tj> <tj>;<tj>;IGNORE;IGNORE
+<zH> <zH>;<zH>;IGNORE;IGNORE
+<e+> <e+>;<e+>;IGNORE;IGNORE
+<i+> <i+>;<i+>;IGNORE;IGNORE
+<f+> <f+>;<f+>;IGNORE;IGNORE
+<q+> <q+>;<q+>;IGNORE;IGNORE
+<kf> <kf>;<kf>;IGNORE;IGNORE
+<k+> <kf>;<k+>;IGNORE;IGNORE
+<gf> <gf>;<gf>;IGNORE;IGNORE
+<l+> <l+>;<l+>;IGNORE;IGNORE
+<m+> <m+>;<m+>;IGNORE;IGNORE
+<n+> <n+>;<n+>;IGNORE;IGNORE
+<w+> <w+>;<w+>;IGNORE;IGNORE
+<h+> <h+>;<h+>;IGNORE;IGNORE
+<tm> <h+>;<tm>;IGNORE;IGNORE
+<yf> <yf>;<yf>;IGNORE;IGNORE
+<y+> <yf>;<y+>;IGNORE;IGNORE
+
+<//+> IGNORE;IGNORE;<//+>;IGNORE
+<1+> IGNORE;IGNORE;<1+>;IGNORE
+<'+> IGNORE;IGNORE;<'+>;IGNORE
+<:+> IGNORE;IGNORE;<:+>;IGNORE
+<=+> IGNORE;IGNORE;<=+>;IGNORE
+<"+> IGNORE;IGNORE;<"+>;IGNORE
+<3+> IGNORE;IGNORE;<3+>;IGNORE
+<0+> IGNORE;IGNORE;<0+>;IGNORE
+
+order_end
+
+END LC_COLLATE
+
+LC_MONETARY
+int_curr_symbol "<I><R><R><SP>"
+currency_symbol "<Rl>"
+mon_decimal_point "<.f>"
+mon_thousands_sep "<,f>"
+mon_grouping 3
+positive_sign ""
+negative_sign "<-f>"
+int_frac_digits 0
+frac_digits 0
+%
+% The POSIX standard does not allow different formats for
+% displaying currency as local and international.
+% When they were different, following order specifies
+% the conventions of local currency display.
+%
+% The following positioning is based on ISIRI-3342 BIDI, and should not be
+% used when using Unicode BIDI.
+%
+p_cs_precedes 0
+p_sep_by_space 2
+n_cs_precedes 0
+n_sep_by_space 2
+p_sign_posn 3
+n_sign_posn 3
+END LC_MONETARY
+
+LC_NUMERIC
+decimal_point "<.f>"
+thousands_sep "<,f>"
+grouping 3
+END LC_NUMERIC
+
+LC_TIME
+abday "<yf><.+>";"<d+><.+>";"<s+><.+>";/
+ "<tc><.+>";"<p+><.+>";"<g+><.+>";/
+ "<sn><.+>"
+%
+day "<yf><kf><zwnj><sn><n+><b+><h+>";/
+ "<d+><w+><sn><n+><b+><h+>";/
+ "<s+><h+><zwnj><sn><n+><b+><h+>";/
+ "<tc><h+><a+><r+><sn><n+><b+><h+>";/
+ "<p+><n+><g+><zwnj><sn><n+><b+><h+>";/
+ "<g+><m+><e+><h+>";/
+ "<sn><n+><b+><h+>"
+%
+mon "<zj><a+><n+><w+><yf><h+>";/
+ "<f+><w+><r+><w+><yf><h+>";/
+ "<m+><a+><r+><s+>";/
+ "<aM><w+><r+><yf><l+>";/
+ "<m+><h+>";/
+ "<zj><w+><yH><n+>";/
+ "<zj><w+><yH><yf><h+>";/
+ "<a+><w+><t+>";/
+ "<s+><p+><t+><a+><m+><b+><r+>";/
+ "<a+><k+><t+><b+><r+>";/
+ "<n+><w+><a+><m+><b+><r+>";/
+ "<d+><s+><a+><m+><b+><r+>"
+%
+abmon "<zj><a+><n+>";"<f+><w+><r+>";/
+ "<m+><a+><r+>";"<aM><w+><r+>";/
+ "<m+><++><h+>";"<zj><w+><n+>";/
+ "<zj><w+><yf>";"<a+><w+><t+>";/
+ "<s+><p+><t+>";"<a+><k+><t+>";/
+ "<n+><w+><a+>";"<d+><s+><a+>"
+%
+am_pm "<c+><b+><hk>";"<e+><c+><r+>"
+%
+% The following date and time formats are based on ISIRI-3342 BIDI, and
+% should not be used when using Unicode BIDI.
+%
+d_t_fmt "<%><S><:f><%><M><:f><%><I><SP+><%><p><SP+>/
+<%><A><SP+><%><e><SP+><%><B><SP+><%><Y>"
+%
+d_fmt "<%><d><//f><%><m><//f><%><Y>"
+%
+t_fmt "<%><S><:f><%><M><:f><%><H>"
+%
+t_fmt_ampm "<%><S><:f><%><M><:f><%><I><SP+><%><p>"
+%
+END LC_TIME
+
+% <b+> for <b+><l+><h+>, <aM> for <am><r+><yf>,
+% <x+> for <x+><yf><r+>, <n+> for <n+><h+>.
+% <f> and <o> are placeholders for <b+> and <x+>
+% in Persian standard keyboard (revised ISIRI-2901).
+LC_MESSAGES
+yesexpr "<<(><y><Y><b+><aM><f><)/>><.><*>"
+noexpr "<<(><n><N><x+><n+><o><)/>><.><*>"
+END LC_MESSAGES
diff --git a/malloc/Versions b/malloc/Versions
index 9cbec55846..1a4454f22e 100644
--- a/malloc/Versions
+++ b/malloc/Versions
@@ -44,4 +44,8 @@ libc {
# v*
valloc;
}
+ GLIBC_2.1 {
+ # Special functions.
+ __libc_freeres;
+ }
}