diff options
author | Ludovic Courtès <ludo@gnu.org> | 2011-11-22 12:11:48 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2011-11-22 12:11:48 +0100 |
commit | bb9b357e2b98cea82f844115ee5f66704bb6a1c8 (patch) | |
tree | 6ade45891ae7b0d6d89f91d86645360e24f004ef | |
parent | fcd68d8e88796eaeb8f9ed41d4afe5fa30e01efd (diff) | |
download | guile-bb9b357e2b98cea82f844115ee5f66704bb6a1c8.tar.gz |
Install the current locale when Guile is invoked directly.
* libguile/guile.c (main): Add `setlocale' call.
-rw-r--r-- | libguile/guile.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libguile/guile.c b/libguile/guile.c index 6da547b75..1ed28d5d9 100644 --- a/libguile/guile.c +++ b/libguile/guile.c @@ -1,5 +1,6 @@ -/* Copyright (C) 1996,1997,2000,2001, 2006, 2008 Free Software Foundation, Inc. - * +/* Copyright (C) 1996, 1997, 2000, 2001, 2006, 2008, + * 2011 Free Software Foundation, Inc. + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 3 of @@ -36,6 +37,7 @@ #include <libguile/scmconfig.h> #endif #include <ltdl.h> +#include <locale.h> #ifdef HAVE_WINSOCK2_H #include <winsock2.h> @@ -67,6 +69,14 @@ inner_main (void *closure SCM_UNUSED, int argc, char **argv) int main (int argc, char **argv) { + /* Install the locale right at the beginning so that string conversion + for command-line arguments, along with possible error messages, use + the right locale. See + <https://lists.gnu.org/archive/html/guile-devel/2011-11/msg00041.html> + for the rationale. */ + if (setlocale (LC_ALL, "") == NULL) + fprintf (stderr, "guile: warning: failed to install locale\n"); + scm_boot_guile (argc, argv, inner_main, 0); return 0; /* never reached */ } |