This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
threads documentation: fork on UNIX might not copy all threads.
[perl5.git]
/
locale.c
diff --git
a/locale.c
b/locale.c
index
c03451b
..
6f5f016
100644
(file)
--- a/
locale.c
+++ b/
locale.c
@@
-1,6
+1,7
@@
/* locale.c
*
/* locale.c
*
- * Copyright (c) 2001-2002, Larry Wall
+ * Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+ * 2000, 2001, 2002, 2003, by Larry Wall and others
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
@@
-475,7
+476,7
@@
Perl_init_i18nl10n(pTHX_ int printwarn)
#ifdef USE_PERLIO
{
#ifdef USE_PERLIO
{
- /* Set PL_
wantutf8
to TRUE if using PerlIO _and_
+ /* Set PL_
utf8locale
to TRUE if using PerlIO _and_
any of the following are true:
- nl_langinfo(CODESET) contains /^utf-?8/i
- $ENV{LC_ALL} contains /^utf-?8/i
any of the following are true:
- nl_langinfo(CODESET) contains /^utf-?8/i
- $ENV{LC_ALL} contains /^utf-?8/i
@@
-487,37
+488,44
@@
Perl_init_i18nl10n(pTHX_ int printwarn)
it overrides LC_MESSAGES for GNU gettext, and it also
can have more than one locale, separated by spaces,
in case you need to know.)
it overrides LC_MESSAGES for GNU gettext, and it also
can have more than one locale, separated by spaces,
in case you need to know.)
- If PL_
wantutf8 is true, perl.c:S_parse_body(
)
- will turn on the PerlIO :utf8 discipline on STDIN, STDOUT,
- STDERR, _and_ the default open discipline.
+ If PL_
utf8locale and PL_unicode (set by -C or by $ENV{PERL_UNICODE}
)
+ are true, perl.c:S_parse_body() will turn on the PerlIO :utf8 layer
+
on STDIN, STDOUT,
STDERR, _and_ the default open discipline.
*/
*/
- bool
wantutf8
= FALSE;
+ bool
utf8locale
= FALSE;
char *codeset = NULL;
#if defined(HAS_NL_LANGINFO) && defined(CODESET)
codeset = nl_langinfo(CODESET);
#endif
if (codeset)
char *codeset = NULL;
#if defined(HAS_NL_LANGINFO) && defined(CODESET)
codeset = nl_langinfo(CODESET);
#endif
if (codeset)
-
wantutf8
= (ibcmp(codeset, "UTF-8", 5) == 0 ||
- ibcmp(codeset, "UTF8", 4) == 0);
+
utf8locale
= (ibcmp(codeset, "UTF-8", 5) == 0 ||
+
ibcmp(codeset, "UTF8", 4) == 0);
#if defined(USE_LOCALE)
else { /* nl_langinfo(CODESET) is supposed to correctly
* interpret the locale environment variables,
* but just in case it fails, let's do this manually. */
if (lang)
#if defined(USE_LOCALE)
else { /* nl_langinfo(CODESET) is supposed to correctly
* interpret the locale environment variables,
* but just in case it fails, let's do this manually. */
if (lang)
-
wantutf8
= (ibcmp(lang, "UTF-8", 5) == 0 ||
- ibcmp(lang, "UTF8", 4) == 0);
+
utf8locale
= (ibcmp(lang, "UTF-8", 5) == 0 ||
+
ibcmp(lang, "UTF8", 4) == 0);
#ifdef USE_LOCALE_CTYPE
if (curctype)
#ifdef USE_LOCALE_CTYPE
if (curctype)
-
wantutf8
= (ibcmp(curctype, "UTF-8", 5) == 0 ||
- ibcmp(curctype, "UTF8", 4) == 0);
+
utf8locale
= (ibcmp(curctype, "UTF-8", 5) == 0 ||
+
ibcmp(curctype, "UTF8", 4) == 0);
#endif
if (lc_all)
#endif
if (lc_all)
- wantutf8 = (ibcmp(lc_all, "UTF-8", 5) == 0 ||
- ibcmp(lc_all, "UTF8", 4) == 0);
-#endif /* USE_LOCALE */
+ utf8locale = (ibcmp(lc_all, "UTF-8", 5) == 0 ||
+ ibcmp(lc_all, "UTF8", 4) == 0);
}
}
- if (wantutf8)
- PL_wantutf8 = TRUE;
+#endif /* USE_LOCALE */
+ if (utf8locale)
+ PL_utf8locale = TRUE;
+ }
+ /* Set PL_unicode to $ENV{PERL_UNICODE} if using PerlIO.
+ This is an alternative to using the -C command line switch
+ (the -C if present will override this). */
+ {
+ char *p = PerlEnv_getenv("PERL_UNICODE");
+ PL_unicode = p ? parse_unicode_opts(&p) : 0;
}
#endif
}
#endif