From 396f03d8781983567ca7184a784e14b6514fdae3 Mon Sep 17 00:00:00 2001 From: Jesper Harder Date: Tue, 18 Mar 2003 17:22:05 +0000 Subject: [PATCH] (mm-decode-coding-region-safely): Don't use find-charset-region which is slooow in XEmacs. --- lisp/ChangeLog | 5 +++++ lisp/mm-bodies.el | 19 +++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index e56772480..a8cb86b75 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2003-03-18 Jesper Harder + + * mm-bodies.el (mm-decode-coding-region-safely): Don't use + find-charset-region which is slooow in XEmacs. + 2003-03-18 Katsumi Yamaoka * gnus-sum.el (gnus-summary-highlight-line-0): Silence the byte- diff --git a/lisp/mm-bodies.el b/lisp/mm-bodies.el index b28c50cb1..e4c789446 100644 --- a/lisp/mm-bodies.el +++ b/lisp/mm-bodies.el @@ -282,14 +282,17 @@ use the supplied charset unconditionally." "Decode region between START and END with CODING-SYSTEM. If CODING-SYSTEM is not a valid coding system for the text, let Emacs decide which coding system to use." - (let* ((decoded (mm-decode-coding-string (buffer-substring start end) - coding-system)) - (charsets (find-charset-string decoded))) - (if (or (memq 'eight-bit-control charsets) - (memq 'eight-bit-graphic charsets)) - (mm-decode-coding-region start end 'undecided) - (delete-region start end) - (insert decoded)))) + (let* ((orig (buffer-substring start end)) + charsets) + (save-restriction + (narrow-to-region start end) + (mm-decode-coding-region (point-min) (point-max) coding-system) + (setq charsets (find-charset-region (point-min) (point-max))) + (when (or (memq 'eight-bit-control charsets) + (memq 'eight-bit-graphic charsets)) + (delete-region (point-min) (point-max)) + (insert orig) + (mm-decode-coding-region (point-min) (point-max) 'undecided))))) (defun mm-decode-string (string charset) "Decode STRING with CHARSET." -- 2.25.1