summaryrefslogtreecommitdiffstats
path: root/contrib/file/src/funcs.c
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2014-12-11 19:27:27 +0000
committerdim <dim@FreeBSD.org>2014-12-11 19:27:27 +0000
commitda65ea02a341dd797c46b6987753bc1453982b36 (patch)
treed9a72217c1d2c4dcfef27a2fd2078dd4b3f69a64 /contrib/file/src/funcs.c
parent4cba228708753c1128b75a2c25c0dda582a9913a (diff)
parentdc1c036751105b0a801375ba642278a13543bf7c (diff)
downloadFreeBSD-src-da65ea02a341dd797c46b6987753bc1453982b36.zip
FreeBSD-src-da65ea02a341dd797c46b6987753bc1453982b36.tar.gz
Merge ^/head r275685 through r275714.
Diffstat (limited to 'contrib/file/src/funcs.c')
-rw-r--r--contrib/file/src/funcs.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/contrib/file/src/funcs.c b/contrib/file/src/funcs.c
index 7e7d2e7..f190349 100644
--- a/contrib/file/src/funcs.c
+++ b/contrib/file/src/funcs.c
@@ -27,7 +27,7 @@
#include "file.h"
#ifndef lint
-FILE_RCSID("@(#)$File: funcs.c,v 1.72 2014/05/14 23:15:42 christos Exp $")
+FILE_RCSID("@(#)$File: funcs.c,v 1.77 2014/11/28 02:46:39 christos Exp $")
#endif /* lint */
#include "magic.h"
@@ -45,9 +45,6 @@ FILE_RCSID("@(#)$File: funcs.c,v 1.72 2014/05/14 23:15:42 christos Exp $")
#if defined(HAVE_LIMITS_H)
#include <limits.h>
#endif
-#if defined(HAVE_LOCALE_H)
-#include <locale.h>
-#endif
#ifndef SIZE_MAX
#define SIZE_MAX ((size_t)~0)
@@ -230,7 +227,7 @@ file_buffer(struct magic_set *ms, int fd, const char *inname __attribute__ ((unu
/* try soft magic tests */
if ((ms->flags & MAGIC_NO_CHECK_SOFT) == 0)
- if ((m = file_softmagic(ms, ubuf, nb, 0, BINTEST,
+ if ((m = file_softmagic(ms, ubuf, nb, 0, NULL, BINTEST,
looks_text)) != 0) {
if ((ms->flags & MAGIC_DEBUG) != 0)
(void)fprintf(stderr, "softmagic %d\n", m);
@@ -455,13 +452,14 @@ out:
protected int
file_regcomp(file_regex_t *rx, const char *pat, int flags)
{
- rx->old_lc_ctype = setlocale(LC_CTYPE, NULL);
- assert(rx->old_lc_ctype != NULL);
- rx->old_lc_ctype = strdup(rx->old_lc_ctype);
+#ifdef USE_C_LOCALE
+ rx->c_lc_ctype = newlocale(LC_CTYPE_MASK, "C", 0);
+ assert(rx->c_lc_ctype != NULL);
+ rx->old_lc_ctype = uselocale(rx->c_lc_ctype);
assert(rx->old_lc_ctype != NULL);
+#endif
rx->pat = pat;
- (void)setlocale(LC_CTYPE, "C");
return rx->rc = regcomp(&rx->rx, pat, flags);
}
@@ -478,8 +476,10 @@ file_regfree(file_regex_t *rx)
{
if (rx->rc == 0)
regfree(&rx->rx);
- (void)setlocale(LC_CTYPE, rx->old_lc_ctype);
- free(rx->old_lc_ctype);
+#ifdef USE_C_LOCALE
+ (void)uselocale(rx->old_lc_ctype);
+ freelocale(rx->c_lc_ctype);
+#endif
}
protected void
OpenPOWER on IntegriCloud