+2004-10-07 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * mm-uu.el (mm-uu-text-plain-type): New variable.
+ (mm-uu-pgp-signed-extract-1): Use it.
+ (mm-uu-pgp-encrypted-extract-1): Use it.
+ (mm-uu-dissect): Allow MIME type and parameters as an optional arg;
+ bind mm-uu-text-plain-type with that value.
+ (mm-uu-dissect-text-parts): Pass MIME type and parameters to
+ mm-uu-dissect.
+
+2004-10-06 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-group.el (gnus-update-group-mark-positions):
+ * gnus-sum.el (gnus-update-summary-mark-positions):
+ * message.el (message-check-news-body-syntax):
+ * gnus-msg.el (gnus-debug): Use mm-string-as-multibyte instead
+ of string-as-multibyte.
+
+2004-10-05 Juri Linkov <juri@jurta.org>
+
+ * gnus-group.el (gnus-update-group-mark-positions):
+ * gnus-sum.el (gnus-update-summary-mark-positions):
+ * message.el (message-check-news-body-syntax):
+ * gnus-msg.el (gnus-debug): Use `string-as-multibyte' to convert
+ 8-bit unibyte values to a multibyte string for search functions.
+
2004-10-06 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-uu.el (mm-uu-dissect): Allow optional arg.
mm-uu-type-alist)
:group 'gnus-article-mime)
+(defvar mm-uu-text-plain-type '("text/plain" (charset . gnus-decoded))
+ "MIME type and parameters for text/plain parts.
+`gnus-decoded' is a fake charset, which means no further decoding.")
+
;; functions
(defsubst mm-uu-type (entry)
(while (re-search-forward "^- " nil t)
(replace-match "" t t)
(forward-line 1)))
- (list (mm-make-handle buf '("text/plain" (charset . gnus-decoded))))))
+ (list (mm-make-handle buf mm-uu-text-plain-type))))
(defun mm-uu-pgp-signed-extract ()
(let ((mm-security-handle (list (format "multipart/signed"))))
(with-current-buffer buf
(mml2015-clean-buffer)
(funcall (mml2015-clear-decrypt-function))))
- (list
- (mm-make-handle buf
- '("text/plain" (charset . gnus-decoded))))))
+ (list (mm-make-handle buf mm-uu-text-plain-type))))
(defun mm-uu-pgp-encrypted-extract ()
(let ((mm-security-handle (list (format "multipart/encrypted"))))
'("application/pgp-keys"))))
;;;###autoload
-(defun mm-uu-dissect (&optional noheader)
+(defun mm-uu-dissect (&optional noheader mime-type)
"Dissect the current buffer and return a list of uu handles.
-The optional NOHEADER means there's no header in the buffer."
+The optional NOHEADER means there's no header in the buffer.
+MIME-TYPE specifies a MIME type and parameters, which defaults to the
+value of `mm-uu-text-plain-type'."
(let ((case-fold-search t)
- text-start start-point end-point file-name result
- text-plain-type entry func)
+ (mm-uu-text-plain-type (or mime-type mm-uu-text-plain-type))
+ text-start start-point end-point file-name result entry func)
(save-excursion
(goto-char (point-min))
(cond
((search-forward "\n\n" nil t)
t)
(t (goto-char (point-max))))
- ;;; gnus-decoded is a fake charset, which means no further
- ;;; decoding.
- (setq text-start (point)
- text-plain-type '("text/plain" (charset . gnus-decoded)))
+ (setq text-start (point))
(while (re-search-forward mm-uu-beginning-regexp nil t)
(setq start-point (match-beginning 0))
(let ((alist mm-uu-type-alist)
(re-search-forward "." start-point t)))
(push
(mm-make-handle (mm-uu-copy-to-buffer text-start start-point)
- text-plain-type)
+ mm-uu-text-plain-type)
result))
(push
(funcall (mm-uu-function-extract entry))
(re-search-forward "." nil t)))
(push
(mm-make-handle (mm-uu-copy-to-buffer text-start (point-max))
- text-plain-type)
+ mm-uu-text-plain-type)
result))
(setq result (cons "multipart/mixed" (nreverse result))))
result)))
((bufferp buffer)
(when (and (equal "text/plain" (mm-handle-media-type handle))
(with-current-buffer buffer
- (setq children (mm-uu-dissect t))))
+ (setq children
+ (mm-uu-dissect t (mm-handle-type handle)))))
(kill-buffer buffer)
(setcar handle (car children))
(setcdr handle (cdr children))))