From: Stefan Monnier <monnier@iro.umontreal.ca>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org, handa@m17n.org
Subject: Re: buffer-swap-text and multibyteness
Date: Sat, 31 Jan 2009 14:43:37 -0500 [thread overview]
Message-ID: <jwvy6wrb6z3.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <ubptne1rl.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 31 Jan 2009 21:03:42 +0200")
>> > set-buffer-multibyte jumps through the hoops to DTRT.
>> > By contrast, in buffer-swap-text we do just this:
>>
>> > swapfield (enable_multibyte_characters, Lisp_Object);
>>
>> > Could this cause trouble, e.g. if one of the buffers whose text is
>> > swapped contains eight-bit characters?
>>
>> Why would it? The text is swapped along with the
>> enable_multibyte_characters field, so they should stay consistent.
> I don't know, perhaps I was just confused. It's hard not to be, with
> all that mind-boggling swapping that goes on in Rmail between a
> unibyte buffer and a multibyte one. A horrible design, if you ask me.
> It's little surprise to me that I found so many bugs in Rmail due to
> this (and more are still there): one needs constantly to track the
> current state of the ``swappiness'', or else all bets are off.
> (Quick: if you are currently in rmail-view-buffer, and
> rmail-buffers-swapped-p returns non-nil, is the text unibyte or
> multibyte?)
I haven't looked at the code recently, but it does sound like an
undesirable state of affairs, indeed. In tar-mode (and the way I imagine
buffer-swap-text to be used), swapping the buffer is a rare operation
that's basically only done when the the major mode changes.
Stefan
next prev parent reply other threads:[~2009-01-31 19:43 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-31 14:52 buffer-swap-text and multibyteness Eli Zaretskii
2009-01-31 17:12 ` Stefan Monnier
2009-01-31 19:03 ` Eli Zaretskii
2009-01-31 19:43 ` Stefan Monnier [this message]
2009-01-31 20:05 ` Eli Zaretskii
2009-01-31 21:28 ` Stefan Monnier
2009-01-31 22:02 ` Eli Zaretskii
2009-02-01 1:43 ` Stefan Monnier
2009-02-01 4:13 ` Eli Zaretskii
2009-02-01 21:43 ` Stefan Monnier
[not found] ` <E1LTl7l-0005Dm-8W@fencepost.gnu.org>
2009-02-02 1:26 ` Stefan Monnier
2009-02-02 2:37 ` Kenichi Handa
2009-02-02 2:48 ` Kenichi Handa
2009-02-05 4:26 ` Stefan Monnier
2009-02-07 12:58 ` Eli Zaretskii
2009-02-09 11:31 ` Kenichi Handa
2009-02-09 14:11 ` Stefan Monnier
2009-02-09 20:26 ` Eli Zaretskii
2009-02-10 2:03 ` Stefan Monnier
2009-02-10 8:49 ` Eli Zaretskii
2009-02-10 21:57 ` Stefan Monnier
2009-02-11 4:01 ` Eli Zaretskii
2009-02-11 14:10 ` Stefan Monnier
2009-02-11 9:24 ` Kenichi Handa
[not found] ` <umycvs6a0.fsf@gnu.org>
2009-02-10 8:17 ` Kenichi Handa
2009-02-10 9:12 ` Eli Zaretskii
2009-02-10 11:52 ` Kenichi Handa
2009-02-21 15:12 ` Eli Zaretskii
2009-02-24 8:09 ` Kenichi Handa
2009-02-24 18:48 ` Eli Zaretskii
2009-02-25 1:15 ` Kenichi Handa
2009-02-25 4:11 ` Eli Zaretskii
2009-02-26 5:48 ` Kenichi Handa
2009-02-02 4:09 ` Eli Zaretskii
2009-02-01 22:49 ` Richard M Stallman
2009-02-02 2:14 ` Kenichi Handa
2009-02-02 2:39 ` Stefan Monnier
2009-02-03 7:59 ` Kenichi Handa
2009-02-03 16:46 ` 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=jwvy6wrb6z3.fsf-monnier+emacs@gnu.org \
--to=monnier@iro.umontreal.ca \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=handa@m17n.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).