import compat-locales-sap-1.0.10-14.el9

c9 imports/c9/compat-locales-sap-1.0.10-14.el9
CentOS Sources 3 years ago committed by MSVSphere Packaging Team
commit 599a295728

@ -0,0 +1,2 @@
f30b3b2ea9e9603f5b45c237f7f742620d76ec7e SOURCES/saplocales-2.2.5.tgz
76618814a0db2da0072e870837971ddee0378854 SOURCES/shift_jisx0213-2.5-20061008T1257.tgz

2
.gitignore vendored

@ -0,0 +1,2 @@
SOURCES/saplocales-2.2.5.tgz
SOURCES/shift_jisx0213-2.5-20061008T1257.tgz

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

File diff suppressed because it is too large Load Diff

@ -0,0 +1,190 @@
comment_char %
escape_char /
% This file is part of the GNU C Library and contains locale data.
% The Free Software Foundation does not claim any copyright interest
% in the locale data contained in this file. The foregoing does not
% affect the license of the GNU C Library as a whole. It does not
% exempt you from the conditions of the license if your use would
% otherwise be governed by that license.
% Locale for English locale in the USA
% Contributed by Ulrich Drepper <drepper@redhat.com>, 2000
LC_IDENTIFICATION
title "English locale for the USA"
source "Free Software Foundation, Inc."
address "http:////www.gnu.org//software//libc//"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
fax ""
language "American English"
territory "United States"
revision "1.0"
date "2000-06-24"
category "i18n:2012";LC_IDENTIFICATION
category "i18n:2012";LC_CTYPE
category "i18n:2012";LC_COLLATE
category "i18n:2012";LC_TIME
category "i18n:2012";LC_NUMERIC
category "i18n:2012";LC_MONETARY
category "i18n:2012";LC_MESSAGES
category "i18n:2012";LC_PAPER
category "i18n:2012";LC_NAME
category "i18n:2012";LC_ADDRESS
category "i18n:2012";LC_TELEPHONE
category "i18n:2012";LC_MEASUREMENT
END LC_IDENTIFICATION
LC_CTYPE
copy "en_GB"
END LC_CTYPE
LC_COLLATE
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
END LC_COLLATE
LC_MONETARY
int_curr_symbol "<U0055><U0053><U0044><U0020>"
currency_symbol "<U0024>"
mon_decimal_point "<U002E>"
mon_thousands_sep "<U002C>"
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 2
frac_digits 2
p_cs_precedes 1
int_p_sep_by_space 1
p_sep_by_space 0
n_cs_precedes 1
int_n_sep_by_space 1
n_sep_by_space 0
p_sign_posn 1
n_sign_posn 1
%
END LC_MONETARY
LC_NUMERIC
decimal_point "<U002E>"
thousands_sep "<U002C>"
grouping 3;3
END LC_NUMERIC
LC_TIME
abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/
"<U0053><U0061><U0074>"
day "<U0053><U0075><U006E><U0064><U0061><U0079>";/
"<U004D><U006F><U006E><U0064><U0061><U0079>";/
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/
"<U0046><U0072><U0069><U0064><U0061><U0079>";/
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>"
week 7;19971130;1
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>"
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/
"<U004D><U0061><U0072><U0063><U0068>";/
"<U0041><U0070><U0072><U0069><U006C>";/
"<U004D><U0061><U0079>";/
"<U004A><U0075><U006E><U0065>";/
"<U004A><U0075><U006C><U0079>";/
"<U0041><U0075><U0067><U0075><U0073><U0074>";/
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
% Appropriate date and time representation (%c)
% "%a %d %b %Y %r %Z"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0072><U0020><U0025><U005A>"
%
% Appropriate date representation (%x)
% "%m/%d/%Y"
d_fmt "<U0025><U006D><U002F><U0025><U0064><U002F><U0025><U0059>"
%
% Appropriate time representation (%X)
% "%r"
t_fmt "<U0025><U0072>"
%
% Appropriate AM/PM time representation (%r)
% "%I:%M:%S %p"
t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
<U0025><U0070>"
%
% Strings for AM/PM
%
am_pm "<U0041><U004D>";"<U0050><U004D>"
END LC_TIME
LC_MESSAGES
yesexpr "<U005E><U005B><U002B><U0031><U0079><U0059><U005D>"
noexpr "<U005E><U005B><U002D><U0030><U006E><U004E><U005D>"
yesstr "<U0079><U0065><U0073>"
nostr "<U006E><U006F>"
END LC_MESSAGES
LC_PAPER
height 279
width 216
END LC_PAPER
LC_NAME
name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0066>"
name_miss "<U004D><U0069><U0073><U0073><U002E>"
name_mr "<U004D><U0072><U002E>"
name_mrs "<U004D><U0072><U0073><U002E>"
name_ms "<U004D><U0073><U002E>"
END LC_NAME
LC_ADDRESS
postal_fmt "<U0025><U0061><U0025><U004E><U0025><U0066><U0025><U004E>/
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0068>/
<U0020><U0025><U0073><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U0054><U002C><U0020><U0025><U0053><U0020><U0025><U007A><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
country_name "<U0055><U006E><U0069><U0074><U0065><U0064><U0020><U0053><U0074><U0061><U0074><U0065><U0073>"
country_post "<U0055><U0053><U0041>"
country_ab2 "<U0055><U0053>"
country_ab3 "<U0055><U0053><U0041>"
country_num 840
% USA
country_car "<U0055><U0053><U0041>"
country_isbn 0
% English
lang_name "<U0045><U006E><U0067><U006C><U0069><U0073><U0068>"
% en
lang_ab "<U0065><U006E>"
% eng
lang_term "<U0065><U006E><U0067>"
% eng
lang_lib "<U0065><U006E><U0067>"
END LC_ADDRESS
LC_TELEPHONE
tel_int_fmt "<U002B><U0025><U0063><U0020><U0028><U0025><U0061><U0029>/
<U0020><U0025><U006C>"
tel_dom_fmt "<U0028><U0025><U0061><U0029><U0020><U0025><U006C>"
int_select "<U0031><U0031>"
int_prefix "<U0031>"
END LC_TELEPHONE
LC_MEASUREMENT
% US customary units.
measurement 2
END LC_MEASUREMENT

File diff suppressed because it is too large Load Diff

@ -0,0 +1,227 @@
comment_char %
escape_char /
% This file is part of the GNU C Library and contains locale data.
% The Free Software Foundation does not claim any copyright interest
% in the locale data contained in this file. The foregoing does not
% affect the license of the GNU C Library as a whole. It does not
% exempt you from the conditions of the license if your use would
% otherwise be governed by that license.
% Slovak Language Locale for Slovak
% Source:
% Address: Narcisov<a'> 56, SK-821 01 Bratislava, Slovak Republic
% Contact: Stanislav Meduna
% Email: stano@eunet.sk
% Tel:
% Fax:
% Language: sk
% Territory: SK
% Revision: 1.2
% Date: 1998-05-26
% Application: general
% Users: general
% Charset: ISO-8859-2
% 1997-05-14: Odvodené z cs_CZ locale Vladimíra Michla.
% Collate algoritmy prevzaté bezo zmien (norma bola rovnaká),
% vysvetlenie pozri cs_CZ
% spracovanie:
%% localedef -i <tento-soubor> -f ISO-8859-2 sk_SK
%% Do súboru /usr/share/locale/locale.alias je vhodné dopísať nasledovné aliasy:
%% sk sk_SK.ISO-8859-2
%% slovak sk_SK.ISO-8859-2
% Definícia typov znakov
LC_IDENTIFICATION
title "Slovak locale for Slovak"
source ""
address "Narcisov<U00E1> 56, SK-821 01 Bratislava, Slovak Republic"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
fax ""
language "Slovak"
territory "Slovakia"
revision "1.0"
date "2000-06-29"
category "i18n:2012";LC_IDENTIFICATION
category "i18n:2012";LC_CTYPE
category "i18n:2012";LC_COLLATE
category "i18n:2012";LC_TIME
category "i18n:2012";LC_NUMERIC
category "i18n:2012";LC_MONETARY
category "i18n:2012";LC_MESSAGES
category "i18n:2012";LC_PAPER
category "i18n:2012";LC_NAME
category "i18n:2012";LC_ADDRESS
category "i18n:2012";LC_TELEPHONE
category "i18n:2012";LC_MEASUREMENT
END LC_IDENTIFICATION
LC_CTYPE
copy "i18n"
translit_start
include "translit_combining";""
translit_end
END LC_CTYPE
% Triedenie
LC_COLLATE
copy "cs_CZ"
END LC_COLLATE
LC_MESSAGES
yesexpr "<U005E><U005B><U002B><U0031><U0061><U0041><U00E1><U00C1><U0079><U0059><U005D>"
noexpr "<U005E><U005B><U002D><U0030><U006E><U004E><U005D>"
yesstr "<U00E1><U006E><U006F>"
nostr "<U006E><U0069><U0065>"
END LC_MESSAGES
%% LC_MONETARY -- peniaze
%% -------------------------------------------------
LC_MONETARY
int_curr_symbol "<U0045><U0055><U0052><U0020>"
currency_symbol "<U20AC>"
mon_decimal_point "<U002C>"
mon_thousands_sep "<U00A0>"
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 2
frac_digits 2
p_cs_precedes 0
p_sep_by_space 1
n_cs_precedes 0
n_sep_by_space 1
p_sign_posn 1
n_sign_posn 1
END LC_MONETARY
%% Čísla
%% --------------
LC_NUMERIC
decimal_point "<U002C>"
thousands_sep "<U00A0>"
grouping 3;3
END LC_NUMERIC
%% Čas
LC_TIME
abday "<U004E><U0065>";/
"<U0050><U006F>";/
"<U0055><U0074>";/
"<U0053><U0074>";/
"<U0160><U0074>";/
"<U0050><U0069>";/
"<U0053><U006F>"
day "<U004E><U0065><U0064><U0065><U013E><U0061>";/
"<U0050><U006F><U006E><U0064><U0065><U006C><U006F><U006B>";/
"<U0055><U0074><U006F><U0072><U006F><U006B>";/
"<U0053><U0074><U0072><U0065><U0064><U0061>";/
"<U0160><U0074><U0076><U0072><U0074><U006F><U006B>";/
"<U0050><U0069><U0061><U0074><U006F><U006B>";/
"<U0053><U006F><U0062><U006F><U0074><U0061>"
mon "<U006A><U0061><U006E><U0075><U00E1><U0072>";/
"<U0066><U0065><U0062><U0072><U0075><U00E1><U0072>";/
"<U006D><U0061><U0072><U0065><U0063>";/
"<U0061><U0070><U0072><U00ED><U006C>";/
"<U006D><U00E1><U006A>";/
"<U006A><U00FA><U006E>";/
"<U006A><U00FA><U006C>";/
"<U0061><U0075><U0067><U0075><U0073><U0074>";/
"<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U006F><U006B><U0074><U00F3><U0062><U0065><U0072>";/
"<U006E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0064><U0065><U0063><U0065><U006D><U0062><U0065><U0072>"
% Hm - máme zaužívané skratky pre mesiace ?
abmon "<U006A><U0061><U006E>";/
"<U0066><U0065><U0062>";/
"<U006D><U0061><U0072>";/
"<U0061><U0070><U0072>";/
"<U006D><U00E1><U006A>";/
"<U006A><U00FA><U006E>";/
"<U006A><U00FA><U006C>";/
"<U0061><U0075><U0067>";/
"<U0073><U0065><U0070>";/
"<U006F><U006B><U0074>";/
"<U006E><U006F><U0076>";/
"<U0064><U0065><U0063>"
d_t_fmt "<U0025><U0061><U00A0><U0025><U0065><U002E><U00A0><U0025><U0042><U00A0><U0025><U0059><U002C><U00A0><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U00A0><U0025><U005A>"
d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
t_fmt "<U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>"
t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053>"
am_pm "";""
week 7;19971130;4
first_weekday 2
END LC_TIME
%% END OF LOCALIZATION FILE for sk_SK.ISO-8859-2
%% Koniec lokalizačného súboru pre slovenské prostredie
LC_PAPER
copy "i18n"
END LC_PAPER
LC_TELEPHONE
tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
<U006C>"
int_prefix "<U0034><U0032><U0031>"
int_select "<U0030><U0030>"
END LC_TELEPHONE
LC_MEASUREMENT
copy "i18n"
END LC_MEASUREMENT
LC_NAME
name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0066>"
END LC_NAME
LC_ADDRESS
postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
country_name "<U0053><U006C><U006F><U0076><U0065><U006E><U0073><U006B><U006F>"
country_ab2 "<U0053><U004B>"
country_ab3 "<U0053><U0056><U004B>"
country_num 703
% SK
country_car "<U0053><U004B>"
lang_name "<U0073><U006C><U006F><U0076><U0065><U006E><U010D><U0069><U006E><U0061>"
% sk
lang_ab "<U0073><U006B>"
% slk
lang_term "<U0073><U006C><U006B>"
% slo
lang_lib "<U0073><U006C><U006F>"
END LC_ADDRESS

File diff suppressed because it is too large Load Diff

@ -0,0 +1,208 @@
escape_char /
comment_char %
% Locale for German locale in Germany
% Contributed by Ulrich Drepper <drepper@redhat.com>, 2000
LC_IDENTIFICATION
title "German locale for Germany"
source "Free Software Foundation, Inc."
address "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA"
contact ""
email "bug-glibc-locales@gnu.org"
tel ""
fax ""
language "German"
territory "Germany"
revision "1.0"
date "2000-06-24"
%
category "i18n:2012";LC_IDENTIFICATION
category "i18n:2012";LC_CTYPE
category "i18n:2012";LC_COLLATE
category "i18n:2012";LC_TIME
category "i18n:2012";LC_NUMERIC
category "i18n:2012";LC_MONETARY
category "i18n:2012";LC_MESSAGES
category "i18n:2012";LC_PAPER
category "i18n:2012";LC_NAME
category "i18n:2012";LC_ADDRESS
category "i18n:2012";LC_TELEPHONE
END LC_IDENTIFICATION
LC_CTYPE
copy "i18n"
translit_start
include "translit_combining";""
% German umlauts.
% LATIN CAPITAL LETTER A WITH DIAERESIS.
<U00C4> "<U0041><U0308>";"<U0041><U0045>"
% LATIN CAPITAL LETTER O WITH DIAERESIS.
<U00D6> "<U004F><U0308>";"<U004F><U0045>"
% LATIN CAPITAL LETTER U WITH DIAERESIS.
<U00DC> "<U0055><U0308>";"<U0055><U0045>"
% LATIN SMALL LETTER A WITH DIAERESIS.
<U00E4> "<U0061><U0308>";"<U0061><U0065>"
% LATIN SMALL LETTER O WITH DIAERESIS.
<U00F6> "<U006F><U0308>";"<U006F><U0065>"
% LATIN SMALL LETTER U WITH DIAERESIS.
<U00FC> "<U0075><U0308>";"<U0075><U0065>"
% Danish.
% LATIN CAPITAL LETTER A WITH RING ABOVE.
<U00C5> "<U0041><U030A>";"<U0041><U0041>"
% LATIN SMALL LETTER A WITH RING ABOVE.
<U00E5> "<U0061><U030A>";"<U0061><U0061>"
% The following strange first-level transliteration derive from the use
% U201E and U201C as "correct" quoting characters. These two characters
% do not really belong together. The result is that somebody who uses
% U201C and U201D will get the incorrect U00AB / U00BB sequences.
% LEFT DOUBLE QUOTATION MARK
<U201C> <U00AB>;<U0022>
% RIGHT DOUBLE QUOTATION MARK
<U201D> <U00BB>;<U0022>
% DOUBLE LOW-9 QUOTATION MARK
<U201E> <U00BB>;"<U002C><U002C>"
% DOUBLE HIGH-REVERSED-9 QUOTATION MARK
<U201F> <U00AB>;<U0022>
translit_end
END LC_CTYPE
LC_COLLATE
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
END LC_COLLATE
LC_MONETARY
int_curr_symbol "<U0045><U0055><U0052><U0020>"
currency_symbol "<U20AC>"
mon_decimal_point "<U002C>"
mon_thousands_sep "<U002E>"
mon_grouping 3;3
positive_sign ""
negative_sign "<U002D>"
int_frac_digits 2
frac_digits 2
p_cs_precedes 0
p_sep_by_space 1
n_cs_precedes 0
n_sep_by_space 1
p_sign_posn 1
n_sign_posn 1
%
END LC_MONETARY
LC_NUMERIC
decimal_point "<U002C>"
thousands_sep "<U002E>"
grouping 3;3
END LC_NUMERIC
LC_TIME
abday "<U0053><U006F>";"<U004D><U006F>";/
"<U0044><U0069>";"<U004D><U0069>";/
"<U0044><U006F>";"<U0046><U0072>";/
"<U0053><U0061>"
day "<U0053><U006F><U006E><U006E><U0074><U0061><U0067>";/
"<U004D><U006F><U006E><U0074><U0061><U0067>";/
"<U0044><U0069><U0065><U006E><U0073><U0074><U0061><U0067>";/
"<U004D><U0069><U0074><U0074><U0077><U006F><U0063><U0068>";/
"<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/
"<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/
"<U0053><U0061><U006D><U0073><U0074><U0061><U0067>"
week 7;19971201;4
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/
"<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/
"<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
"<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
"<U004E><U006F><U0076>";"<U0044><U0065><U007A>"
mon "<U004A><U0061><U006E><U0075><U0061><U0072>";/
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072>";/
"<U004D><U00E4><U0072><U007A>";/
"<U0041><U0070><U0072><U0069><U006C>";/
"<U004D><U0061><U0069>";/
"<U004A><U0075><U006E><U0069>";/
"<U004A><U0075><U006C><U0069>";/
"<U0041><U0075><U0067><U0075><U0073><U0074>";/
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
"<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
"<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>"
am_pm "";""
% Appropriate date and time representation (%c)
% "%a %d %b %Y %T %Z"
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
%
% Appropriate date representation (%x)
% "%d.%m.%Y"
d_fmt "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
%
% Appropriate time representation (%X)
% "%T"
t_fmt "<U0025><U0054>"
t_fmt_ampm ""
date_fmt "<U0025><U0061><U0020><U0025><U002D><U0064><U002E><U0020>/
<U0025><U0062><U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053>/
<U0020><U0025><U005A><U0020><U0025><U0059>"
END LC_TIME
LC_MESSAGES
yesexpr "<U005E><U005B><U006A><U004A><U0079><U0059><U005D><U002E><U002A>"
noexpr "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
END LC_MESSAGES
LC_PAPER
height 297
width 210
END LC_PAPER
LC_NAME
name_fmt "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
<U0025><U006D><U0025><U0074><U0025><U0066>"
name_miss "<U0046><U0072><U00E4><U0075><U006C><U0065><U0069><U006E>"
name_mr "<U0048><U0065><U0072><U0072>"
name_mrs "<U0046><U0072><U0061><U0075>"
name_ms "<U0046><U0072><U0061><U0075>"
END LC_NAME
LC_ADDRESS
postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
<U004E><U0025><U0025><U007A><U0020><U0025><U0054><U0025>/
<U004E><U0025><U0063><U0025><U004E>"
country_name "<U0044><U0065><U0075><U0074><U0073><U0063><U0068><U006C>/
<U0061><U006E><U0064>"
country_post "<U0044>"
country_ab2 "<U0044><U0045>"
country_ab3 "<U0044><U0045><U0055>"
country_num 276
country_car "<U0044>"
country_isbn 3
lang_name "<U0044><U0065><U0075><U0074><U0073><U0063><U0068>"
lang_ab "<U0064><U0065>"
lang_term "<U0064><U0065><U0075>"
lang_lib "<U0067><U0065><U0072>"
END LC_ADDRESS
LC_TELEPHONE
tel_int_fmt "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
<U006C>"
tel_dom_fmt "<U0025><U0061><U0020><U0025><U006C>"
int_select "<U0030><U0030>"
int_prefix "<U0034><U0039>"
END LC_TELEPHONE
LC_MEASUREMENT
measurement 1
END LC_MEASUREMENT

File diff suppressed because it is too large Load Diff

@ -0,0 +1,339 @@
--- locales/cs_CZ 2015-07-08 19:31:51.000000000 +0200
+++ locales/cs_CZ@HPUX 2015-09-15 16:30:01.726399011 +0200
@@ -395,14 +395,46 @@
<SPECIAL>
<U00A0> <U00A0>;<U00A0>;<U00A0>;<U00A0>
-<U0020> IGNORE;IGNORE;IGNORE;<U0020>
-<U2002> IGNORE;IGNORE;IGNORE;<U2002>
-<U2003> IGNORE;IGNORE;IGNORE;<U2003>
-<U2004> IGNORE;IGNORE;IGNORE;<U2004>
-<U2005> IGNORE;IGNORE;IGNORE;<U2005>
-<U2006> IGNORE;IGNORE;IGNORE;<U2006>
-<U2009> IGNORE;IGNORE;IGNORE;<U2009>
-<U200A> IGNORE;IGNORE;IGNORE;<U200A>
+<U0020> <U0020>;<U0020>;IGNORE;<U0020>
+<U2002> <U0020>;<U2002>;IGNORE;<U0020>
+<U2003> <U0020>;<U2003>;IGNORE;<U0020>
+<U2004> <U0020>;<U2004>;IGNORE;<U0020>
+<U2005> <U0020>;<U2005>;IGNORE;<U0020>
+<U2006> <U0020>;<U2006>;IGNORE;<U0020>
+<U2009> <U0020>;<U2009>;IGNORE;<U0020>
+<U200A> <U0020>;<U200A>;IGNORE;<U0020>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Číslice
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+<U0030> <U0030>;<U0030>;IGNORE;<U0030>
+<U2070> <U0030>;<U2070>;IGNORE;<U0030>
+<U215B> <U0030>;<U215B>;IGNORE;<U0030>
+<U00BC> <U0030>;<U00BC>;IGNORE;<U0030>
+<U215C> <U0030>;<U215C>;IGNORE;<U0030>
+<U00BD> <U0030>;<U00BD>;IGNORE;<U0030>
+<U215D> <U0030>;<U215D>;IGNORE;<U0030>
+<U00BE> <U0030>;<U00BE>;IGNORE;<U0030>
+<U215E> <U0030>;<U215E>;IGNORE;<U0030>
+<U0031> <U0031>;<U0031>;IGNORE;<U0031>
+<U0032> <U0032>;<U0032>;IGNORE;<U0032>
+<U0033> <U0033>;<U0033>;IGNORE;<U0033>
+<U0034> <U0034>;<U0034>;IGNORE;<U0034>
+<U0035> <U0035>;<U0035>;IGNORE;<U0035>
+<U0036> <U0036>;<U0036>;IGNORE;<U0036>
+<U0037> <U0037>;<U0037>;IGNORE;<U0037>
+<U0038> <U0038>;<U0038>;IGNORE;<U0038>
+<U0039> <U0039>;<U0039>;IGNORE;<U0039>
+<U00B9> <U0031>;<U00B9>;IGNORE;<U0031>
+<U00B2> <U0032>;<U00B2>;IGNORE;<U0032>
+<U00B3> <U0033>;<U00B3>;IGNORE;<U0033>
+<U2074> <U0034>;<U2074>;IGNORE;<U0034>
+<U2075> <U0035>;<U2075>;IGNORE;<U0035>
+<U2076> <U0036>;<U2076>;IGNORE;<U0036>
+<U2077> <U0037>;<U2077>;IGNORE;<U0037>
+<U2078> <U0038>;<U2078>;IGNORE;<U0038>
+<U2079> <U0039>;<U2079>;IGNORE;<U0039>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Zde jsou všechna latinská písmena s diakritikou
@@ -1042,37 +1074,7 @@
<U017E> <U017D>;<CARON>;<SMALL>;<U017D>
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Číslice
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-<U0030> <U0030>;<U0030>;IGNORE;<U0030>
-<U2070> <U0030>;<U2070>;IGNORE;<U0030>
-<U215B> <U0030>;<U215B>;IGNORE;<U0030>
-<U00BC> <U0030>;<U00BC>;IGNORE;<U0030>
-<U215C> <U0030>;<U215C>;IGNORE;<U0030>
-<U00BD> <U0030>;<U00BD>;IGNORE;<U0030>
-<U215D> <U0030>;<U215D>;IGNORE;<U0030>
-<U00BE> <U0030>;<U00BE>;IGNORE;<U0030>
-<U215E> <U0030>;<U215E>;IGNORE;<U0030>
-<U0031> <U0031>;<U0031>;IGNORE;<U0031>
-<U0032> <U0032>;<U0032>;IGNORE;<U0032>
-<U0033> <U0033>;<U0033>;IGNORE;<U0033>
-<U0034> <U0034>;<U0034>;IGNORE;<U0034>
-<U0035> <U0035>;<U0035>;IGNORE;<U0035>
-<U0036> <U0036>;<U0036>;IGNORE;<U0036>
-<U0037> <U0037>;<U0037>;IGNORE;<U0037>
-<U0038> <U0038>;<U0038>;IGNORE;<U0038>
-<U0039> <U0039>;<U0039>;IGNORE;<U0039>
-<U00B9> <U0031>;<U00B9>;IGNORE;<U0031>
-<U00B2> <U0032>;<U00B2>;IGNORE;<U0032>
-<U00B3> <U0033>;<U00B3>;IGNORE;<U0033>
-<U2074> <U0034>;<U2074>;IGNORE;<U0034>
-<U2075> <U0035>;<U2075>;IGNORE;<U0035>
-<U2076> <U0036>;<U2076>;IGNORE;<U0036>
-<U2077> <U0037>;<U2077>;IGNORE;<U0037>
-<U2078> <U0038>;<U2078>;IGNORE;<U0038>
-<U2079> <U0039>;<U2079>;IGNORE;<U0039>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Všechny speciální znaky (snažil jsem se to seřadit podle normy, ale moc se
@@ -1086,130 +1088,129 @@
<U000C> IGNORE;IGNORE;IGNORE;<U000C>
% znaménka
-<U002E> IGNORE;IGNORE;IGNORE;<U002E>
-<U002C> IGNORE;IGNORE;IGNORE;<U002C>
-<U003B> IGNORE;IGNORE;IGNORE;<U003B>
-<U003F> IGNORE;IGNORE;IGNORE;<U003F>
-<U00BF> IGNORE;IGNORE;IGNORE;<U00BF>
-<U0021> IGNORE;IGNORE;IGNORE;<U0021>
-<U00A1> IGNORE;IGNORE;IGNORE;<U00A1>
-<U003A> IGNORE;IGNORE;IGNORE;<U003A>
+<U002E> <U002E>;IGNORE;IGNORE;<U002E>
+<U002C> <U002C>;IGNORE;IGNORE;<U002C>
+<U003B> <U003B>;IGNORE;IGNORE;<U003B>
+<U003F> <U003F>;IGNORE;IGNORE;<U003F>
+<U00BF> <U00BF>;IGNORE;IGNORE;<U00BF>
+<U0021> <U0021>;IGNORE;IGNORE;<U0021>
+<U00A1> <U00A1>;IGNORE;IGNORE;<U00A1>
+<U003A> <U003A>;IGNORE;IGNORE;<U003A>
% Uvozovky
-<U0022> IGNORE;IGNORE;IGNORE;<U0022>
-<U0027> IGNORE;IGNORE;IGNORE;<U0027>
-<U0060> IGNORE;IGNORE;IGNORE;<U0060>
-<U201A> IGNORE;IGNORE;IGNORE;<U201A>
-<U201E> IGNORE;IGNORE;IGNORE;<U201E>
-<U201F> IGNORE;IGNORE;IGNORE;<U201F>
-<U201C> IGNORE;IGNORE;IGNORE;<U201C>
-<U201D> IGNORE;IGNORE;IGNORE;<U201D>
-<U201B> IGNORE;IGNORE;IGNORE;<U201B>
-<U2018> IGNORE;IGNORE;IGNORE;<U2018>
-<U2019> IGNORE;IGNORE;IGNORE;<U2019>
-
-<U002D> IGNORE;IGNORE;IGNORE;<U002D>
-<U207B> IGNORE;IGNORE;IGNORE;<U207B>
-<U00AD> IGNORE;IGNORE;IGNORE;<U00AD>
-<U2010> IGNORE;IGNORE;IGNORE;<U2010>
-<U2212> IGNORE;IGNORE;IGNORE;<U2212>
-<U2013> IGNORE;IGNORE;IGNORE;<U2013>
-<U2014> IGNORE;IGNORE;IGNORE;<U2014>
-<U2015> IGNORE;IGNORE;IGNORE;<U2015>
-<U00A6> IGNORE;IGNORE;IGNORE;<U00A6>
-<U007C> IGNORE;IGNORE;IGNORE;<U007C>
-<U002F> IGNORE;IGNORE;IGNORE;<U002F>
-<U005C> IGNORE;IGNORE;IGNORE;<U005C>
-<U0028> IGNORE;IGNORE;IGNORE;<U0028>
-<U207D> IGNORE;IGNORE;IGNORE;<U207D>
-<U0029> IGNORE;IGNORE;IGNORE;<U0029>
-<U207E> IGNORE;IGNORE;IGNORE;<U207E>
-<U005B> IGNORE;IGNORE;IGNORE;<U005B>
-<U005D> IGNORE;IGNORE;IGNORE;<U005D>
-<U003C> IGNORE;IGNORE;IGNORE;<U003C>
-<U2039> IGNORE;IGNORE;IGNORE;<U003C>
-<U003E> IGNORE;IGNORE;IGNORE;<U003E>
-<U203A> IGNORE;IGNORE;IGNORE;<U003E>
-<U007B> IGNORE;IGNORE;IGNORE;<U007B>
-<U007D> IGNORE;IGNORE;IGNORE;<U007D>
+<U0022> <U0022>;IGNORE;IGNORE;<U0022>
+<U0060> <U0060>;IGNORE;IGNORE;<U0060>
+<U0027> <U0027>;IGNORE;IGNORE;<U0027>
+<U005F> <U005F>;IGNORE;IGNORE;<U005F>
+<U201A> <U201A>;IGNORE;IGNORE;<U201A>
+<U201E> <U201E>;IGNORE;IGNORE;<U201E>
+<U201F> <U201F>;IGNORE;IGNORE;<U201F>
+<U201C> <U201C>;IGNORE;IGNORE;<U201C>
+<U201D> <U201D>;IGNORE;IGNORE;<U201D>
+<U201B> <U201B>;IGNORE;IGNORE;<U201B>
+<U2018> <U2018>;IGNORE;IGNORE;<U2018>
+<U2019> <U2019>;IGNORE;IGNORE;<U2019>
+
+<U207B> <U207B>;IGNORE;IGNORE;<U207B>
+<U00AD> <U00AD>;IGNORE;IGNORE;<U00AD>
+<U2010> <U2010>;IGNORE;IGNORE;<U2010>
+<U2212> <U2212>;IGNORE;IGNORE;<U2212>
+<U2013> <U2013>;IGNORE;IGNORE;<U2013>
+<U2014> <U2014>;IGNORE;IGNORE;<U2014>
+<U2015> <U2015>;IGNORE;IGNORE;<U2015>
+<U00A6> <U00A6>;IGNORE;IGNORE;<U00A6>
+<U007C> <U007C>;IGNORE;IGNORE;<U007C>
+<U002F> <U002F>;IGNORE;IGNORE;<U002F>
+<U005C> <U005C>;IGNORE;IGNORE;<U005C>
+<U0028> <U0028>;IGNORE;IGNORE;<U0028>
+<U207D> <U207D>;IGNORE;IGNORE;<U207D>
+<U0029> <U0029>;IGNORE;IGNORE;<U0029>
+<U207E> <U207E>;IGNORE;IGNORE;<U207E>
+<U005B> <U005B>;IGNORE;IGNORE;<U005B>
+<U005D> <U005D>;IGNORE;IGNORE;<U005D>
+<U007B> <U007B>;IGNORE;IGNORE;<U007B>
+<U007D> <U007D>;IGNORE;IGNORE;<U007D>
% ustálené značky
-<U0026> IGNORE;IGNORE;IGNORE;<U0026>
-<U00A3> IGNORE;IGNORE;IGNORE;<U00A3>
-<U00A7> IGNORE;IGNORE;IGNORE;<U00A7>
-<U0025> IGNORE;IGNORE;IGNORE;<U0025>
-<U0024> IGNORE;IGNORE;IGNORE;<U0024>
-<U00AE> IGNORE;IGNORE;IGNORE;<U00AE>
-<U00A9> IGNORE;IGNORE;IGNORE;<U00A9>
-<U00B6> IGNORE;IGNORE;IGNORE;<U00B6>
-<U0040> IGNORE;IGNORE;IGNORE;<U0040>
-<U00A2> IGNORE;IGNORE;IGNORE;<U00A2>
-<U00A5> IGNORE;IGNORE;IGNORE;<U00A5>
-<U00B5> IGNORE;IGNORE;IGNORE;<U00B5>
-<U20A3> IGNORE;IGNORE;IGNORE;<U20A3>
-<U20A4> IGNORE;IGNORE;IGNORE;<U20A4>
-<U20A7> IGNORE;IGNORE;IGNORE;<U20A7>
-<U20A9> IGNORE;IGNORE;IGNORE;<U20A9>
-<U2116> IGNORE;IGNORE;IGNORE;<U2116>
-<U2117> IGNORE;IGNORE;IGNORE;<U2117>
-<U2120> IGNORE;IGNORE;IGNORE;<U2120>
-<U2122> IGNORE;IGNORE;IGNORE;<U2122>
-<U2126> IGNORE;IGNORE;IGNORE;<U2126>
-<U212B> IGNORE;IGNORE;IGNORE;<U212B>
+<U0026> <U0026>;IGNORE;IGNORE;<U0026>
+<U00A3> <U00A3>;IGNORE;IGNORE;<U00A3>
+<U00A7> <U00A7>;IGNORE;IGNORE;<U00A7>
+<U0025> <U0025>;IGNORE;IGNORE;<U0025>
+<U0024> <U0024>;IGNORE;IGNORE;<U0024>
+<U00AE> <U00AE>;IGNORE;IGNORE;<U00AE>
+<U00A9> <U00A9>;IGNORE;IGNORE;<U00A9>
+<U00B6> <U00B6>;IGNORE;IGNORE;<U00B6>
+<U0040> <U0040>;IGNORE;IGNORE;<U0040>
+<U00A2> <U00A2>;IGNORE;IGNORE;<U00A2>
+<U00A5> <U00A5>;IGNORE;IGNORE;<U00A5>
+<U00B5> <U00B5>;IGNORE;IGNORE;<U00B5>
+<U20A3> <U20A3>;IGNORE;IGNORE;<U20A3>
+<U20A4> <U20A4>;IGNORE;IGNORE;<U20A4>
+<U20A7> <U20A7>;IGNORE;IGNORE;<U20A7>
+<U20A9> <U20A9>;IGNORE;IGNORE;<U20A9>
+<U2116> <U2116>;IGNORE;IGNORE;<U2116>
+<U2117> <U2117>;IGNORE;IGNORE;<U2117>
+<U2120> <U2120>;IGNORE;IGNORE;<U2120>
+<U2122> <U2122>;IGNORE;IGNORE;<U2122>
+<U2126> <U2126>;IGNORE;IGNORE;<U2126>
+<U212B> <U212B>;IGNORE;IGNORE;<U212B>
+
+<U003C> <U003C>;IGNORE;IGNORE;<U003C>
+<U2039> <U2039>;IGNORE;IGNORE;<U003C>
+<U003E> <U003E>;IGNORE;IGNORE;<U003E>
+<U203A> <U203A>;IGNORE;IGNORE;<U003E>
% grafické značky a obrazce lineární
-<U005F> IGNORE;IGNORE;IGNORE;<U005F>
-<U003D> IGNORE;IGNORE;IGNORE;<U003D>
-<U005E> IGNORE;IGNORE;IGNORE;<U005E>
-<U2310> IGNORE;IGNORE;IGNORE;<U2310>
-<U00AC> IGNORE;IGNORE;IGNORE;<U00AC>
-<U2016> IGNORE;IGNORE;IGNORE;<U2016>
-<U2017> IGNORE;IGNORE;IGNORE;<U2017>
-<U2261> IGNORE;IGNORE;IGNORE;<U2261>
-<U00AB> IGNORE;IGNORE;IGNORE;<U00AB>
-<U00BB> IGNORE;IGNORE;IGNORE;<U00BB>
-<U00F7> IGNORE;IGNORE;IGNORE;<U00F7>
-<U221A> IGNORE;IGNORE;IGNORE;<U221A>
-<U002B> IGNORE;IGNORE;IGNORE;<U002B>
-<U207A> IGNORE;IGNORE;IGNORE;<U207A>
-<U00D7> IGNORE;IGNORE;IGNORE;<U00D7>
-<U002A> IGNORE;IGNORE;IGNORE;<U002A>
-<U2217> IGNORE;IGNORE;IGNORE;<U2217>
-<U00B1> IGNORE;IGNORE;IGNORE;<U00B1>
-<U2260> IGNORE;IGNORE;IGNORE;<U2260>
-<U2264> IGNORE;IGNORE;IGNORE;<U2264>
-<U2265> IGNORE;IGNORE;IGNORE;<U2265>
-<U0023> IGNORE;IGNORE;IGNORE;<U0023>
-<U007E> IGNORE;IGNORE;IGNORE;<U007E>
-<U02DC> IGNORE;IGNORE;IGNORE;<U02DC>
-<UE005> IGNORE;IGNORE;IGNORE;<UE005>
-<U224C> IGNORE;IGNORE;IGNORE;<U224C>
-<U223C> IGNORE;IGNORE;IGNORE;<U223C>
-<U2243> IGNORE;IGNORE;IGNORE;<U2243>
-<U2245> IGNORE;IGNORE;IGNORE;<U2245>
-<U2248> IGNORE;IGNORE;IGNORE;<U2248>
+<U003D> <U003D>;IGNORE;IGNORE;<U003D>
+<U2310> <U2310>;IGNORE;IGNORE;<U2310>
+<U00AC> <U00AC>;IGNORE;IGNORE;<U00AC>
+<U2016> <U2016>;IGNORE;IGNORE;<U2016>
+<U2017> <U2017>;IGNORE;IGNORE;<U2017>
+<U2261> <U2261>;IGNORE;IGNORE;<U2261>
+<U00AB> <U00AB>;IGNORE;IGNORE;<U00AB>
+<U00BB> <U00BB>;IGNORE;IGNORE;<U00BB>
+<U00F7> <U00F7>;IGNORE;IGNORE;<U00F7>
+<U221A> <U221A>;IGNORE;IGNORE;<U221A>
+<U002B> <U002B>;IGNORE;IGNORE;<U002B>
+<U002D> <U002D>;IGNORE;IGNORE;<U002D>
+<U207A> <U207A>;IGNORE;IGNORE;<U207A>
+<U00D7> <U00D7>;IGNORE;IGNORE;<U00D7>
+<U002A> <U002A>;IGNORE;IGNORE;<U002A>
+<U2217> <U2217>;IGNORE;IGNORE;<U2217>
+<U00B1> <U00B1>;IGNORE;IGNORE;<U00B1>
+<U2260> <U2260>;IGNORE;IGNORE;<U2260>
+<U2264> <U2264>;IGNORE;IGNORE;<U2264>
+<U2265> <U2265>;IGNORE;IGNORE;<U2265>
+<U0023> <U0023>;IGNORE;IGNORE;<U0023>
+<U005E> <U005E>;IGNORE;IGNORE;<U005E>
+<U007E> <U007E>;IGNORE;IGNORE;<U007E>
+<U02DC> <U02DC>;IGNORE;IGNORE;<U02DC>
+<UE005> <UE005>;IGNORE;IGNORE;<UE005>
+<U224C> <U224C>;IGNORE;IGNORE;<U224C>
+<U223C> <U223C>;IGNORE;IGNORE;<U223C>
+<U2243> <U2243>;IGNORE;IGNORE;<U2243>
+<U2245> <U2245>;IGNORE;IGNORE;<U2245>
+<U2248> <U2248>;IGNORE;IGNORE;<U2248>
% grafické značky a obrazce plošné
-<U00B0> IGNORE;IGNORE;IGNORE;<U00B0>
-<U2103> IGNORE;IGNORE;IGNORE;<U2103>
-<U2109> IGNORE;IGNORE;IGNORE;<U2109>
-<U00A4> IGNORE;IGNORE;IGNORE;<U00A4>
+<U00B0> <U00B0>;IGNORE;IGNORE;<U00B0>
+<U2103> <U2103>;IGNORE;IGNORE;<U2103>
+<U2109> <U2109>;IGNORE;IGNORE;<U2109>
+<U00A4> <U00A4>;IGNORE;IGNORE;<U00A4>
% Akcenty, nevím kam je zařadit (některé jsou brány jako uvozovky)
-<U02D9> IGNORE;IGNORE;IGNORE;<U02D9>
-<U00AF> IGNORE;IGNORE;IGNORE;<U203E>
-<U203E> IGNORE;IGNORE;IGNORE;<U203E>
-<U00B4> IGNORE;IGNORE;IGNORE;<U00B4>
-%<U0060> IGNORE;IGNORE;IGNORE;<U0060> % přemístěn do uvozovek
-%<U005E> IGNORE;IGNORE;IGNORE;<U005E> % přemístěn do obrazců lineárních
-<U02C7> IGNORE;IGNORE;IGNORE;<U02C7>
+<U02D9> <U02D9>;IGNORE;IGNORE;<U02D9>
+<U00AF> <U00AF>;IGNORE;IGNORE;<U203E>
+<U203E> <U203E>;IGNORE;IGNORE;<U203E>
+<U00B4> <U00B4>;IGNORE;IGNORE;<U00B4>
+<U02C7> <U02C7>;IGNORE;IGNORE;<U02C7>
% tilda
-<U02D8> IGNORE;IGNORE;IGNORE;<U02D8>
-<U00B8> IGNORE;IGNORE;IGNORE;<U00B8>
-<U02DB> IGNORE;IGNORE;IGNORE;<U02DB>
-<U02DA> IGNORE;IGNORE;IGNORE;<U02DA>
-<U00A8> IGNORE;IGNORE;IGNORE;<U00A8>
-<U02DD> IGNORE;IGNORE;IGNORE;<U02DD>
-<U00B7> IGNORE;IGNORE;IGNORE;<U00B7>
+<U02D8> <U02D8>;IGNORE;IGNORE;<U02D8>
+<U00B8> <U00B8>;IGNORE;IGNORE;<U00B8>
+<U02DB> <U02DB>;IGNORE;IGNORE;<U02DB>
+<U02DA> <U02DA>;IGNORE;IGNORE;<U02DA>
+<U00A8> <U00A8>;IGNORE;IGNORE;<U00A8>
+<U02DD> <U02DD>;IGNORE;IGNORE;<U02DD>
+<U00B7> <U00B7>;IGNORE;IGNORE;<U00B7>
% Neseřazeno
<U0374> IGNORE;IGNORE;IGNORE;<U0374>

@ -0,0 +1,79 @@
--- locales/cs_CZ 2009-01-06 10:13:22.000000000 +1000
+++ locales/cs_CZ@SAP 2009-05-15 18:23:14.000000000 +1000
@@ -405,6 +405,38 @@
<U200A> IGNORE;IGNORE;IGNORE;<U200A>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Číslice
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+<U0030> <U0030>;<U0030>;IGNORE;<U0030>
+<U2070> <U0030>;<U2070>;IGNORE;<U0030>
+<U215B> <U0030>;<U215B>;IGNORE;<U0030>
+<U00BC> <U0030>;<U00BC>;IGNORE;<U0030>
+<U215C> <U0030>;<U215C>;IGNORE;<U0030>
+<U00BD> <U0030>;<U00BD>;IGNORE;<U0030>
+<U215D> <U0030>;<U215D>;IGNORE;<U0030>
+<U00BE> <U0030>;<U00BE>;IGNORE;<U0030>
+<U215E> <U0030>;<U215E>;IGNORE;<U0030>
+<U0031> <U0031>;<U0031>;IGNORE;<U0031>
+<U0032> <U0032>;<U0032>;IGNORE;<U0032>
+<U0033> <U0033>;<U0033>;IGNORE;<U0033>
+<U0034> <U0034>;<U0034>;IGNORE;<U0034>
+<U0035> <U0035>;<U0035>;IGNORE;<U0035>
+<U0036> <U0036>;<U0036>;IGNORE;<U0036>
+<U0037> <U0037>;<U0037>;IGNORE;<U0037>
+<U0038> <U0038>;<U0038>;IGNORE;<U0038>
+<U0039> <U0039>;<U0039>;IGNORE;<U0039>
+<U00B9> <U0031>;<U00B9>;IGNORE;<U0031>
+<U00B2> <U0032>;<U00B2>;IGNORE;<U0032>
+<U00B3> <U0033>;<U00B3>;IGNORE;<U0033>
+<U2074> <U0034>;<U2074>;IGNORE;<U0034>
+<U2075> <U0035>;<U2075>;IGNORE;<U0035>
+<U2076> <U0036>;<U2076>;IGNORE;<U0036>
+<U2077> <U0037>;<U2077>;IGNORE;<U0037>
+<U2078> <U0038>;<U2078>;IGNORE;<U0038>
+<U2079> <U0039>;<U2079>;IGNORE;<U0039>
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Zde jsou všechna latinská písmena s diakritikou
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1042,37 +1074,7 @@
<U017E> <U017D>;<CARON>;<SMALL>;<U017D>
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Číslice
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-<U0030> <U0030>;<U0030>;IGNORE;<U0030>
-<U2070> <U0030>;<U2070>;IGNORE;<U0030>
-<U215B> <U0030>;<U215B>;IGNORE;<U0030>
-<U00BC> <U0030>;<U00BC>;IGNORE;<U0030>
-<U215C> <U0030>;<U215C>;IGNORE;<U0030>
-<U00BD> <U0030>;<U00BD>;IGNORE;<U0030>
-<U215D> <U0030>;<U215D>;IGNORE;<U0030>
-<U00BE> <U0030>;<U00BE>;IGNORE;<U0030>
-<U215E> <U0030>;<U215E>;IGNORE;<U0030>
-<U0031> <U0031>;<U0031>;IGNORE;<U0031>
-<U0032> <U0032>;<U0032>;IGNORE;<U0032>
-<U0033> <U0033>;<U0033>;IGNORE;<U0033>
-<U0034> <U0034>;<U0034>;IGNORE;<U0034>
-<U0035> <U0035>;<U0035>;IGNORE;<U0035>
-<U0036> <U0036>;<U0036>;IGNORE;<U0036>
-<U0037> <U0037>;<U0037>;IGNORE;<U0037>
-<U0038> <U0038>;<U0038>;IGNORE;<U0038>
-<U0039> <U0039>;<U0039>;IGNORE;<U0039>
-<U00B9> <U0031>;<U00B9>;IGNORE;<U0031>
-<U00B2> <U0032>;<U00B2>;IGNORE;<U0032>
-<U00B3> <U0033>;<U00B3>;IGNORE;<U0033>
-<U2074> <U0034>;<U2074>;IGNORE;<U0034>
-<U2075> <U0035>;<U2075>;IGNORE;<U0035>
-<U2076> <U0036>;<U2076>;IGNORE;<U0036>
-<U2077> <U0037>;<U2077>;IGNORE;<U0037>
-<U2078> <U0038>;<U2078>;IGNORE;<U0038>
-<U2079> <U0039>;<U2079>;IGNORE;<U0039>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Všechny speciální znaky (snažil jsem se to seřadit podle normy, ale moc se

@ -0,0 +1,118 @@
--- locales/de_DE 2011-02-16 21:23:35.120960001 +0530
+++ locales/de_DE@HPUX 2011-02-16 21:18:54.096520921 +0530
@@ -35,10 +35,113 @@ copy "en_GB"
END LC_CTYPE
LC_COLLATE
+order_start forward;forward;forward;position
-% Copy the template from ISO/IEC 14651
-copy "iso14651_t1"
+<U0020> <U0020>;IGNORE;IGNORE;IGNORE
+<U0030> <U0030>;IGNORE;IGNORE;IGNORE
+<U0031> <U0031>;IGNORE;IGNORE;IGNORE
+<U0032> <U0032>;IGNORE;IGNORE;IGNORE
+<U0033> <U0033>;IGNORE;IGNORE;IGNORE
+<U0034> <U0034>;IGNORE;IGNORE;IGNORE
+<U0035> <U0035>;IGNORE;IGNORE;IGNORE
+<U0036> <U0036>;IGNORE;IGNORE;IGNORE
+<U0037> <U0037>;IGNORE;IGNORE;IGNORE
+<U0038> <U0038>;IGNORE;IGNORE;IGNORE
+<U0039> <U0039>;IGNORE;IGNORE;IGNORE
+<U0041> <U0041>;IGNORE;IGNORE;IGNORE
+<U0061> <U0041>;IGNORE;IGNORE;IGNORE
+<U00C4> <U00C4>;IGNORE;IGNORE;IGNORE
+<U00E4> <U00C4>;IGNORE;IGNORE;IGNORE
+<U0042> <U0042>;IGNORE;IGNORE;IGNORE
+<U0062> <U0042>;IGNORE;IGNORE;IGNORE
+<U0043> <U0043>;IGNORE;IGNORE;IGNORE
+<U0063> <U0043>;IGNORE;IGNORE;IGNORE
+<U0044> <U0044>;IGNORE;IGNORE;IGNORE
+<U0064> <U0044>;IGNORE;IGNORE;IGNORE
+<U0045> <U0045>;IGNORE;IGNORE;IGNORE
+<U0065> <U0045>;IGNORE;IGNORE;IGNORE
+<U0046> <U0046>;IGNORE;IGNORE;IGNORE
+<U0066> <U0046>;IGNORE;IGNORE;IGNORE
+<U0047> <U0047>;IGNORE;IGNORE;IGNORE
+<U0067> <U0047>;IGNORE;IGNORE;IGNORE
+<U0048> <U0048>;IGNORE;IGNORE;IGNORE
+<U0068> <U0048>;IGNORE;IGNORE;IGNORE
+<U0049> <U0049>;IGNORE;IGNORE;IGNORE
+<U0069> <U0049>;IGNORE;IGNORE;IGNORE
+<U004A> <U004A>;IGNORE;IGNORE;IGNORE
+<U006A> <U004A>;IGNORE;IGNORE;IGNORE
+<U004B> <U004B>;IGNORE;IGNORE;IGNORE
+<U006B> <U004B>;IGNORE;IGNORE;IGNORE
+<U004C> <U004C>;IGNORE;IGNORE;IGNORE
+<U006C> <U004C>;IGNORE;IGNORE;IGNORE
+<U004D> <U004D>;IGNORE;IGNORE;IGNORE
+<U006D> <U004D>;IGNORE;IGNORE;IGNORE
+<U004E> <U004E>;IGNORE;IGNORE;IGNORE
+<U006E> <U004E>;IGNORE;IGNORE;IGNORE
+<U004F> <U004F>;IGNORE;IGNORE;IGNORE
+<U006F> <U004F>;IGNORE;IGNORE;IGNORE
+<U00D6> <U00D6>;IGNORE;IGNORE;IGNORE
+<U00F6> <U00D6>;IGNORE;IGNORE;IGNORE
+<U0050> <U0050>;IGNORE;IGNORE;IGNORE
+<U0070> <U0050>;IGNORE;IGNORE;IGNORE
+<U0051> <U0051>;IGNORE;IGNORE;IGNORE
+<U0071> <U0051>;IGNORE;IGNORE;IGNORE
+<U0052> <U0052>;IGNORE;IGNORE;IGNORE
+<U0072> <U0052>;IGNORE;IGNORE;IGNORE
+<U0053> <U0053>;IGNORE;IGNORE;IGNORE
+<U0073> <U0053>;IGNORE;IGNORE;IGNORE
+<U00DF> <U00DF>;IGNORE;IGNORE;IGNORE
+<U0054> <U0054>;IGNORE;IGNORE;IGNORE
+<U0074> <U0054>;IGNORE;IGNORE;IGNORE
+<U0055> <U0055>;IGNORE;IGNORE;IGNORE
+<U0075> <U0055>;IGNORE;IGNORE;IGNORE
+<U00DC> <U00DC>;IGNORE;IGNORE;IGNORE
+<U00FC> <U00DC>;IGNORE;IGNORE;IGNORE
+<U0056> <U0056>;IGNORE;IGNORE;IGNORE
+<U0076> <U0056>;IGNORE;IGNORE;IGNORE
+<U0057> <U0057>;IGNORE;IGNORE;IGNORE
+<U0077> <U0057>;IGNORE;IGNORE;IGNORE
+<U0058> <U0058>;IGNORE;IGNORE;IGNORE
+<U0078> <U0058>;IGNORE;IGNORE;IGNORE
+<U0059> <U0059>;IGNORE;IGNORE;IGNORE
+<U0079> <U0059>;IGNORE;IGNORE;IGNORE
+<U005A> <U005A>;IGNORE;IGNORE;IGNORE
+<U007A> <U005A>;IGNORE;IGNORE;IGNORE
+<U0028> <U0028>;IGNORE;IGNORE;IGNORE
+<U0029> <U0029>;IGNORE;IGNORE;IGNORE
+<U005B> <U005B>;IGNORE;IGNORE;IGNORE
+<U005D> <U005D>;IGNORE;IGNORE;IGNORE
+<U007B> <U007B>;IGNORE;IGNORE;IGNORE
+<U007D> <U007D>;IGNORE;IGNORE;IGNORE
+<U003C> <U003C>;IGNORE;IGNORE;IGNORE
+<U003E> <U003E>;IGNORE;IGNORE;IGNORE
+<U0060> <U0060>;IGNORE;IGNORE;IGNORE
+<U0027> <U0027>;IGNORE;IGNORE;IGNORE
+<U003D> <U003D>;IGNORE;IGNORE;IGNORE
+<U002B> <U002B>;IGNORE;IGNORE;IGNORE
+<U002D> <U002D>;IGNORE;IGNORE;IGNORE
+<U002A> <U002A>;IGNORE;IGNORE;IGNORE
+<U002E> <U002E>;IGNORE;IGNORE;IGNORE
+<U002C> <U002C>;IGNORE;IGNORE;IGNORE
+<U003B> <U003B>;IGNORE;IGNORE;IGNORE
+<U003A> <U003A>;IGNORE;IGNORE;IGNORE
+<U0022> <U0022>;IGNORE;IGNORE;IGNORE
+<U003F> <U003F>;IGNORE;IGNORE;IGNORE
+<U0021> <U0021>;IGNORE;IGNORE;IGNORE
+<U002F> <U002F>;IGNORE;IGNORE;IGNORE
+<U005C> <U005C>;IGNORE;IGNORE;IGNORE
+<U007C> <U007C>;IGNORE;IGNORE;IGNORE
+<U00A7> <U00A7>;IGNORE;IGNORE;IGNORE
+<U0040> <U0040>;IGNORE;IGNORE;IGNORE
+<U0026> <U0026>;IGNORE;IGNORE;IGNORE
+<U0025> <U0025>;IGNORE;IGNORE;IGNORE
+<U0023> <U0023>;IGNORE;IGNORE;IGNORE
+<U0024> <U0024>;IGNORE;IGNORE;IGNORE
+<U005E> <U005E>;IGNORE;IGNORE;IGNORE
+<U007E> <U007E>;IGNORE;IGNORE;IGNORE
+<U005F> <U005F>;IGNORE;IGNORE;IGNORE
+order_end
END LC_COLLATE
LC_MONETARY

@ -0,0 +1,14 @@
--- locales/de_DE 2009-01-06 10:13:22.000000000 +1000
+++ locales/de_DE@POSIX 2008-11-19 22:29:58.000000000 +1000
@@ -75,10 +75,7 @@
END LC_CTYPE
LC_COLLATE
-
-% Copy the template from ISO/IEC 14651
-copy "iso14651_t1"
-
+copy "POSIX"
END LC_COLLATE
LC_MONETARY

@ -0,0 +1,119 @@
diff -u locales/de_DE locales/de_DE@Solaris
--- locales/de_DE 2006-07-31 08:19:44.000000000 +1000
+++ locales/de_DE@Solaris 2011-02-04 17:37:07.000000000 +1000
@@ -35,10 +35,113 @@
END LC_CTYPE
LC_COLLATE
+order_start forward;forward;forward;position
-% Copy the template from ISO/IEC 14651
-copy "iso14651_t1"
+<U0020> <U0020>;IGNORE;IGNORE;IGNORE
+<U0060> <U0060>;IGNORE;IGNORE;IGNORE
+<U005E> <U005E>;IGNORE;IGNORE;IGNORE
+<U005F> <U005F>;IGNORE;IGNORE;IGNORE
+<U002D> <U002D>;IGNORE;IGNORE;IGNORE
+<U002C> <U002C>;IGNORE;IGNORE;IGNORE
+<U003B> <U003B>;IGNORE;IGNORE;IGNORE
+<U003A> <U003A>;IGNORE;IGNORE;IGNORE
+<U0021> <U0021>;IGNORE;IGNORE;IGNORE
+<U003F> <U003F>;IGNORE;IGNORE;IGNORE
+<U002E> <U002E>;IGNORE;IGNORE;IGNORE
+<U0027> <U0027>;IGNORE;IGNORE;IGNORE
+<U0022> <U0022>;IGNORE;IGNORE;IGNORE
+<U0028> <U0028>;IGNORE;IGNORE;IGNORE
+<U0029> <U0029>;IGNORE;IGNORE;IGNORE
+<U005B> <U005B>;IGNORE;IGNORE;IGNORE
+<U005D> <U005D>;IGNORE;IGNORE;IGNORE
+<U007B> <U007B>;IGNORE;IGNORE;IGNORE
+<U007D> <U007D>;IGNORE;IGNORE;IGNORE
+<U00A7> <U00A7>;IGNORE;IGNORE;IGNORE
+<U0040> <U0040>;IGNORE;IGNORE;IGNORE
+<U002A> <U002A>;IGNORE;IGNORE;IGNORE
+<U002F> <U002F>;IGNORE;IGNORE;IGNORE
+<U005C> <U005C>;IGNORE;IGNORE;IGNORE
+<U0026> <U0026>;IGNORE;IGNORE;IGNORE
+<U0023> <U0023>;IGNORE;IGNORE;IGNORE
+<U0025> <U0025>;IGNORE;IGNORE;IGNORE
+<U002B> <U002B>;IGNORE;IGNORE;IGNORE
+<U003C> <U003C>;IGNORE;IGNORE;IGNORE
+<U003D> <U003D>;IGNORE;IGNORE;IGNORE
+<U003E> <U003E>;IGNORE;IGNORE;IGNORE
+<U007C> <U007C>;IGNORE;IGNORE;IGNORE
+<U007E> <U007E>;IGNORE;IGNORE;IGNORE
+<U0024> <U0024>;IGNORE;IGNORE;IGNORE
+<U0030> <U0030>;IGNORE;IGNORE;IGNORE
+<U0031> <U0031>;IGNORE;IGNORE;IGNORE
+<U0032> <U0032>;IGNORE;IGNORE;IGNORE
+<U0033> <U0033>;IGNORE;IGNORE;IGNORE
+<U0034> <U0034>;IGNORE;IGNORE;IGNORE
+<U0035> <U0035>;IGNORE;IGNORE;IGNORE
+<U0036> <U0036>;IGNORE;IGNORE;IGNORE
+<U0037> <U0037>;IGNORE;IGNORE;IGNORE
+<U0038> <U0038>;IGNORE;IGNORE;IGNORE
+<U0039> <U0039>;IGNORE;IGNORE;IGNORE
+<U0061> <U0061>;IGNORE;IGNORE;IGNORE
+<U0041> <U0041>;IGNORE;IGNORE;IGNORE
+<U00E4> <U00E4>;IGNORE;IGNORE;IGNORE
+<U00C4> <U00C4>;IGNORE;IGNORE;IGNORE
+<U0062> <U0062>;IGNORE;IGNORE;IGNORE
+<U0042> <U0042>;IGNORE;IGNORE;IGNORE
+<U0063> <U0063>;IGNORE;IGNORE;IGNORE
+<U0043> <U0043>;IGNORE;IGNORE;IGNORE
+<U0064> <U0064>;IGNORE;IGNORE;IGNORE
+<U0044> <U0044>;IGNORE;IGNORE;IGNORE
+<U0065> <U0065>;IGNORE;IGNORE;IGNORE
+<U0045> <U0045>;IGNORE;IGNORE;IGNORE
+<U0066> <U0066>;IGNORE;IGNORE;IGNORE
+<U0046> <U0046>;IGNORE;IGNORE;IGNORE
+<U0067> <U0067>;IGNORE;IGNORE;IGNORE
+<U0047> <U0047>;IGNORE;IGNORE;IGNORE
+<U0068> <U0068>;IGNORE;IGNORE;IGNORE
+<U0048> <U0048>;IGNORE;IGNORE;IGNORE
+<U0069> <U0069>;IGNORE;IGNORE;IGNORE
+<U0049> <U0049>;IGNORE;IGNORE;IGNORE
+<U006A> <U006A>;IGNORE;IGNORE;IGNORE
+<U004A> <U004A>;IGNORE;IGNORE;IGNORE
+<U006B> <U006B>;IGNORE;IGNORE;IGNORE
+<U004B> <U004B>;IGNORE;IGNORE;IGNORE
+<U006C> <U006C>;IGNORE;IGNORE;IGNORE
+<U004C> <U004C>;IGNORE;IGNORE;IGNORE
+<U006D> <U006D>;IGNORE;IGNORE;IGNORE
+<U004D> <U004D>;IGNORE;IGNORE;IGNORE
+<U006E> <U006E>;IGNORE;IGNORE;IGNORE
+<U004E> <U004E>;IGNORE;IGNORE;IGNORE
+<U006F> <U006F>;IGNORE;IGNORE;IGNORE
+<U004F> <U004F>;IGNORE;IGNORE;IGNORE
+<U00F6> <U00F6>;IGNORE;IGNORE;IGNORE
+<U00D6> <U00D6>;IGNORE;IGNORE;IGNORE
+<U0070> <U0070>;IGNORE;IGNORE;IGNORE
+<U0050> <U0050>;IGNORE;IGNORE;IGNORE
+<U0071> <U0071>;IGNORE;IGNORE;IGNORE
+<U0051> <U0051>;IGNORE;IGNORE;IGNORE
+<U0072> <U0072>;IGNORE;IGNORE;IGNORE
+<U0052> <U0052>;IGNORE;IGNORE;IGNORE
+<U0073> <U0073>;IGNORE;IGNORE;IGNORE
+<U0053> <U0053>;IGNORE;IGNORE;IGNORE
+<U0074> <U0074>;IGNORE;IGNORE;IGNORE
+<U0054> <U0054>;IGNORE;IGNORE;IGNORE
+<U0075> <U0075>;IGNORE;IGNORE;IGNORE
+<U0055> <U0055>;IGNORE;IGNORE;IGNORE
+<U00FC> <U00FC>;IGNORE;IGNORE;IGNORE
+<U00DC> <U00DC>;IGNORE;IGNORE;IGNORE
+<U0076> <U0076>;IGNORE;IGNORE;IGNORE
+<U0056> <U0056>;IGNORE;IGNORE;IGNORE
+<U0077> <U0077>;IGNORE;IGNORE;IGNORE
+<U0057> <U0057>;IGNORE;IGNORE;IGNORE
+<U0078> <U0078>;IGNORE;IGNORE;IGNORE
+<U0058> <U0058>;IGNORE;IGNORE;IGNORE
+<U0079> <U0079>;IGNORE;IGNORE;IGNORE
+<U0059> <U0059>;IGNORE;IGNORE;IGNORE
+<U007A> <U007A>;IGNORE;IGNORE;IGNORE
+<U005A> <U005A>;IGNORE;IGNORE;IGNORE
+<U00DF> <U00DF>;IGNORE;IGNORE;IGNORE
+order_end
END LC_COLLATE
LC_MONETARY

@ -0,0 +1,47 @@
--- locales/de_DE 2009-10-20 11:40:39.000000000 +0530
+++ locales/de_DE@WINDOWS 2009-10-20 11:40:26.000000000 +0530
@@ -39,6 +39,44 @@ LC_COLLATE
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
+reorder-after <DTT>
+<U0027> IGNORE;<MIN>;<MIN>;IGNORE
+<U002D> IGNORE;<CAP>;<MIN>;IGNORE
+<U0020> <U0020>;<BAS>;<MIN>;IGNORE
+<U0021> <U0021>;<BAS>;<MIN>;IGNORE
+<U0022> <U0022>;<BAS>;<MIN>;IGNORE
+<U0023> <U0023>;<BAS>;<MIN>;IGNORE
+<U0024> <U0024>;<BAS>;<MIN>;IGNORE
+<U0025> <U0025>;<BAS>;<MIN>;IGNORE
+<U0026> <U0026>;<BAS>;<MIN>;IGNORE
+<U0028> <U0028>;<BAS>;<MIN>;IGNORE
+<U0029> <U0029>;<BAS>;<MIN>;IGNORE
+<U002A> <U002A>;<BAS>;<MIN>;IGNORE
+<U002C> <U002C>;<BAS>;<MIN>;IGNORE
+<U002E> <U002E>;<BAS>;<MIN>;IGNORE
+<U002F> <U002F>;<BAS>;<MIN>;IGNORE
+<U003A> <U003A>;<BAS>;<MIN>;IGNORE
+<U003B> <U003B>;<BAS>;<MIN>;IGNORE
+<U003F> <U003F>;<BAS>;<MIN>;IGNORE
+<U0040> <U0040>;<BAS>;<MIN>;IGNORE
+<U005B> <U005B>;<BAS>;<MIN>;IGNORE
+<U005C> <U005C>;<BAS>;<MIN>;IGNORE
+<U005D> <U005D>;<BAS>;<MIN>;IGNORE
+<U005E> <U005E>;<BAS>;<MIN>;IGNORE
+<U005F> <U005F>;<BAS>;<MIN>;IGNORE
+<U0060> <U0060>;<BAS>;<MIN>;IGNORE
+<U007B> <U007B>;<BAS>;<MIN>;IGNORE
+<U007C> <U007C>;<BAS>;<MIN>;IGNORE
+<U007D> <U007D>;<BAS>;<MIN>;IGNORE
+<U007E> <U007E>;<BAS>;<MIN>;IGNORE
+<U002B> <U002B>;<BAS>;<MIN>;IGNORE
+<U003C> <U003C>;<BAS>;<MIN>;IGNORE
+<U003D> <U003D>;<BAS>;<MIN>;IGNORE
+<U003E> <U003E>;<BAS>;<MIN>;IGNORE
+<U00A7> <U00A7>;<BAS>;<MIN>;IGNORE
+
+reorder-end
+
END LC_COLLATE
LC_MONETARY

@ -0,0 +1,118 @@
--- locales/en_US 2011-02-16 21:23:35.120960001 +0530
+++ locales/en_US@HPUX 2011-02-16 21:18:54.096520921 +0530
@@ -35,10 +35,113 @@ copy "en_GB"
END LC_CTYPE
LC_COLLATE
+order_start forward;forward;forward;position
-% Copy the template from ISO/IEC 14651
-copy "iso14651_t1"
+<U0020> <U0020>;IGNORE;IGNORE;IGNORE
+<U0030> <U0030>;IGNORE;IGNORE;IGNORE
+<U0031> <U0031>;IGNORE;IGNORE;IGNORE
+<U0032> <U0032>;IGNORE;IGNORE;IGNORE
+<U0033> <U0033>;IGNORE;IGNORE;IGNORE
+<U0034> <U0034>;IGNORE;IGNORE;IGNORE
+<U0035> <U0035>;IGNORE;IGNORE;IGNORE
+<U0036> <U0036>;IGNORE;IGNORE;IGNORE
+<U0037> <U0037>;IGNORE;IGNORE;IGNORE
+<U0038> <U0038>;IGNORE;IGNORE;IGNORE
+<U0039> <U0039>;IGNORE;IGNORE;IGNORE
+<U0041> <U0041>;IGNORE;IGNORE;IGNORE
+<U0061> <U0041>;IGNORE;IGNORE;IGNORE
+<U00C4> <U00C4>;IGNORE;IGNORE;IGNORE
+<U00E4> <U00C4>;IGNORE;IGNORE;IGNORE
+<U0042> <U0042>;IGNORE;IGNORE;IGNORE
+<U0062> <U0042>;IGNORE;IGNORE;IGNORE
+<U0043> <U0043>;IGNORE;IGNORE;IGNORE
+<U0063> <U0043>;IGNORE;IGNORE;IGNORE
+<U0044> <U0044>;IGNORE;IGNORE;IGNORE
+<U0064> <U0044>;IGNORE;IGNORE;IGNORE
+<U0045> <U0045>;IGNORE;IGNORE;IGNORE
+<U0065> <U0045>;IGNORE;IGNORE;IGNORE
+<U0046> <U0046>;IGNORE;IGNORE;IGNORE
+<U0066> <U0046>;IGNORE;IGNORE;IGNORE
+<U0047> <U0047>;IGNORE;IGNORE;IGNORE
+<U0067> <U0047>;IGNORE;IGNORE;IGNORE
+<U0048> <U0048>;IGNORE;IGNORE;IGNORE
+<U0068> <U0048>;IGNORE;IGNORE;IGNORE
+<U0049> <U0049>;IGNORE;IGNORE;IGNORE
+<U0069> <U0049>;IGNORE;IGNORE;IGNORE
+<U004A> <U004A>;IGNORE;IGNORE;IGNORE
+<U006A> <U004A>;IGNORE;IGNORE;IGNORE
+<U004B> <U004B>;IGNORE;IGNORE;IGNORE
+<U006B> <U004B>;IGNORE;IGNORE;IGNORE
+<U004C> <U004C>;IGNORE;IGNORE;IGNORE
+<U006C> <U004C>;IGNORE;IGNORE;IGNORE
+<U004D> <U004D>;IGNORE;IGNORE;IGNORE
+<U006D> <U004D>;IGNORE;IGNORE;IGNORE
+<U004E> <U004E>;IGNORE;IGNORE;IGNORE
+<U006E> <U004E>;IGNORE;IGNORE;IGNORE
+<U004F> <U004F>;IGNORE;IGNORE;IGNORE
+<U006F> <U004F>;IGNORE;IGNORE;IGNORE
+<U00D6> <U00D6>;IGNORE;IGNORE;IGNORE
+<U00F6> <U00D6>;IGNORE;IGNORE;IGNORE
+<U0050> <U0050>;IGNORE;IGNORE;IGNORE
+<U0070> <U0050>;IGNORE;IGNORE;IGNORE
+<U0051> <U0051>;IGNORE;IGNORE;IGNORE
+<U0071> <U0051>;IGNORE;IGNORE;IGNORE
+<U0052> <U0052>;IGNORE;IGNORE;IGNORE
+<U0072> <U0052>;IGNORE;IGNORE;IGNORE
+<U0053> <U0053>;IGNORE;IGNORE;IGNORE
+<U0073> <U0053>;IGNORE;IGNORE;IGNORE
+<U00DF> <U00DF>;IGNORE;IGNORE;IGNORE
+<U0054> <U0054>;IGNORE;IGNORE;IGNORE
+<U0074> <U0054>;IGNORE;IGNORE;IGNORE
+<U0055> <U0055>;IGNORE;IGNORE;IGNORE
+<U0075> <U0055>;IGNORE;IGNORE;IGNORE
+<U00DC> <U00DC>;IGNORE;IGNORE;IGNORE
+<U00FC> <U00DC>;IGNORE;IGNORE;IGNORE
+<U0056> <U0056>;IGNORE;IGNORE;IGNORE
+<U0076> <U0056>;IGNORE;IGNORE;IGNORE
+<U0057> <U0057>;IGNORE;IGNORE;IGNORE
+<U0077> <U0057>;IGNORE;IGNORE;IGNORE
+<U0058> <U0058>;IGNORE;IGNORE;IGNORE
+<U0078> <U0058>;IGNORE;IGNORE;IGNORE
+<U0059> <U0059>;IGNORE;IGNORE;IGNORE
+<U0079> <U0059>;IGNORE;IGNORE;IGNORE
+<U005A> <U005A>;IGNORE;IGNORE;IGNORE
+<U007A> <U005A>;IGNORE;IGNORE;IGNORE
+<U0028> <U0028>;IGNORE;IGNORE;IGNORE
+<U0029> <U0029>;IGNORE;IGNORE;IGNORE
+<U005B> <U005B>;IGNORE;IGNORE;IGNORE
+<U005D> <U005D>;IGNORE;IGNORE;IGNORE
+<U007B> <U007B>;IGNORE;IGNORE;IGNORE
+<U007D> <U007D>;IGNORE;IGNORE;IGNORE
+<U003C> <U003C>;IGNORE;IGNORE;IGNORE
+<U003E> <U003E>;IGNORE;IGNORE;IGNORE
+<U0060> <U0060>;IGNORE;IGNORE;IGNORE
+<U0027> <U0027>;IGNORE;IGNORE;IGNORE
+<U003D> <U003D>;IGNORE;IGNORE;IGNORE
+<U002B> <U002B>;IGNORE;IGNORE;IGNORE
+<U002D> <U002D>;IGNORE;IGNORE;IGNORE
+<U002A> <U002A>;IGNORE;IGNORE;IGNORE
+<U002E> <U002E>;IGNORE;IGNORE;IGNORE
+<U002C> <U002C>;IGNORE;IGNORE;IGNORE
+<U003B> <U003B>;IGNORE;IGNORE;IGNORE
+<U003A> <U003A>;IGNORE;IGNORE;IGNORE
+<U0022> <U0022>;IGNORE;IGNORE;IGNORE
+<U003F> <U003F>;IGNORE;IGNORE;IGNORE
+<U0021> <U0021>;IGNORE;IGNORE;IGNORE
+<U002F> <U002F>;IGNORE;IGNORE;IGNORE
+<U005C> <U005C>;IGNORE;IGNORE;IGNORE
+<U007C> <U007C>;IGNORE;IGNORE;IGNORE
+<U00A7> <U00A7>;IGNORE;IGNORE;IGNORE
+<U0040> <U0040>;IGNORE;IGNORE;IGNORE
+<U0026> <U0026>;IGNORE;IGNORE;IGNORE
+<U0025> <U0025>;IGNORE;IGNORE;IGNORE
+<U0023> <U0023>;IGNORE;IGNORE;IGNORE
+<U0024> <U0024>;IGNORE;IGNORE;IGNORE
+<U005E> <U005E>;IGNORE;IGNORE;IGNORE
+<U007E> <U007E>;IGNORE;IGNORE;IGNORE
+<U005F> <U005F>;IGNORE;IGNORE;IGNORE
+order_end
END LC_COLLATE
LC_MONETARY

@ -0,0 +1,14 @@
--- locales/en_US 2009-01-06 10:13:22.000000000 +1000
+++ locales/en_US@POSIX 2008-10-30 01:44:30.000000000 +1000
@@ -35,10 +35,7 @@
END LC_CTYPE
LC_COLLATE
-
-% Copy the template from ISO/IEC 14651
-copy "iso14651_t1"
-
+copy "POSIX"
END LC_COLLATE
LC_MONETARY

@ -0,0 +1,119 @@
diff -u locales/en_US locales/en_US@Solaris
--- locales/en_US 2006-07-31 08:19:44.000000000 +1000
+++ locales/en_US@Solaris 2011-02-04 17:37:07.000000000 +1000
@@ -35,10 +35,113 @@
END LC_CTYPE
LC_COLLATE
+order_start forward;forward;forward;position
-% Copy the template from ISO/IEC 14651
-copy "iso14651_t1"
+<U0020> <U0020>;IGNORE;IGNORE;IGNORE
+<U0060> <U0060>;IGNORE;IGNORE;IGNORE
+<U005E> <U005E>;IGNORE;IGNORE;IGNORE
+<U005F> <U005F>;IGNORE;IGNORE;IGNORE
+<U002D> <U002D>;IGNORE;IGNORE;IGNORE
+<U002C> <U002C>;IGNORE;IGNORE;IGNORE
+<U003B> <U003B>;IGNORE;IGNORE;IGNORE
+<U003A> <U003A>;IGNORE;IGNORE;IGNORE
+<U0021> <U0021>;IGNORE;IGNORE;IGNORE
+<U003F> <U003F>;IGNORE;IGNORE;IGNORE
+<U002E> <U002E>;IGNORE;IGNORE;IGNORE
+<U0027> <U0027>;IGNORE;IGNORE;IGNORE
+<U0022> <U0022>;IGNORE;IGNORE;IGNORE
+<U0028> <U0028>;IGNORE;IGNORE;IGNORE
+<U0029> <U0029>;IGNORE;IGNORE;IGNORE
+<U005B> <U005B>;IGNORE;IGNORE;IGNORE
+<U005D> <U005D>;IGNORE;IGNORE;IGNORE
+<U007B> <U007B>;IGNORE;IGNORE;IGNORE
+<U007D> <U007D>;IGNORE;IGNORE;IGNORE
+<U00A7> <U00A7>;IGNORE;IGNORE;IGNORE
+<U0040> <U0040>;IGNORE;IGNORE;IGNORE
+<U002A> <U002A>;IGNORE;IGNORE;IGNORE
+<U002F> <U002F>;IGNORE;IGNORE;IGNORE
+<U005C> <U005C>;IGNORE;IGNORE;IGNORE
+<U0026> <U0026>;IGNORE;IGNORE;IGNORE
+<U0023> <U0023>;IGNORE;IGNORE;IGNORE
+<U0025> <U0025>;IGNORE;IGNORE;IGNORE
+<U002B> <U002B>;IGNORE;IGNORE;IGNORE
+<U003C> <U003C>;IGNORE;IGNORE;IGNORE
+<U003D> <U003D>;IGNORE;IGNORE;IGNORE
+<U003E> <U003E>;IGNORE;IGNORE;IGNORE
+<U007C> <U007C>;IGNORE;IGNORE;IGNORE
+<U007E> <U007E>;IGNORE;IGNORE;IGNORE
+<U0024> <U0024>;IGNORE;IGNORE;IGNORE
+<U0030> <U0030>;IGNORE;IGNORE;IGNORE
+<U0031> <U0031>;IGNORE;IGNORE;IGNORE
+<U0032> <U0032>;IGNORE;IGNORE;IGNORE
+<U0033> <U0033>;IGNORE;IGNORE;IGNORE
+<U0034> <U0034>;IGNORE;IGNORE;IGNORE
+<U0035> <U0035>;IGNORE;IGNORE;IGNORE
+<U0036> <U0036>;IGNORE;IGNORE;IGNORE
+<U0037> <U0037>;IGNORE;IGNORE;IGNORE
+<U0038> <U0038>;IGNORE;IGNORE;IGNORE
+<U0039> <U0039>;IGNORE;IGNORE;IGNORE
+<U0061> <U0061>;IGNORE;IGNORE;IGNORE
+<U0041> <U0041>;IGNORE;IGNORE;IGNORE
+<U00E4> <U00E4>;IGNORE;IGNORE;IGNORE
+<U00C4> <U00C4>;IGNORE;IGNORE;IGNORE
+<U0062> <U0062>;IGNORE;IGNORE;IGNORE
+<U0042> <U0042>;IGNORE;IGNORE;IGNORE
+<U0063> <U0063>;IGNORE;IGNORE;IGNORE
+<U0043> <U0043>;IGNORE;IGNORE;IGNORE
+<U0064> <U0064>;IGNORE;IGNORE;IGNORE
+<U0044> <U0044>;IGNORE;IGNORE;IGNORE
+<U0065> <U0065>;IGNORE;IGNORE;IGNORE
+<U0045> <U0045>;IGNORE;IGNORE;IGNORE
+<U0066> <U0066>;IGNORE;IGNORE;IGNORE
+<U0046> <U0046>;IGNORE;IGNORE;IGNORE
+<U0067> <U0067>;IGNORE;IGNORE;IGNORE
+<U0047> <U0047>;IGNORE;IGNORE;IGNORE
+<U0068> <U0068>;IGNORE;IGNORE;IGNORE
+<U0048> <U0048>;IGNORE;IGNORE;IGNORE
+<U0069> <U0069>;IGNORE;IGNORE;IGNORE
+<U0049> <U0049>;IGNORE;IGNORE;IGNORE
+<U006A> <U006A>;IGNORE;IGNORE;IGNORE
+<U004A> <U004A>;IGNORE;IGNORE;IGNORE
+<U006B> <U006B>;IGNORE;IGNORE;IGNORE
+<U004B> <U004B>;IGNORE;IGNORE;IGNORE
+<U006C> <U006C>;IGNORE;IGNORE;IGNORE
+<U004C> <U004C>;IGNORE;IGNORE;IGNORE
+<U006D> <U006D>;IGNORE;IGNORE;IGNORE
+<U004D> <U004D>;IGNORE;IGNORE;IGNORE
+<U006E> <U006E>;IGNORE;IGNORE;IGNORE
+<U004E> <U004E>;IGNORE;IGNORE;IGNORE
+<U006F> <U006F>;IGNORE;IGNORE;IGNORE
+<U004F> <U004F>;IGNORE;IGNORE;IGNORE
+<U00F6> <U00F6>;IGNORE;IGNORE;IGNORE
+<U00D6> <U00D6>;IGNORE;IGNORE;IGNORE
+<U0070> <U0070>;IGNORE;IGNORE;IGNORE
+<U0050> <U0050>;IGNORE;IGNORE;IGNORE
+<U0071> <U0071>;IGNORE;IGNORE;IGNORE
+<U0051> <U0051>;IGNORE;IGNORE;IGNORE
+<U0072> <U0072>;IGNORE;IGNORE;IGNORE
+<U0052> <U0052>;IGNORE;IGNORE;IGNORE
+<U0073> <U0073>;IGNORE;IGNORE;IGNORE
+<U0053> <U0053>;IGNORE;IGNORE;IGNORE
+<U0074> <U0074>;IGNORE;IGNORE;IGNORE
+<U0054> <U0054>;IGNORE;IGNORE;IGNORE
+<U0075> <U0075>;IGNORE;IGNORE;IGNORE
+<U0055> <U0055>;IGNORE;IGNORE;IGNORE
+<U00FC> <U00FC>;IGNORE;IGNORE;IGNORE
+<U00DC> <U00DC>;IGNORE;IGNORE;IGNORE
+<U0076> <U0076>;IGNORE;IGNORE;IGNORE
+<U0056> <U0056>;IGNORE;IGNORE;IGNORE
+<U0077> <U0077>;IGNORE;IGNORE;IGNORE
+<U0057> <U0057>;IGNORE;IGNORE;IGNORE
+<U0078> <U0078>;IGNORE;IGNORE;IGNORE
+<U0058> <U0058>;IGNORE;IGNORE;IGNORE
+<U0079> <U0079>;IGNORE;IGNORE;IGNORE
+<U0059> <U0059>;IGNORE;IGNORE;IGNORE
+<U007A> <U007A>;IGNORE;IGNORE;IGNORE
+<U005A> <U005A>;IGNORE;IGNORE;IGNORE
+<U00DF> <U00DF>;IGNORE;IGNORE;IGNORE
+order_end
END LC_COLLATE
LC_MONETARY

@ -0,0 +1,47 @@
--- locales/en_US 2009-10-20 11:40:39.000000000 +0530
+++ locales/en_US@WINDOWS 2009-10-20 11:40:26.000000000 +0530
@@ -39,6 +39,44 @@ LC_COLLATE
% Copy the template from ISO/IEC 14651
copy "iso14651_t1"
+reorder-after <DTT>
+<U0027> IGNORE;<MIN>;<MIN>;IGNORE
+<U002D> IGNORE;<CAP>;<MIN>;IGNORE
+<U0020> <U0020>;<BAS>;<MIN>;IGNORE
+<U0021> <U0021>;<BAS>;<MIN>;IGNORE
+<U0022> <U0022>;<BAS>;<MIN>;IGNORE
+<U0023> <U0023>;<BAS>;<MIN>;IGNORE
+<U0024> <U0024>;<BAS>;<MIN>;IGNORE
+<U0025> <U0025>;<BAS>;<MIN>;IGNORE
+<U0026> <U0026>;<BAS>;<MIN>;IGNORE
+<U0028> <U0028>;<BAS>;<MIN>;IGNORE
+<U0029> <U0029>;<BAS>;<MIN>;IGNORE
+<U002A> <U002A>;<BAS>;<MIN>;IGNORE
+<U002C> <U002C>;<BAS>;<MIN>;IGNORE
+<U002E> <U002E>;<BAS>;<MIN>;IGNORE
+<U002F> <U002F>;<BAS>;<MIN>;IGNORE
+<U003A> <U003A>;<BAS>;<MIN>;IGNORE
+<U003B> <U003B>;<BAS>;<MIN>;IGNORE
+<U003F> <U003F>;<BAS>;<MIN>;IGNORE
+<U0040> <U0040>;<BAS>;<MIN>;IGNORE
+<U005B> <U005B>;<BAS>;<MIN>;IGNORE
+<U005C> <U005C>;<BAS>;<MIN>;IGNORE
+<U005D> <U005D>;<BAS>;<MIN>;IGNORE
+<U005E> <U005E>;<BAS>;<MIN>;IGNORE
+<U005F> <U005F>;<BAS>;<MIN>;IGNORE
+<U0060> <U0060>;<BAS>;<MIN>;IGNORE
+<U007B> <U007B>;<BAS>;<MIN>;IGNORE
+<U007C> <U007C>;<BAS>;<MIN>;IGNORE
+<U007D> <U007D>;<BAS>;<MIN>;IGNORE
+<U007E> <U007E>;<BAS>;<MIN>;IGNORE
+<U002B> <U002B>;<BAS>;<MIN>;IGNORE
+<U003C> <U003C>;<BAS>;<MIN>;IGNORE
+<U003D> <U003D>;<BAS>;<MIN>;IGNORE
+<U003E> <U003E>;<BAS>;<MIN>;IGNORE
+<U00A7> <U00A7>;<BAS>;<MIN>;IGNORE
+
+reorder-end
+
END LC_COLLATE
LC_MONETARY

@ -0,0 +1,11 @@
--- locales/es_ES 2009-05-15 14:56:17.000000000 +1000
+++ locales/es_ES@SAP 2010-09-02 18:50:47.000000000 +1000
@@ -287,7 +287,7 @@
<SPECIAL>
<U00A0> <U00A0>;<U00A0>;<U00A0>;IGNORE
-<U0020> IGNORE;IGNORE;IGNORE;<U0020>
+<U0020> <U0020>;IGNORE;<U0020>;<U0020>
<U0009> IGNORE;IGNORE;IGNORE;<U0009>
<U000B> IGNORE;IGNORE;IGNORE;<U000B>
<U000D> IGNORE;IGNORE;IGNORE;<U000D>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,11 @@
--- locales/sk_SK 2018-01-09 11:45:15.050092249 +0100
+++ locales/sk_SK@SAP 2018-01-09 11:45:38.936821341 +0100
@@ -74,7 +74,7 @@
% Triedenie
LC_COLLATE
-copy "cs_CZ"
+copy "cs_CZ@SAP"
END LC_COLLATE
LC_MESSAGES

@ -0,0 +1,63 @@
--- locales/tr_TR 2018-01-09 12:01:15.208202774 +0100
+++ locales/tr_TR@SAP 2018-01-09 12:00:03.027021406 +0100
@@ -3143,7 +3143,7 @@
toupper /
(<U0061>,<U0041>);(<U0062>,<U0042>);(<U0063>,<U0043>);(<U0064>,<U0044>);/
(<U0065>,<U0045>);(<U0066>,<U0046>);(<U0067>,<U0047>);(<U0068>,<U0048>);/
- (<U0069>,<U0130>);(<U006A>,<U004A>);(<U006B>,<U004B>);(<U006C>,<U004C>);/
+ (<U0069>,<U0049>);(<U006A>,<U004A>);(<U006B>,<U004B>);(<U006C>,<U004C>);/
(<U006D>,<U004D>);(<U006E>,<U004E>);(<U006F>,<U004F>);(<U0070>,<U0050>);/
(<U0071>,<U0051>);(<U0072>,<U0052>);(<U0073>,<U0053>);(<U0074>,<U0054>);/
(<U0075>,<U0055>);(<U0076>,<U0056>);(<U0077>,<U0057>);(<U0078>,<U0058>);/
@@ -3155,13 +3155,13 @@
(<U00F1>,<U00D1>);(<U00F2>,<U00D2>);(<U00F3>,<U00D3>);(<U00F4>,<U00D4>);/
(<U00F5>,<U00D5>);(<U00F6>,<U00D6>);(<U00F8>,<U00D8>);(<U00F9>,<U00D9>);/
(<U00FA>,<U00DA>);(<U00FB>,<U00DB>);(<U00FC>,<U00DC>);(<U00FD>,<U00DD>);/
- (<U00FE>,<U00DE>);(<U00FF>,<U0178>);(<U0101>,<U0100>);(<U0103>,<U0102>);/
+ (<U00FE>,<U00DE>);(<U0101>,<U0100>);(<U0103>,<U0102>);/
(<U0105>,<U0104>);(<U0107>,<U0106>);(<U0109>,<U0108>);(<U010B>,<U010A>);/
(<U010D>,<U010C>);(<U010F>,<U010E>);(<U0111>,<U0110>);(<U0113>,<U0112>);/
(<U0115>,<U0114>);(<U0117>,<U0116>);(<U0119>,<U0118>);(<U011B>,<U011A>);/
(<U011D>,<U011C>);(<U011F>,<U011E>);(<U0121>,<U0120>);(<U0123>,<U0122>);/
(<U0125>,<U0124>);(<U0127>,<U0126>);(<U0129>,<U0128>);(<U012B>,<U012A>);/
- (<U012D>,<U012C>);(<U012F>,<U012E>);(<U0131>,<U0049>);(<U0133>,<U0132>);/
+ (<U012D>,<U012C>);(<U012F>,<U012E>);(<U0131>,<U0130>);(<U0133>,<U0132>);/
(<U0135>,<U0134>);(<U0137>,<U0136>);(<U013A>,<U0139>);(<U013C>,<U013B>);/
(<U013E>,<U013D>);(<U0140>,<U013F>);(<U0142>,<U0141>);(<U0144>,<U0143>);/
(<U0146>,<U0145>);(<U0148>,<U0147>);(<U014B>,<U014A>);(<U014D>,<U014C>);/
@@ -3524,7 +3524,7 @@
tolower /
(<U0041>,<U0061>);(<U0042>,<U0062>);(<U0043>,<U0063>);(<U0044>,<U0064>);/
(<U0045>,<U0065>);(<U0046>,<U0066>);(<U0047>,<U0067>);(<U0048>,<U0068>);/
- (<U0049>,<U0131>);(<U004A>,<U006A>);(<U004B>,<U006B>);(<U004C>,<U006C>);/
+ (<U0049>,<U0069>);(<U004A>,<U006A>);(<U004B>,<U006B>);(<U004C>,<U006C>);/
(<U004D>,<U006D>);(<U004E>,<U006E>);(<U004F>,<U006F>);(<U0050>,<U0070>);/
(<U0051>,<U0071>);(<U0052>,<U0072>);(<U0053>,<U0073>);(<U0054>,<U0074>);/
(<U0055>,<U0075>);(<U0056>,<U0076>);(<U0057>,<U0077>);(<U0058>,<U0078>);/
@@ -3542,7 +3542,7 @@
(<U0118>,<U0119>);(<U011A>,<U011B>);(<U011C>,<U011D>);(<U011E>,<U011F>);/
(<U0120>,<U0121>);(<U0122>,<U0123>);(<U0124>,<U0125>);(<U0126>,<U0127>);/
(<U0128>,<U0129>);(<U012A>,<U012B>);(<U012C>,<U012D>);(<U012E>,<U012F>);/
- (<U0130>,<U0069>);(<U0132>,<U0133>);(<U0134>,<U0135>);(<U0136>,<U0137>);/
+ (<U0130>,<U0131>);(<U0132>,<U0133>);(<U0134>,<U0135>);(<U0136>,<U0137>);/
(<U0139>,<U013A>);(<U013B>,<U013C>);(<U013D>,<U013E>);(<U013F>,<U0140>);/
(<U0141>,<U0142>);(<U0143>,<U0144>);(<U0145>,<U0146>);(<U0147>,<U0148>);/
(<U014A>,<U014B>);(<U014C>,<U014D>);(<U014E>,<U014F>);(<U0150>,<U0151>);/
@@ -3584,7 +3584,7 @@
(<U038F>,<U03CE>);(<U0391>,<U03B1>);(<U0392>,<U03B2>);(<U0393>,<U03B3>);/
(<U0394>,<U03B4>);(<U0395>,<U03B5>);(<U0396>,<U03B6>);(<U0397>,<U03B7>);/
(<U0398>,<U03B8>);(<U0399>,<U03B9>);(<U039A>,<U03BA>);(<U039B>,<U03BB>);/
- (<U039C>,<U03BC>);(<U039D>,<U03BD>);(<U039E>,<U03BE>);(<U039F>,<U03BF>);/
+ (<U039C>,<U00B5>);(<U039D>,<U03BD>);(<U039E>,<U03BE>);(<U039F>,<U03BF>);/
(<U03A0>,<U03C0>);(<U03A1>,<U03C1>);(<U03A3>,<U03C3>);(<U03A4>,<U03C4>);/
(<U03A5>,<U03C5>);(<U03A6>,<U03C6>);(<U03A7>,<U03C7>);(<U03A8>,<U03C8>);/
(<U03A9>,<U03C9>);(<U03AA>,<U03CA>);(<U03AB>,<U03CB>);(<U03CF>,<U03D7>);/
@@ -3919,7 +3919,7 @@
(<U0115>,<U0114>);(<U0117>,<U0116>);(<U0119>,<U0118>);(<U011B>,<U011A>);/
(<U011D>,<U011C>);(<U011F>,<U011E>);(<U0121>,<U0120>);(<U0123>,<U0122>);/
(<U0125>,<U0124>);(<U0127>,<U0126>);(<U0129>,<U0128>);(<U012B>,<U012A>);/
- (<U012D>,<U012C>);(<U012F>,<U012E>);(<U0131>,<U0049>);(<U0133>,<U0132>);/
+ (<U012D>,<U012C>);(<U012F>,<U012E>);(<U0131>,<U0130>);(<U0133>,<U0132>);/
(<U0135>,<U0134>);(<U0137>,<U0136>);(<U013A>,<U0139>);(<U013C>,<U013B>);/
(<U013E>,<U013D>);(<U0140>,<U013F>);(<U0142>,<U0141>);(<U0144>,<U0143>);/
(<U0146>,<U0145>);(<U0148>,<U0147>);(<U014B>,<U014A>);(<U014D>,<U014C>);/

@ -0,0 +1,45 @@
diff -u saplocales-2.2.5/SAPSHIFT_JIS\~ saplocales-2.2.5/SAPSHIFT_JIS
--- saplocales-2.2.5/SAPSHIFT_JIS~ 2002-04-30 22:45:08.000000000 +1000
+++ saplocales-2.2.5/SAPSHIFT_JIS 2010-01-26 19:13:01.000000000 +1000
@@ -1,9 +1,10 @@
-<code_set_name> SJIS
+<code_set_name> SAPSHIFT_JIS
<comment_char> %
<escape_char> /
<mb_cur_min> 1
<mb_cur_max> 2
+% alias SAPSJIS
CHARMAP
<U0000> /x00 NULL (NUL)
<U0001> /x01 START OF HEADING (SOH)
@@ -98,7 +98,7 @@ CHARMAP
<U0059> /x59 LATIN CAPITAL LETTER Y
<U005A> /x5a LATIN CAPITAL LETTER Z
<U005B> /x5b LEFT SQUARE BRACKET
-<U00A5> /x5c YEN SIGN
+<U005C> /x5c YEN SIGN
<U005D> /x5d RIGHT SQUARE BRACKET
<U005E> /x5e CIRCUMFLEX ACCENT
<U005F> /x5f LOW LINE
@@ -132,7 +132,7 @@ CHARMAP
<U007B> /x7b LEFT CURLY BRACKET
<U007C> /x7c VERTICAL LINE
<U007D> /x7d RIGHT CURLY BRACKET
-<U203E> /x7e OVERLINE
+<U007E> /x7e OVERLINE
<U007F> /x7f DELETE (DEL)
<U3000> /x81/x40 IDEOGRAPHIC SPACE
diff -u saplocales-2.2.5/SAPSJIS.c\~ saplocales-2.2.5/SAPSJIS.c
--- saplocales-2.2.5/SAPSJIS.c~ 2010-01-26 13:00:46.000000000 +1000
+++ saplocales-2.2.5/SAPSJIS.c 2010-01-26 20:19:52.000000000 +1000
@@ -4328,7 +4328,7 @@
};
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "SJIS//"
+#define CHARSET_NAME "SAPSJIS//"
#define FROM_LOOP from_sjis
#define TO_LOOP to_sjis
#define DEFINE_INIT 1

@ -0,0 +1,13 @@
diff -ru compat-locales-sap-1.0.10.orig/saplocales-2.2.5/Makefile compat-locales-sap-1.0.10/saplocales-2.2.5/Makefile
--- compat-locales-sap-1.0.10.orig/saplocales-2.2.5/Makefile 2019-08-15 11:05:54.078849986 +0200
+++ compat-locales-sap-1.0.10/saplocales-2.2.5/Makefile 2019-08-15 11:28:03.573044382 +0200
@@ -31,7 +31,7 @@
-include compiler.h \
-I. -Iiconv $(NEWFLAGS)
-LDFLAGS= -shared
+LDFLAGS= -shared -z now
all: modules locales

@ -0,0 +1,947 @@
diff -up saplocales-2.2.5/ASIANUNI.c-sap saplocales-2.2.5/ASIANUNI.c
--- saplocales-2.2.5/ASIANUNI.c-sap 2009-02-18 15:07:53.000000000 -0800
+++ saplocales-2.2.5/ASIANUNI.c 2009-02-18 15:09:57.000000000 -0800
@@ -14151,7 +14151,8 @@ static const char from_ucs4_asianuni[0x7
} \
} \
\
- *((uint32_t *) outptr)++ = ch; \
+ put32 (outptr, ch); \
+ outptr += 4; \
}
#include <iconv/loop.c>
@@ -14163,7 +14164,7 @@ static const char from_ucs4_asianuni[0x7
#define LOOPFCT TO_LOOP
#define BODY \
{ \
- uint32_t ch = *((uint32_t *) inptr); \
+ uint32_t ch = get32 (inptr); \
const char *cp; \
\
if (ch <= 0x7f) \
diff -up saplocales-2.2.5/DIOCLETIAN.c-sap saplocales-2.2.5/DIOCLETIAN.c
--- saplocales-2.2.5/DIOCLETIAN.c-sap 2009-02-18 15:13:56.000000000 -0800
+++ saplocales-2.2.5/DIOCLETIAN.c 2009-02-18 15:15:09.000000000 -0800
@@ -561,7 +561,8 @@ static const uint32_t from_ucs4_diocleti
uint32_t ch = to_ucs4_diocletian[*inptr]; \
++inptr; \
\
- *((uint32_t *) outptr)++ = ch; \
+ put32 (outptr, ch); \
+ outptr += 4; \
}
#include <iconv/loop.c>
@@ -572,7 +573,7 @@ static const uint32_t from_ucs4_diocleti
#define LOOPFCT TO_LOOP
#define BODY \
{ \
- uint32_t ch = *((uint32_t *) inptr); \
+ uint32_t ch = get32 (inptr); \
\
if (ch != 0 && from_ucs4_diocletian[ch] == '\0') \
{ \
diff -up saplocales-2.2.5/EUROJAPAN.c-sap saplocales-2.2.5/EUROJAPAN.c
--- saplocales-2.2.5/EUROJAPAN.c-sap 2009-02-18 15:10:30.000000000 -0800
+++ saplocales-2.2.5/EUROJAPAN.c 2009-02-18 15:11:37.000000000 -0800
@@ -3679,7 +3679,8 @@ static const char from_ucs4_double[0x1eb
} \
} \
\
- *((uint32_t *) outptr)++ = ch; \
+ put32 (outptr, ch); \
+ outptr += 4; \
}
#include <iconv/loop.c>
@@ -3691,7 +3692,7 @@ static const char from_ucs4_double[0x1eb
#define LOOPFCT TO_LOOP
#define BODY \
{ \
- uint32_t ch = *((uint32_t *) inptr); \
+ uint32_t ch = get32 (inptr); \
const char *cp; \
\
if (ch <= 0xff) \
diff -up saplocales-2.2.5/iconv/loop.c-sap saplocales-2.2.5/iconv/loop.c
--- saplocales-2.2.5/iconv/loop.c-sap 2002-04-30 05:45:10.000000000 -0700
+++ saplocales-2.2.5/iconv/loop.c 2009-02-18 14:47:18.000000000 -0800
@@ -1,5 +1,5 @@
/* Conversion loop frame work.
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998-2002, 2003, 2005, 2008 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -43,6 +43,9 @@
INIT_PARAMS code to define and initialize variables from params.
UPDATE_PARAMS code to store result in params.
+
+ ONEBYTE_BODY body of the specialized conversion function for a
+ single byte from the current character set to INTERNAL.
*/
#include <assert.h>
@@ -133,6 +136,8 @@
/* We need at least one byte for the next round. */
#ifndef MIN_NEEDED_INPUT
# error "MIN_NEEDED_INPUT definition missing"
+#elif MIN_NEEDED_INPUT < 1
+# error "MIN_NEEDED_INPUT must be >= 1"
#endif
/* Let's see how many bytes we produce. */
@@ -143,6 +148,8 @@
/* We produce at least one byte in the next round. */
#ifndef MIN_NEEDED_OUTPUT
# error "MIN_NEEDED_OUTPUT definition missing"
+#elif MIN_NEEDED_OUTPUT < 1
+# error "MIN_NEEDED_OUTPUT must be >= 1"
#endif
/* Let's see how many bytes we produce. */
@@ -167,6 +174,15 @@
# define EXTRA_LOOP_DECLS
#endif
+/* Allow using UPDATE_PARAMS in macros where #ifdef UPDATE_PARAMS test
+ isn't possible. */
+#ifndef UPDATE_PARAMS
+# define UPDATE_PARAMS do { } while (0)
+#endif
+#ifndef REINIT_PARAMS
+# define REINIT_PARAMS do { } while (0)
+#endif
+
/* To make it easier for the writers of the modules, we define a macro
to test whether we have to ignore errors. */
@@ -174,10 +190,29 @@
(irreversible != NULL && (flags & __GCONV_IGNORE_ERRORS))
-/* Error handling with transliteration/transcription function use and
- ignoring of errors. Note that we cannot use the do while (0) trick
- since `break' and `continue' must reach certain points. */
-#define STANDARD_ERR_HANDLER(Incr) \
+/* Error handling for the FROM_LOOP direction, with ignoring of errors.
+ Note that we cannot use the do while (0) trick since `break' and
+ `continue' must reach certain points. */
+#define STANDARD_FROM_LOOP_ERR_HANDLER(Incr) \
+ { \
+ result = __GCONV_ILLEGAL_INPUT; \
+ \
+ if (! ignore_errors_p ()) \
+ break; \
+ \
+ /* We ignore the invalid input byte sequence. */ \
+ inptr += (Incr); \
+ ++*irreversible; \
+ /* But we keep result == __GCONV_ILLEGAL_INPUT, because of the constraint \
+ that "iconv -c" must give the same exitcode as "iconv". */ \
+ continue; \
+ }
+
+/* Error handling for the TO_LOOP direction, with use of transliteration/
+ transcription functions and ignoring of errors. Note that we cannot use
+ the do while (0) trick since `break' and `continue' must reach certain
+ points. */
+#define STANDARD_TO_LOOP_ERR_HANDLER(Incr) \
{ \
struct __gconv_trans_data *trans; \
\
@@ -188,6 +223,10 @@
case we are not doing any error recovery outself. */ \
break; \
\
+ /* If needed, flush any conversion state, so that __gconv_transliterate \
+ starts with current shift state. */ \
+ UPDATE_PARAMS; \
+ \
/* First try the transliteration methods. */ \
for (trans = step_data->__trans; trans != NULL; trans = trans->__next) \
{ \
@@ -197,9 +236,17 @@
if (result != __GCONV_ILLEGAL_INPUT) \
break; \
} \
+ \
+ REINIT_PARAMS; \
+ \
/* If any of them recognized the input continue with the loop. */ \
if (result != __GCONV_ILLEGAL_INPUT) \
- continue; \
+ { \
+ if (__builtin_expect (result == __GCONV_FULL_OUTPUT, 0)) \
+ break; \
+ \
+ continue; \
+ } \
\
/* Next see whether we have to ignore the error. If not, stop. */ \
if (! ignore_errors_p ()) \
@@ -208,14 +255,16 @@
/* When we come here it means we ignore the character. */ \
++*irreversible; \
inptr += Incr; \
+ /* But we keep result == __GCONV_ILLEGAL_INPUT, because of the constraint \
+ that "iconv -c" must give the same exitcode as "iconv". */ \
continue; \
}
/* Handling of Unicode 3.1 TAG characters. Unicode recommends
"If language codes are not relevant to the particular processing
- operation, then they should be ignored."
- This macro is usually called right before STANDARD_ERR_HANDLER (Incr). */
+ operation, then they should be ignored." This macro is usually
+ called right before STANDARD_TO_LOOP_ERR_HANDLER (Incr). */
#define UNICODE_TAG_HANDLER(Character, Incr) \
{ \
/* TAG characters are those in the range U+E0000..U+E007F. */ \
@@ -229,6 +278,7 @@
/* The function returns the status, as defined in gconv.h. */
static inline int
+__attribute ((always_inline))
FCTNAME (LOOPFCT) (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
@@ -257,6 +307,14 @@ FCTNAME (LOOPFCT) (struct __gconv_step *
/* `if' cases for MIN_NEEDED_OUTPUT ==/!= 1 is made to help the
compiler generating better code. They will be optimized away
since MIN_NEEDED_OUTPUT is always a constant. */
+ if (MIN_NEEDED_INPUT > 1
+ && __builtin_expect (inptr + MIN_NEEDED_INPUT > inend, 0))
+ {
+ /* We don't have enough input for another complete input
+ character. */
+ result = __GCONV_INCOMPLETE_INPUT;
+ break;
+ }
if ((MIN_NEEDED_OUTPUT != 1
&& __builtin_expect (outptr + MIN_NEEDED_OUTPUT > outend, 0))
|| (MIN_NEEDED_OUTPUT == 1
@@ -266,14 +324,6 @@ FCTNAME (LOOPFCT) (struct __gconv_step *
result = __GCONV_FULL_OUTPUT;
break;
}
- if (MIN_NEEDED_INPUT > 1
- && __builtin_expect (inptr + MIN_NEEDED_INPUT > inend, 0))
- {
- /* We don't have enough input for another complete input
- character. */
- result = __GCONV_INCOMPLETE_INPUT;
- break;
- }
/* Here comes the body the user provides. It can stop with
RESULT set to GCONV_INCOMPLETE_INPUT (if the size of the
@@ -285,9 +335,7 @@ FCTNAME (LOOPFCT) (struct __gconv_step *
/* Update the pointers pointed to by the parameters. */
*inptrp = inptr;
*outptrp = outptr;
-#ifdef UPDATE_PARAMS
UPDATE_PARAMS;
-#endif
return result;
}
@@ -296,8 +344,8 @@ FCTNAME (LOOPFCT) (struct __gconv_step *
/* Include the file a second time to define the function to handle
unaligned access. */
#if !defined DEFINE_UNALIGNED && !defined _STRING_ARCH_unaligned \
- && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
- && MIN_NEEDED_TO != 1 && MAX_NEEDED_TO % MIN_NEEDED_TO == 0
+ && MIN_NEEDED_INPUT != 1 && MAX_NEEDED_INPUT % MIN_NEEDED_INPUT == 0 \
+ && MIN_NEEDED_OUTPUT != 1 && MAX_NEEDED_OUTPUT % MIN_NEEDED_OUTPUT == 0
# undef get16
# undef get32
# undef put16
@@ -314,6 +362,7 @@ FCTNAME (LOOPFCT) (struct __gconv_step *
# define SINGLE(fct) SINGLE2 (fct)
# define SINGLE2(fct) fct##_single
static inline int
+__attribute ((always_inline))
SINGLE(LOOPFCT) (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
@@ -400,7 +449,11 @@ SINGLE(LOOPFCT) (struct __gconv_step *st
result = __GCONV_OK;
/* Clear the state buffer. */
+#ifdef CLEAR_STATE
+ CLEAR_STATE;
+#else
state->__count &= ~7;
+#endif
}
else if (result == __GCONV_INCOMPLETE_INPUT)
{
@@ -416,6 +469,10 @@ SINGLE(LOOPFCT) (struct __gconv_step *st
#else
/* We don't have enough input for another complete input
character. */
+ assert (inend - inptr > (state->__count & ~7));
+ assert (inend - inptr <= 7);
+ state->__count = (state->__count & ~7) | (inend - inptr);
+ inlen = 0;
while (inptr < inend)
state->__value.__wchb[inlen++] = *inptr++;
#endif
@@ -428,6 +485,15 @@ SINGLE(LOOPFCT) (struct __gconv_step *st
#endif
+#ifdef ONEBYTE_BODY
+/* Define the shortcut function for btowc. */
+static wint_t
+gconv_btowc (struct __gconv_step *step, unsigned char c)
+ ONEBYTE_BODY
+# define FROM_ONEBYTE gconv_btowc
+#endif
+
+
/* We remove the macro definitions so that we can include this file again
for the definition of another function. */
#undef MIN_NEEDED_INPUT
@@ -440,7 +506,10 @@ SINGLE(LOOPFCT) (struct __gconv_step *st
#undef EXTRA_LOOP_DECLS
#undef INIT_PARAMS
#undef UPDATE_PARAMS
+#undef REINIT_PARAMS
+#undef ONEBYTE_BODY
#undef UNPACK_BYTES
+#undef CLEAR_STATE
#undef LOOP_NEED_STATE
#undef LOOP_NEED_FLAGS
#undef LOOP_NEED_DATA
diff -up saplocales-2.2.5/iconv/skeleton.c-sap saplocales-2.2.5/iconv/skeleton.c
--- saplocales-2.2.5/iconv/skeleton.c-sap 2002-04-30 05:45:10.000000000 -0700
+++ saplocales-2.2.5/iconv/skeleton.c 2009-02-18 14:47:14.000000000 -0800
@@ -1,5 +1,5 @@
/* Skeleton for a conversion module.
- Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1998-2002, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -37,12 +37,26 @@
This macro is optional, it defaults to MIN_NEEDED_FROM.
MAX_NEEDED_TO likewise for the to-charset.
- DEFINE_DIRECTION_OBJECTS
- two objects will be defined to be used when the
- `gconv' function must only distinguish two
- directions. This is implied by DEFINE_INIT.
- If this macro is not defined the following
- macro must be available.
+ FROM_LOOP_MIN_NEEDED_FROM
+ FROM_LOOP_MAX_NEEDED_FROM
+ minimal/maximal number of bytes needed on input
+ of one round through the FROM_LOOP. Defaults
+ to MIN_NEEDED_FROM and MAX_NEEDED_FROM, respectively.
+ FROM_LOOP_MIN_NEEDED_TO
+ FROM_LOOP_MAX_NEEDED_TO
+ minimal/maximal number of bytes needed on output
+ of one round through the FROM_LOOP. Defaults
+ to MIN_NEEDED_TO and MAX_NEEDED_TO, respectively.
+ TO_LOOP_MIN_NEEDED_FROM
+ TO_LOOP_MAX_NEEDED_FROM
+ minimal/maximal number of bytes needed on input
+ of one round through the TO_LOOP. Defaults
+ to MIN_NEEDED_TO and MAX_NEEDED_TO, respectively.
+ TO_LOOP_MIN_NEEDED_TO
+ TO_LOOP_MAX_NEEDED_TO
+ minimal/maximal number of bytes needed on output
+ of one round through the TO_LOOP. Defaults
+ to MIN_NEEDED_FROM and MAX_NEEDED_FROM, respectively.
FROM_DIRECTION this macro is supposed to return a value != 0
if we convert from the current character set,
@@ -50,11 +64,11 @@
EMIT_SHIFT_TO_INIT this symbol is optional. If it is defined it
defines some code which writes out a sequence
- of characters which bring the current state into
+ of bytes which bring the current state into
the initial state.
FROM_LOOP name of the function implementing the conversion
- from the current characters.
+ from the current character set.
TO_LOOP likewise for the other direction
ONE_DIRECTION optional. If defined to 1, only one conversion
@@ -79,6 +93,44 @@
EXTRA_LOOP_ARGS optional macro specifying extra arguments passed
to loop function.
+
+ STORE_REST optional, needed only when MAX_NEEDED_FROM > 4.
+ This macro stores the seen but unconverted input bytes
+ in the state.
+
+ FROM_ONEBYTE optional. If defined, should be the name of a
+ specialized conversion function for a single byte
+ from the current character set to INTERNAL. This
+ function has prototype
+ wint_t
+ FROM_ONEBYTE (struct __gconv_step *, unsigned char);
+ and does a special conversion:
+ - The input is a single byte.
+ - The output is a single uint32_t.
+ - The state before the conversion is the initial state;
+ the state after the conversion is irrelevant.
+ - No transliteration.
+ - __invocation_counter = 0.
+ - __internal_use = 1.
+ - do_flush = 0.
+
+ Modules can use mbstate_t to store conversion state as follows:
+
+ * Bits 2..0 of '__count' contain the number of lookahead input bytes
+ stored in __value.__wchb. Always zero if the converter never
+ returns __GCONV_INCOMPLETE_INPUT.
+
+ * Bits 31..3 of '__count' are module dependent shift state.
+
+ * __value: When STORE_REST/UNPACK_BYTES aren't defined and when the
+ converter has returned __GCONV_INCOMPLETE_INPUT, this contains
+ at most 4 lookahead bytes. Converters with an mb_cur_max > 4
+ (currently only UTF-8) must find a way to store their state
+ in __value.__wch and define STORE_REST/UNPACK_BYTES appropriately.
+
+ When __value contains lookahead, __count must not be zero, because
+ the converter is not in the initial state then, and mbsinit() --
+ defined as a (__count == 0) test -- must reflect this.
*/
#include <assert.h>
@@ -92,21 +144,22 @@
# include <dlfcn.h>
#endif
+#include <sysdep.h>
+
#ifndef DL_CALL_FCT
# define DL_CALL_FCT(fct, args) fct args
#endif
/* The direction objects. */
-#if DEFINE_DIRECTION_OBJECTS || DEFINE_INIT
-static int from_object;
-static int to_object;
-
+#if DEFINE_INIT
# ifndef FROM_DIRECTION
-# define FROM_DIRECTION (step->__data == &from_object)
+# define FROM_DIRECTION_VAL NULL
+# define TO_DIRECTION_VAL ((void *) ~((uintptr_t) 0))
+# define FROM_DIRECTION (step->__data == FROM_DIRECTION_VAL)
# endif
#else
# ifndef FROM_DIRECTION
-# error "FROM_DIRECTION must be provided if direction objects are not used"
+# error "FROM_DIRECTION must be provided if non-default init is used"
# endif
#endif
@@ -121,6 +174,32 @@ static int to_object;
# define MAX_NEEDED_TO MIN_NEEDED_TO
#endif
+/* Defaults for the per-direction min/max constants. */
+#ifndef FROM_LOOP_MIN_NEEDED_FROM
+# define FROM_LOOP_MIN_NEEDED_FROM MIN_NEEDED_FROM
+#endif
+#ifndef FROM_LOOP_MAX_NEEDED_FROM
+# define FROM_LOOP_MAX_NEEDED_FROM MAX_NEEDED_FROM
+#endif
+#ifndef FROM_LOOP_MIN_NEEDED_TO
+# define FROM_LOOP_MIN_NEEDED_TO MIN_NEEDED_TO
+#endif
+#ifndef FROM_LOOP_MAX_NEEDED_TO
+# define FROM_LOOP_MAX_NEEDED_TO MAX_NEEDED_TO
+#endif
+#ifndef TO_LOOP_MIN_NEEDED_FROM
+# define TO_LOOP_MIN_NEEDED_FROM MIN_NEEDED_TO
+#endif
+#ifndef TO_LOOP_MAX_NEEDED_FROM
+# define TO_LOOP_MAX_NEEDED_FROM MAX_NEEDED_TO
+#endif
+#ifndef TO_LOOP_MIN_NEEDED_TO
+# define TO_LOOP_MIN_NEEDED_TO MIN_NEEDED_FROM
+#endif
+#ifndef TO_LOOP_MAX_NEEDED_TO
+# define TO_LOOP_MAX_NEEDED_TO MAX_NEEDED_FROM
+#endif
+
/* Define macros which can access unaligned buffers. These macros are
supposed to be used only in code outside the inner loops. For the inner
@@ -192,16 +271,40 @@ static int to_object;
/* For conversions from a fixed width character set to another fixed width
character set we can define RESET_INPUT_BUFFER in a very fast way. */
#if !defined RESET_INPUT_BUFFER && !defined SAVE_RESET_STATE
-# if MIN_NEEDED_FROM == MAX_NEEDED_FROM && MIN_NEEDED_TO == MAX_NEEDED_TO
+# if FROM_LOOP_MIN_NEEDED_FROM == FROM_LOOP_MAX_NEEDED_FROM \
+ && FROM_LOOP_MIN_NEEDED_TO == FROM_LOOP_MAX_NEEDED_TO \
+ && TO_LOOP_MIN_NEEDED_FROM == TO_LOOP_MAX_NEEDED_FROM \
+ && TO_LOOP_MIN_NEEDED_TO == TO_LOOP_MAX_NEEDED_TO
/* We have to use these `if's here since the compiler cannot know that
- (outbuf - outerr) is always divisible by MIN_NEEDED_TO. */
+ (outbuf - outerr) is always divisible by FROM/TO_LOOP_MIN_NEEDED_TO.
+ The ?:1 avoids division by zero warnings that gcc 3.2 emits even for
+ obviously unreachable code. */
# define RESET_INPUT_BUFFER \
- if (MIN_NEEDED_FROM % MIN_NEEDED_TO == 0) \
- *inptrp -= (outbuf - outerr) * (MIN_NEEDED_FROM / MIN_NEEDED_TO); \
- else if (MIN_NEEDED_TO % MIN_NEEDED_FROM == 0) \
- *inptrp -= (outbuf - outerr) / (MIN_NEEDED_TO / MIN_NEEDED_FROM); \
+ if (FROM_DIRECTION) \
+ { \
+ if (FROM_LOOP_MIN_NEEDED_FROM % FROM_LOOP_MIN_NEEDED_TO == 0) \
+ *inptrp -= (outbuf - outerr) \
+ * (FROM_LOOP_MIN_NEEDED_FROM / FROM_LOOP_MIN_NEEDED_TO); \
+ else if (FROM_LOOP_MIN_NEEDED_TO % FROM_LOOP_MIN_NEEDED_FROM == 0) \
+ *inptrp -= (outbuf - outerr) \
+ / (FROM_LOOP_MIN_NEEDED_TO / FROM_LOOP_MIN_NEEDED_FROM \
+ ? : 1); \
+ else \
+ *inptrp -= ((outbuf - outerr) / FROM_LOOP_MIN_NEEDED_TO) \
+ * FROM_LOOP_MIN_NEEDED_FROM; \
+ } \
else \
- *inptrp -= ((outbuf - outerr) / MIN_NEEDED_TO) * MIN_NEEDED_FROM
+ { \
+ if (TO_LOOP_MIN_NEEDED_FROM % TO_LOOP_MIN_NEEDED_TO == 0) \
+ *inptrp -= (outbuf - outerr) \
+ * (TO_LOOP_MIN_NEEDED_FROM / TO_LOOP_MIN_NEEDED_TO); \
+ else if (TO_LOOP_MIN_NEEDED_TO % TO_LOOP_MIN_NEEDED_FROM == 0) \
+ *inptrp -= (outbuf - outerr) \
+ / (TO_LOOP_MIN_NEEDED_TO / TO_LOOP_MIN_NEEDED_FROM ? : 1); \
+ else \
+ *inptrp -= ((outbuf - outerr) / TO_LOOP_MIN_NEEDED_TO) \
+ * TO_LOOP_MIN_NEEDED_FROM; \
+ }
# endif
#endif
@@ -220,21 +323,25 @@ gconv_init (struct __gconv_step *step)
/* Determine which direction. */
if (strcmp (step->__from_name, CHARSET_NAME) == 0)
{
- step->__data = &from_object;
+ step->__data = FROM_DIRECTION_VAL;
+
+ step->__min_needed_from = FROM_LOOP_MIN_NEEDED_FROM;
+ step->__max_needed_from = FROM_LOOP_MAX_NEEDED_FROM;
+ step->__min_needed_to = FROM_LOOP_MIN_NEEDED_TO;
+ step->__max_needed_to = FROM_LOOP_MAX_NEEDED_TO;
- step->__min_needed_from = MIN_NEEDED_FROM;
- step->__max_needed_from = MAX_NEEDED_FROM;
- step->__min_needed_to = MIN_NEEDED_TO;
- step->__max_needed_to = MAX_NEEDED_TO;
+#ifdef FROM_ONEBYTE
+ step->__btowc_fct = FROM_ONEBYTE;
+#endif
}
else if (__builtin_expect (strcmp (step->__to_name, CHARSET_NAME), 0) == 0)
{
- step->__data = &to_object;
+ step->__data = TO_DIRECTION_VAL;
- step->__min_needed_from = MIN_NEEDED_TO;
- step->__max_needed_from = MAX_NEEDED_TO;
- step->__min_needed_to = MIN_NEEDED_FROM;
- step->__max_needed_to = MAX_NEEDED_FROM;
+ step->__min_needed_from = TO_LOOP_MIN_NEEDED_FROM;
+ step->__max_needed_from = TO_LOOP_MAX_NEEDED_FROM;
+ step->__min_needed_to = TO_LOOP_MIN_NEEDED_TO;
+ step->__max_needed_to = TO_LOOP_MAX_NEEDED_TO;
}
else
return __GCONV_NOCONV;
@@ -288,10 +395,17 @@ FUNCTION_NAME (struct __gconv_step *step
{
struct __gconv_step *next_step = step + 1;
struct __gconv_step_data *next_data = data + 1;
- __gconv_fct fct;
+ __gconv_fct fct = NULL;
int status;
- fct = (data->__flags & __GCONV_IS_LAST) ? NULL : next_step->__fct;
+ if ((data->__flags & __GCONV_IS_LAST) == 0)
+ {
+ fct = next_step->__fct;
+#ifdef PTR_DEMANGLE
+ if (next_step->__shlib_handle != NULL)
+ PTR_DEMANGLE (fct);
+#endif
+ }
/* If the function is called with no input this means we have to reset
to the initial state. The possibly partly converted input is
@@ -398,27 +512,45 @@ FUNCTION_NAME (struct __gconv_step *step
actually converted. */
size_t lirreversible = 0;
size_t *lirreversiblep = irreversible ? &lirreversible : NULL;
-#if defined _STRING_ARCH_unaligned \
- || MIN_NEEDED_FROM == 1 || MAX_NEEDED_FROM % MIN_NEEDED_FROM != 0 \
- || MIN_NEEDED_TO == 1 || MAX_NEEDED_TO % MIN_NEEDED_TO != 0
-# define unaligned 0
-#else
+
+ /* The following assumes that encodings, which have a variable length
+ what might unalign a buffer even though it is a aligned in the
+ beginning, either don't have the minimal number of bytes as a divisor
+ of the maximum length or have a minimum length of 1. This is true
+ for all known and supported encodings.
+ We use && instead of || to combine the subexpression for the FROM
+ encoding and for the TO encoding, because usually one of them is
+ INTERNAL, for which the subexpression evaluates to 1, but INTERNAL
+ buffers are always aligned correctly. */
+#define POSSIBLY_UNALIGNED \
+ (!defined _STRING_ARCH_unaligned \
+ && (((FROM_LOOP_MIN_NEEDED_FROM != 1 \
+ && FROM_LOOP_MAX_NEEDED_FROM % FROM_LOOP_MIN_NEEDED_FROM == 0) \
+ && (FROM_LOOP_MIN_NEEDED_TO != 1 \
+ && FROM_LOOP_MAX_NEEDED_TO % FROM_LOOP_MIN_NEEDED_TO == 0)) \
+ || ((TO_LOOP_MIN_NEEDED_FROM != 1 \
+ && TO_LOOP_MAX_NEEDED_FROM % TO_LOOP_MIN_NEEDED_FROM == 0) \
+ && (TO_LOOP_MIN_NEEDED_TO != 1 \
+ && TO_LOOP_MAX_NEEDED_TO % TO_LOOP_MIN_NEEDED_TO == 0))))
+#if POSSIBLY_UNALIGNED
int unaligned;
# define GEN_unaligned(name) GEN_unaligned2 (name)
# define GEN_unaligned2(name) name##_unaligned
+#else
+# define unaligned 0
#endif
#ifdef PREPARE_LOOP
PREPARE_LOOP
#endif
-#if MAX_NEEDED_FROM > 1 || MAX_NEEDED_TO > 1
+#if FROM_LOOP_MAX_NEEDED_FROM > 1 || TO_LOOP_MAX_NEEDED_FROM > 1
/* If the function is used to implement the mb*towc*() or wc*tomb*()
functions we must test whether any bytes from the last call are
stored in the `state' object. */
- if (((MAX_NEEDED_FROM > 1 && MAX_NEEDED_TO > 1)
- || (MAX_NEEDED_FROM > 1 && FROM_DIRECTION)
- || (MAX_NEEDED_TO > 1 && !FROM_DIRECTION))
+ if (((FROM_LOOP_MAX_NEEDED_FROM > 1 && TO_LOOP_MAX_NEEDED_FROM > 1)
+ || (FROM_LOOP_MAX_NEEDED_FROM > 1 && FROM_DIRECTION)
+ || (TO_LOOP_MAX_NEEDED_FROM > 1 && !FROM_DIRECTION))
&& consume_incomplete && (data->__statep->__count & 7) != 0)
{
/* Yep, we have some bytes left over. Process them now.
@@ -426,18 +558,20 @@ FUNCTION_NAME (struct __gconv_step *step
error handler. */
assert (outbufstart == NULL);
-# if MAX_NEEDED_FROM > 1
- if (MAX_NEEDED_TO == 1 || FROM_DIRECTION)
+# if FROM_LOOP_MAX_NEEDED_FROM > 1
+ if (TO_LOOP_MAX_NEEDED_FROM == 1 || FROM_DIRECTION)
status = SINGLE(FROM_LOOP) (step, data, inptrp, inend, &outbuf,
outend, lirreversiblep
EXTRA_LOOP_ARGS);
# endif
-# if MAX_NEEDED_FROM > 1 && MAX_NEEDED_TO > 1 && !ONE_DIRECTION
+# if !ONE_DIRECTION
+# if FROM_LOOP_MAX_NEEDED_FROM > 1 && TO_LOOP_MAX_NEEDED_FROM > 1
else
-# endif
-# if MAX_NEEDED_TO > 1 && !ONE_DIRECTION
+# endif
+# if TO_LOOP_MAX_NEEDED_FROM > 1
status = SINGLE(TO_LOOP) (step, data, inptrp, inend, &outbuf,
outend, lirreversiblep EXTRA_LOOP_ARGS);
+# endif
# endif
if (__builtin_expect (status, __GCONV_OK) != __GCONV_OK)
@@ -445,22 +579,16 @@ FUNCTION_NAME (struct __gconv_step *step
}
#endif
-#if !defined _STRING_ARCH_unaligned \
- && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
- && MIN_NEEDED_TO != 1 && MAX_NEEDED_TO % MIN_NEEDED_TO == 0
- /* The following assumes that encodings, which have a variable length
- what might unalign a buffer even though it is a aligned in the
- beginning, either don't have the minimal number of bytes as a divisor
- of the maximum length or have a minimum length of 1. This is true
- for all known and supported encodings. */
- unaligned = ((FROM_DIRECTION
- && ((uintptr_t) inptr % MIN_NEEDED_FROM != 0
- || ((data->__flags & __GCONV_IS_LAST)
- && (uintptr_t) outbuf % MIN_NEEDED_TO != 0)))
- || (!FROM_DIRECTION
- && (((data->__flags & __GCONV_IS_LAST)
- && (uintptr_t) outbuf % MIN_NEEDED_FROM != 0)
- || (uintptr_t) inptr % MIN_NEEDED_TO != 0)));
+#if POSSIBLY_UNALIGNED
+ unaligned =
+ ((FROM_DIRECTION
+ && ((uintptr_t) inptr % FROM_LOOP_MIN_NEEDED_FROM != 0
+ || ((data->__flags & __GCONV_IS_LAST)
+ && (uintptr_t) outbuf % FROM_LOOP_MIN_NEEDED_TO != 0)))
+ || (!FROM_DIRECTION
+ && (((data->__flags & __GCONV_IS_LAST)
+ && (uintptr_t) outbuf % TO_LOOP_MIN_NEEDED_TO != 0)
+ || (uintptr_t) inptr % TO_LOOP_MIN_NEEDED_FROM != 0)));
#endif
while (1)
@@ -487,9 +615,7 @@ FUNCTION_NAME (struct __gconv_step *step
status = TO_LOOP (step, data, inptrp, inend, &outbuf, outend,
lirreversiblep EXTRA_LOOP_ARGS);
}
-#if !defined _STRING_ARCH_unaligned \
- && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
- && MIN_NEEDED_TO != 1 && MAX_NEEDED_TO % MIN_NEEDED_TO == 0
+#if POSSIBLY_UNALIGNED
else
{
if (FROM_DIRECTION)
@@ -556,8 +682,8 @@ FUNCTION_NAME (struct __gconv_step *step
#ifdef RESET_INPUT_BUFFER
RESET_INPUT_BUFFER;
#else
- /* We have a problem with the in on of the functions
- below. Undo the conversion upto the error point. */
+ /* We have a problem in one of the functions below.
+ Undo the conversion upto the error point. */
size_t nstatus;
/* Reload the pointers. */
@@ -584,9 +710,7 @@ FUNCTION_NAME (struct __gconv_step *step
lirreversiblep
EXTRA_LOOP_ARGS);
}
-# if !defined _STRING_ARCH_unaligned \
- && MIN_NEEDED_FROM != 1 && MAX_NEEDED_FROM % MIN_NEEDED_FROM == 0 \
- && MIN_NEEDED_TO != 1 && MAX_NEEDED_TO % MIN_NEEDED_TO == 0
+# if POSSIBLY_UNALIGNED
else
{
if (FROM_DIRECTION)
@@ -645,10 +769,10 @@ FUNCTION_NAME (struct __gconv_step *step
/* If we are supposed to consume all character store now all of the
remaining characters in the `state' object. */
-#if MAX_NEEDED_FROM > 1 || MAX_NEEDED_TO > 1
- if (((MAX_NEEDED_FROM > 1 && MAX_NEEDED_TO > 1)
- || (MAX_NEEDED_FROM > 1 && FROM_DIRECTION)
- || (MAX_NEEDED_TO > 1 && !FROM_DIRECTION))
+#if FROM_LOOP_MAX_NEEDED_FROM > 1 || TO_LOOP_MAX_NEEDED_FROM > 1
+ if (((FROM_LOOP_MAX_NEEDED_FROM > 1 && TO_LOOP_MAX_NEEDED_FROM > 1)
+ || (FROM_LOOP_MAX_NEEDED_FROM > 1 && FROM_DIRECTION)
+ || (TO_LOOP_MAX_NEEDED_FROM > 1 && !FROM_DIRECTION))
&& __builtin_expect (consume_incomplete, 0)
&& status == __GCONV_INCOMPLETE_INPUT)
{
@@ -657,12 +781,11 @@ FUNCTION_NAME (struct __gconv_step *step
STORE_REST
# else
- size_t cnt;
-
/* Make sure the remaining bytes fit into the state objects
buffer. */
assert (inend - *inptrp < 4);
+ size_t cnt;
for (cnt = 0; *inptrp < inend; ++cnt)
data->__statep->__value.__wchb[cnt] = *(*inptrp)++;
data->__statep->__count &= ~7;
@@ -670,6 +793,8 @@ FUNCTION_NAME (struct __gconv_step *step
# endif
}
#endif
+#undef unaligned
+#undef POSSIBLY_UNALIGNED
}
return status;
@@ -682,15 +807,24 @@ FUNCTION_NAME (struct __gconv_step *step
#undef MIN_NEEDED_TO
#undef MAX_NEEDED_FROM
#undef MAX_NEEDED_TO
-#undef DEFINE_DIRECTION_OBJECTS
+#undef FROM_LOOP_MIN_NEEDED_FROM
+#undef FROM_LOOP_MAX_NEEDED_FROM
+#undef FROM_LOOP_MIN_NEEDED_TO
+#undef FROM_LOOP_MAX_NEEDED_TO
+#undef TO_LOOP_MIN_NEEDED_FROM
+#undef TO_LOOP_MAX_NEEDED_FROM
+#undef TO_LOOP_MIN_NEEDED_TO
+#undef TO_LOOP_MAX_NEEDED_TO
#undef FROM_DIRECTION
#undef EMIT_SHIFT_TO_INIT
#undef FROM_LOOP
#undef TO_LOOP
+#undef ONE_DIRECTION
#undef SAVE_RESET_STATE
#undef RESET_INPUT_BUFFER
#undef FUNCTION_NAME
#undef PREPARE_LOOP
#undef END_LOOP
-#undef ONE_DIRECTION
+#undef EXTRA_LOOP_ARGS
#undef STORE_REST
+#undef FROM_ONEBYTE
diff -up saplocales-2.2.5/Makefile-sap saplocales-2.2.5/Makefile
--- saplocales-2.2.5/Makefile-sap 2009-02-18 15:34:56.000000000 -0800
+++ saplocales-2.2.5/Makefile 2009-02-18 15:51:43.000000000 -0800
@@ -20,13 +20,16 @@ gconv/NAGAMASA.so \
gconv/SILKROAD.so \
gconv/SAPSJIS.so
+# Uncomment when building for glibc 2.6 and newer
+# NEWFLAGS = -DFOR_GLIBC_2_6_AND_LATER
+
CFLAGS = \
-O \
-Wall -Winline -Wstrict-prototypes -Wwrite-strings \
-fno-strength-reduce -fPIC \
-D_LIBC_REENTRANT -DPIC -DSHARED -D_GNU_SOURCE=1 -D_REENTRANT=1 \
-include compiler.h \
--I.
+-I. -Iiconv $(NEWFLAGS)
LDFLAGS= -shared
diff -up saplocales-2.2.5/NAGAMASA.c-sap saplocales-2.2.5/NAGAMASA.c
--- saplocales-2.2.5/NAGAMASA.c-sap 2009-02-18 15:15:18.000000000 -0800
+++ saplocales-2.2.5/NAGAMASA.c 2009-02-18 15:16:01.000000000 -0800
@@ -3679,7 +3679,8 @@ static const char from_ucs4_double[0x1eb
} \
} \
\
- *((uint32_t *) outptr)++ = ch; \
+ put32 (outptr, ch); \
+ outptr += 4; \
}
#include <iconv/loop.c>
@@ -3691,7 +3692,7 @@ static const char from_ucs4_double[0x1eb
#define LOOPFCT TO_LOOP
#define BODY \
{ \
- uint32_t ch = *((uint32_t *) inptr); \
+ uint32_t ch = get32 (inptr); \
const char *cp; \
\
if (ch <= 0xff) \
diff -up saplocales-2.2.5/SAPSJIS.c-sap saplocales-2.2.5/SAPSJIS.c
--- saplocales-2.2.5/SAPSJIS.c-sap 2009-02-18 15:17:37.000000000 -0800
+++ saplocales-2.2.5/SAPSJIS.c 2009-02-18 15:19:04.000000000 -0800
@@ -4492,7 +4492,7 @@ static const char from_ucs4_extra[0x100]
if (__builtin_expect (cp[0], '\1') == '\0' && ch != 0) \
{ \
/* Illegal character. */ \
- STANDARD_ERR_HANDLER (4); \
+ STANDARD_TO_LOOP_ERR_HANDLER (4); \
} \
else \
{ \
diff -up saplocales-2.2.5/SAPUNI.c-sap saplocales-2.2.5/SAPUNI.c
--- saplocales-2.2.5/SAPUNI.c-sap 2009-02-18 15:11:52.000000000 -0800
+++ saplocales-2.2.5/SAPUNI.c 2009-02-18 15:12:44.000000000 -0800
@@ -3679,7 +3679,8 @@ static const char from_ucs4_double[0x1eb
} \
} \
\
- *((uint32_t *) outptr)++ = ch; \
+ put32 (outptr, ch); \
+ outptr += 4; \
}
#include <iconv/loop.c>
@@ -3691,7 +3692,7 @@ static const char from_ucs4_double[0x1eb
#define LOOPFCT TO_LOOP
#define BODY \
{ \
- uint32_t ch = *((uint32_t *) inptr); \
+ uint32_t ch = get32 (inptr); \
const char *cp; \
\
if (ch <= 0xff) \
diff -up saplocales-2.2.5/SILKROAD.c-sap saplocales-2.2.5/SILKROAD.c
--- saplocales-2.2.5/SILKROAD.c-sap 2009-02-18 15:16:09.000000000 -0800
+++ saplocales-2.2.5/SILKROAD.c 2009-02-18 15:16:45.000000000 -0800
@@ -3679,7 +3679,8 @@ static const char from_ucs4_double[0x1eb
} \
} \
\
- *((uint32_t *) outptr)++ = ch; \
+ put32 (outptr, ch); \
+ outptr += 4; \
}
#include <iconv/loop.c>
@@ -3691,7 +3692,7 @@ static const char from_ucs4_double[0x1eb
#define LOOPFCT TO_LOOP
#define BODY \
{ \
- uint32_t ch = *((uint32_t *) inptr); \
+ uint32_t ch = get32 (inptr); \
const char *cp; \
\
if (ch <= 0xff) \
diff -up saplocales-2.2.5/TRANSSIBERIAN.c-sap saplocales-2.2.5/TRANSSIBERIAN.c
--- saplocales-2.2.5/TRANSSIBERIAN.c-sap 2009-02-18 15:13:00.000000000 -0800
+++ saplocales-2.2.5/TRANSSIBERIAN.c 2009-02-18 15:13:46.000000000 -0800
@@ -3679,7 +3679,8 @@ static const char from_ucs4_double[0x1eb
} \
} \
\
- *((uint32_t *) outptr)++ = ch; \
+ put32 (outptr, ch); \
+ outptr += 4; \
}
#include <iconv/loop.c>
@@ -3691,7 +3692,7 @@ static const char from_ucs4_double[0x1eb
#define LOOPFCT TO_LOOP
#define BODY \
{ \
- uint32_t ch = *((uint32_t *) inptr); \
+ uint32_t ch = get32 (inptr); \
const char *cp; \
\
if (ch <= 0xff) \
diff -up saplocales-2.2.5/transsiberian.src-sap saplocales-2.2.5/transsiberian.src
--- saplocales-2.2.5/transsiberian.src-sap 2009-02-18 17:44:55.000000000 -0800
+++ saplocales-2.2.5/transsiberian.src 2009-02-18 17:45:15.000000000 -0800
@@ -9230,7 +9230,7 @@ order_end
END LC_COLLATE
LC_MONETARY
-int_curr_symbol "<U0052><U0055><U0052><U0020>"
+int_curr_symbol "<U0052><U0055><U0042><U0020>"
currency_symbol "<U00C0><U00C3><U00B1><U002E>"
mon_decimal_point "<U002E>"
mon_thousands_sep "<U0020>"
diff -up saplocales-2.2.5/tr_TR-sap saplocales-2.2.5/tr_TR
--- saplocales-2.2.5/tr_TR-sap 2009-02-18 15:22:43.000000000 -0800
+++ saplocales-2.2.5/tr_TR 2009-02-18 15:23:14.000000000 -0800
@@ -3430,8 +3430,8 @@ nostr "<U0068><U0061><U0079><U0131><U007
END LC_MESSAGES
LC_MONETARY
-int_curr_symbol "<U0054><U0052><U004C><U0020>"
-currency_symbol "<U0054><U004C>"
+int_curr_symbol "<U0054><U0052><U0059><U0020>"
+currency_symbol "<U0059><U0054><U004C>"
mon_decimal_point "<U002C>"
mon_thousands_sep "<U002E>"
mon_grouping 3

@ -0,0 +1,671 @@
diff -rNu compat-locales-sap-1.0.10.orig/saplocales-2.2.5/iconv/libc-diag.h compat-locales-sap-1.0.10/saplocales-2.2.5/iconv/libc-diag.h
--- compat-locales-sap-1.0.10.orig/saplocales-2.2.5/iconv/libc-diag.h 1970-01-01 01:00:00.000000000 +0100
+++ compat-locales-sap-1.0.10/saplocales-2.2.5/iconv/libc-diag.h 2018-01-10 07:36:33.762358809 +0100
@@ -0,0 +1,74 @@
+/* Macros for controlling diagnostic output from the compiler.
+ Copyright (C) 2014-2018 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
+ 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, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _LIBC_DIAG_H
+#define _LIBC_DIAG_H 1
+
+/* Ignore the value of an expression when a cast to void does not
+ suffice (in particular, for a call to a function declared with
+ attribute warn_unused_result). */
+#define ignore_value(x) \
+ ({ __typeof__ (x) __ignored_value = (x); (void) __ignored_value; })
+
+/* The macros to control diagnostics are structured like this, rather
+ than a single macro that both pushes and pops diagnostic state and
+ takes the affected code as an argument, because the GCC pragmas
+ work by disabling the diagnostic for a range of source locations
+ and do not work when all the pragmas and the affected code are in a
+ single macro expansion. */
+
+/* Push diagnostic state. */
+#define DIAG_PUSH_NEEDS_COMMENT _Pragma ("GCC diagnostic push")
+
+/* Pop diagnostic state. */
+#define DIAG_POP_NEEDS_COMMENT _Pragma ("GCC diagnostic pop")
+
+#define _DIAG_STR1(s) #s
+#define _DIAG_STR(s) _DIAG_STR1(s)
+
+/* Ignore the diagnostic OPTION. VERSION is the most recent GCC
+ version for which the diagnostic has been confirmed to appear in
+ the absence of the pragma (in the form MAJOR.MINOR for GCC 4.x,
+ just MAJOR for GCC 5 and later). Uses of this pragma should be
+ reviewed when the GCC version given is no longer supported for
+ building glibc; the version number should always be on the same
+ source line as the macro name, so such uses can be found with grep.
+ Uses should come with a comment giving more details of the
+ diagnostic, and an architecture on which it is seen if possibly
+ optimization-related and not in architecture-specific code. This
+ macro should only be used if the diagnostic seems hard to fix (for
+ example, optimization-related false positives). */
+#define DIAG_IGNORE_NEEDS_COMMENT(version, option) \
+ _Pragma (_DIAG_STR (GCC diagnostic ignored option))
+
+/* Similar to DIAG_IGNORE_NEEDS_COMMENT the following macro ignores the
+ diagnostic OPTION but only if optimizations for size are enabled.
+ This is required because different warnings may be generated for
+ different optimization levels. For example a key piece of code may
+ only generate a warning when compiled at -Os, but at -O2 you could
+ still want the warning to be enabled to catch errors. In this case
+ you would use DIAG_IGNORE_Os_NEEDS_COMMENT to disable the warning
+ only for -Os. */
+#ifdef __OPTIMIZE_SIZE__
+# define DIAG_IGNORE_Os_NEEDS_COMMENT(version, option) \
+ _Pragma (_DIAG_STR (GCC diagnostic ignored option))
+#else
+# define DIAG_IGNORE_Os_NEEDS_COMMENT(version, option)
+#endif
+
+#endif /* libc-diag.h */
diff -rNu compat-locales-sap-1.0.10.orig/saplocales-2.2.5/iconv/loop.c compat-locales-sap-1.0.10/saplocales-2.2.5/iconv/loop.c
--- compat-locales-sap-1.0.10.orig/saplocales-2.2.5/iconv/loop.c 2018-01-09 12:42:01.393580878 +0100
+++ compat-locales-sap-1.0.10/saplocales-2.2.5/iconv/loop.c 2018-01-09 12:42:28.069281608 +0100
@@ -1,5 +1,5 @@
/* Conversion loop frame work.
- Copyright (C) 1998-2002, 2003, 2005, 2008 Free Software Foundation, Inc.
+ Copyright (C) 1998-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -14,9 +14,8 @@
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. */
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
/* This file provides a frame for the reader loop in all conversion modules.
The actual code must (of course) be provided in the actual module source
@@ -39,7 +38,7 @@
BODY this is supposed to expand to the body of the loop.
The user must provide this.
- EXTRA_LOOP_DECLS extra arguments passed from converion loop call.
+ EXTRA_LOOP_DECLS extra arguments passed from conversion loop call.
INIT_PARAMS code to define and initialize variables from params.
UPDATE_PARAMS code to store result in params.
@@ -57,17 +56,17 @@
#include <sys/param.h> /* For MIN. */
#define __need_size_t
#include <stddef.h>
-
+#include <libc-diag.h>
/* We have to provide support for machines which are not able to handled
unaligned memory accesses. Some of the character encodings have
representations with a fixed width of 2 or 4 bytes. But if we cannot
access unaligned memory we still have to read byte-wise. */
#undef FCTNAME2
-#if defined _STRING_ARCH_unaligned || !defined DEFINE_UNALIGNED
+#if _STRING_ARCH_unaligned || !defined DEFINE_UNALIGNED
/* We can handle unaligned memory access. */
-# define get16(addr) *((__const uint16_t *) (addr))
-# define get32(addr) *((__const uint32_t *) (addr))
+# define get16(addr) *((const uint16_t *) (addr))
+# define get32(addr) *((const uint32_t *) (addr))
/* We need no special support for writing values either. */
# define put16(addr, val) *((uint16_t *) (addr)) = (val)
@@ -78,13 +77,13 @@
/* Distinguish between big endian and little endian. */
# if __BYTE_ORDER == __LITTLE_ENDIAN
# define get16(addr) \
- (((__const unsigned char *) (addr))[1] << 8 \
- | ((__const unsigned char *) (addr))[0])
+ (((const unsigned char *) (addr))[1] << 8 \
+ | ((const unsigned char *) (addr))[0])
# define get32(addr) \
- (((((__const unsigned char *) (addr))[3] << 8 \
- | ((__const unsigned char *) (addr))[2]) << 8 \
- | ((__const unsigned char *) (addr))[1]) << 8 \
- | ((__const unsigned char *) (addr))[0])
+ (((((const unsigned char *) (addr))[3] << 8 \
+ | ((const unsigned char *) (addr))[2]) << 8 \
+ | ((const unsigned char *) (addr))[1]) << 8 \
+ | ((const unsigned char *) (addr))[0])
# define put16(addr, val) \
({ uint16_t __val = (val); \
@@ -103,13 +102,13 @@
(void) 0; })
# else
# define get16(addr) \
- (((__const unsigned char *) (addr))[0] << 8 \
- | ((__const unsigned char *) (addr))[1])
+ (((const unsigned char *) (addr))[0] << 8 \
+ | ((const unsigned char *) (addr))[1])
# define get32(addr) \
- (((((__const unsigned char *) (addr))[0] << 8 \
- | ((__const unsigned char *) (addr))[1]) << 8 \
- | ((__const unsigned char *) (addr))[2]) << 8 \
- | ((__const unsigned char *) (addr))[3])
+ (((((const unsigned char *) (addr))[0] << 8 \
+ | ((const unsigned char *) (addr))[1]) << 8 \
+ | ((const unsigned char *) (addr))[2]) << 8 \
+ | ((const unsigned char *) (addr))[3])
# define put16(addr, val) \
({ uint16_t __val = (val); \
@@ -214,8 +213,6 @@
points. */
#define STANDARD_TO_LOOP_ERR_HANDLER(Incr) \
{ \
- struct __gconv_trans_data *trans; \
- \
result = __GCONV_ILLEGAL_INPUT; \
\
if (irreversible == NULL) \
@@ -228,21 +225,17 @@
UPDATE_PARAMS; \
\
/* First try the transliteration methods. */ \
- for (trans = step_data->__trans; trans != NULL; trans = trans->__next) \
- { \
- result = DL_CALL_FCT (trans->__trans_fct, \
- (step, step_data, trans->__data, *inptrp, \
- &inptr, inend, &outptr, irreversible)); \
- if (result != __GCONV_ILLEGAL_INPUT) \
- break; \
- } \
+ if ((step_data->__flags & __GCONV_TRANSLIT) != 0) \
+ result = __gconv_transliterate \
+ (step, step_data, *inptrp, \
+ &inptr, inend, &outptr, irreversible); \
\
REINIT_PARAMS; \
\
/* If any of them recognized the input continue with the loop. */ \
if (result != __GCONV_ILLEGAL_INPUT) \
{ \
- if (__builtin_expect (result == __GCONV_FULL_OUTPUT, 0)) \
+ if (__glibc_unlikely (result == __GCONV_FULL_OUTPUT)) \
break; \
\
continue; \
@@ -343,7 +336,7 @@
/* Include the file a second time to define the function to handle
unaligned access. */
-#if !defined DEFINE_UNALIGNED && !defined _STRING_ARCH_unaligned \
+#if !defined DEFINE_UNALIGNED && !_STRING_ARCH_unaligned \
&& MIN_NEEDED_INPUT != 1 && MAX_NEEDED_INPUT % MIN_NEEDED_INPUT == 0 \
&& MIN_NEEDED_OUTPUT != 1 && MAX_NEEDED_OUTPUT % MIN_NEEDED_OUTPUT == 0
# undef get16
@@ -355,12 +348,10 @@
# define DEFINE_UNALIGNED
# include "loop.c"
# undef DEFINE_UNALIGNED
-#endif
-
-
-#if MAX_NEEDED_INPUT > 1
-# define SINGLE(fct) SINGLE2 (fct)
-# define SINGLE2(fct) fct##_single
+#else
+# if MAX_NEEDED_INPUT > 1
+# define SINGLE(fct) SINGLE2 (fct)
+# define SINGLE2(fct) fct##_single
static inline int
__attribute ((always_inline))
SINGLE(LOOPFCT) (struct __gconv_step *step,
@@ -370,46 +361,57 @@
size_t *irreversible EXTRA_LOOP_DECLS)
{
mbstate_t *state = step_data->__statep;
-#ifdef LOOP_NEED_FLAGS
+# ifdef LOOP_NEED_FLAGS
int flags = step_data->__flags;
-#endif
-#ifdef LOOP_NEED_DATA
+# endif
+# ifdef LOOP_NEED_DATA
void *data = step->__data;
-#endif
+# endif
int result = __GCONV_OK;
unsigned char bytebuf[MAX_NEEDED_INPUT];
const unsigned char *inptr = *inptrp;
unsigned char *outptr = *outptrp;
size_t inlen;
-#ifdef INIT_PARAMS
+# ifdef INIT_PARAMS
INIT_PARAMS;
-#endif
+# endif
-#ifdef UNPACK_BYTES
+# ifdef UNPACK_BYTES
UNPACK_BYTES
-#else
+# else
/* Add the bytes from the state to the input buffer. */
+ assert ((state->__count & 7) <= sizeof (state->__value));
for (inlen = 0; inlen < (size_t) (state->__count & 7); ++inlen)
bytebuf[inlen] = state->__value.__wchb[inlen];
-#endif
+# endif
/* Are there enough bytes in the input buffer? */
- if (__builtin_expect (inptr + (MIN_NEEDED_INPUT - inlen) > inend, 0))
+ if (MIN_NEEDED_INPUT > 1
+ && __builtin_expect (inptr + (MIN_NEEDED_INPUT - inlen) > inend, 0))
{
*inptrp = inend;
-#ifdef STORE_REST
+# ifdef STORE_REST
+
+ /* Building with -O3 GCC emits a `array subscript is above array
+ bounds' warning. GCC BZ #64739 has been opened for this. */
+ DIAG_PUSH_NEEDS_COMMENT;
+ DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Warray-bounds");
+ while (inptr < inend)
+ bytebuf[inlen++] = *inptr++;
+ DIAG_POP_NEEDS_COMMENT;
+
inptr = bytebuf;
inptrp = &inptr;
inend = &bytebuf[inlen];
STORE_REST
-#else
+# else
/* We don't have enough input for another complete input
character. */
while (inptr < inend)
state->__value.__wchb[inlen++] = *inptr++;
-#endif
+# endif
return __GCONV_INCOMPLETE_INPUT;
}
@@ -438,7 +440,7 @@
bytes from the state and at least one more, or the character is still
incomplete, or we have some other error (like illegal input character,
no space in output buffer). */
- if (__builtin_expect (inptr != bytebuf, 1))
+ if (__glibc_likely (inptr != bytebuf))
{
/* We found a new character. */
assert (inptr - bytebuf > (state->__count & 7));
@@ -449,11 +451,11 @@
result = __GCONV_OK;
/* Clear the state buffer. */
-#ifdef CLEAR_STATE
+# ifdef CLEAR_STATE
CLEAR_STATE;
-#else
+# else
state->__count &= ~7;
-#endif
+# endif
}
else if (result == __GCONV_INCOMPLETE_INPUT)
{
@@ -462,37 +464,38 @@
assert (inend != &bytebuf[MAX_NEEDED_INPUT]);
*inptrp += inend - bytebuf - (state->__count & 7);
-#ifdef STORE_REST
+# ifdef STORE_REST
inptrp = &inptr;
STORE_REST
-#else
+# else
/* We don't have enough input for another complete input
character. */
assert (inend - inptr > (state->__count & ~7));
- assert (inend - inptr <= 7);
+ assert (inend - inptr <= sizeof (state->__value));
state->__count = (state->__count & ~7) | (inend - inptr);
inlen = 0;
while (inptr < inend)
state->__value.__wchb[inlen++] = *inptr++;
-#endif
+# endif
}
return result;
}
-# undef SINGLE
-# undef SINGLE2
-#endif
+# undef SINGLE
+# undef SINGLE2
+# endif
-#ifdef ONEBYTE_BODY
+# ifdef ONEBYTE_BODY
/* Define the shortcut function for btowc. */
static wint_t
gconv_btowc (struct __gconv_step *step, unsigned char c)
ONEBYTE_BODY
-# define FROM_ONEBYTE gconv_btowc
-#endif
+# define FROM_ONEBYTE gconv_btowc
+# endif
+#endif
/* We remove the macro definitions so that we can include this file again
for the definition of another function. */
diff -rNu compat-locales-sap-1.0.10.orig/saplocales-2.2.5/iconv/skeleton.c compat-locales-sap-1.0.10/saplocales-2.2.5/iconv/skeleton.c
--- compat-locales-sap-1.0.10.orig/saplocales-2.2.5/iconv/skeleton.c 2018-01-09 12:42:01.394580867 +0100
+++ compat-locales-sap-1.0.10/saplocales-2.2.5/iconv/skeleton.c 2018-01-10 07:58:37.922439161 +0100
@@ -1,5 +1,5 @@
/* Skeleton for a conversion module.
- Copyright (C) 1998-2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1998-2018 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -14,9 +14,8 @@
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. */
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
/* This file can be included to provide definitions of several things
many modules have in common. It can be customized using the following
@@ -39,24 +38,24 @@
FROM_LOOP_MIN_NEEDED_FROM
FROM_LOOP_MAX_NEEDED_FROM
- minimal/maximal number of bytes needed on input
- of one round through the FROM_LOOP. Defaults
- to MIN_NEEDED_FROM and MAX_NEEDED_FROM, respectively.
+ minimal/maximal number of bytes needed on input
+ of one round through the FROM_LOOP. Defaults
+ to MIN_NEEDED_FROM and MAX_NEEDED_FROM, respectively.
FROM_LOOP_MIN_NEEDED_TO
FROM_LOOP_MAX_NEEDED_TO
- minimal/maximal number of bytes needed on output
- of one round through the FROM_LOOP. Defaults
- to MIN_NEEDED_TO and MAX_NEEDED_TO, respectively.
+ minimal/maximal number of bytes needed on output
+ of one round through the FROM_LOOP. Defaults
+ to MIN_NEEDED_TO and MAX_NEEDED_TO, respectively.
TO_LOOP_MIN_NEEDED_FROM
TO_LOOP_MAX_NEEDED_FROM
- minimal/maximal number of bytes needed on input
- of one round through the TO_LOOP. Defaults
- to MIN_NEEDED_TO and MAX_NEEDED_TO, respectively.
+ minimal/maximal number of bytes needed on input
+ of one round through the TO_LOOP. Defaults
+ to MIN_NEEDED_TO and MAX_NEEDED_TO, respectively.
TO_LOOP_MIN_NEEDED_TO
TO_LOOP_MAX_NEEDED_TO
- minimal/maximal number of bytes needed on output
- of one round through the TO_LOOP. Defaults
- to MIN_NEEDED_FROM and MAX_NEEDED_FROM, respectively.
+ minimal/maximal number of bytes needed on output
+ of one round through the TO_LOOP. Defaults
+ to MIN_NEEDED_FROM and MAX_NEEDED_FROM, respectively.
FROM_DIRECTION this macro is supposed to return a value != 0
if we convert from the current character set,
@@ -145,6 +144,7 @@
#endif
#include <sysdep.h>
+#include <stdint.h>
#ifndef DL_CALL_FCT
# define DL_CALL_FCT(fct, args) fct args
@@ -163,7 +163,6 @@
# endif
#endif
-
/* How many bytes are needed at most for the from-charset. */
#ifndef MAX_NEEDED_FROM
# define MAX_NEEDED_FROM MIN_NEEDED_FROM
@@ -204,10 +203,10 @@
/* Define macros which can access unaligned buffers. These macros are
supposed to be used only in code outside the inner loops. For the inner
loops we have other definitions which allow optimized access. */
-#ifdef _STRING_ARCH_unaligned
+#if _STRING_ARCH_unaligned
/* We can handle unaligned memory access. */
-# define get16u(addr) *((__const uint16_t *) (addr))
-# define get32u(addr) *((__const uint32_t *) (addr))
+# define get16u(addr) *((const uint16_t *) (addr))
+# define get32u(addr) *((const uint32_t *) (addr))
/* We need no special support for writing values either. */
# define put16u(addr, val) *((uint16_t *) (addr)) = (val)
@@ -216,13 +215,13 @@
/* Distinguish between big endian and little endian. */
# if __BYTE_ORDER == __LITTLE_ENDIAN
# define get16u(addr) \
- (((__const unsigned char *) (addr))[1] << 8 \
- | ((__const unsigned char *) (addr))[0])
+ (((const unsigned char *) (addr))[1] << 8 \
+ | ((const unsigned char *) (addr))[0])
# define get32u(addr) \
- (((((__const unsigned char *) (addr))[3] << 8 \
- | ((__const unsigned char *) (addr))[2]) << 8 \
- | ((__const unsigned char *) (addr))[1]) << 8 \
- | ((__const unsigned char *) (addr))[0])
+ (((((const unsigned char *) (addr))[3] << 8 \
+ | ((const unsigned char *) (addr))[2]) << 8 \
+ | ((const unsigned char *) (addr))[1]) << 8 \
+ | ((const unsigned char *) (addr))[0])
# define put16u(addr, val) \
({ uint16_t __val = (val); \
@@ -241,13 +240,13 @@
(void) 0; })
# else
# define get16u(addr) \
- (((__const unsigned char *) (addr))[0] << 8 \
- | ((__const unsigned char *) (addr))[1])
+ (((const unsigned char *) (addr))[0] << 8 \
+ | ((const unsigned char *) (addr))[1])
# define get32u(addr) \
- (((((__const unsigned char *) (addr))[0] << 8 \
- | ((__const unsigned char *) (addr))[1]) << 8 \
- | ((__const unsigned char *) (addr))[2]) << 8 \
- | ((__const unsigned char *) (addr))[3])
+ (((((const unsigned char *) (addr))[0] << 8 \
+ | ((const unsigned char *) (addr))[1]) << 8 \
+ | ((const unsigned char *) (addr))[2]) << 8 \
+ | ((const unsigned char *) (addr))[3])
# define put16u(addr, val) \
({ uint16_t __val = (val); \
@@ -410,7 +409,7 @@
/* If the function is called with no input this means we have to reset
to the initial state. The possibly partly converted input is
dropped. */
- if (__builtin_expect (do_flush, 0))
+ if (__glibc_unlikely (do_flush))
{
/* This should never happen during error handling. */
assert (outbufstart == NULL);
@@ -461,7 +460,7 @@
if (result != __GCONV_EMPTY_INPUT)
{
- if (__builtin_expect (outerr != outbuf, 0))
+ if (__glibc_unlikely (outerr != outbuf))
{
/* We have a problem. Undo the conversion. */
outbuf = outstart;
@@ -502,8 +501,9 @@
}
else
{
- /* We preserve the initial values of the pointer variables. */
- const unsigned char *inptr = *inptrp;
+ /* We preserve the initial values of the pointer variables,
+ but only some conversion modules need it. */
+ const unsigned char *inptr __attribute__ ((__unused__)) = *inptrp;
unsigned char *outbuf = (__builtin_expect (outbufstart == NULL, 1)
? data->__outbuf : *outbufstart);
unsigned char *outend = data->__outbufend;
@@ -514,7 +514,7 @@
size_t *lirreversiblep = irreversible ? &lirreversible : NULL;
/* The following assumes that encodings, which have a variable length
- what might unalign a buffer even though it is a aligned in the
+ what might unalign a buffer even though it is an aligned in the
beginning, either don't have the minimal number of bytes as a divisor
of the maximum length or have a minimum length of 1. This is true
for all known and supported encodings.
@@ -523,7 +523,7 @@
INTERNAL, for which the subexpression evaluates to 1, but INTERNAL
buffers are always aligned correctly. */
#define POSSIBLY_UNALIGNED \
- (!defined _STRING_ARCH_unaligned \
+ (!_STRING_ARCH_unaligned \
&& (((FROM_LOOP_MIN_NEEDED_FROM != 1 \
&& FROM_LOOP_MAX_NEEDED_FROM % FROM_LOOP_MIN_NEEDED_FROM == 0) \
&& (FROM_LOOP_MIN_NEEDED_TO != 1 \
@@ -554,8 +554,8 @@
&& consume_incomplete && (data->__statep->__count & 7) != 0)
{
/* Yep, we have some bytes left over. Process them now.
- But this must not happen while we are called from an
- error handler. */
+ But this must not happen while we are called from an
+ error handler. */
assert (outbufstart == NULL);
# if FROM_LOOP_MAX_NEEDED_FROM > 1
@@ -593,8 +593,6 @@
while (1)
{
- struct __gconv_trans_data *trans;
-
/* Remember the start value for this round. */
inptr = *inptrp;
/* The outbuf buffer is empty. */
@@ -604,7 +602,7 @@
SAVE_RESET_STATE (1);
#endif
- if (__builtin_expect (!unaligned, 1))
+ if (__glibc_likely (!unaligned))
{
if (FROM_DIRECTION)
/* Run the conversion loop. */
@@ -635,38 +633,31 @@
/* If we were called as part of an error handling module we
don't do anything else here. */
- if (__builtin_expect (outbufstart != NULL, 0))
+ if (__glibc_unlikely (outbufstart != NULL))
{
*outbufstart = outbuf;
return status;
}
- /* Give the transliteration module the chance to store the
- original text and the result in case it needs a context. */
- for (trans = data->__trans; trans != NULL; trans = trans->__next)
- if (trans->__trans_context_fct != NULL)
- DL_CALL_FCT (trans->__trans_context_fct,
- (trans->__data, inptr, *inptrp, outstart, outbuf));
-
/* We finished one use of the loops. */
++data->__invocation_counter;
/* If this is the last step leave the loop, there is nothing
- we can do. */
- if (__builtin_expect (data->__flags & __GCONV_IS_LAST, 0))
+ we can do. */
+ if (__glibc_unlikely (data->__flags & __GCONV_IS_LAST))
{
/* Store information about how many bytes are available. */
data->__outbuf = outbuf;
/* Remember how many non-identical characters we
- converted in a irreversible way. */
+ converted in an irreversible way. */
*irreversible += lirreversible;
break;
}
/* Write out all output which was produced. */
- if (__builtin_expect (outbuf > outstart, 1))
+ if (__glibc_likely (outbuf > outstart))
{
const unsigned char *outerr = data->__outbuf;
int result;
@@ -677,14 +668,14 @@
if (result != __GCONV_EMPTY_INPUT)
{
- if (__builtin_expect (outerr != outbuf, 0))
+ if (__glibc_unlikely (outerr != outbuf))
{
#ifdef RESET_INPUT_BUFFER
RESET_INPUT_BUFFER;
#else
/* We have a problem in one of the functions below.
Undo the conversion upto the error point. */
- size_t nstatus;
+ size_t nstatus __attribute__ ((unused));
/* Reload the pointers. */
*inptrp = inptr;
@@ -695,7 +686,7 @@
SAVE_RESET_STATE (0);
# endif
- if (__builtin_expect (!unaligned, 1))
+ if (__glibc_likely (!unaligned))
{
if (FROM_DIRECTION)
/* Run the conversion loop. */
@@ -738,7 +729,7 @@
/* If we haven't consumed a single byte decrement
the invocation counter. */
- if (__builtin_expect (outbuf == outstart, 0))
+ if (__glibc_unlikely (outbuf == outstart))
--data->__invocation_counter;
#endif /* reset input buffer */
}
@@ -782,7 +773,7 @@
STORE_REST
# else
/* Make sure the remaining bytes fit into the state objects
- buffer. */
+ buffer. */
assert (inend - *inptrp < 4);
size_t cnt;

@ -0,0 +1,117 @@
--- saplocales-2.2.5/Makefile.jisx0213 2012-08-20 20:20:03.000000000 +0900
+++ saplocales-2.2.5/Makefile 2012-08-21 15:25:21.000000000 +0900
@@ -44,6 +44,9 @@ clean:
rm -rf $(GEN_MODULES) $(GEN_LOCALES)
+gconv/SAPSJISX0213.so: SAPSJISX0213.o jisx0213.o
+ $(CC) $(LDFLAGS) -o $@ $^
+
gconv/%.so: %.o
$(CC) $(LDFLAGS) -o $@ $<
--- saplocales-2.2.5/SAPSHIFT_JISX0213.jisx0213 2012-08-20 17:06:28.000000000 +0900
+++ saplocales-2.2.5/SAPSHIFT_JISX0213 2012-08-21 18:39:15.000000000 +0900
@@ -1,13 +1,16 @@
-<code_set_name> SHIFT_JISX0213
+<code_set_name> SAPSHIFT_JISX0213
<comment_char> %
<escape_char> /
<mb_cur_min> 1
<mb_cur_max> 2
-% Shift_JISX0213
+% SAP Shift_JISX0213
% Bruno Haible <bruno@clisp.org>, Gaspar Sinai, 2002
-% Last changed: 2004-07-31
+% Takao Fujiwara <tfujiwar@redhat.com>, 2012
+% Last changed: 2012-08-20
+% Modified glibc SHIFT_JISX0213
+% alias SAPSJISX0213
CHARMAP
<U0000> /x00 <control>
<U0001> /x01 <control>
@@ -101,7 +104,7 @@ CHARMAP
<U0059> /x59 LATIN CAPITAL LETTER Y
<U005A> /x5a LATIN CAPITAL LETTER Z
<U005B> /x5b LEFT SQUARE BRACKET
-<U00A5> /x5c YEN SIGN
+<U005C> /x5c YEN SIGN
<U005D> /x5d RIGHT SQUARE BRACKET
<U005E> /x5e CIRCUMFLEX ACCENT
<U005F> /x5f LOW LINE
@@ -135,7 +138,7 @@ CHARMAP
<U007B> /x7b LEFT CURLY BRACKET
<U007C> /x7c VERTICAL LINE
<U007D> /x7d RIGHT CURLY BRACKET
-<U203E> /x7e OVERLINE
+<U007E> /x7e OVERLINE
<U007F> /x7f <control>
<U3000> /x81/x40 IDEOGRAPHIC SPACE
<U3001> /x81/x41 IDEOGRAPHIC COMMA
@@ -263,7 +266,9 @@ CHARMAP
<U2282> /x81/xbc SUBSET OF
<U2283> /x81/xbd SUPERSET OF
<U222A> /x81/xbe UNION
+<U222A> /x87/x9c UNION
<U2229> /x81/xbf INTERSECTION
+<U2229> /x87/x9b INTERSECTION
<U2284> /x81/xc0 NOT A SUBSET OF
<U2285> /x81/xc1 NOT A SUPERSET OF
<U228A> /x81/xc2 SUBSET OF WITH NOT EQUAL TO
@@ -290,20 +295,28 @@ CHARMAP
<U3019> /x81/xd7 RIGHT WHITE TORTOISE SHELL BRACKET
<U3016> /x81/xd8 LEFT WHITE LENTICULAR BRACKET
<U3017> /x81/xd9 RIGHT WHITE LENTICULAR BRACKET
+<U2211> /x87/x94 N-ARY SUMMATION
<U2220> /x81/xda ANGLE
+<U2220> /x87/x97 ANGLE
<U22A5> /x81/xdb UP TACK
+<U22A5> /x87/x96 UP TACK
<U2312> /x81/xdc ARC
<U2202> /x81/xdd PARTIAL DIFFERENTIAL
<U2207> /x81/xde NABLA
<U2261> /x81/xdf IDENTICAL TO
+<U2261> /x87/x91 IDENTICAL TO
<U2252> /x81/xe0 APPROXIMATELY EQUAL TO OR THE IMAGE OF
+<U2252> /x87/x90 APPROXIMATELY EQUAL TO OR THE IMAGE OF
<U226A> /x81/xe1 MUCH LESS-THAN
<U226B> /x81/xe2 MUCH GREATER-THAN
<U221A> /x81/xe3 SQUARE ROOT
+<U221A> /x87/x95 SQUARE ROOT
<U223D> /x81/xe4 REVERSED TILDE
<U221D> /x81/xe5 PROPORTIONAL TO
<U2235> /x81/xe6 BECAUSE
+<U2235> /x87/x9a BECAUSE
<U222B> /x81/xe7 INTEGRAL
+<U222B> /x87/x92 INTEGRAL
<U222C> /x81/xe8 DOUBLE INTEGRAL
<U2262> /x81/xe9 NOT IDENTICAL TO
<U2243> /x81/xea ASYMPTOTICALLY EQUAL TO
--- saplocales-2.2.5/SAPSJISX0213.c.jisx0213 2012-06-14 08:17:03.000000000 +0900
+++ saplocales-2.2.5/SAPSJISX0213.c 2012-08-21 18:43:21.000000000 +0900
@@ -39,7 +39,7 @@
#include "jisx0213.h"
/* Definitions used in the body of the `gconv' function. */
-#define CHARSET_NAME "SHIFT_JISX0213//"
+#define CHARSET_NAME "SAPSJISX0213//"
#define FROM_LOOP from_shift_jisx0213
#define TO_LOOP to_shift_jisx0213
#define DEFINE_INIT 1
--- saplocales-2.2.5/jisx0213.c.jisx0213 2012-08-21 17:56:39.000000000 +0900
+++ saplocales-2.2.5/jisx0213.c 2012-08-21 18:28:40.000000000 +0900
@@ -322,9 +322,9 @@ const uint16_t __jisx0213_to_ucs_main[12
0x139d, 0x139e, 0x138e, 0x138f, 0x13c4, 0x13a1, 0x086b, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x137b, 0x101d,
0x101f, 0x0816, 0x13cd, 0x0821, 0x12a4, 0x12a5, 0x12a6, 0x12a7,
- 0x12a8, 0x1231, 0x1232, 0x1239, 0x137e, 0x137d, 0x137c, 0x0000,
- 0x0000, 0x0000, 0x092e, 0x0000, 0x0000, 0x0000, 0x0000, 0x091f,
- 0x09bf, 0x0000, 0x0000, 0x0000, 0x0e56, 0x0d1e,
+ 0x12a8, 0x1231, 0x1232, 0x1239, 0x137e, 0x137d, 0x137c, 0x0952,
+ 0x0961, 0x092b, 0x092e, 0x0911, 0x091a, 0x09a5, 0x0920, 0x091f,
+ 0x09bf, 0x0935, 0x0929, 0x092a, 0x0e56, 0x0d1e,
/* 0x12E21..0x12E7E */
0x2ff1, 0x840b, 0x1402, 0x2e28, 0x2e2f, 0x2e30, 0x2e8d, 0x2ee1,
0x2efd, 0x2eff, 0x2f03, 0x2f0b, 0x2f60, 0x2f48, 0x2f49, 0x2f56,

@ -0,0 +1,159 @@
#ifdef _SYSDEP_H
#define _SYSDEP_H 1
#include <stdint.h>
#ifdef __i386__
typedef struct
{
void *tcb;
dtv_t *dtv;
void *self;
int multiple_threads;
uintptr_t sysinfo;
uintptr_t stack_guard;
uintptr_t pointer_guard;
int gscope_flag;
int private_futex;
} tcbhead_t;
# ifdef FOR_GLIBC_2_6_AND_LATER
# define PTR_MANGLE(var) asm ("xorl %%gs:%c2, %0\n" \
"roll $9, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))
# define PTR_DEMANGLE(var) asm ("rorl $9, %0" \
"xorl %%gs:%c2, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))
# else
# define PTR_MANGLE(var) asm ("xorl %%gs:%c2, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))
# define PTR_DEMANGLE(var) asm ("xorl %%gs:%c2, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))
# endif
#elif defined __x86_64__
typedef struct
{
void *tcb;
void *dtv;
void *self;
int multiple_threads;
int gscope_flag;
uintptr_t sysinfo;
uintptr_t stack_guard;
uintptr_t pointer_guard;
unsigned long int vgetcpu_cache[2];
int private_futex;
int __pad1;
void *__private_tm[5];
} tcbhead_t;
# ifdef FOR_GLIBC_2_6_AND_LATER
# define PTR_MANGLE(var) asm ("xorq %%fs:%c2, %0\n" \
"rolq $17, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))
# define PTR_DEMANGLE(var) asm ("rorq $17, %0" \
"xorq %%fs:%c2, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))
# else
# define PTR_MANGLE(var) asm ("xorq %%fs:%c2, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))
# define PTR_DEMANGLE(var) asm ("xorq %%fs:%c2, %0" \
: "=r" (var) \
: "0" (var), \
"i" (offsetof (tcbhead_t, \
pointer_guard)))
# endif
#elif defined __powerpc__ || defined __powerpc64__
typedef struct
{
uintptr_t pointer_guard;
uintptr_t stack_guard;
void *dtv;
} tcbhead_t;
# ifndef __powerpc64__
register void *__thread_register __asm__ ("r2");
# else
register void *__thread_register __asm__ ("r13");
# endif
# define TLS_TCB_OFFSET 0x7000
# define THREAD_GET_POINTER_GUARD() \
(((tcbhead_t *) ((char *) __thread_register \
- TLS_TCB_OFFSET))[-1].pointer_guard)
# define PTR_MANGLE(var) \
(var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
# define PTR_DEMANGLE(var) PTR_MANGLE (var)
#elif defined __IA_64__
register void *__thread_self __asm__("r13");
#define THREAD_GET_POINTER_GUARD() \
(((uintptr_t *) __thread_self)[-2])
# define PTR_MANGLE(var) \
(var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
# define PTR_DEMANGLE(var) PTR_MANGLE (var)
#elif defined __s390__ || defined __s390x__
typedef struct
{
void *tcb;
void *dtv;
void *self;
int multiple_threads;
uintptr_t sysinfo;
uintptr_t stack_guard;
int gscope_flag;
int private_futex;
} tcbhead_t;
# define THREAD_SELF ((tcbhead_t *) __builtin_thread_pointer ())
#define THREAD_GETMEM(descr, member) \
descr->member
#define THREAD_GET_POINTER_GUARD() \
THREAD_GETMEM (THREAD_SELF, stack_guard)
# define PTR_MANGLE(var) \
(var) = (__typeof (var)) ((uintptr_t) (var) ^ THREAD_GET_POINTER_GUARD ())
# define PTR_DEMANGLE(var) PTR_MANGLE (var)
#else
# error "missing support for this architecture"
#endif
#endif

@ -0,0 +1,480 @@
%define __filter_GLIBC_PRIVATE 1
Name: compat-locales-sap
Version: 1.0.10
Release: 14%{?dist}
Summary: Compatibility locales for SAP
Group: System Environment/Libraries
License: LGPLv2+ and GPLv2+
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Source0: COPYING
Source1: saplocales-2.2.5.tgz
Source2: sysdep.h
Source3: shift_jisx0213-2.5-20061008T1257.tgz
# these locales changed in glibc-2.7
Source13: glibc-2.5-es_ES
Source14: glibc-2.5-de_DE
Source15: glibc-2.26-en_US
Source16: glibc-2.26-pl_PL
Source17: glibc-2.26-tr_TR
Source18: glibc-2.26-cs_CZ
Source19: glibc-2.26-sk_SK
Conflicts: %{name} <= 1.0.10-6
Requires: %{name}-common = %{version}-%{release}
BuildRequires: glibc-locale-source
BuildRequires: gcc
Patch0: saplocales-2.2.5-rhel5.patch
Patch1: glibc-cs_CZ@SAP.patch
Patch2: glibc-de_DE@POSIX.patch
Patch3: glibc-en_US@POSIX.patch
Patch4: glibc-sk_SK@SAP.patch
Patch5: glibc-tr_TR@SAP.patch
Patch6: glibc-de_DE@WINDOWS.patch
Patch7: glibc-en_US@WINDOWS.patch
Patch8: saplocales-2.2.5-SAPSJIS.patch
Patch9: glibc-es_ES@SAP.patch
Patch10: glibc-en_US@Solaris.patch
Patch11: glibc-de_DE@Solaris.patch
Patch12: glibc-en_US@HPUX.patch
Patch13: glibc-de_DE@HPUX.patch
Patch14: glibc-pl_PL@HPUX.patch
Patch15: saplocales-842448-shift-jisx0213.patch
Patch16: glibc-cs_CZ@HPUX.patch
Patch17: saplocales-2.2.5-rhel8.patch
Patch18: saplocales-2.2.5-ldflags.patch
%description
Compatibility locales for legacy data on SAP Application Servers.
This package provides gconv modules for SAPSJIS and SAPSJISX0213.
%package common
Summary: SAP locale files
Group: System Environment/Libraries
License: GPLv2+
%description common
This package provides various compatibility locales for use
with SAP Application Servers:
cs_CZ.ISO-8859-2@SAP, cs_CZ.ISO-8859-2@HPUX, sk_SK.ISO-8859-2@SAP,
lt_LT.ISO-8859-4@SAP, lv_LV.ISO-8859-4@SAP, et_EE.ISO-8859-4@SAP,
tr_TR.ISO-8859-9@SAP,
ja_JP.SAPSJIS, ko_KR.euckr@SAP,
de_DE.ISO-8859-1@POSIX, en_US.ISO-8859-1@POSIX,
de_DE.CP1252@WINDOWS, en_US.CP1252@WINDOWS,
es_ES.ISO-8859-1@SAP,
de_DE.ISO-8859-1@Solaris, en_US.ISO-8859-1@Solaris,
de_DE.ISO-8859-1@HPUX, en_US.ISO-8859-1@HPUX,
pl_PL.ISO-8859-1@HPUX
Note that SAPSJIS is incompatible with ASCII.
%prep
%setup -q -T -c -a1
%patch0 -p0 -b .orig
%patch17 -p1 -b .orig
%patch18 -p1 -b .orig
cp -p %SOURCE0 .
cp -p %SOURCE2 saplocales-2.2.5
cd saplocales-2.2.5
tar zxf %SOURCE3
cd ..
cp -p %SOURCE18 cs_CZ
%patch1 -p1 -b .orig
mv cs_CZ{,@SAP}
cp -p %SOURCE18 cs_CZ
%patch16 -p1 -b .orig
mv cs_CZ{,@HPUX}
cp -p %SOURCE14 de_DE
%patch2 -p1 -b .orig
mv de_DE{,@POSIX}
cp -p %SOURCE15 en_US
%patch3 -p1 -b .orig
mv en_US{,@POSIX}
cp -p %SOURCE19 sk_SK
%patch4 -p1 -b .orig
mv sk_SK{,@SAP}
cp -p %SOURCE17 tr_TR
%patch5 -p1 -b .orig
mv tr_TR{,@SAP}
cp -p %SOURCE14 de_DE
%patch6 -p1 -b .orig
mv de_DE{,@WINDOWS}
cp -p %SOURCE15 en_US
%patch7 -p1 -b .orig
mv en_US{,@WINDOWS}
# SAPSJIS fixes
%patch8 -p0 -b .orig
cp -p %SOURCE13 es_ES
%patch9 -p1 -b .orig
mv es_ES{,@SAP}
cp -p %SOURCE15 en_US
%patch10 -p1 -b .orig
mv en_US{,@Solaris}
cp -p %SOURCE14 de_DE
%patch11 -p1 -b .orig
mv de_DE{,@Solaris}
cp -p %SOURCE15 en_US
%patch12 -p1 -b .orig
mv en_US{,@HPUX}
cp -p %SOURCE14 de_DE
%patch13 -p1 -b .orig
mv de_DE{,@HPUX}
cp -p %SOURCE16 pl_PL
%patch14 -p1 -b .orig
mv pl_PL{,@HPUX}
gunzip -c %{_datadir}/i18n/charmaps/SHIFT_JISX0213.gz > saplocales-2.2.5/SAPSHIFT_JISX0213
mv saplocales-2.2.5/{shift_jisx0213.c,SAPSJISX0213.c}
%patch15 -p0 -b .orig
%build
make -C saplocales-2.2.5 gconv/SAPSJIS.so NEWFLAGS="-Wl,-z,now -DFOR_GLIBC_2_6_AND_LATER %{optflags}"
make -C saplocales-2.2.5 gconv/SAPSJISX0213.so NEWFLAGS="-Wl,-z,now -DFOR_GLIBC_2_6_AND_LATER %{optflags}"
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_libdir}
cp -a saplocales-2.2.5/gconv $RPM_BUILD_ROOT%{_libdir}
mkdir -p $RPM_BUILD_ROOT%{_datadir}/i18n/locales
cp -p cs_CZ@SAP cs_CZ@HPUX de_DE@HPUX de_DE@POSIX de_DE@Solaris de_DE@WINDOWS en_US@HPUX en_US@POSIX en_US@Solaris en_US@WINDOWS es_ES@SAP pl_PL@HPUX sk_SK@SAP tr_TR@SAP $RPM_BUILD_ROOT%{_datadir}/i18n/locales/
mkdir -p $RPM_BUILD_ROOT%{_datadir}/i18n/charmaps
cp -p saplocales-2.2.5/SAPSHIFT_JIS{,X0213} $RPM_BUILD_ROOT%{_datadir}/i18n/charmaps
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/locale
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/tr_TR@SAP \
-f ISO-8859-9 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/tr_TR@SAP
localedef --no-archive -ci ko_KR \
-f EUC-KR \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/ko_KR@SAP
localedef --no-archive -ci lt_LT \
-f ISO-8859-4 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/lt_LT@SAP
localedef --no-archive -ci lv_LV \
-f ISO-8859-4 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/lv_LV@SAP
localedef --no-archive -ci et_EE \
-f ISO-8859-4 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/et_EE@SAP
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/cs_CZ@SAP \
-f ISO-8859-2 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/cs_CZ@SAP
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/cs_CZ@HPUX \
-f ISO-8859-2 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/cs_CZ@HPUX
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/sk_SK@SAP \
-f ISO-8859-2 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/sk_SK@SAP
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/de_DE@POSIX \
-f ISO-8859-1 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/de_DE@POSIX
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/en_US@POSIX \
-f ISO-8859-1 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/en_US@POSIX
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/de_DE@WINDOWS \
-f CP1252 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/de_DE@WINDOWS
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/en_US@WINDOWS \
-f CP1252 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/en_US@WINDOWS
# ASCII incompatible locale
localedef --no-archive -ci ja_JP \
-f $RPM_BUILD_ROOT%{_datadir}/i18n/charmaps/SAPSHIFT_JISX0213 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/ja_JP.SAPSJIS
localedef --no-archive -ci ja_JP \
-f $RPM_BUILD_ROOT%{_datadir}/i18n/charmaps/SAPSHIFT_JIS \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/ja_JP.OLDSAPSJIS
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/es_ES@SAP \
-f ISO-8859-1 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/es_ES@SAP
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/en_US@Solaris \
-f ISO-8859-1 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/en_US@Solaris
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/de_DE@Solaris \
-f ISO-8859-1 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/de_DE@Solaris
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/en_US@HPUX \
-f ISO-8859-1 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/en_US@HPUX
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/de_DE@HPUX \
-f ISO-8859-1 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/de_DE@HPUX
localedef --no-archive -ci $RPM_BUILD_ROOT%{_datadir}/i18n/locales/pl_PL@HPUX \
-f ISO-8859-2 \
$RPM_BUILD_ROOT%{_prefix}/lib/locale/pl_PL@HPUX
gzip -n $RPM_BUILD_ROOT%{_datadir}/i18n/charmaps/SAPSHIFT_JIS*
%clean
rm -rf $RPM_BUILD_ROOT
%posttrans common
sed -i -e "/SAPSJIS/d" %{_libdir}/gconv/gconv-modules
sed -i -e "/SAPSJISX0213/d" %{_libdir}/gconv/gconv-modules
# from to module cost
cat >> %{_libdir}/gconv/gconv-modules << EOF
alias SAPSHIFT_JIS// SAPSJIS//
module SAPSJIS// INTERNAL SAPSJIS 1
module INTERNAL SAPSJIS// SAPSJIS 1
alias SAPSHIFT_JISX0213// SAPSJISX0213//
module SAPSJISX0213// INTERNAL SAPSJISX0213 1
module INTERNAL SAPSJISX0213// SAPSJISX0213 1
EOF
%{_sbindir}/iconvconfig -o %{_libdir}/gconv/gconv-modules.cache --nostdlib %{_libdir}/gconv
exit 0
%postun common
if [ $1 -eq 0 ] ; then
sed -i -e "/SAPSJIS/d" %{_libdir}/gconv/gconv-modules
sed -i -e "/SAPSJISX0213/d" %{_libdir}/gconv/gconv-modules
%{_sbindir}/iconvconfig -o %{_libdir}/gconv/gconv-modules.cache --nostdlib %{_libdir}/gconv
fi
exit 0
%files
%defattr(-,root,root,-)
%doc saplocales-2.2.5/COPYING.LIB
%{_libdir}/gconv/*
%files common
%defattr(-,root,root,-)
%doc COPYING
%{_datadir}/i18n/charmaps/*
%{_datadir}/i18n/locales/*
%dir %{_prefix}/lib/locale
%{_prefix}/lib/locale/*
%changelog
* Tue Aug 20 2019 Mike Fabian <mfabian@redhat.com> - 1.0.10-14
- glibc_post_upgrade.<_target_cpu> does not exist anymore, iconvconfig
needs to be used in the posttrans script.
- Related: rhbz#1737442
* Thu Aug 15 2019 Mike Fabian <mfabian@redhat.com> - 1.0.10-13
- Add LD_FLAGS to really fix RPMDiff FAIL: "Not linked with -Wl,-z,now."
- Related: rhbz#1737442
* Mon Aug 05 2019 Mike Fabian <mfabian@redhat.com> - 1.0.10-12
- Fix RPMDiff FAIL: "Not linked with -Wl,-z,now."
- Resolves: rhbz#1737442
* Tue May 14 2019 Mike Fabian <mfabian@redhat.com> - 1.0.10-11
- Bump release number because the scripts for the CI tests have been updated
- Related: rhbz#1682139
* Tue May 14 2019 Mike Fabian <mfabian@redhat.com> - 1.0.10-10
- SAPSJIS and SAPSJISX0213 locales need to be part of compat-locales-sap again
- Resolves: rhbz#1691404
* Tue Apr 23 2019 Mike Fabian <mfabian@redhat.com> - 1.0.10-9
- Add Conflicts: compat-locales-sap <= 1.0.10-6 to avoid
rpmdeplint error because of the architecture change.
- Related: rhbz#1698464
* Wed Apr 17 2019 Mike Fabian <mfabian@redhat.com> - 1.0.10-8
- Remove BuildArch: noarch. The binary locales are architecture
dependent.
- Related: rhbz#1698464
* Fri Apr 12 2019 Mike Fabian <mfabian@redhat.com> - 1.0.10-7
- Remove "Requires: glibc-all-langpacks" again and drop the
posttrans and postun scripts instead. If these scripts are removed,
glibc-all-langpacks is not needed anymore.
This avoids problems with /usr/sbin/build-locale-archive.
- Resolves: rhbz#1698464
* Wed Apr 10 2019 Mike Fabian <mfabian@redhat.com> - 1.0.10-6
- Add "Requires: glibc-all-langpacks"
- Resolves: rhbz#1691988 (rhel-8.1.0)
* Tue Oct 16 2018 Mike Fabian <mfabian@redhat.com> - 1.0.10-5
- Bump release number
- Resolves: rhbz#1639296
* Tue Oct 16 2018 Mike Fabian <mfabian@redhat.com> - 1.0.10-5
- Move all files into the main package and drop compat-locales-sap-common
sub-package.
- Resolves: rhbz#1639296
* Thu Feb 08 2018 Mike Fabian <mfabian@redhat.com> - 1.0.10-4
- Remove SAPSJIS and SAPSJISX0213 gconv modules as there is no
SJIS support on RHEL8
* Tue Feb 06 2018 Mike Fabian <mfabian@redhat.com> - 1.0.10-3
- Include the sources of the locales instead of copying them from glibc
* Mon Feb 05 2018 Mike Fabian <mfabian@redhat.com> - 1.0.10-2
- Fix build for RHEL-8
- Resolves: rhbz#1523696
- add BuildRequires: glibc-locale-source
- fix glibc-cs_CZ@SAP.patch
- fix glibc-cs_CZ@HPUX.patch
- fix glibc-sk_SK@SAP.patch
- fix glibc-tr_TR@SAP.patch
- fix category in glibc-2.5-de_DE and glibc-2.5-es_ES
- add patch for iconv stuff for RHEL-8
- add %define __filter_GLIBC_PRIVATE 1
* Wed Sep 30 2015 Mike Fabian <mfabian@redhat.com> - 1.0.10-1
- prevent locales being lost on glibc-common update (#1247865)
* Tue Sep 08 2015 Mike Fabian <mfabian@redhat.com> - 1.0.9-1
- add cs_CZ.ISO-8859-2@HPUX (#1255466)
* Thu Jan 24 2013 Jens Petersen <petersen@redhat.com> - 1.0.8-4
- change ja_JP.SAPSJIS locale from SAP SHIFT_JIS to SAP SHIFT_JISX0213
(Takao Fujiwara, #888856)
- previous ja_JP.SAPSJIS locale is still available as ja_JP.oldsapsjis
- fix install and uninstall scripts to setup the Shift JIS gconv modules
correctly when upgrading
* Fri Mar 9 2012 Jens Petersen <petersen@redhat.com> - 1.0.7-2
- further fixes to pl_PL.ISO-8859-2@HPUX (#784196)
* Thu Feb 23 2012 Jens Petersen <petersen@redhat.com> - 1.0.7-1
- add pl_PL.ISO-8859-2@HPUX (#784196)
* Fri Feb 18 2011 Jens Petersen <petersen@redhat.com> - 1.0.6-2
- fix collation of HPUX locales
* Mon Feb 14 2011 Jens Petersen <petersen@redhat.com> - 1.0.6-1
- add de_DE.ISO-8859-1@Solaris and en_US.ISO-8859-1@Solaris
(Pravin Satpute, #677352)
- add de_DE.ISO-8859-1@HPUX and en_US.ISO-8859-1@HPUX
(Pravin Satpute, #677354)
* Thu Sep 2 2010 Jens Petersen <petersen@redhat.com> - 1.0.5-1
- support es_ES.ISO-8859-1@SAP (Pravin Satpute, #629603)
* Fri Jun 25 2010 Jens Petersen <petersen@redhat.com> - 1.0.4-3
- build with debuginfo and FOR_GLIBC_2_6_AND_LATER (#607517)
* Thu Apr 29 2010 Jens Petersen <petersen@redhat.com> - 1.0.4-2
- lowercase sapsjis in postun
- prefix glibc_post_upgrade with _target_cpu instead of _arch
* Wed Apr 21 2010 Jens Petersen <petersen@redhat.com> - 1.0.4-1
- update saplocales-2.2.5-SAPSJIS.patch with SAPSHIFT_JIS fixes
by Takao Fujiwara (#249676)
* Fri Jan 29 2010 Jens Petersen <petersen@redhat.com> - 1.0.3-15
- run glibc_post_upgrade after updating or removing
* Tue Jan 26 2010 Jens Petersen <petersen@redhat.com> - 1.0.3-14
- also use SAPSJIS// in the gconv module
* Tue Jan 26 2010 Jens Petersen <petersen@redhat.com> - 1.0.3-13
- follow glibc's naming scheme for SHIFT_JIS for SAPSHIFT_JIS (#249676):
- alias SAPSHIFT_JIS to SAPSJIS
- add saplocales-2.2.5-SAPSJIS.patch
- force SAPSJIS localedef like others
* Thu Jan 21 2010 Jens Petersen <petersen@redhat.com> - 1.0.3-12
- ja_JP.SAPSJIS not ja_JP.SJIS@SAP (#249676)
* Tue Jan 19 2010 Jens Petersen <petersen@redhat.com> - 1.0.3-11
- don't install gconv-modules.SAP (#249676)
- add SAPSJIS module to gconv-modules (#249676)
* Thu Jan 14 2010 Jens Petersen <petersen@redhat.com> - 1.0.3-10
- add ja_JP@SAP modified SJIS locale again with saplocales-2.2.5 (#249676)
- package is arch again
* Fri Dec 18 2009 Jens Petersen <petersen@redhat.com> - 1.0.3-9
- fix weights of ' and - in WINDOWS locales (Pravin Satpute)
* Fri Nov 6 2009 Jens Petersen <petersen@redhat.com> - 1.0.3-8
- localedef without encodings to get both names with and without defined
* Fri Oct 30 2009 Jens Petersen <petersen@redhat.com> - 1.0.3-7
- drop .CP1252 from names when defining archives of WINDOWS locales (#517889)
* Wed Oct 28 2009 Jens Petersen <petersen@redhat.com> - 1.0.3-6
- add de_DE@WINDOWS
* Wed Oct 14 2009 Jens Petersen <petersen@redhat.com> - 1.0.3-5
- fix some en_US@WINDOWS collation rules (Pravin Satpute)
* Mon Oct 12 2009 Jens Petersen <petersen@redhat.com> - 1.0.3-4
- call windows compat locale en_US.CP1252@WINDOWS
* Fri Oct 9 2009 Jens Petersen <petersen@redhat.com> - 1.0.3-3
- correct en_US@WINDOWS localedef name
* Tue Sep 22 2009 Jens Petersen <petersen@redhat.com> - 1.0.3-2
- install COPYING
* Mon Sep 14 2009 Jens Petersen <petersen@redhat.com> - 1.0.3-1
- add a en_US@WINDOWS by Pravin Satpute (#517889)
- add COPYING
- cleanup setup section
* Wed Jul 15 2009 Jens Petersen <petersen@redhat.com> - 1.0.2-1
- remove ja_JP.SJIS@SAP since it is not JISX0213: base package now empty
- make noarch
* Mon Jul 6 2009 Jens Petersen <petersen@redhat.com> - 1.0.1-1
- use patches to glibc locales rather than modified locale tarball
- update tr_TR@SAP to pass SAP tests (#467488)
- gzip SAPSHIFT_JIS
* Wed Jun 17 2009 Jens Petersen <petersen@redhat.com> - 1.0-1
- package the newer locales in a tarball and call it version 1.0 (#488915)
- update description (#488915)
- don't own gconv dir (#488915)
* Fri Jun 5 2009 Jens Petersen <petersen@redhat.com>
- drop the de_DE iso14651_HP collation for now
* Thu Jun 4 2009 Jens Petersen <petersen@redhat.com>
- rename from sap-locale to distinguish package from SAP's saplocales package
- add posix locales for de_DE and en_US (Nils Philippsen)
- add iso14651_HP collation for de_DE from OpenSuSE's sap-locale package
- update tr_TR locale with one from SuSE sap-locale
- bump version to 2.5
* Fri May 15 2009 Jens Petersen <petersen@redhat.com>
- add cs_CZ.ISO-8859-2@SAP and sk_SK.ISO-8859-2@SAP (thanks Pravin Satpute)
* Fri May 8 2009 Jens Petersen <petersen@redhat.com>
- reworked package to provide tr_TR.ISO-8859-9@SAP, ko_KR.euckr@SAP
lt_LT.ISO-8859-4@SAP, lv_LV.ISO-8859-4@SAP, et_EE.ISO-8859-4@SAP,
and ja_JP.SJIS@SAP (#467488)
* Fri Mar 6 2009 Jens Petersen <petersen@redhat.com>
- update README
- add some notes to common description about locale
* Mon Mar 2 2009 Jens Petersen <petersen@redhat.com>
- initial packaging of SAP package for RHEL Supplementary (#467488)
- saplocales-2.2.5-rhel5.patch with sysdep.h from Uli Drepper
Loading…
Cancel
Save