Fix the recommendations for conversion of C string constants.
authorMark H Weaver <mhw@netris.org>
Sat, 6 Apr 2013 22:29:15 +0000 (18:29 -0400)
committerMark H Weaver <mhw@netris.org>
Sat, 6 Apr 2013 22:37:29 +0000 (18:37 -0400)
* 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.

doc/ref/api-data.texi

index a368fc9..096970c 100644 (file)
@@ -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)