From: Stefan Monnier <monnier@iro.umontreal.ca>
To: "Stephen J. Turnbull" <stephen@xemacs.org>
Cc: Alan Mackenzie <acm@muc.de>, emacs-devel@gnu.org
Subject: Re: Inadequate documentation of silly characters on screen.
Date: Sun, 22 Nov 2009 20:58:48 -0500 [thread overview]
Message-ID: <jwvmy2e57m9.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <874ooo2v7x.fsf@uwakimon.sk.tsukuba.ac.jp> (Stephen J. Turnbull's message of "Sat, 21 Nov 2009 16:27:46 +0900")
> So the problem is that because characters are integers and vice versa,
> there's no way for the user to let Emacs duck-type multibyte vs
> unibyte strings for him. If he cares, he needs to check. If he
> doesn't care, eventually Emacs will punish him for his lapse.
> I suppose subst-char-in-string is similarly useless for Alan's
> purpose, then? What he really needs to use is something like
> (replace-in-string str "\n" "ñ")
> right?
Pretty much yes. When chars come within strings, the multibyteness of
the string indicates what the string elements are (chars or bytes), so
as long as you only manipulate strings, Emacs is able to DTRT.
As soon as you manipulate actual chars, the ambiguity between chars and
bytes for values [128..255] can bite you unless you're careful about how
you use them (e.g. about the multibyteness of the strings with which
you combine them).
That's where `aset' bites. I hate `aset' on strings because it has
side-effects (obviously) and because strings aren't vectors so you can't
guarantee the expected efficiency, but neither are the source of the
problem here. So indeed subst-char-in-string suffers similarly.
Stefan
next prev parent reply other threads:[~2009-11-23 1:58 UTC|newest]
Thread overview: 101+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-18 19:12 [acm@muc.de: Re: Inadequate documentation of silly characters on screen.] Alan Mackenzie
2009-11-19 1:27 ` Fwd: Re: Inadequate documentation of silly characters on screen Stefan Monnier
2009-11-19 8:20 ` Alan Mackenzie
2009-11-19 8:50 ` Miles Bader
2009-11-19 10:16 ` Fwd: " Andreas Schwab
2009-11-19 12:21 ` Alan Mackenzie
2009-11-19 13:21 ` Jason Rumney
2009-11-19 13:35 ` Stefan Monnier
2009-11-19 14:18 ` Alan Mackenzie
2009-11-19 14:58 ` Jason Rumney
2009-11-19 15:42 ` Alan Mackenzie
2009-11-19 19:39 ` Eli Zaretskii
2009-11-19 15:30 ` Stefan Monnier
2009-11-19 15:58 ` Alan Mackenzie
2009-11-19 16:06 ` Andreas Schwab
2009-11-19 16:47 ` Aidan Kehoe
2009-11-19 17:29 ` Alan Mackenzie
2009-11-19 18:21 ` Aidan Kehoe
2009-11-20 2:43 ` Stephen J. Turnbull
2009-11-19 19:45 ` Eli Zaretskii
2009-11-19 20:07 ` Eli Zaretskii
2009-11-19 19:55 ` Stefan Monnier
2009-11-20 3:13 ` Stephen J. Turnbull
2009-11-19 16:55 ` David Kastrup
2009-11-19 18:08 ` Alan Mackenzie
2009-11-19 19:25 ` Davis Herring
2009-11-19 21:25 ` Alan Mackenzie
2009-11-19 22:31 ` David Kastrup
2009-11-21 22:52 ` Richard Stallman
2009-11-23 2:08 ` Displaying bytes (was: Inadequate documentation of silly characters on screen.) Stefan Monnier
2009-11-23 20:38 ` Richard Stallman
2009-11-23 21:34 ` Per Starbäck
2009-11-24 22:47 ` Richard Stallman
2009-11-25 1:33 ` Kenichi Handa
2009-11-25 2:29 ` Displaying bytes (was: Inadequate documentation of silly Stefan Monnier
2009-11-25 2:50 ` Lennart Borgman
2009-11-25 6:25 ` Stephen J. Turnbull
2009-11-25 5:40 ` Displaying bytes (was: Inadequate documentation of silly characters on screen.) Ulrich Mueller
2009-11-26 22:59 ` Displaying bytes Reiner Steib
2009-11-27 0:16 ` Ulrich Mueller
2009-11-27 1:41 ` Stefan Monnier
2009-11-27 4:14 ` Stephen J. Turnbull
2009-11-25 5:59 ` Displaying bytes (was: Inadequate documentation of silly characters on screen.) Stephen J. Turnbull
2009-11-25 8:16 ` Kenichi Handa
2009-11-29 16:01 ` Richard Stallman
2009-11-29 16:31 ` Displaying bytes (was: Inadequate documentation of silly Stefan Monnier
2009-11-29 22:01 ` Juri Linkov
2009-11-30 6:05 ` tomas
2009-11-30 12:09 ` Andreas Schwab
2009-11-30 12:39 ` tomas
2009-11-29 22:19 ` Displaying bytes (was: Inadequate documentation of silly characters on screen.) Kim F. Storm
2009-11-30 1:42 ` Stephen J. Turnbull
2009-11-24 1:28 ` Displaying bytes Stefan Monnier
2009-11-24 22:47 ` Richard Stallman
2009-11-25 2:18 ` Stefan Monnier
2009-11-26 6:24 ` Richard Stallman
2009-11-26 8:59 ` David Kastrup
2009-11-26 14:57 ` Stefan Monnier
2009-11-26 16:28 ` Lennart Borgman
2009-11-27 6:36 ` Richard Stallman
2009-11-24 22:47 ` Richard Stallman
2009-11-20 8:48 ` Fwd: Re: Inadequate documentation of silly characters on screen Eli Zaretskii
2009-11-19 19:52 ` Eli Zaretskii
2009-11-19 20:53 ` Alan Mackenzie
2009-11-19 22:16 ` David Kastrup
2009-11-20 8:55 ` Eli Zaretskii
2009-11-19 20:05 ` Stefan Monnier
2009-11-19 21:27 ` Alan Mackenzie
2009-11-19 19:43 ` Eli Zaretskii
2009-11-19 21:57 ` Alan Mackenzie
2009-11-19 23:10 ` Stefan Monnier
2009-11-19 20:02 ` Stefan Monnier
2009-11-19 14:08 ` Stefan Monnier
2009-11-19 14:50 ` Jason Rumney
2009-11-19 15:27 ` Stefan Monnier
2009-11-19 23:12 ` Miles Bader
2009-11-20 2:16 ` Stefan Monnier
2009-11-20 3:37 ` Stephen J. Turnbull
2009-11-20 4:30 ` Stefan Monnier
2009-11-20 7:18 ` Stephen J. Turnbull
2009-11-20 14:16 ` Stefan Monnier
2009-11-21 4:13 ` Stephen J. Turnbull
2009-11-21 5:24 ` Stefan Monnier
2009-11-21 6:42 ` Stephen J. Turnbull
2009-11-21 6:49 ` Stefan Monnier
2009-11-21 7:27 ` Stephen J. Turnbull
2009-11-23 1:58 ` Stefan Monnier [this message]
2009-11-21 12:33 ` David Kastrup
2009-11-21 13:55 ` Stephen J. Turnbull
2009-11-21 14:36 ` David Kastrup
2009-11-21 17:53 ` Stephen J. Turnbull
2009-11-21 23:30 ` David Kastrup
2009-11-22 1:27 ` Sebastian Rose
2009-11-22 8:06 ` David Kastrup
2009-11-22 23:52 ` Sebastian Rose
2009-11-19 17:08 ` Fwd: " Alan Mackenzie
-- strict thread matches above, loose matches on Subject: below --
2009-11-18 9:37 Alan Mackenzie
2009-11-18 9:40 ` Miles Bader
2009-11-18 10:15 ` Alan Mackenzie
2009-11-18 12:03 ` Jason Rumney
2009-11-18 15:02 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=jwvmy2e57m9.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=acm@muc.de \
--cc=emacs-devel@gnu.org \
--cc=stephen@xemacs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).