]>
Commit | Line | Data |
---|---|---|
1 | --- rpm-4.5/rpmio/rpmmg.c.org 2012-02-29 16:32:05.655058968 +0100 | |
2 | +++ rpm-4.5/rpmio/rpmmg.c 2012-02-29 16:36:22.430972834 +0100 | |
3 | @@ -118,7 +118,29 @@ | |
4 | /*@fallthrough@*/ | |
5 | case URL_IS_UNKNOWN: | |
6 | default: | |
7 | + { | |
8 | + char *old_ctype = setlocale(LC_CTYPE, NULL); | |
9 | + char *old_collate = setlocale(LC_COLLATE, NULL); | |
10 | + | |
11 | + if (old_ctype) { | |
12 | + old_ctype = xstrdup(old_ctype); | |
13 | + setlocale(LC_CTYPE, "C"); | |
14 | + } | |
15 | + if (old_collate) { | |
16 | + old_collate = xstrdup(old_collate); | |
17 | + setlocale(LC_COLLATE, "C"); | |
18 | + } | |
19 | + | |
20 | t = magic_file(mg->ms, fn); | |
21 | + | |
22 | + if (old_ctype) { | |
23 | + setlocale(LC_CTYPE, old_ctype); | |
24 | + _free(old_ctype); | |
25 | + } | |
26 | + if (old_collate) { | |
27 | + setlocale(LC_COLLATE, old_collate); | |
28 | + _free(old_collate); | |
29 | + } | |
30 | /* XXX HACK: libmagic compiled without <pcreposix.h> spews here. */ | |
31 | if (t == NULL) { | |
32 | const char * msg = magic_error(mg->ms); | |
33 | @@ -147,6 +176,7 @@ | |
34 | rpmlog(RPMLOG_ERR, _("magic_file(ms, %s) failed: %s\n"), | |
35 | (fn ? fn : "(nil)"), msg); | |
36 | } | |
37 | + } | |
38 | break; | |
39 | } | |
40 | } |