]> TLD Linux GIT Repositories - packages/rpm.git/blobdiff - rpm-libmagic-locale.patch
- merged rpm-4_5 branch from PLD
[packages/rpm.git] / rpm-libmagic-locale.patch
index b25740706d5cabcfb457387128d50daf270a1c39..29fcc32986867cdd270d732bec0fa3d761ecc760 100644 (file)
@@ -1,22 +1,35 @@
---- rpm-4.5/lib/rpmfc.c.org    2010-10-06 20:47:04.748417761 +0200
-+++ rpm-4.5/lib/rpmfc.c        2010-10-06 20:48:13.364041124 +0200
-@@ -1356,8 +1356,18 @@
+--- rpm-4.5/lib/rpmfc.c.org    2012-02-29 16:32:05.655058968 +0100
++++ rpm-4.5/lib/rpmfc.c        2012-02-29 16:36:22.430972834 +0100
+@@ -1114,9 +1114,31 @@
            /* XXX skip all files in /dev/ which are (or should be) %dev dummies. */
            else if (slen >= fc->brlen+sizeof("/dev/") && !strncmp(s+fc->brlen, "/dev/", sizeof("/dev/")-1))
                ftype = "";
 -          else
 +          else {
-+              char *old_loc = setlocale(LC_CTYPE, NULL);
-+              if (old_loc) {
-+                      old_loc = xstrdup(old_loc);
++              char *old_ctype = setlocale(LC_CTYPE, NULL);
++              char *old_collate = setlocale(LC_COLLATE, NULL);
++
++              if (old_ctype) {
++                      old_ctype = xstrdup(old_ctype);
 +                      setlocale(LC_CTYPE, "C");
 +              }
++              if (old_collate) {
++                      old_collate = xstrdup(old_collate);
++                      setlocale(LC_COLLATE, "C");
++              }
++
                ftype = magic_file(ms, s);
-+              if (old_loc) {
-+                      setlocale(LC_CTYPE, old_loc);
-+                      _free(old_loc);
++              if (old_ctype) {
++                      setlocale(LC_CTYPE, old_ctype);
++                      _free(old_ctype);
++              }
++              if (old_collate) {
++                      setlocale(LC_COLLATE, old_collate);
++                      _free(old_collate);
 +              }
 +          }
++
            if (ftype == NULL) {
                xx = RPMERR_EXEC;
+               rpmError(xx, _("magic_file(ms, \"%s\") failed: mode %06o %s\n"),