# HG changeset patch # User Richard M. Stallman # Date 1073944610 0 # Node ID 8e83b9e560f0556efd95435efc9c396fd9aa1959 # Parent 3b872f61f08d339536acdb56ef846ccaa3f7bc29 (rmail-convert-to-babyl-format): Use mail-unquote-printable-region. (rmail-hex-string-to-integer, rmail-decode-quoted-printable): (rmail-hex-char-to-integer): Functions deleted. diff -r 3b872f61f08d -r 8e83b9e560f0 lisp/mail/rmail.el --- a/lisp/mail/rmail.el Mon Jan 12 21:53:39 2004 +0000 +++ b/lisp/mail/rmail.el Mon Jan 12 21:56:50 2004 +0000 @@ -1680,7 +1680,9 @@ header-end t)))) (if quoted-printable-header-field-end (save-excursion - (rmail-decode-quoted-printable header-end (point)) + (unless + (mail-unquote-printable-region header-end (point) nil t) + (message "Malformed MIME quoted-printable message")) ;; Change "quoted-printable" to "8bit", ;; to reflect the decoding we just did. (goto-char quoted-printable-header-field-end) @@ -1825,7 +1827,10 @@ (setq count (1+ count)) (if quoted-printable-header-field-end (save-excursion - (rmail-decode-quoted-printable header-end (point)) + (unless + (mail-unquote-printable-region header-end (point) nil t) + + (message "Malformed MIME quoted-printable message")) ;; Change "quoted-printable" to "8bit", ;; to reflect the decoding we just did. (goto-char quoted-printable-header-field-end) @@ -1887,45 +1892,6 @@ (t (error "Cannot convert to babyl format"))))) count)) -(defun rmail-hex-char-to-integer (character) - "Return CHARACTER's value interpreted as a hex digit." - (if (and (>= character ?0) (<= character ?9)) - (- character ?0) - (let ((ch (logior character 32))) - (if (and (>= ch ?a) (<= ch ?f)) - (- ch (- ?a 10)) - (error "Invalid hex digit `%c'" ch))))) - -(defun rmail-hex-string-to-integer (hex-string) - "Return decimal integer for HEX-STRING." - (let ((hex-num 0) - (index 0)) - (while (< index (length hex-string)) - (setq hex-num (+ (* hex-num 16) - (rmail-hex-char-to-integer (aref hex-string index)))) - (setq index (1+ index))) - hex-num)) - -(defun rmail-decode-quoted-printable (from to) - "Decode Quoted-Printable in the region between FROM and TO." - (interactive "r") - (goto-char from) - (or (markerp to) - (setq to (copy-marker to))) - (while (search-forward "=" to t) - (cond ((eq (following-char) ?\n) - (delete-char -1) - (delete-char 1)) - ((looking-at "[0-9A-F][0-9A-F]") - (let ((byte (rmail-hex-string-to-integer - (buffer-substring (point) (+ 2 (point)))))) - (delete-region (1- (point)) (+ 2 (point))) - (insert byte))) - ((looking-at "=") - (delete-char 1)) - (t - (message "Malformed MIME quoted-printable message"))))) - ;; Delete the "From ..." line, creating various other headers with ;; information from it if they don't already exist. Now puts the ;; original line into a mail-from: header line for debugging and for