GNU bug report logs -
#40407
[PATCH] slow ENCODE_FILE and DECODE_FILE
Previous Next
Reported by: Mattias Engdegård <mattiase <at> acm.org>
Date: Fri, 3 Apr 2020 16:11:01 UTC
Severity: normal
Tags: patch
Done: Mattias Engdegård <mattiase <at> acm.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Eli Zaretskii <eliz <at> gnu.org> writes:
>> - if (BUFFERP (dst_object))
>> + if (EQ (dst_object, Qt))
>> + {
>> + /* Fast path for ASCII-only input and an ASCII-compatible coding:
>> + act as identity. */
>> + Lisp_Object attrs = CODING_ID_ATTRS (coding.id);
>> + if (! NILP (CODING_ATTR_ASCII_COMPAT (attrs))
>> + && (STRING_MULTIBYTE (string)
>> + ? (chars == bytes) : string_ascii_p (string)))
>> + return string;
While using the latest master branch, I noticed this became the cause of
decoding error.
The simple reproducible test is,
(decode-coding-string "&abc" 'utf-7-imap)
=> "&abc"
like the above result, decoding utf-7-imap didn't work.
Because (coding-system-get 'utf-7-imap :ascii-compatible-p) => t.
I'm not sure, 'utf-7* should be fixed as non ascii-compatible, or
string_ascii_p() should check more strictly.
[BTW,
(define-coding-system 'utf-7-imap
"UTF-7 encoding of Unicode, IMAP version (RFC 2060)"
:coding-type 'utf-8
:mnemonic ?u
:charset-list '(unicode)
:ascii-compatible-p nil ;; <=== added this line
:pre-write-conversion 'utf-7-imap-pre-write-conversion
:post-read-conversion 'utf-7-imap-post-read-conversion)
doesn't work. Because define-coding-system-internal overwrites
ascii-compatible-p.]
Thanks.
--
OGAWA Hirofumi <hirofumi <at> mail.parknet.co.jp>
This bug report was last modified 5 years and 91 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.