diff options
author | Mark H Weaver <mhw@netris.org> | 2013-04-06 18:29:15 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2013-04-06 18:37:29 -0400 |
commit | a71e79c3e5a5c366bb9ec218ee537441b8e5949a (patch) | |
tree | c084897d5c1f62319d711a6bf804efaf8816f60e /doc/ref/api-data.texi | |
parent | 3e5a164ac3d93a1a43c0e81842d0583fe0031b84 (diff) | |
download | guile-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.texi | 24 |
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) |