changeset 53570:8e83b9e560f0

(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.
author Richard M. Stallman <rms@gnu.org>
date Mon, 12 Jan 2004 21:56:50 +0000
parents 3b872f61f08d
children c69986a5dbbe
files lisp/mail/rmail.el
diffstat 1 files changed, 7 insertions(+), 41 deletions(-) [+]
line wrap: on
line diff
--- 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