summaryrefslogtreecommitdiff
path: root/doc/ref/api-data.texi
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2013-04-06 18:29:15 -0400
committerMark H Weaver <mhw@netris.org>2013-04-06 18:37:29 -0400
commita71e79c3e5a5c366bb9ec218ee537441b8e5949a (patch)
treec084897d5c1f62319d711a6bf804efaf8816f60e /doc/ref/api-data.texi
parent3e5a164ac3d93a1a43c0e81842d0583fe0031b84 (diff)
downloadguile-a71e79c3e5a5c366bb9ec218ee537441b8e5949a.tar.gz
Fix the recommendations for conversion of C string constants.
* doc/ref/api-data.texi (Conversion to/from C, Symbol Primitives, Keyword Procedures): Fix the recommendations for conversion of C string constants. The encoding of the source code is irrelevant in modern compilers. What is relevant is the execution character set. Both GCC and clang use UTF-8 by default, so recommend the 'scm_from_utf8_*' functions when the argument is a C string constant. Also fix the broken texinfo markup for 'scm_from_*_symbol' that prevented them from being listed in the index.
Diffstat (limited to 'doc/ref/api-data.texi')
-rw-r--r--doc/ref/api-data.texi24
1 files changed, 13 insertions, 11 deletions
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi
index a368fc96d..096970cb5 100644
--- a/doc/ref/api-data.texi
+++ b/doc/ref/api-data.texi
@@ -4303,9 +4303,9 @@ If the C string is ill-formed, an error will be raised.
Note that these functions should @emph{not} be used to convert C string
constants, because there is no guarantee that the current locale will
-match that of the source code. To convert C string constants, use
-@code{scm_from_latin1_string}, @code{scm_from_utf8_string} or
-@code{scm_from_utf32_string}.
+match that of the execution character set, used for string and character
+constants. Most modern C compilers use UTF-8 by default, so to convert
+C string constants we recommend @code{scm_from_utf8_string}.
@end deftypefn
@deftypefn {C Function} SCM scm_take_locale_string (char *str)
@@ -5362,15 +5362,15 @@ When you want to do more from C, you should convert between symbols
and strings using @code{scm_symbol_to_string} and
@code{scm_string_to_symbol} and work with the strings.
-@deftypefn {C Function} scm_from_latin1_symbol (const char *name)
-@deftypefnx {C Function} scm_from_utf8_symbol (const char *name)
+@deftypefn {C Function} SCM scm_from_latin1_symbol (const char *name)
+@deftypefnx {C Function} SCM scm_from_utf8_symbol (const char *name)
Construct and return a Scheme symbol whose name is specified by the
null-terminated C string @var{name}. These are appropriate when
the C string is hard-coded in the source code.
@end deftypefn
-@deftypefn {C Function} scm_from_locale_symbol (const char *name)
-@deftypefnx {C Function} scm_from_locale_symboln (const char *name, size_t len)
+@deftypefn {C Function} SCM scm_from_locale_symbol (const char *name)
+@deftypefnx {C Function} SCM scm_from_locale_symboln (const char *name, size_t len)
Construct and return a Scheme symbol whose name is specified by
@var{name}. For @code{scm_from_locale_symbol}, @var{name} must be null
terminated; for @code{scm_from_locale_symboln} the length of @var{name} is
@@ -5378,8 +5378,9 @@ specified explicitly by @var{len}.
Note that these functions should @emph{not} be used when @var{name} is a
C string constant, because there is no guarantee that the current locale
-will match that of the source code. In such cases, use
-@code{scm_from_latin1_symbol} or @code{scm_from_utf8_symbol}.
+will match that of the execution character set, used for string and
+character constants. Most modern C compilers use UTF-8 by default, so
+in such cases we recommend @code{scm_from_utf8_symbol}.
@end deftypefn
@deftypefn {C Function} SCM scm_take_locale_symbol (char *str)
@@ -5872,8 +5873,9 @@ Equivalent to @code{scm_symbol_to_keyword (scm_from_locale_symbol
Note that these functions should @emph{not} be used when @var{name} is a
C string constant, because there is no guarantee that the current locale
-will match that of the source code. In such cases, use
-@code{scm_from_latin1_keyword} or @code{scm_from_utf8_keyword}.
+will match that of the execution character set, used for string and
+character constants. Most modern C compilers use UTF-8 by default, so
+in such cases we recommend @code{scm_from_utf8_keyword}.
@end deftypefn
@deftypefn {C Function} SCM scm_from_latin1_keyword (const char *name)