1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 14:00:21 +02:00

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.
This commit is contained in:
Mark H Weaver 2013-04-06 18:29:15 -04:00
parent 3e5a164ac3
commit a71e79c3e5

View 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)