From c66b456eb5448bed9a750e1299271b11d53a23fa Mon Sep 17 00:00:00 2001 From: yoichi Date: Mon, 23 Aug 2004 16:45:11 +0000 Subject: [PATCH] Synchronized with flim-1_14_6 --- ChangeLog | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ FLIM-ELS | 6 +++--- Makefile | 2 +- VERSION | 3 ++- eword-decode.el | 23 ++++++++++++----------- eword-encode.el | 31 ++++++++++++++++++++++++++++--- mime-def.el | 11 +++++++++-- mime.el | 13 ++++++++----- std11.el | 4 +--- 9 files changed, 115 insertions(+), 29 deletions(-) diff --git a/ChangeLog b/ChangeLog index f07198b..2926d6d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,54 @@ +2003-12-20 MORIOKA Tomohiko + + * FLIM: Version 1.14.6 (Marutamachi) released. + +2003-12-14 MORIOKA Tomohiko + + * mime-def.el (mime-header-accept-quoted-encoded-words): Change + default value to nil. + +2003-03-10 MORIOKA Tomohiko + + * eword-decode.el (eword-analyze-quoted-string): Decode + quoted-encoded-words when + `mime-header-accept-quoted-encoded-words' is not nil. + + * mime.el (mime-entity-filename): Decode quoted-encoded-words when + `mime-header-accept-quoted-encoded-words' is not nil. + + * mime-def.el (mime-header-accept-quoted-encoded-words): New user + option. + +2003-12-14 Tatsuya Kinoshita + + * eword-encode.el (mime-header-charset-encoding-alist): Add + entry for iso-8859-1[45]. + +2003-11-13 Yoichi NAKAYAMA + + * FLIM-ELS (flim-modules): Install mel-b-el also for + mel-b-builtin case. (from Tatsuya Kinoshita) + +2003-09-18 Yoichi NAKAYAMA + + * FLIM-ELS (flim-modules): Don't install smtpmail. + +2003-04-30 Yoichi NAKAYAMA + + * std11.el (std11-field-end): Return end of field correctly + even in case of existence of invisible header. + +2003-02-05 Yoichi NAKAYAMA + + * eword-encode.el (mime-encode-header-in-buffer): + Do not eliminate white spaces. + +2002-11-05 MORIOKA Tomohiko + + * eword-encode.el (tm-eword::words-to-ruled-words): New + implementation for UTF-2000 implementations. + + 2002-12-27 MORIOKA Tomohiko * FLIM: Version 1.14.5 (Demachiyanagi) released. diff --git a/FLIM-ELS b/FLIM-ELS index dbf9c6d..6a9c5bd 100644 --- a/FLIM-ELS +++ b/FLIM-ELS @@ -13,7 +13,7 @@ mime-conf sasl sasl-cram sasl-digest md4 ntlm sasl-ntlm sasl-scram - smtp qmtp smtpmail)) + smtp qmtp)) (setq flim-version-specific-modules nil) @@ -25,8 +25,8 @@ (subrp (symbol-function 'base64-encode-string))) nil (if (fboundp 'dynamic-link) - (setq flim-modules (cons 'mel-b-dl flim-modules))) - (setq flim-modules (cons 'mel-b-el flim-modules))) + (setq flim-modules (cons 'mel-b-dl flim-modules)))) +(setq flim-modules (cons 'mel-b-el flim-modules)) (require 'pccl) (unless-broken ccl-usable diff --git a/Makefile b/Makefile index 3b0c7fb..005cb65 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ PACKAGE = flim API = 1.14 -RELEASE = 5 +RELEASE = 6 TAR = tar RM = /bin/rm -f diff --git a/VERSION b/VERSION index 012ff27..879c516 100644 --- a/VERSION +++ b/VERSION @@ -57,9 +57,10 @@ ;;------------------------------------------------------------------------- ;; Keihan Electric Railway $(B5~:eEE5$E4F;(B http://www.keihan.co.jp/ -;; $(B3{El@~(B +;; -DÒtò-A Line $(B3{El@~(B ;;------------------------------------------------------------------------- 1.14.5 Demachiyanagi $(B=PD.Lx(B ; <=> $(B1CEE(B +1.14.6 Marutamachi $(B4]B@D.(B [Chao Version names] diff --git a/eword-decode.el b/eword-decode.el index 328cc28..0b2d19a 100644 --- a/eword-decode.el +++ b/eword-decode.el @@ -1,6 +1,6 @@ ;;; eword-decode.el --- RFC 2047 based encoded-word decoder for GNU Emacs -;; Copyright (C) 1995,1996,1997,1998,1999,2000 Free Software Foundation, Inc. +;; Copyright (C) 1995,96,97,98,99,2000,01,03 Free Software Foundation, Inc. ;; Author: ENAMI Tsugutomo ;; MORIOKA Tomohiko @@ -621,16 +621,17 @@ returns nil, next function is used. Otherwise the return value will be the result.") (defun eword-analyze-quoted-string (string start &optional must-unfold) - (let ((p (std11-check-enclosure string ?\" ?\" nil start))) - (if p - (cons (cons 'quoted-string - (decode-mime-charset-string - (std11-strip-quoted-pair - (substring string (1+ start) (1- p))) - default-mime-charset)) - ;;(substring string p)) - p) - ))) + (let ((p (std11-check-enclosure string ?\" ?\" nil start)) + ret) + (when p + (setq ret (decode-mime-charset-string + (std11-strip-quoted-pair + (substring string (1+ start) (1- p))) + default-mime-charset)) + (if mime-header-accept-quoted-encoded-words + (setq ret (eword-decode-string ret))) + (cons (cons 'quoted-string ret) + p)))) (defun eword-analyze-domain-literal (string start &optional must-unfold) (std11-analyze-domain-literal string start)) diff --git a/eword-encode.el b/eword-encode.el index 8d24b64..7eebc51 100644 --- a/eword-encode.el +++ b/eword-encode.el @@ -46,6 +46,8 @@ (iso-8859-7 . "Q") (iso-8859-8 . "Q") (iso-8859-9 . "Q") + (iso-8859-14 . "Q") + (iso-8859-15 . "Q") (iso-2022-jp . "B") (iso-2022-jp-3 . "B") (iso-2022-kr . "B") @@ -180,6 +182,26 @@ MODE is allows `text', `comment', `phrase' or nil. Default value is (cons charset mime-header-default-charset-encoding))))) (list charset encoding)))) +;; [tomo:2002-11-05] The following code is a quick-fix for emacsen +;; which is not depended on the Mule model. We should redesign +;; `eword-encode-split-string' to avoid to depend on the Mule model. +(if (featurep 'utf-2000) +;; for CHISE Architecture +(defun tm-eword::words-to-ruled-words (wl &optional mode) + (let (mcs) + (mapcar (function + (lambda (word) + (setq mcs (detect-mime-charset-string (cdr word))) + (make-ew-rword + (cdr word) + mcs + (cdr (or (assq mcs mime-header-charset-encoding-alist) + (cons mcs mime-header-default-charset-encoding))) + mode) + )) + wl))) + +;; for legacy Mule (defun tm-eword::words-to-ruled-words (wl &optional mode) (mapcar (function (lambda (word) @@ -187,6 +209,7 @@ MODE is allows `text', `comment', `phrase' or nil. Default value is (make-ew-rword (cdr word) (car ret)(nth 1 ret) mode) ))) wl)) +) (defun ew-space-process (seq) (let (prev a ac b c cc) @@ -737,16 +760,18 @@ It refer variable `mime-field-encoding-method-alist'." (goto-char (point-min)) (let ((default-cs (mime-charset-to-coding-system default-mime-charset)) bbeg end field-name) - (while (re-search-forward std11-field-head-regexp nil t) + (while (re-search-forward + (concat "\\(" std11-field-head-regexp "\\)" " ?") + nil t) (setq bbeg (match-end 0) - field-name (buffer-substring (match-beginning 0) (1- bbeg)) + field-name (buffer-substring (match-beginning 0) (1- (match-end 1))) end (std11-field-end)) (and (delq 'ascii (find-charset-region bbeg end)) (let ((method (eword-find-field-encoding-method (downcase field-name)))) (cond ((eq method 'mime) (let* ((field-body - (buffer-substring-no-properties bbeg end)) + (buffer-substring-no-properties bbeg end)) (encoded-body (mime-encode-field-body field-body field-name))) diff --git a/mime-def.el b/mime-def.el index 16fe95e..4a58ea3 100644 --- a/mime-def.el +++ b/mime-def.el @@ -1,6 +1,7 @@ ;;; mime-def.el --- definition module about MIME -*- coding: iso-8859-4; -*- -;; Copyright (C) 1995,96,97,98,99,2000,2001,2002 Free Software Foundation, Inc. +;; Copyright (C) 1995,96,97,98,99,2000,2001,2002,2003 +;; Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Shuhei KOBAYASHI @@ -32,7 +33,7 @@ (eval-when-compile (require 'luna)) ; luna-arglist-to-arguments (eval-and-compile - (defconst mime-library-product ["FLIM" (1 14 5) "Demachiyanagi"] + (defconst mime-library-product ["FLIM" (1 14 6) "Marutamachi"] "Product name, version number and code name of MIME-library package.")) (defmacro mime-product-name (product) @@ -82,6 +83,12 @@ :type '(choice (integer :tag "Limit (bytes)") (const :tag "Don't limit" nil))) +(defcustom mime-header-accept-quoted-encoded-words nil + "*Accept encoded-words in quoted-strings." + :group 'mime-header + :type 'boolean) + + ;;; @@@ encoding ;;; diff --git a/mime.el b/mime.el index 005790e..161eb97 100644 --- a/mime.el +++ b/mime.el @@ -1,6 +1,6 @@ ;;; mime.el --- MIME library module -;; Copyright (C) 1998,1999,2000 Free Software Foundation, Inc. +;; Copyright (C) 1998,1999,2000,2001,2003 Free Software Foundation, Inc. ;; Author: MORIOKA Tomohiko ;; Keywords: MIME, multimedia, mail, news @@ -391,13 +391,16 @@ default value." (defun mime-entity-filename (entity) "Return filename of ENTITY." (or (mime-entity-uu-filename entity) - (mime-content-disposition-filename - (mime-entity-content-disposition entity)) + (let ((ret (mime-content-disposition-filename + (mime-entity-content-disposition entity)))) + (if (and mime-header-accept-quoted-encoded-words + ret) + (eword-decode-string ret) + ret)) (cdr (let ((param (mime-content-type-parameters (mime-entity-content-type entity)))) (or (assoc "name" param) - (assoc "x-name" param)) - )))) + (assoc "x-name" param)))))) (defsubst mime-entity-media-type (entity) diff --git a/std11.el b/std11.el index 6c83a72..a2ebeec 100644 --- a/std11.el +++ b/std11.el @@ -44,9 +44,7 @@ The optional argument BOUNDs the search; it is a buffer position." (if (re-search-forward "^$" bound t) (goto-char (1- (match-beginning 0))) (end-of-line) - )) - (point) - ) + (point)))) ;;;###autoload (defun std11-fetch-field (name) -- 1.7.10.4