2001-02-07 23:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
authorShengHuo ZHU <zsh@cs.rochester.edu>
Thu, 8 Feb 2001 04:48:39 +0000 (04:48 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Thu, 8 Feb 2001 04:48:39 +0000 (04:48 +0000)
* qp.el (quoted-printable-encode-region): Make sure characters are
between 00 and FF.  Don't check charset.

* mm-encode.el (mm-encode-content-transfer-encoding): Use unibyte
in Emacs 20.
* rfc2047.el (rfc2047-q-encode-region): Ditto.

lisp/ChangeLog
lisp/mm-encode.el
lisp/qp.el
lisp/rfc2047.el

index 3cc908c..1fb92b2 100644 (file)
@@ -1,3 +1,12 @@
+2001-02-07 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * qp.el (quoted-printable-encode-region): Make sure characters are
+       between 00 and FF.  Don't check charset.
+
+       * mm-encode.el (mm-encode-content-transfer-encoding): Use unibyte
+       in Emacs 20.  
+       * rfc2047.el (rfc2047-q-encode-region): Ditto.
+
 2001-02-07 11:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * message.el (message-make-forward-subject): Argument decoded.
index 34a74ec..677c2df 100644 (file)
@@ -85,7 +85,8 @@ This variable should never be set directly, but bound before a call to
 (defun mm-encode-content-transfer-encoding (encoding &optional type)
   (cond
    ((eq encoding 'quoted-printable)
-    (quoted-printable-encode-region (point-min) (point-max) t))
+    (mm-with-unibyte-current-buffer-mule4
+      (quoted-printable-encode-region (point-min) (point-max) t)))
    ((eq encoding 'base64)
     (when (equal type "text/plain")
       (goto-char (point-min))
index 0e0f960..697de6c 100644 (file)
@@ -99,55 +99,52 @@ encode lines starting with \"From\"."
   (save-excursion
     (save-restriction
       (narrow-to-region from to)
-      (mm-with-unibyte-current-buffer-mule4
-       (if (and (not (featurep 'xemacs)) ;; Don't check XEmacs Mule.
-                (fboundp 'find-charset-region))
-           (if (delq 'unknown          ; Emacs 20 unibyte
-                     (delq 'eight-bit-graphic ; Emacs 21
-                           (delq 'eight-bit-control
-                                 (delq 'ascii 
-                                       (find-charset-region from to)))))
-               (error "Multibyte character in QP encoding region")))
-       ;; Encode all the non-ascii and control characters.
-       (goto-char (point-min))
-       (while (and (skip-chars-forward class)
-                   (not (eobp)))
+      ;; We can live with characters between 00-FF.
+      (goto-char (point-min))
+      (while (not (eobp))
+       (if (>= (char-after) 256)
+           (error "Multibyte character in QP encoding region"))
+       (forward-char))
+      ;; Encode all the non-ascii and control characters.
+      (goto-char (point-min))
+      (while (and (skip-chars-forward class)
+                 (not (eobp)))
+       (insert
+        (prog1
+            (format "=%02X" (char-after))
+          (delete-char 1))))
+      ;; Encode white space at the end of lines.
+      (goto-char (point-min))
+      (while (re-search-forward "[ \t]+$" nil t)
+       (goto-char (match-beginning 0))
+       (while (not (eolp))
          (insert
           (prog1
               (format "=%02X" (char-after))
-            (delete-char 1))))
-       ;; Encode white space at the end of lines.
-       (goto-char (point-min))
-       (while (re-search-forward "[ \t]+$" nil t)
-         (goto-char (match-beginning 0))
-         (while (not (eolp))
-           (insert
-            (prog1
-                (format "=%02X" (char-after))
-              (delete-char 1)))))
-       (let ((mm-use-ultra-safe-encoding
-              (and (boundp 'mm-use-ultra-safe-encoding)
-                   mm-use-ultra-safe-encoding)))
-         (when (or fold mm-use-ultra-safe-encoding)
-           (let ((tab-width 1))        ; HTAB is one character.
-             (goto-char (point-min))
-             (while (not (eobp))
-               ;; In ultra-safe mode, encode "From " at the beginning
-               ;; of a line.
-               (when mm-use-ultra-safe-encoding
-                 (if (looking-at "From ")
-                     (replace-match "From=20" nil t)
-                   (if (looking-at "-")
+            (delete-char 1)))))
+      (let ((mm-use-ultra-safe-encoding
+            (and (boundp 'mm-use-ultra-safe-encoding)
+                 mm-use-ultra-safe-encoding)))
+       (when (or fold mm-use-ultra-safe-encoding)
+         (let ((tab-width 1))  ; HTAB is one character.
+           (goto-char (point-min))
+           (while (not (eobp))
+             ;; In ultra-safe mode, encode "From " at the beginning
+             ;; of a line.
+             (when mm-use-ultra-safe-encoding
+               (if (looking-at "From ")
+                   (replace-match "From=20" nil t)
+                 (if (looking-at "-")
                        (replace-match "=2D" nil t))))
-               (end-of-line)
-               ;; Fold long lines.
-               (while (> (current-column) 76) ; tab-width must be 1.
-                 (beginning-of-line)
-                 (forward-char 75)     ; 75 chars plus an "="
-                 (search-backward "=" (- (point) 2) t)
-                 (insert "=\n")
-                 (end-of-line))
-               (forward-line)))))))))
+             (end-of-line)
+             ;; Fold long lines.
+             (while (> (current-column) 76) ; tab-width must be 1.
+               (beginning-of-line)
+               (forward-char 75)       ; 75 chars plus an "="
+               (search-backward "=" (- (point) 2) t)
+               (insert "=\n")
+               (end-of-line))
+             (forward-line))))))))
 
 (defun quoted-printable-encode-string (string)
   "Encode the STRING as quoted-printable and return the result."
index 3aa36fd..8214e20 100644 (file)
@@ -413,7 +413,9 @@ The buffer may be narrowed."
                   (gnus-point-at-bol))))
        (while alist
          (when (looking-at (caar alist))
-           (quoted-printable-encode-region b e nil (cdar alist))
+           (mm-with-unibyte-current-buffer-mule4
+             (quoted-printable-encode-region 
+              (point-min) (point-max) nil (cdar alist)))
            (subst-char-in-region (point-min) (point-max) ?  ?_)
            (setq alist nil))
          (pop alist))