guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 15/55: Use 'scm_from_utf8_{string, symbol, keyword}' for


From: Andy Wingo
Subject: [Guile-commits] 15/55: Use 'scm_from_utf8_{string, symbol, keyword}' for C string literals.
Date: Thu, 23 May 2019 11:52:38 -0400 (EDT)

wingo pushed a commit to branch master
in repository guile.

commit 3ae69f30632dba1677d2ed822297cf4599a8d9dd
Author: Mark H Weaver <address@hidden>
Date:   Tue Oct 16 02:34:18 2018 -0400

    Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals.
    
    Partial fix for <https://bugs.gnu.org/33044>.
    Reported by Tom de Vries <address@hidden>.
    
    Fix several instances of the mistake of using 'scm_from_locale_*' for C
    strings that originally came from a C string literal.  Change several
    uses of 'scm_from_latin1_*' as well, to promote the practice of writing
    code that works for arbitrary C string literals.
    
    Also add missing years to the copyright notices of changed files, based
    on the git history.
    
    * libguile/debug-malloc.c, libguile/deprecation.c, libguile/error.c,
    libguile/eval.c, libguile/expand.c, libguile/extensions.c,
    libguile/filesys.c, libguile/init.c, libguile/load.c,
    libguile/modules.c, libguile/pairs.c, libguile/posix.c,
    libguile/print.c, libguile/random.c, libguile/read.c,
    libguile/regex-posix.c, libguile/snarf.h, libguile/srfi-13.c,
    libguile/stacks.c, libguile/stime.c, libguile/strports.c,
    libguile/values.c: Use 'scm_from_utf8_*' where appropriate.
---
 libguile/debug-malloc.c |  4 ++--
 libguile/deprecation.c  |  4 ++--
 libguile/error.c        | 14 +++++++-------
 libguile/eval.c         | 20 ++++++++++----------
 libguile/expand.c       | 10 +++++-----
 libguile/extensions.c   | 10 ++++------
 libguile/filesys.c      |  4 ++--
 libguile/init.c         |  4 ++--
 libguile/keywords.h     |  6 +++---
 libguile/load.c         | 35 +++++++++++++++++++----------------
 libguile/modules.c      |  4 ++--
 libguile/pairs.c        |  4 ++--
 libguile/posix.c        |  4 ++--
 libguile/print.c        | 10 +++++-----
 libguile/random.c       |  7 +++++--
 libguile/read.c         | 17 ++++++++++-------
 libguile/regex-posix.c  |  6 +++---
 libguile/snarf.h        |  2 +-
 libguile/srfi-13.c      |  6 ++----
 libguile/stacks.c       |  6 +++---
 libguile/stime.c        |  4 ++--
 libguile/strports.c     |  4 ++--
 libguile/values.c       |  2 +-
 23 files changed, 96 insertions(+), 91 deletions(-)

diff --git a/libguile/debug-malloc.c b/libguile/debug-malloc.c
index ec684bc..ac8bf71 100644
--- a/libguile/debug-malloc.c
+++ b/libguile/debug-malloc.c
@@ -1,4 +1,4 @@
-/* Copyright 2000,2006,2008,2018
+/* Copyright 2000-2002,2004,2006,2008-2009,2018-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -224,7 +224,7 @@ SCM_DEFINE (scm_malloc_stats, "malloc-stats", 0, 0, 0,
   int i;
   for (i = 0; i < malloc_type_size + N_SEEK; ++i)
     if (malloc_type[i].key)
-      res = scm_acons (scm_from_locale_string ((char *) malloc_type[i].key),
+      res = scm_acons (scm_from_utf8_string ((char *) malloc_type[i].key),
                       scm_from_int ((int) malloc_type[i].data),
                       res);
   return res;
diff --git a/libguile/deprecation.c b/libguile/deprecation.c
index 646c252..a85ed19 100644
--- a/libguile/deprecation.c
+++ b/libguile/deprecation.c
@@ -1,4 +1,4 @@
-/* Copyright 2001,2006,2010-2011,2018
+/* Copyright 2001,2005-2006,2009-2012,2016,2018-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -115,7 +115,7 @@ SCM_DEFINE(scm_issue_deprecation_warning,
     print_summary = 1;
   else
     {
-      SCM nl = scm_from_locale_string ("\n");
+      SCM nl = scm_from_utf8_string ("\n");
       SCM msgs_nl = SCM_EOL;
       char *c_msgs;
       while (scm_is_pair (msgs))
diff --git a/libguile/error.c b/libguile/error.c
index 01a2e8d..aa45aec 100644
--- a/libguile/error.c
+++ b/libguile/error.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-1998,2000-2001,2004,2006,2010,2012-2014,2018
+/* Copyright 1995-1998,2000-2001,2004,2006,2010,2012-2016,2018-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -61,8 +61,8 @@ scm_error (SCM key, const char *subr, const char *message, 
SCM args, SCM rest)
 {
   scm_error_scm 
     (key,
-     (subr == NULL) ? SCM_BOOL_F : scm_from_locale_string (subr),
-     (message == NULL) ? SCM_BOOL_F : scm_from_locale_string (message),
+     (subr == NULL) ? SCM_BOOL_F : scm_from_utf8_string (subr),
+     (message == NULL) ? SCM_BOOL_F : scm_from_utf8_string (message),
      args, rest);
 }
 
@@ -235,7 +235,7 @@ scm_error_num_args_subr (const char *subr)
   scm_error (scm_args_number_key,
             NULL,
             "Wrong number of arguments to ~A",
-            scm_list_1 (scm_from_locale_string (subr)),
+            scm_list_1 (scm_from_utf8_string (subr)),
             SCM_BOOL_F);
 }
 
@@ -258,8 +258,8 @@ scm_i_wrong_type_arg_symbol (SCM symbol, int pos, SCM 
bad_value)
 {
   scm_error_scm (scm_arg_type_key,
                 scm_symbol_to_string (symbol),
-                (pos == 0) ? scm_from_locale_string ("Wrong type: ~S")
-                : scm_from_locale_string ("Wrong type argument in position ~A: 
~S"),
+                (pos == 0) ? scm_from_utf8_string ("Wrong type: ~S")
+                : scm_from_utf8_string ("Wrong type argument in position ~A: 
~S"),
                 (pos == 0) ? scm_list_1 (bad_value)
                 : scm_list_2 (scm_from_int (pos), bad_value),
                 scm_list_1 (bad_value));
@@ -269,7 +269,7 @@ scm_i_wrong_type_arg_symbol (SCM symbol, int pos, SCM 
bad_value)
 void
 scm_wrong_type_arg_msg (const char *subr, int pos, SCM bad_value, const char 
*szMessage)
 {
-  SCM msg = scm_from_locale_string (szMessage);
+  SCM msg = scm_from_utf8_string (szMessage);
   if (pos == 0)
     {
       scm_error (scm_arg_type_key,
diff --git a/libguile/eval.c b/libguile/eval.c
index d60b8de..db6d3a5 100644
--- a/libguile/eval.c
+++ b/libguile/eval.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-1996,1997-2014,2018
+/* Copyright 1995-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -201,22 +201,22 @@ env_set (SCM env, int depth, int width, SCM val)
 
 static void error_missing_value (SCM proc, SCM kw)
 {
-  scm_error_scm (scm_from_latin1_symbol ("keyword-argument-error"), proc,
-                 scm_from_locale_string ("Keyword argument has no value"), 
SCM_EOL,
+  scm_error_scm (scm_from_utf8_symbol ("keyword-argument-error"), proc,
+                 scm_from_utf8_string ("Keyword argument has no value"), 
SCM_EOL,
                  scm_list_1 (kw));
 }
 
 static void error_invalid_keyword (SCM proc, SCM obj)
 {
-  scm_error_scm (scm_from_latin1_symbol ("keyword-argument-error"), proc,
-                 scm_from_locale_string ("Invalid keyword"), SCM_EOL,
+  scm_error_scm (scm_from_utf8_symbol ("keyword-argument-error"), proc,
+                 scm_from_utf8_string ("Invalid keyword"), SCM_EOL,
                  scm_list_1 (obj));
 }
 
 static void error_unrecognized_keyword (SCM proc, SCM kw)
 {
-  scm_error_scm (scm_from_latin1_symbol ("keyword-argument-error"), proc,
-                 scm_from_locale_string ("Unrecognized keyword"), SCM_EOL,
+  scm_error_scm (scm_from_utf8_symbol ("keyword-argument-error"), proc,
+                 scm_from_utf8_string ("Unrecognized keyword"), SCM_EOL,
                  scm_list_1 (kw));
 }
 
@@ -233,9 +233,9 @@ truncate_values (SCM x)
         return scm_i_value_ref (x, 0);
       else
         {
-          scm_ithrow (scm_from_latin1_symbol ("vm-run"),
-                      scm_list_3 (scm_from_latin1_symbol ("vm-run"),
-                                  scm_from_locale_string
+          scm_ithrow (scm_from_utf8_symbol ("vm-run"),
+                      scm_list_3 (scm_from_utf8_symbol ("vm-run"),
+                                  scm_from_utf8_string
                                   ("Too few values returned to continuation"),
                                   SCM_EOL),
                       1);
diff --git a/libguile/expand.c b/libguile/expand.c
index eccb889..dd6eab0 100644
--- a/libguile/expand.c
+++ b/libguile/expand.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-1996,1997-2014,2018
+/* Copyright 1995-2014,2016,2018-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -224,7 +224,7 @@ SCM_KEYWORD (kw_rest, "rest");
 static void 
 syntax_error (const char* const msg, const SCM form, const SCM expr)
 {
-  SCM msg_string = scm_from_locale_string (msg);
+  SCM msg_string = scm_from_utf8_string (msg);
   SCM filename = SCM_BOOL_F;
   SCM linenr = SCM_BOOL_F;
   const char *format;
@@ -487,7 +487,7 @@ expand_cond_clauses (SCM clause, SCM rest, int elp, int 
alp, SCM env)
       && scm_is_eq (CADR (clause), scm_sym_arrow)
       && alp)
     {
-      SCM tmp = scm_gensym (scm_from_locale_string ("cond "));
+      SCM tmp = scm_gensym (scm_from_utf8_string ("cond "));
       SCM new_env = scm_acons (tmp, tmp, env);
       ASSERT_SYNTAX (length > 2, s_missing_recipient, clause);
       ASSERT_SYNTAX (length == 3, s_extra_expression, clause);
@@ -1596,7 +1596,7 @@ make_exp_vtable (size_t n)
   
   layout = scm_string_to_symbol
     (scm_string_append (scm_make_list (scm_from_size_t (exp_nfields[n]),
-                                       scm_from_locale_string ("pw"))));
+                                       scm_from_utf8_string ("pw"))));
   printer = SCM_BOOL_F;
   name = scm_from_utf8_symbol (exp_names[n]);
   code = scm_from_size_t (n);
@@ -1638,7 +1638,7 @@ scm_init_expand ()
   DEFINE_NAMES (LETREC);
 
   scm_exp_vtable_vtable =
-    scm_make_vtable (scm_from_locale_string (SCM_VTABLE_BASE_LAYOUT "pwuwpw"),
+    scm_make_vtable (scm_from_utf8_string (SCM_VTABLE_BASE_LAYOUT "pwuwpw"),
                      SCM_BOOL_F);
 
   for (n = 0; n < SCM_NUM_EXPANDED_TYPES; n++)
diff --git a/libguile/extensions.c b/libguile/extensions.c
index c285b11..a094159 100644
--- a/libguile/extensions.c
+++ b/libguile/extensions.c
@@ -1,6 +1,4 @@
-/* extensions.c - registering and loading extensions.
-
-   Copyright 2001,2006,2009-2011,2018
+/* Copyright 2001,2002,2004,2006,2009-2011,2018-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -93,9 +91,9 @@ load_extension (SCM lib, SCM init)
 
       scm_dynwind_begin (0);
 
-      clib = scm_to_locale_string (lib);
+      clib = scm_to_utf8_string (lib);
       scm_dynwind_free (clib);
-      cinit = scm_to_locale_string (init);
+      cinit = scm_to_utf8_string (init);
       scm_dynwind_free (cinit);
 
       for (ext = head; ext; ext = ext->next)
@@ -126,7 +124,7 @@ load_extension (SCM lib, SCM init)
 void
 scm_c_load_extension (const char *lib, const char *init)
 {
-  load_extension (scm_from_locale_string (lib), scm_from_locale_string (init));
+  load_extension (scm_from_utf8_string (lib), scm_from_utf8_string (init));
 }
 
 SCM_DEFINE (scm_load_extension, "load-extension", 2, 0, 0,
diff --git a/libguile/filesys.c b/libguile/filesys.c
index 7713c0a..113cf78 100644
--- a/libguile/filesys.c
+++ b/libguile/filesys.c
@@ -1,4 +1,4 @@
-/* Copyright 1996-2002,2004,2006,2009-2014,2016-2018
+/* Copyright 1996-2002,2004,2006,2009-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -1951,7 +1951,7 @@ scm_init_filesys ()
   scm_c_define ("X_OK", scm_from_int (X_OK));
   scm_c_define ("F_OK", scm_from_int (F_OK));
 
-  scm_dot_string = scm_from_locale_string (".");
+  scm_dot_string = scm_from_utf8_string (".");
 
 #include "filesys.x"
 }
diff --git a/libguile/init.c b/libguile/init.c
index ed4043c..e33a603 100644
--- a/libguile/init.c
+++ b/libguile/init.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-2004,2006,2009-2014,2018
+/* Copyright 1995-2004,2006,2009-2014,2016-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -244,7 +244,7 @@ scm_load_startup_files ()
      SCM_SITE_DIR and SCM_LIBRARY_DIR when searching for the site init
      file, so we do this before loading Ice-9.  */
   SCM init_path =
-    scm_sys_search_load_path (scm_from_locale_string ("init.scm"));
+    scm_sys_search_load_path (scm_from_utf8_string ("init.scm"));
 
   /* Load Ice-9.  */
   if (!scm_ice_9_already_loaded)
diff --git a/libguile/keywords.h b/libguile/keywords.h
index 42040f0..c8f4808 100644
--- a/libguile/keywords.h
+++ b/libguile/keywords.h
@@ -1,7 +1,7 @@
 #ifndef SCM_KEYWORDS_H
 #define SCM_KEYWORDS_H
 
-/* Copyright 1995-1996,1999-2001,2006,2008,2015,2018
+/* Copyright 1995-1996,1999-2001,2006,2008,2015,2018-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -42,11 +42,11 @@ SCM_API SCM scm_from_utf8_keyword (const char *name);
 
 #define SCM_KEYWORD(c_name, scheme_name) \
 SCM_SNARF_HERE(static SCM c_name) \
-SCM_SNARF_INIT(c_name = scm_from_locale_keyword (scheme_name))
+SCM_SNARF_INIT(c_name = scm_from_utf8_keyword (scheme_name))
 
 #define SCM_GLOBAL_KEYWORD(c_name, scheme_name) \
 SCM_SNARF_HERE(SCM c_name) \
-SCM_SNARF_INIT(c_name = scm_from_locale_keyword (scheme_name))
+SCM_SNARF_INIT(c_name = scm_from_utf8_keyword (scheme_name))
 
 enum scm_keyword_arguments_flags
 {
diff --git a/libguile/load.c b/libguile/load.c
index f6ad92d..e95c36d 100644
--- a/libguile/load.c
+++ b/libguile/load.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-1996,1998-2001,2004,2006,2008-2014,2017-2018
+/* Copyright 1995-1996,1998-2001,2004,2006,2008-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -154,7 +154,7 @@ SCM_DEFINE (scm_sys_package_data_dir, "%package-data-dir", 
0, 0, 0,
            "@samp{/usr/local/share/guile}.")
 #define FUNC_NAME s_scm_sys_package_data_dir
 {
-  return scm_from_locale_string (SCM_PKGDATA_DIR);
+  return scm_from_utf8_string (SCM_PKGDATA_DIR);
 }
 #undef FUNC_NAME
 #endif /* SCM_PKGDATA_DIR */
@@ -166,7 +166,7 @@ SCM_DEFINE (scm_sys_library_dir, "%library-dir", 0,0,0,
            "E.g., may return \"/usr/share/guile/1.3.5\".")
 #define FUNC_NAME s_scm_sys_library_dir
 {
-  return scm_from_locale_string (SCM_LIBRARY_DIR);
+  return scm_from_utf8_string (SCM_LIBRARY_DIR);
 }
 #undef FUNC_NAME
 #endif /* SCM_LIBRARY_DIR */
@@ -192,7 +192,7 @@ SCM_DEFINE (scm_sys_global_site_dir, "%global-site-dir", 
0,0,0,
            "E.g., may return \"/usr/share/guile/site\".")
 #define FUNC_NAME s_scm_sys_global_site_dir
 {
-  return scm_from_locale_string (SCM_GLOBAL_SITE_DIR);
+  return scm_from_utf8_string (SCM_GLOBAL_SITE_DIR);
 }
 #undef FUNC_NAME
 #endif /* SCM_GLOBAL_SITE_DIR */
@@ -205,7 +205,7 @@ SCM_DEFINE (scm_sys_site_ccache_dir, "%site-ccache-dir", 
0,0,0,
            "E.g., may return \"/usr/lib/guile/" SCM_EFFECTIVE_VERSION 
"/site-ccache\".")
 #define FUNC_NAME s_scm_sys_site_ccache_dir
 {
-  return scm_from_locale_string (SCM_SITE_CCACHE_DIR);
+  return scm_from_utf8_string (SCM_SITE_CCACHE_DIR);
 }
 #undef FUNC_NAME
 #endif /* SCM_SITE_CCACHE_DIR */
@@ -310,6 +310,9 @@ scm_i_mirror_backslashes (char *path)
 
       while (*p)
        {
+          /* FIXME: When the locale encoding is Shift_JIS, backslash '\'
+             has a multibyte representation, so this code will
+             misbehave.  */
          if (*p == '\\')
            *p = '/';
          p++;
@@ -339,10 +342,10 @@ scm_init_load_path ()
   else if (env)
     path = scm_parse_path (scm_from_locale_string (env), path);
   else
-    path = scm_list_4 (scm_from_locale_string (SCM_LIBRARY_DIR),
-                       scm_from_locale_string (SCM_SITE_DIR),
-                       scm_from_locale_string (SCM_GLOBAL_SITE_DIR),
-                       scm_from_locale_string (SCM_PKGDATA_DIR));
+    path = scm_list_4 (scm_from_utf8_string (SCM_LIBRARY_DIR),
+                       scm_from_utf8_string (SCM_SITE_DIR),
+                       scm_from_utf8_string (SCM_GLOBAL_SITE_DIR),
+                       scm_from_utf8_string (SCM_PKGDATA_DIR));
 
   env = scm_i_mirror_backslashes (getenv ("GUILE_SYSTEM_COMPILED_PATH"));
   if (env && strcmp (env, "") == 0)
@@ -352,8 +355,8 @@ scm_init_load_path ()
     cpath = scm_parse_path (scm_from_locale_string (env), cpath);
   else
     {
-      cpath = scm_list_2 (scm_from_locale_string (SCM_CCACHE_DIR),
-                          scm_from_locale_string (SCM_SITE_CCACHE_DIR));
+      cpath = scm_list_2 (scm_from_utf8_string (SCM_CCACHE_DIR),
+                          scm_from_utf8_string (SCM_SITE_CCACHE_DIR));
     }
 
 #endif /* SCM_LIBRARY_DIR */
@@ -954,7 +957,7 @@ SCM_DEFINE (scm_search_path, "search-path", 2, 0, 1,
            {
              require_exts = SCM_CADR (rest);
              if (SCM_UNLIKELY (!scm_is_null (SCM_CDDR (rest))))
-               scm_wrong_num_args (scm_from_locale_string (FUNC_NAME));
+               scm_wrong_num_args (scm_from_utf8_string (FUNC_NAME));
            }
        }
       else
@@ -1280,10 +1283,10 @@ scm_init_eval_in_scheme (void)
   int found_stale_eval_go = 0;
 
   eval_scm = search_path (*scm_loc_load_path,
-                          scm_from_locale_string ("ice-9/eval.scm"),
+                          scm_from_utf8_string ("ice-9/eval.scm"),
                           SCM_EOL, SCM_BOOL_F, &stat_source);
   eval_thunk =
-    load_thunk_from_path (scm_from_locale_string ("ice-9/eval.go"),
+    load_thunk_from_path (scm_from_utf8_string ("ice-9/eval.go"),
                           eval_scm, &stat_source, &found_stale_eval_go);
   
   if (scm_is_true (eval_thunk))
@@ -1341,13 +1344,13 @@ scm_init_load ()
   scm_loc_load_path = SCM_VARIABLE_LOC (scm_c_define ("%load-path", SCM_EOL));
   scm_loc_load_extensions
     = SCM_VARIABLE_LOC (scm_c_define ("%load-extensions",
-                                     scm_list_2 (scm_from_locale_string 
(".scm"),
+                                     scm_list_2 (scm_from_utf8_string (".scm"),
                                                  scm_nullstr)));
   scm_loc_load_compiled_path
     = SCM_VARIABLE_LOC (scm_c_define ("%load-compiled-path", SCM_EOL));
   scm_loc_load_compiled_extensions
     = SCM_VARIABLE_LOC (scm_c_define ("%load-compiled-extensions",
-                                     scm_list_1 (scm_from_locale_string 
(".go"))));
+                                     scm_list_1 (scm_from_utf8_string 
(".go"))));
   scm_loc_load_hook = SCM_VARIABLE_LOC (scm_c_define ("%load-hook", 
SCM_BOOL_F));
 
   scm_loc_compile_fallback_path
diff --git a/libguile/modules.c b/libguile/modules.c
index b0327fc..0e8f083 100644
--- a/libguile/modules.c
+++ b/libguile/modules.c
@@ -1,4 +1,4 @@
-/* Copyright 1998,2000-2004,2006-2012,2017-2018
+/* Copyright 1998,2000-2004,2006-2012,2017-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -920,7 +920,7 @@ scm_post_boot_init_modules ()
   default_duplicate_binding_procedures_var = 
     scm_c_lookup ("default-duplicate-binding-procedures");
   module_public_interface_var = scm_c_lookup ("module-public-interface");
-  k_ensure = scm_from_locale_keyword ("ensure");
+  k_ensure = scm_from_utf8_keyword ("ensure");
 
   scm_module_system_booted_p = 1;
 }
diff --git a/libguile/pairs.c b/libguile/pairs.c
index b2dac98..64222b4 100644
--- a/libguile/pairs.c
+++ b/libguile/pairs.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-1996,2000-2001,2004-2006,2008-2009,2011-2013,2018
+/* Copyright 1995-1996,2000-2001,2004-2006,2008-2013,2017-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -55,7 +55,7 @@ verify (SCM_BITS_DIFFER_IN_EXACTLY_ONE_BIT_POSITION           
\
 void scm_error_pair_access (SCM non_pair)
 {
   static unsigned int running = 0;
-  SCM message = scm_from_locale_string ("Non-pair accessed with SCM_C[AD]R: 
`~S'\n");
+  SCM message = scm_from_utf8_string ("Non-pair accessed with SCM_C[AD]R: 
`~S'\n");
 
   if (!running)
     {
diff --git a/libguile/posix.c b/libguile/posix.c
index 43e353e..728b18b 100644
--- a/libguile/posix.c
+++ b/libguile/posix.c
@@ -376,11 +376,11 @@ SCM_DEFINE (scm_getpwuid, "getpw", 0, 1, 0,
   SCM_SIMPLE_VECTOR_SET(result, 3, scm_from_ulong (entry->pw_gid));
   SCM_SIMPLE_VECTOR_SET(result, 4, scm_from_locale_string (entry->pw_gecos));
   if (!entry->pw_dir)
-    SCM_SIMPLE_VECTOR_SET(result, 5, scm_from_locale_string (""));
+    SCM_SIMPLE_VECTOR_SET(result, 5, scm_from_utf8_string (""));
   else
     SCM_SIMPLE_VECTOR_SET(result, 5, scm_from_locale_string (entry->pw_dir));
   if (!entry->pw_shell)
-    SCM_SIMPLE_VECTOR_SET(result, 6, scm_from_locale_string (""));
+    SCM_SIMPLE_VECTOR_SET(result, 6, scm_from_utf8_string (""));
   else
     SCM_SIMPLE_VECTOR_SET(result, 6, scm_from_locale_string (entry->pw_shell));
   return result;
diff --git a/libguile/print.c b/libguile/print.c
index 6eed1be..ecda3fb 100644
--- a/libguile/print.c
+++ b/libguile/print.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-2004,2006,2008,2009-2015,2017-2018
+/* Copyright 1995-2004,2006,2008-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -1313,9 +1313,9 @@ scm_init_print ()
 {
   SCM type;
 
-  type = scm_make_vtable (scm_from_locale_string (SCM_PRINT_STATE_LAYOUT),
+  type = scm_make_vtable (scm_from_utf8_string (SCM_PRINT_STATE_LAYOUT),
                           SCM_BOOL_F);
-  scm_set_struct_vtable_name_x (type, scm_from_latin1_symbol ("print-state"));
+  scm_set_struct_vtable_name_x (type, scm_from_utf8_symbol ("print-state"));
   scm_print_state_vtable = type;
 
   /* Don't want to bind a wrapper class in GOOPS, so pass 0 as arg1. */
@@ -1326,8 +1326,8 @@ scm_init_print ()
 
   scm_init_opts (scm_print_options, scm_print_opts);
   scm_print_opts[SCM_PRINT_HIGHLIGHT_PREFIX_I].val =
-    SCM_UNPACK (scm_from_locale_string ("{"));
+    SCM_UNPACK (scm_from_utf8_string ("{"));
   scm_print_opts[SCM_PRINT_HIGHLIGHT_SUFFIX_I].val =
-    SCM_UNPACK (scm_from_locale_string ("}"));
+    SCM_UNPACK (scm_from_utf8_string ("}"));
   scm_print_opts[SCM_PRINT_KEYWORD_STYLE_I].val = SCM_UNPACK (sym_reader);
 }
diff --git a/libguile/random.c b/libguile/random.c
index df592a9..c09c533 100644
--- a/libguile/random.c
+++ b/libguile/random.c
@@ -1,4 +1,4 @@
-/* Copyright 1999-2001,2003,2005-2006,2009-2010,2012-2014,2017-2018
+/* Copyright 1999-2001,2003,2005-2006,2009-2010,2012-2014,2017-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -381,7 +381,10 @@ make_rstate (scm_t_rstate *state)
  * Scheme level interface.
  */
 
-SCM_GLOBAL_VARIABLE_INIT (scm_var_random_state, "*random-state*", 
scm_seed_to_random_state (scm_from_locale_string 
("URL:http://stat.fsu.edu/~geo/diehard.html";)));
+SCM_GLOBAL_VARIABLE_INIT (scm_var_random_state, "*random-state*",
+                          scm_seed_to_random_state
+                          (scm_from_utf8_string
+                           ("URL:http://stat.fsu.edu/~geo/diehard.html";)));
 
 SCM_DEFINE (scm_random, "random", 1, 1, 0, 
             (SCM n, SCM state),
diff --git a/libguile/read.c b/libguile/read.c
index da21f61..019ffff 100644
--- a/libguile/read.c
+++ b/libguile/read.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-1997,1999-2001,2003-2004,2006-2012,2014-2015,2018
+/* Copyright 1995-1997,1999-2001,2003-2004,2006-2012,2014-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -150,21 +150,21 @@ scm_i_input_error (char const *function,
 {
   SCM fn = (scm_is_string (SCM_FILENAME(port))
            ? SCM_FILENAME(port)
-           : scm_from_locale_string ("#<unknown port>"));
+           : scm_from_utf8_string ("#<unknown port>"));
 
   SCM string_port = scm_open_output_string ();
   SCM string = SCM_EOL;
   scm_simple_format (string_port,
-                    scm_from_locale_string ("~A:~S:~S: ~A"),
+                    scm_from_utf8_string ("~A:~S:~S: ~A"),
                     scm_list_4 (fn,
                                 scm_sum (scm_port_line (port), SCM_INUM1),
                                 scm_sum (scm_port_column (port), SCM_INUM1),
-                                scm_from_locale_string (message)));
+                                scm_from_utf8_string (message)));
     
   string = scm_get_output_string (string_port);
   scm_close_output_port (string_port);
-  scm_error_scm (scm_from_latin1_symbol ("read-error"),
-                function? scm_from_locale_string (function) : SCM_BOOL_F,
+  scm_error_scm (scm_from_utf8_symbol ("read-error"),
+                function? scm_from_utf8_string (function) : SCM_BOOL_F,
                 string,
                 arg,
                 SCM_BOOL_F);
@@ -2219,7 +2219,10 @@ SCM_DEFINE (scm_file_encoding, "file-encoding", 1, 0, 0,
     return SCM_BOOL_F;
   else
     {
-      s_enc = scm_string_upcase (scm_from_locale_string (enc));
+      /* It's not obvious what encoding to use here, but latin1 has the
+         advantage of never causing a decoding error, and a valid
+         encoding name should be ASCII anyway. */
+      s_enc = scm_string_upcase (scm_from_latin1_string (enc));
       return s_enc;
     }
 
diff --git a/libguile/regex-posix.c b/libguile/regex-posix.c
index 0f359a6..a08da02 100644
--- a/libguile/regex-posix.c
+++ b/libguile/regex-posix.c
@@ -1,4 +1,4 @@
-/* Copyright 1997-2001,2004,2006-2007,2010-2012,2018
+/* Copyright 1997-2001,2004,2006-2007,2010-2012,2018-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -176,7 +176,7 @@ SCM_DEFINE (scm_make_regexp, "make-regexp", 1, 0, 1,
       SCM errmsg = scm_regexp_error_msg (status, rx);
       scm_gc_free (rx, sizeof(regex_t), "regex");
       scm_error_scm (scm_regexp_error_key,
-                    scm_from_locale_string (FUNC_NAME),
+                    scm_from_utf8_string (FUNC_NAME),
                     errmsg,
                     SCM_BOOL_F,
                     scm_list_1 (pat));
@@ -307,7 +307,7 @@ SCM_DEFINE (scm_regexp_exec, "regexp-exec", 2, 2, 0,
 
   if (status != 0 && status != REG_NOMATCH)
     scm_error_scm (scm_regexp_error_key,
-                  scm_from_locale_string (FUNC_NAME),
+                  scm_from_utf8_string (FUNC_NAME),
                   scm_regexp_error_msg (status, SCM_RGX (rx)),
                   SCM_BOOL_F, SCM_BOOL_F);
   return mvec;
diff --git a/libguile/snarf.h b/libguile/snarf.h
index 9d6b4ee..54272d5 100644
--- a/libguile/snarf.h
+++ b/libguile/snarf.h
@@ -1,7 +1,7 @@
 #ifndef SCM_SNARF_H
 #define SCM_SNARF_H
 
-/* Copyright 1995-2004,2006,2009-2011,2013-2014,2018
+/* Copyright 1995-2004,2006,2009-2011,2013-2014,2017-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
diff --git a/libguile/srfi-13.c b/libguile/srfi-13.c
index b43db11..3de8b5d 100644
--- a/libguile/srfi-13.c
+++ b/libguile/srfi-13.c
@@ -1,6 +1,4 @@
-/* srfi-13.c --- SRFI-13 procedures for Guile
-
-   Copyright 2001,2004-2006,2008-2012,2018
+/* Copyright 2001,2004-2006,2008-2013,2017-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -415,7 +413,7 @@ SCM_DEFINE (scm_string_join, "string-join", 1, 2, 0,
   /* Validate the delimiter and record its length.  */
   if (SCM_UNBNDP (delimiter))
     {
-      delimiter = scm_from_locale_string (" ");
+      delimiter = scm_from_utf8_string (" ");
       delimiter_len = 1;
     }
   else
diff --git a/libguile/stacks.c b/libguile/stacks.c
index 044e4ce..3684292 100644
--- a/libguile/stacks.c
+++ b/libguile/stacks.c
@@ -1,4 +1,4 @@
-/* Copyright 1996-1997,2000-2001,2006-2014,2017-2018
+/* Copyright 1996-1997,2000-2001,2006-2015,2017-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -469,9 +469,9 @@ scm_init_stacks ()
   scm_sys_stacks = scm_make_thread_local_fluid (SCM_BOOL_F);
   scm_c_define ("%stacks", scm_sys_stacks);
   
-  scm_stack_type = scm_make_vtable (scm_from_locale_string (SCM_STACK_LAYOUT),
+  scm_stack_type = scm_make_vtable (scm_from_utf8_string (SCM_STACK_LAYOUT),
                                     SCM_UNDEFINED);
   scm_set_struct_vtable_name_x (scm_stack_type,
-                               scm_from_latin1_symbol ("stack"));
+                               scm_from_utf8_symbol ("stack"));
 #include "stacks.x"
 }
diff --git a/libguile/stime.c b/libguile/stime.c
index 3515388..964828b 100644
--- a/libguile/stime.c
+++ b/libguile/stime.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-2001,2003-2009,2011,2013-2014,2018
+/* Copyright 1995-2001,2003-2009,2011,2013-2014,2016-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -698,7 +698,7 @@ SCM_DEFINE (scm_strftime, "strftime", 2, 0, 0,
           some OSs, e.g., Solaris.  */
        SCM zone =
          scm_string_append (scm_list_2 (zone_spec,
-                                        scm_from_locale_string ("0")));
+                                        scm_from_utf8_string ("0")));
 
        have_zone = 1;
         scm_pthread_mutex_lock (&tz_lock);
diff --git a/libguile/strports.c b/libguile/strports.c
index c23b0ba..a9bcdc2 100644
--- a/libguile/strports.c
+++ b/libguile/strports.c
@@ -1,4 +1,4 @@
-/* Copyright 1995,1996,1998-2003,2005-2006,2009-2014,2018
+/* Copyright 1995,1996,1998-2003,2005-2006,2009-2014,2016-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.
@@ -348,7 +348,7 @@ static void
 init_eval_string_var_and_k_module (void)
 {
   eval_string_var = scm_c_public_variable ("ice-9 eval-string", "eval-string");
-  k_module = scm_from_locale_keyword ("module");
+  k_module = scm_from_utf8_keyword ("module");
 }
 
 SCM_DEFINE (scm_eval_string_in_module, "eval-string", 1, 1, 0, 
diff --git a/libguile/values.c b/libguile/values.c
index 8603aa3..522a8f5 100644
--- a/libguile/values.c
+++ b/libguile/values.c
@@ -1,4 +1,4 @@
-/* Copyright 2000-2001,2006,2008-2009,2011-2012,2017-2018
+/* Copyright 2000-2001,2006,2008-2009,2011-2013,2016-2019
      Free Software Foundation, Inc.
 
    This file is part of Guile.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]