1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-12 06:41:13 +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 Note that these functions should @emph{not} be used to convert C string
constants, because there is no guarantee that the current locale will constants, because there is no guarantee that the current locale will
match that of the source code. To convert C string constants, use match that of the execution character set, used for string and character
@code{scm_from_latin1_string}, @code{scm_from_utf8_string} or constants. Most modern C compilers use UTF-8 by default, so to convert
@code{scm_from_utf32_string}. C string constants we recommend @code{scm_from_utf8_string}.
@end deftypefn @end deftypefn
@deftypefn {C Function} SCM scm_take_locale_string (char *str) @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 and strings using @code{scm_symbol_to_string} and
@code{scm_string_to_symbol} and work with the strings. @code{scm_string_to_symbol} and work with the strings.
@deftypefn {C Function} scm_from_latin1_symbol (const char *name) @deftypefn {C Function} SCM scm_from_latin1_symbol (const char *name)
@deftypefnx {C Function} scm_from_utf8_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 Construct and return a Scheme symbol whose name is specified by the
null-terminated C string @var{name}. These are appropriate when null-terminated C string @var{name}. These are appropriate when
the C string is hard-coded in the source code. the C string is hard-coded in the source code.
@end deftypefn @end deftypefn
@deftypefn {C Function} scm_from_locale_symbol (const char *name) @deftypefn {C Function} SCM scm_from_locale_symbol (const char *name)
@deftypefnx {C Function} scm_from_locale_symboln (const char *name, size_t len) @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 Construct and return a Scheme symbol whose name is specified by
@var{name}. For @code{scm_from_locale_symbol}, @var{name} must be null @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 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 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 C string constant, because there is no guarantee that the current locale
will match that of the source code. In such cases, use will match that of the execution character set, used for string and
@code{scm_from_latin1_symbol} or @code{scm_from_utf8_symbol}. character constants. Most modern C compilers use UTF-8 by default, so
in such cases we recommend @code{scm_from_utf8_symbol}.
@end deftypefn @end deftypefn
@deftypefn {C Function} SCM scm_take_locale_symbol (char *str) @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 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 C string constant, because there is no guarantee that the current locale
will match that of the source code. In such cases, use will match that of the execution character set, used for string and
@code{scm_from_latin1_keyword} or @code{scm_from_utf8_keyword}. character constants. Most modern C compilers use UTF-8 by default, so
in such cases we recommend @code{scm_from_utf8_keyword}.
@end deftypefn @end deftypefn
@deftypefn {C Function} SCM scm_from_latin1_keyword (const char *name) @deftypefn {C Function} SCM scm_from_latin1_keyword (const char *name)