]>
Commit | Line | Data |
---|---|---|
d693495e AM |
1 | --- rpm-4.5/lib/rpmfc.c.org 2012-02-29 16:32:05.655058968 +0100 |
2 | +++ rpm-4.5/lib/rpmfc.c 2012-02-29 16:36:22.430972834 +0100 | |
3 | @@ -1114,9 +1114,31 @@ | |
31e05c71 AM |
4 | /* XXX skip all files in /dev/ which are (or should be) %dev dummies. */ |
5 | else if (slen >= fc->brlen+sizeof("/dev/") && !strncmp(s+fc->brlen, "/dev/", sizeof("/dev/")-1)) | |
6 | ftype = ""; | |
7 | - else | |
8 | + else { | |
d693495e AM |
9 | + char *old_ctype = setlocale(LC_CTYPE, NULL); |
10 | + char *old_collate = setlocale(LC_COLLATE, NULL); | |
11 | + | |
12 | + if (old_ctype) { | |
13 | + old_ctype = xstrdup(old_ctype); | |
31e05c71 AM |
14 | + setlocale(LC_CTYPE, "C"); |
15 | + } | |
d693495e | 16 | + if (old_collate) { |
d4545e48 | 17 | + old_collate = xstrdup(old_collate); |
d693495e AM |
18 | + setlocale(LC_COLLATE, "C"); |
19 | + } | |
20 | + | |
31e05c71 | 21 | ftype = magic_file(ms, s); |
d693495e AM |
22 | |
23 | + if (old_ctype) { | |
24 | + setlocale(LC_CTYPE, old_ctype); | |
25 | + _free(old_ctype); | |
26 | + } | |
27 | + if (old_collate) { | |
28 | + setlocale(LC_COLLATE, old_collate); | |
29 | + _free(old_collate); | |
31e05c71 AM |
30 | + } |
31 | + } | |
d693495e | 32 | + |
31e05c71 AM |
33 | if (ftype == NULL) { |
34 | xx = RPMERR_EXEC; | |
d693495e | 35 | rpmError(xx, _("magic_file(ms, \"%s\") failed: mode %06o %s\n"), |