chiark / gitweb /
eglibc (2.11.3-4+deb6u3) squeeze-lts; urgency=medium
[eglibc.git] / debian / patches / locale / LC_COLLATE-keywords-ordering.diff
1 Be less strict about keywords ordering in LC_COLLATE section, to
2 ease definition of new scripts.
3
4 Submitted upstream: BZ690
5
6 # DP: Dpatch author: Denis Barbier
7 # DP: Patch author: Denis Barbier
8 # DP: Upstream status: BZ690
9 # DP: Date: 2006-01-08
10
11 ---
12  locale/programs/ld-collate.c |   32 ++++++++++++++++++--------------
13  1 file changed, 18 insertions(+), 14 deletions(-)
14
15 --- a/locale/programs/ld-collate.c
16 +++ b/locale/programs/ld-collate.c
17 @@ -2752,14 +2752,23 @@
18        switch (nowtok)
19         {
20         case tok_copy:
21 -         /* Allow copying other locales.  */
22 +         /* Ignore the rest of the line if we don't need the input of
23 +            this line.  */
24 +         if (ignore_content)
25 +           {
26 +             lr_ignore_rest (ldfile, 0);
27 +             break;
28 +           }
29 +
30           now = lr_token (ldfile, charmap, result, NULL, verbose);
31           if (now->tok != tok_string)
32             goto err_label;
33  
34 -         if (! ignore_content)
35 -           load_locale (LC_COLLATE, now->val.str.startmb, repertoire_name,
36 -                        charmap, result);
37 +         if (state == 1 || state == 3 || state == 5)
38 +           goto err_label;
39 +
40 +         load_locale (LC_COLLATE, now->val.str.startmb, repertoire_name,
41 +                      charmap, result);
42  
43           lr_ignore_rest (ldfile, 1);
44           break;
45 @@ -2773,9 +2782,6 @@
46               break;
47             }
48  
49 -         if (state != 0)
50 -           goto err_label;
51 -
52           arg = lr_token (ldfile, charmap, result, NULL, verbose);
53           if (arg->tok != tok_number)
54             goto err_label;
55 @@ -2796,7 +2802,7 @@
56               break;
57             }
58  
59 -         if (state != 0)
60 +         if (state == 1 || state == 3 || state == 5)
61             goto err_label;
62  
63           arg = lr_token (ldfile, charmap, result, repertoire, verbose);
64 @@ -2843,7 +2849,7 @@
65               break;
66             }
67  
68 -         if (state != 0 && state != 2)
69 +         if (state == 1 || state == 3 || state == 5)
70             goto err_label;
71  
72           arg = lr_token (ldfile, charmap, result, repertoire, verbose);
73 @@ -2909,7 +2915,7 @@
74               break;
75             }
76  
77 -         if (state != 0 && state != 2)
78 +         if (state == 1 || state == 3 || state == 5)
79             goto err_label;
80  
81           arg = lr_token (ldfile, charmap, result, repertoire, verbose);
82 @@ -3055,7 +3061,7 @@
83               break;
84             }
85  
86 -         if (state != 0)
87 +         if (state == 1 || state == 3 || state == 5)
88             goto err_label;
89  
90           arg = lr_token (ldfile, charmap, result, repertoire, verbose);
91 @@ -3176,7 +3182,7 @@
92               break;
93             }
94  
95 -         if (state != 0 && state != 1 && state != 2)
96 +         if (state == 3 || state == 5)
97             goto err_label;
98           state = 1;
99  
100 @@ -3487,8 +3493,6 @@
101  %s: missing `reorder-end' keyword"), "LC_COLLATE"));
102               state = 4;
103             }
104 -         else if (state != 2 && state != 4)
105 -           goto err_label;
106           state = 5;
107  
108           /* Get the name of the sections we are adding after.  */