]> git.pld-linux.org Git - packages/rpm.git/blob - rpm-glob.patch
rpmGlob() now locale independent
[packages/rpm.git] / rpm-glob.patch
1 --- rpm-4.0.2/lib/misc.c.glob   Wed May 16 13:00:10 2001
2 +++ rpm-4.0.2/lib/misc.c        Wed May 16 15:35:28 2001
3 @@ -583,6 +583,11 @@
4      const char * path;
5      const char * globURL;
6      char * globRoot = NULL;
7 +#ifdef ENABLE_NLS      
8 +       char * old_collate = NULL;
9 +       char * old_ctype = NULL;
10 +       char * t;
11 +#endif
12      size_t maxb, nb;
13      glob_t gl;
14      int ut;
15 @@ -593,6 +598,17 @@
16      if (rc)
17         return rc;
18  
19 +#ifdef ENABLE_NLS
20 +       t = setlocale(LC_COLLATE, NULL);
21 +       if (t)
22 +               old_collate = strdup(t);
23 +       t = setlocale(LC_CTYPE, NULL);
24 +       if (t)
25 +               old_ctype = strdup(t);
26 +       setlocale(LC_COLLATE, "C");
27 +       setlocale(LC_CTYPE, "C");
28 +#endif
29 +       
30      for (j = 0; j < ac; j++) {
31         if (!myGlobPatternP(av[j])) {
32             if (argc == 0)
33 @@ -667,6 +683,17 @@
34  
35  
36  exit:
37 +#ifdef ENABLE_NLS
38 +       if (old_collate) {
39 +               setlocale(LC_COLLATE, old_collate);
40 +               free(old_collate);
41 +       }
42 +       if (old_ctype) {
43 +               setlocale(LC_CTYPE, old_ctype);
44 +               free(old_ctype);
45 +       }
46 +#endif
47 +
48      if (av)
49         free((void *)av);
50      if ((rc || argvPtr == NULL) && argv) {
This page took 0.04178 seconds and 4 git commands to generate.