[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: reproducable hang with non-ascii characters in Wanderlust draft



Hi.

> The procedure to reproduce (in my case) are quite easy: type some non-ascii
> characters in a draft message in Wanderlust, something like
> 
> äëïöÿüäëïöüÿäëïöüÿäëïöüÿäëïöüÿäëïöüÿäëïöüÿäëïöüÿäëïöüÿäëïöüÿäëïöüÿäëïöüÿäëïöü
> 
> Try to save the draft (C-x s). This works. Now, copy the line about 50 times,
> so you have a whole block of these characters. If I now try to save, emacs
> gets very busy (CPU goes to the max), and it never seems to recover (waited
> for at least 15 minutes), and I have to kill emacs.

It is a bug of emacs (23.1 and trunk at present).  Emacs 23's decoder
for ccl coding system can't output larger than 16KB.  You can confirm
that by below code.

(progn
  (define-ccl-program ccl-test
    '(1 (loop
	 (read r0)
	 (write-repeat r0))))
  (make-coding-system 'test 4 ?t "" '(ccl-test . ccl-test))
  (let ((string "=")
	count)
    (dotimes (count 16)
      (setq string (concat string string)))
    ;; When number is less than 16384, it works with no problem.
    ;; When number is 16385, return value is 16384.
    ;; When number is 16386 and larger, emacs hangs.
    (setq string (substring string 0 16385))
    (length (decode-coding-string string 'test))))

I sent a bug report to mule-ja ML (*1) in Japanese.  Below patch for
mel-q-ccl.el would fix the problem. The patch also fixes emacs 23
multibyte problem and emacs 22 EOL problem (*2) and makes decoder not
to discard illegally encoded data.  But last change is not functional
on Emacs 23.1 because of Emacs 23.1's bug (not in trunk).

(*1) http://www.m17n.org/mule/ml.en.html
(*2) http://article.gmane.org/gmane.emacs.mime.japanese/676

> Before, someone suggested using
>    (mel-use-module 'mel-q '("quoted-printable" "Q"))
> however, that gives me an error instead:
> 	 insert: Args out of range: "0123456789ABCDEF", 262140
> and refuses to save.

That is known problem.  Please see

http://article.gmane.org/gmane.mail.wanderlust.general.japanese/6830

-- 
Kazuhiro Ito

Attachment: mel-q-ccl.el.diff
Description: Binary data