aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--localedata/ChangeLog4
-rw-r--r--localedata/de_DE.in6
-rw-r--r--string/strcoll_l.c24
3 files changed, 25 insertions, 9 deletions
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index 07d5185..376ad87 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,7 @@
+2007-10-02 Ulrich Drepper <drepper@redhat.com>
+
+ * de_DE.in: Adjust for correct handling of backward direction sorting.
+
2007-10-01 Ulrich Drepper <drepper@redhat.com>
[BZ #4941]
diff --git a/localedata/de_DE.in b/localedata/de_DE.in
index c56f401..b3b0dac 100644
--- a/localedata/de_DE.in
+++ b/localedata/de_DE.in
@@ -40,8 +40,8 @@ Füße (pl. of "Fuß") : feet
Fussel : fluff
fusseln : to wear of fluff
füßeln : play footsie [under the table]
-fußen : to be based [on]
Füssen : Füssen (town)
+fußen : to be based [on]
Füßen (dat. pl. of "Fuß") : [to the] feet
in Massen : in large numbers
in Maßen : moderately
@@ -49,9 +49,9 @@ Masern : measels
Mass. (Massachusetts) : Massachusetts (state)
Maß : measure
Masse : mass
-Massé : (particular billard stroke)
Maße (pl. of "Maß") : measures
mäße (pres. conj. of "messen") : take measure (e.g. in indirect speech)
+Massé : (particular billard stroke)
Massen- : mass; wholesale; bulk (in compound nouns)
massig : massive
mäßig : moderate; modest
@@ -60,8 +60,8 @@ Miß : Miss
Passe : yoke (of dress)
passé : over, gone
Schlagerforderung : claim, demanded in a pop song
-Schlagerförderung : promotion of pop music
Schlägerforderung : demand of a hooligan
+Schlagerförderung : promotion of pop music
Schlägerförderung : promotion of hooliganism :-)
Schurz : apron
Schürze : apron
diff --git a/string/strcoll_l.c b/string/strcoll_l.c
index c46921d..8bd84b1 100644
--- a/string/strcoll_l.c
+++ b/string/strcoll_l.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995,96,97,2002, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 1995,96,97,2002, 2004, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper <drepper@gnu.org>, 1995.
@@ -128,7 +128,7 @@ STRCOLL (s1, s2, l)
Please note that the localedef programs makes sure that `position'
is not used at the first level. */
- if (! __libc_use_alloca (s1len + s2len))
+ if (! __libc_use_alloca ((s1len + s2len) * (sizeof (int32_t) + 1)))
{
idx1arr = (int32_t *) malloc ((s1len + s2len) * (sizeof (int32_t) + 1));
idx2arr = &idx1arr[s1len];
@@ -186,7 +186,10 @@ STRCOLL (s1, s2, l)
/* The last pushed character was handled. Continue
with forward characters. */
if (idx1cnt < idx1max)
- idx1now = idx1cnt;
+ {
+ idx1now = idx1cnt;
+ backw1_stop = ~0ul;
+ }
else
/* Nothing anymore. The backward sequence ended with
the last sequence in the string. Note that seq1len
@@ -245,7 +248,10 @@ STRCOLL (s1, s2, l)
/* The last pushed character was handled. Continue
with forward characters. */
if (idx2cnt < idx2max)
- idx2now = idx2cnt;
+ {
+ idx2now = idx2cnt;
+ backw2_stop = ~0ul;
+ }
else
/* Nothing anymore. The backward sequence ended with
the last sequence in the string. Note that seq2len
@@ -370,7 +376,10 @@ STRCOLL (s1, s2, l)
/* The last pushed character was handled. Continue
with forward characters. */
if (idx1cnt < idx1max)
- idx1now = idx1cnt;
+ {
+ idx1now = idx1cnt;
+ backw1_stop = ~0ul;
+ }
else
{
/* Nothing anymore. The backward sequence
@@ -426,7 +435,10 @@ STRCOLL (s1, s2, l)
/* The last pushed character was handled. Continue
with forward characters. */
if (idx2cnt < idx2max)
- idx2now = idx2cnt;
+ {
+ idx2now = idx2cnt;
+ backw2_stop = ~0ul;
+ }
else
{
/* Nothing anymore. The backward sequence