diff options
Diffstat (limited to 'locale.c')
-rw-r--r-- | locale.c | 21 |
1 files changed, 19 insertions, 2 deletions
@@ -71,8 +71,8 @@ set_default_locale () textdomain (PACKAGE); } -/* Set default values for LC_CTYPE, LC_COLLATE, LC_MESSAGES and LC_NUMERIC - if they are not specified in the environment, but LC_ALL is. This +/* Set default values for LC_CTYPE, LC_COLLATE, LC_MESSAGES, LC_NUMERIC and + LC_TIME if they are not specified in the environment, but LC_ALL is. This should be called from main() after parsing the environment. */ void set_default_locale_vars () @@ -109,6 +109,12 @@ set_default_locale_vars () setlocale (LC_NUMERIC, lc_all); # endif /* LC_NUMERIC */ +# if defined (LC_TIME) + val = get_string_value ("LC_TIME"); + if (val == 0 && lc_all && *lc_all) + setlocale (LC_TIME, lc_all); +# endif /* LC_TIME */ + #endif /* HAVE_SETLOCALE */ val = get_string_value ("TEXTDOMAIN"); @@ -213,7 +219,15 @@ set_locale_var (var, value) return (setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC")) != 0); # endif /* LC_NUMERIC */ } + else if (var[3] == 'T' && var[4] == 'I') /* LC_TIME */ + { +# if defined (LC_TIME) + if (lc_all == 0 || *lc_all == '\0') + return (setlocale (LC_TIME, get_locale_var ("LC_TIME")) != 0); +# endif /* LC_TIME */ + } #endif /* HAVE_SETLOCALE */ + return (0); } @@ -285,6 +299,9 @@ reset_locale_vars () # if defined (LC_NUMERIC) setlocale (LC_NUMERIC, get_locale_var ("LC_NUMERIC")); # endif +# if defined (LC_TIME) + setlocale (LC_TIME, get_locale_var ("LC_TIME")); +# endif locale_setblanks (); |