diff options
| author | Jari Aalto <jari.aalto@cante.net> | 2000-03-17 21:46:59 +0000 |
|---|---|---|
| committer | Jari Aalto <jari.aalto@cante.net> | 2009-09-12 16:46:53 +0000 |
| commit | bb70624e964126b7ac4ff085ba163a9c35ffa18f (patch) | |
| tree | ba2dd4add13ada94b1899c6d4aca80195b80b74b /locale.c | |
| parent | b72432fdcc59300c6fe7c9d6c8a31ad3447933f5 (diff) | |
| download | android_external_bash-bb70624e964126b7ac4ff085ba163a9c35ffa18f.tar.gz android_external_bash-bb70624e964126b7ac4ff085ba163a9c35ffa18f.tar.bz2 android_external_bash-bb70624e964126b7ac4ff085ba163a9c35ffa18f.zip | |
Imported from ../bash-2.04.tar.gz.
Diffstat (limited to 'locale.c')
| -rw-r--r-- | locale.c | 23 |
1 files changed, 18 insertions, 5 deletions
@@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License along with Bash; see the file COPYING. If not, write to the Free Software - Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ #include "config.h" @@ -81,6 +81,12 @@ set_default_locale_vars () setlocale (LC_MESSAGES, lc_all); # endif /* LC_MESSAGES */ +# if defined (LC_NUMERIC) + val = get_string_value ("LC_NUMERIC"); + if (val == 0 && lc_all && *lc_all) + setlocale (LC_NUMERIC, lc_all); +# endif /* LC_NUMERIC */ + #endif /* HAVE_SETLOCALE */ val = get_string_value ("TEXTDOMAIN"); @@ -136,7 +142,7 @@ set_locale_var (var, value) lc_all[0] = '\0'; } #if defined (HAVE_SETLOCALE) - return (setlocale (LC_ALL, value) != 0); + return (setlocale (LC_ALL, lc_all) != 0); #else return (1); #endif @@ -146,22 +152,29 @@ set_locale_var (var, value) else if (var[3] == 'C' && var[4] == 'T') /* LC_CTYPE */ { if (lc_all == 0 || *lc_all == '\0') - return (setlocale (LC_CTYPE, value) != 0); + return (setlocale (LC_CTYPE, value ? value : "") != 0); } else if (var[3] == 'C' && var[4] == 'O') /* LC_COLLATE */ { # if defined (LC_COLLATE) if (lc_all == 0 || *lc_all == '\0') - return (setlocale (LC_COLLATE, value) != 0); + return (setlocale (LC_COLLATE, value ? value : "") != 0); # endif /* LC_COLLATE */ } else if (var[3] == 'M' && var[4] == 'E') /* LC_MESSAGES */ { # if defined (LC_MESSAGES) if (lc_all == 0 || *lc_all == '\0') - return (setlocale (LC_MESSAGES, value) != 0); + return (setlocale (LC_MESSAGES, value ? value : "") != 0); # endif /* LC_MESSAGES */ } + else if (var[3] = 'N' && var[4] == 'U') /* LC_NUMERIC */ + { +# if defined (LC_NUMERIC) + if (lc_all == 0 || *lc_all == '\0') + return (setlocale (LC_NUMERIC, value ? value : "") != 0); +# endif /* LC_NUMERIC */ + } #endif /* HAVE_SETLOCALE */ return (0); |
