Warn against using `length' to compute display width of a string.

doc/lispref/strings.texi (String Basics):
 doc/lispref/sequences.texi (Sequence Functions): Mention that `length' is
 not appropriate for computing the string width on display; add a
 cross-reference to the description of `string-width'.  (Bug#10978)
This commit is contained in:
Eli Zaretskii 2012-03-10 11:55:54 +02:00
parent b9e501dee8
commit 83a96c0872
3 changed files with 13 additions and 1 deletions

View file

@ -1,5 +1,10 @@
2012-03-10 Eli Zaretskii <eliz@gnu.org>
* strings.texi (String Basics):
* sequences.texi (Sequence Functions): Mention that `length' is
not appropriate for computing the string width on display; add a
cross-reference to the description of `string-width'. (Bug#10978)
* eval.texi (Autoloading): Minor change of wording.
2012-03-10 Chong Yidong <cyd@gnu.org>

View file

@ -108,6 +108,11 @@ Emacs character code.
@noindent
See also @code{string-bytes}, in @ref{Text Representations}.
If you need to compute the width of a string on display, you should
use @code{string-width} (@pxref{Width}), not @code{length}, since
@code{length} only counts the number of characters, but does not
account for the display width of each character.
@defun elt sequence index
@cindex elements of sequences
This function returns the element of @var{sequence} indexed by

View file

@ -51,7 +51,9 @@ C are terminated by a character with @acronym{ASCII} code 0.)
operate on them with the general array and sequence functions.
(@xref{Sequences Arrays Vectors}.) For example, you can access or
change individual characters in a string using the functions @code{aref}
and @code{aset} (@pxref{Array Functions}).
and @code{aset} (@pxref{Array Functions}). However, note that
@code{length} should @emph{not} be used for computing the width of a
string on display; use @code{string-width} (@pxref{Width}) instead.
There are two text representations for non-@acronym{ASCII} characters in
Emacs strings (and in buffers): unibyte and multibyte (@pxref{Text