From: Eli Zaretskii <eliz@gnu.org>
To: Kazuhiro Ito <kzhr@d1.dion.ne.jp>
Cc: 44411@debbugs.gnu.org
Subject: bug#44411: 28.0.50; uudecode-decode-region-internal is broken
Date: Wed, 04 Nov 2020 17:26:52 +0200 [thread overview]
Message-ID: <83o8kdb0sj.fsf@gnu.org> (raw)
In-Reply-To: <86wnz14je7.wl--xmue@d1.dion.ne.jp> (message from Kazuhiro Ito on Wed, 04 Nov 2020 17:26:56 +0900)
> Date: Wed, 04 Nov 2020 17:26:56 +0900
> From: Kazuhiro Ito <kzhr@d1.dion.ne.jp>
> Cc: 44411@debbugs.gnu.org
>
> > What do you mean by "decode eight-bit characters"?
>
> I mean "decode uuencoded raw bytes 128-255 as eight-bit characters".
>
> > How could such "characters" appear in uuencoded email message?
>
> I did not said anything about uuencoded email message. What do you
> mean?
Sorry, it looks like I misunderstood the use case. Ignore that
question.
> 1. Yank below uuencoded string into multibyte buffer.
>
> begin 644 c8c8c8c8.bin
> $R,C(R```@
> ``
> end
> size 4
>
> 2. C-SPC at the beginning of uuencoded text and move point to the end
> of uuencoded text.
>
> 3. M-x uudecode-decode-region-internal
>
> 4. decoded result is broken. Original data is 4bytes of 0xc8, but
> inserted text is "8888". uudecode-decode-region-external returns
> expected result.
OK, I see the problem now: it's the call to decode-coding-string,
which replaced string-as-unibyte of yore.
> > Please show only the changes to fix what you think is a bug.
>
> Here is.
OK, I agree also to your other optimizations, but can we please go a
step further and avoid consing a string here? 'insert' is perfectly
capable of inserting characters, not only strings. So in the
unibyte-buffer case, just something like
(apply #'insert (nreverse result))
with 'result' being a list of bytes, will produce what you want. And
in the multibyte-buffer case you just need to convert each byte to its
Unicode-compatible codepoint, by using
(decode-char 'eight-bit CH)
probably in 'mapcar' or somesuch, and then call 'insert'.
Can you augment your patch along these lines, please?
Thanks.
next prev parent reply other threads:[~2020-11-04 15:26 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-03 8:27 bug#44411: 28.0.50; uudecode-decode-region-internal is broken Kazuhiro Ito
2020-11-03 15:09 ` Lars Ingebrigtsen
2020-11-03 15:36 ` Eli Zaretskii
2020-11-04 8:26 ` Kazuhiro Ito
2020-11-04 15:26 ` Eli Zaretskii [this message]
2020-11-05 10:48 ` Kazuhiro Ito
2020-11-05 13:48 ` Eli Zaretskii
2020-11-07 9:42 ` Eli Zaretskii
2020-11-09 15:47 ` Kazuhiro Ito
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=83o8kdb0sj.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=44411@debbugs.gnu.org \
--cc=kzhr@d1.dion.ne.jp \
/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).