From: Kenichi Handa <handa@m17n.org>
Cc: emacs-devel@gnu.org, jas@extundo.com
Subject: Re: eight-bit char handling in emacs-unicode
Date: Wed, 19 Nov 2003 09:06:55 +0900 (JST) [thread overview]
Message-ID: <200311190006.JAA14847@etlken.m17n.org> (raw)
In-Reply-To: <jwvn0atd38w.fsf-monnier+emacs/devel@vor.iro.umontreal.ca> (message from Stefan Monnier on 18 Nov 2003 12:12:10 -0500)
In article <jwvn0atd38w.fsf-monnier+emacs/devel@vor.iro.umontreal.ca>, Stefan Monnier <monnier@IRO.UMontreal.CA> writes:
> I'm not sure whether it's better or worse. The problem I have with the
> introduction of a new type for chars is that it is a change that has far
> reaching consequences and I'm not sure it would solve all our problems
> since many of the problems have to do with bad elisp code.
I see. Apart from the design itself, I agree that it's
difficult to introduce a new type. But, when I discussed
with Richard about the Character type object a few year ago,
he was not that negative provided that it gives sure
improvement.
>>> Which of 1 to 3 is the best is not clear, and maybe we can just live with
>>> `make-string-unibyte' and `make-string-multibyte'.
>> I think you mean string-make-unibyte/multibyte, but, for the
> No. My `make-string-unibyte' should only work to convert "bytes in
> multibyte string" to "bytes in unibyte string": there's no char, thus no
> coding-system.
I see. In emacs-unicode, I already introduced
string-to-multibyte which, I think, is the same as your
make-string-multibyte. But,
> If the multibyte string argument contains a char that's
> not an eight-bit-char, then it's an error.
Then, we can't use make-string-unibyte for the current case
because, in emacs-unicode, (concat '(?a 192)) returns a
multibyte string whose second element is A-grave, not an
eight-bit-char. Am I missing something?
> To do what your string-make-unibyte does you should use
> `encode-coding-string' where the coding system is passed explicitly.
Those are conceptually different things (I remember the
similar discussion we had a while ago).
encode-coding-string does:
char-sequence --CCS-set--> (CCS/codepoint-pair)-sequence
--CES--> encoded-byte-sequence
string-make-unibyte does:
char-sequence --CCS--> code-point-sequence
--concat--> code-point-sequence
These two yield the same result only when CCS support all
chars in "char-sequence" and CES is stateless
(e.g. iso-latin-1) and .
> I've changed my Emacs so that string-make-unibyte does the above
> (i.e. signals an error if it encounters a non-byte char) and it works fairly
> well, except for the few places where the elisp code is sloppy and needs to
> be fixed.
How did you change it? string-make-unibyte internally uses
the function copy_text. Did you change it? But, then, each
time you copy a multibyte string into a unibyte buffer, you
should get an error.
>>> Note that 1-3 are not mutually exclusive so we can use
>>> them all.
>> Yes, but, at least, I really want to avoid "(3) Make a
>> series of new functions".
> (defun concat-unibyte (&rest x)
> (make-string-unibyte (apply 'concat x)))
> ...
As I wrote above, this should signal an error on:
(concat-unibyte '(?a 192))
> so we don't need this series of new functions, but if some of them are used
> often enough, we can add them of course.
---
Ken'ichi HANDA
handa@m17n.org
next prev parent reply other threads:[~2003-11-19 0:06 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-12 16:11 BIG5-HKSCS? Simon Josefsson
2003-11-13 1:53 ` BIG5-HKSCS? Kenichi Handa
2003-11-13 4:14 ` BIG5-HKSCS? Simon Josefsson
2003-11-13 5:34 ` BIG5-HKSCS? Kenichi Handa
2003-11-13 5:50 ` BIG5-HKSCS? Simon Josefsson
2003-11-13 4:49 ` BIG5-HKSCS? Simon Josefsson
2003-11-13 6:10 ` BIG5-HKSCS? Kenichi Handa
2003-11-13 6:51 ` BIG5-HKSCS? Simon Josefsson
2003-11-13 9:01 ` BIG5-HKSCS? Kenichi Handa
2003-11-13 13:29 ` BIG5-HKSCS? Oliver Scholz
2003-11-13 23:40 ` BIG5-HKSCS? Kenichi Handa
2003-11-14 13:35 ` BIG5-HKSCS? Oliver Scholz
2003-11-13 16:34 ` BIG5-HKSCS? Simon Josefsson
2003-11-14 0:47 ` eight-bit char handling in emacs-unicode Kenichi Handa
2003-11-14 13:25 ` Oliver Scholz
2003-11-15 1:09 ` Kenichi Handa
2003-11-15 10:26 ` Oliver Scholz
2003-11-15 21:47 ` Simon Josefsson
2003-11-15 3:04 ` Simon Josefsson
2003-11-16 15:03 ` Alex Schroeder
2003-11-17 21:17 ` Stefan Monnier
2003-11-18 7:33 ` Kenichi Handa
2003-11-18 17:12 ` Stefan Monnier
2003-11-19 0:06 ` Kenichi Handa [this message]
2003-11-19 3:05 ` Stefan Monnier
2003-11-19 10:46 ` Juri Linkov
2003-11-19 13:48 ` Stefan Monnier
2003-11-20 23:41 ` Kenichi Handa
2003-11-21 0:41 ` Kenichi Handa
2003-11-21 5:27 ` Stefan Monnier
2003-11-21 6:27 ` Kenichi Handa
2003-11-21 14:59 ` Stefan Monnier
2003-11-22 1:25 ` Kenichi Handa
2003-11-22 23:53 ` Stefan Monnier
2003-11-23 7:30 ` Kenichi Handa
2003-11-23 23:48 ` Stefan Monnier
2003-11-25 1:07 ` Kenichi Handa
[not found] ` <jwvfzgcsbuv.fsf-monnier+emacs/devel@vor.iro.umontreal.ca>
2003-11-26 0:07 ` Kenichi Handa
2003-11-26 14:14 ` Stefan Monnier
2003-11-27 1:34 ` Kenichi Handa
2003-11-27 14:23 ` Stefan Monnier
2003-12-01 0:43 ` Kenichi Handa
2003-12-01 16:15 ` Stefan Monnier
2003-12-02 13:07 ` Kenichi Handa
2003-12-02 16:06 ` Stefan Monnier
2003-11-25 4:28 ` Richard Stallman
[not found] ` <jwv7k1gtswz.fsf-monnier+emacs/devel@vor.iro.umontreal.ca>
2003-12-09 21:49 ` Richard Stallman
2003-11-15 22:32 ` BIG5-HKSCS? Simon Josefsson
2003-11-17 1:12 ` BIG5-HKSCS? Kenichi Handa
2003-11-17 2:06 ` BIG5-HKSCS? Simon Josefsson
2003-11-17 5:45 ` BIG5-HKSCS? Eli Zaretskii
2003-11-17 7:43 ` BIG5-HKSCS? Simon Josefsson
2003-11-18 7:01 ` BIG5-HKSCS? Richard Stallman
2003-11-18 8:56 ` BIG5-HKSCS? Simon Josefsson
2003-11-19 5:15 ` BIG5-HKSCS? Richard Stallman
2003-11-20 5:48 ` BIG5-HKSCS? Simon Josefsson
2003-11-20 5:56 ` BIG5-HKSCS? Eli Zaretskii
2003-11-20 6:20 ` BIG5-HKSCS? Simon Josefsson
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=200311190006.JAA14847@etlken.m17n.org \
--to=handa@m17n.org \
--cc=emacs-devel@gnu.org \
--cc=jas@extundo.com \
/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).