Subject: Re: bug#8262: string-make-*byte in elisp manual

From: Stefan Monnier <[email-masked]>
Date: Wed, 16 Mar 2011 13:40:50 -0400

> The elisp manual mentions the functions `string-make-multibyte' and
> string-make-unibyte' in two places (Sections 4.6 and 22.15), indicating that
> these functions are defined in greater detail in Section 33.2.

> This is not the case, however. Shouldn't these functions be defined in
> Section 33.2?

Thanks for spotting this.  Indeed, the functions now documented are
string-to-*byte instead, whose semantic is less likely to introduce bugs
(or rather more likely to make those bugs apparent rather than latent).
So I've installed the patch below.

        Stefan

=== modified file 'doc/lispref/keymaps.texi'
--- doc/lispref/keymaps.texi	2011-02-19 19:40:59 +0000
+++ doc/lispref/keymaps.texi	2011-03-16 14:39:56 +0000
@@ -1705,15 +1705,11 @@
 
 @noindent
 and your language environment is multibyte Latin-1, these commands
-actually bind the multibyte character with code 2294, not the unibyte
-Latin-1 character with code 246 (@kbd{M-v}).  In order to use this
-binding, you need to enter the multibyte Latin-1 character as keyboard
-input.  One way to do this is by using an appropriate input method
-(@pxref{Input Methods, , Input Methods, emacs, The GNU Emacs Manual}).
-
-  If you want to use a unibyte character in the key binding, you can
-construct the key sequence string using @code{multibyte-char-to-unibyte}
-or @code{string-make-unibyte} (@pxref{Converting Representations}).
+actually bind the multibyte character with code 246, not the byte
+code 246 (@kbd{M-v}) sent by a Latin-1 terminal.  In order to use this
+binding, you need to teach Emacs how to decode the keyboard by using an
+appropriate input method (@pxref{Input Methods, , Input Methods, emacs, The GNU
+Emacs Manual}).
 
 @deffn Command global-set-key key binding
 This function sets the binding of @var{key} in the current global map

=== modified file 'doc/lispref/nonascii.texi'
--- doc/lispref/nonascii.texi	2011-01-25 04:08:28 +0000
+++ doc/lispref/nonascii.texi	2011-03-16 14:44:14 +0000
@@ -167,7 +167,7 @@
 user that cannot be overridden automatically.
 
   Converting unibyte text to multibyte text leaves @acronym{ASCII}
-characters unchanged, and converts bytes with codes 128 through 159 to
+characters unchanged, and converts bytes with codes 128 through 255 to
 the multibyte representation of raw eight-bit bytes.
 
   Converting multibyte text to unibyte converts all @acronym{ASCII}

=== modified file 'doc/lispref/strings.texi'
--- doc/lispref/strings.texi	2011-01-25 04:08:28 +0000
+++ doc/lispref/strings.texi	2011-03-16 14:47:55 +0000
@@ -554,8 +554,8 @@
 @code{prin1-to-string} (@pxref{Output Functions}) can also convert
 Lisp objects into strings.  @code{read-from-string} (@pxref{Input
 Functions}) can ``convert'' a string representation of a Lisp object
-into an object.  The functions @code{string-make-multibyte} and
-@code{string-make-unibyte} convert the text representation of a string
+into an object.  The functions @code{string-to-multibyte} and
+@code{string-to-unibyte} convert the text representation of a string
 (@pxref{Converting Representations}).
 
   @xref{Documentation}, for functions that produce textual descriptions