From f3b90515038974fbb46f00b7cd5a687fb19cd160 Mon Sep 17 00:00:00 2001 From: akr Date: Wed, 14 Oct 1998 12:40:26 +0000 Subject: [PATCH] * Sync up to flim-1_10_5 from flim-1_10_2. * mime-def.el (mime-library-product): Bump up to FLAM-DOODLE 1.10.2. --- ChangeLog | 100 +++++++++++++++++++++++++++++++ DOODLE-VERSION | 2 +- FLIM-CFG | 7 +++ FLIM-ELS | 4 +- FLIM-MK | 12 +++- FLIM-VERSION | 6 +- Makefile | 11 ++-- README.en | 6 ++ eword-decode.el | 176 ++++++++++++++++++++++++++++--------------------------- mel-b-dl.el | 29 ++++----- mel-b.el | 55 +++++++++++++---- mel-ccl.el | 7 ++- mel.el | 7 ++- mime-def.el | 6 +- 14 files changed, 298 insertions(+), 130 deletions(-) diff --git a/ChangeLog b/ChangeLog index bd87f77..0fbe9c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +1998-10-14 Tanaka Akira + + * Sync up to flim-1_10_5 from flim-1_10_2. + + * mime-def.el (mime-library-product): Bump up to FLAM-DOODLE + 1.10.2. + 1998-10-09 Tanaka Akira * mime-def.el (mime-library-product): Fix typo. @@ -1200,6 +1207,99 @@ * eword-decode.el: Copied from AKEMI branch of SEMI. +1998-10-14 MORIOKA Tomohiko + + * FLIM: Version 1.10.5 (Kizugawadai) was released. + + * mel.el: Must require poem. + + +1998-10-12 MORIOKA Tomohiko + + * FLIM: Version 1.10.4 (Shin-H-Dòsono)-A was released. + +1998-10-12 Katsumi Yamaoka + + * README.en: Add explanation about `VERSION_SPECIFIC_LISPDIR'. + + * Makefile (install): Add new arg `VERSION_SPECIFIC_LISPDIR'. + (elc): Likewise. + + * FLIM-MK (config-flim): Refer to `VERSION_SPECIFIC_LISPDIR'. + + * FLIM-CFG (VERSION_SPECIFIC_LISPDIR): New variable. + +1998-10-12 MORIOKA Tomohiko + + * mel.el (mel-ccl-module): Require path-util when the running + emacs has MULE. + + * mel.el: Don't require emu. + +1998-10-11 MORIOKA Tomohiko + + * FLIM-ELS: Don't install mel-ccl in anything older than XEmacs 21 + with MULE. + + +1998-10-10 MORIOKA Tomohiko + + * FLIM: Version 1.10.3 (Komada) was released. + + * mel-ccl.el (base64-ccl-write-decoded-region): bind + `jka-compr-compression-info-list' with nil. + + * mel-b.el (base64-internal-decoding-limit): Switch default value + between XEmacs-mule and other emacsen. + Abolish function `base64-decode-string!'. + (base64-internal-decode-region): New implementation. + (base64-insert-encoded-file): New function. + (mime-insert-encoded-file): Use `base64-insert-encoded-file'. + (base64-write-decoded-region): New function. + (mime-write-decoded-region): Use `base64-write-decoded-region'. + + * mel-b-dl.el (decode-base64-region): Renamed from + `base64-decode-region'. + (mime-insert-encoded-file): Change temporary-buffer to unibyte + representation. Abolish method `mime-write-decoded-region' + because it is slower than CCL based implementation. + +1998-10-09 Tanaka Akira + + * mel-ccl.el: Check `ccl-execute-eof-block-on-decoding-some' + facility instead of `ccl-execute-eof-block-on-encoding-some'. + +1998-10-09 MORIOKA Tomohiko + + * mel-b.el (base64-characters): Enclose with `eval-and-compile'. + + * eword-decode.el (eword-encoded-text-regexp): Enclose with + `eval-and-compile'. + (eword-encoded-word-regexp): Use `eval-when-compile'. + +1998-10-09 MORIOKA Tomohiko + + * eword-decode.el (eword-max-size-to-decode): New user option. + (eword-decode-and-fold-structured-field): Do nothing if size of + input is bigger than `eword-max-size-to-decode'. + +1998-10-08 MORIOKA Tomohiko + + * mel-b.el (base64-numbers): Use `eval-when-compile'. + +1998-10-09 Katsumi Yamaoka + + * FLIM-CFG: Use `add-latest-path' instead of `add-path' for adding + "custom" to load-path. + +1998-10-09 Katsumi Yamaoka + + * mime-def.el (mime-library-product): Enclose with + `eval-and-compile'. + + * FLIM-CFG: Add "custom" to load-path. + + 1998-10-08 MORIOKA Tomohiko * FLIM: Version 1.10.2 (Kintetsu-Miyazu) was released. diff --git a/DOODLE-VERSION b/DOODLE-VERSION index f6dac3a..2045ad2 100644 --- a/DOODLE-VERSION +++ b/DOODLE-VERSION @@ -21,7 +21,7 @@ Order is not significant. 15 $B?<;Y;R(B $B$3$-$/$A$J$7(B 10YR7.5/8.0 FLAM-DOODLE 1.9.5 16 $B4;;R(B $B$3$&$8(B 7.5YR7.0/11.0 FLAM-DOODLE 1.10.0 17 $B5`MU(B $B$/$A$P(B 10YR7.5/10.0 FLAM-DOODLE 1.10.1 - 18 $B@VGrFK(B $B$"$+$7$m$D$k$P$_(B 5.0YR8.0/6.0 + 18 $B@VGrFK(B $B$"$+$7$m$D$k$P$_(B 5.0YR8.0/6.0 FLAM-DOODLE 1.10.2 19 $B>.F&(B $B$"$:$-(B 2.5R3.5/5.0 20 $BIrF:Cc(B $B$($S$A$c(B 5.0R4.0/11.0 21 $B?? JR $(BJRD.@~(B $(B=K1`(B ------ Kizugawadai $(BLZDE@nBf(B +1.10.3 Komada $(B9}ED(B +1.10.4 Shin-H-Dòsono-A $(B?7=K1`(B ; <=> JR $(BJRD.@~(B $(B=K1`(B +1.10.5 Kizugawadai $(BLZDE@nBf(B ----- Yamadagawa $(B;3ED@n(B ----- Takanohara $(B9b$N86(B ----- Heij-Dò-A $(BJ?>k(B diff --git a/Makefile b/Makefile index e06536a..6cc57d9 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # PACKAGE = flim -VERSION = 1.10.2 +VERSION = 1.10.5 TAR = tar RM = /bin/rm -f @@ -17,6 +17,7 @@ FLAGS_CURDIR = $(FLAGS) -eval '(setq load-path (cons "." load-path))' PREFIX = NONE LISPDIR = NONE PACKAGEDIR = NONE +VERSION_SPECIFIC_LISPDIR = NONE GOMI = *.elc \ *.cp *.cps *.ky *.kys *.fn *.fns *.vr *.vrs \ @@ -25,10 +26,12 @@ FILES = README.?? Makefile FLIM-MK FLIM-CFG FLIM-ELS *.el ChangeLog elc: ew-parse.el - $(EMACS) $(FLAGS) -l FLIM-MK -f compile-flim $(PREFIX) $(LISPDIR) + $(EMACS) $(FLAGS) -l FLIM-MK -f compile-flim $(PREFIX) $(LISPDIR) \ + $(VERSION_SPECIFIC_LISPDIR) install: elc - $(EMACS) $(FLAGS) -l FLIM-MK -f install-flim $(PREFIX) $(LISPDIR) + $(EMACS) $(FLAGS) -l FLIM-MK -f install-flim $(PREFIX) $(LISPDIR) \ + $(VERSION_SPECIFIC_LISPDIR) package: @@ -56,7 +59,7 @@ tar: sed "s/VERSION/$(VERSION)/" < ftp.in > ftp release: - -$(RM) /pub/GNU/elisp/apel/$(PACKAGE)-$(VERSION).tar.gz + -$(RM) /pub/GNU/elisp/flim/$(PACKAGE)-$(VERSION).tar.gz mv /tmp/$(PACKAGE)-$(VERSION).tar.gz /pub/GNU/elisp/flim/ cd /pub/GNU/elisp/semi/ ; \ ln -s ../flim/$(PACKAGE)-$(VERSION).tar.gz . diff --git a/README.en b/README.en index ce7ff24..4dce259 100644 --- a/README.en +++ b/README.en @@ -87,6 +87,12 @@ Installation emacs command is used (perhaps /usr/local/share/emacs/site-lisp or /usr/local/lib/xemacs/site-lisp). + If the emu modules (included in APEL package) have been installed in + the non-standard directory, you should specify where they will be + found, for example: + + % make install VERSION_SPECIFIC_LISPDIR=~/elisp + You can specify other optional settings by editing the file FLIM-CFG. Please read comments in it. diff --git a/eword-decode.el b/eword-decode.el index 9982cbd..42beb16 100644 --- a/eword-decode.el +++ b/eword-decode.el @@ -69,6 +69,12 @@ however this behaviour violates RFC2047." :group 'eword-decode :type 'boolean) +(defcustom eword-max-size-to-decode 1000 + "*Max size to decode header field." + :group 'eword-decode + :type '(choice (integer :tag "Limit (bytes)") + (const :tag "Don't limit" nil))) + ;;; @ MIME encoded-word definition ;;; @@ -316,6 +322,91 @@ default-mime-charset." code-conversion must-unfold)) +(defun eword-decode-and-fold-structured-field + (string start-column &optional max-column must-unfold) + "Decode and fold (fill) STRING as structured field body. +It decodes non us-ascii characters in FULL-NAME encoded as +encoded-words or invalid \"raw\" string. \"Raw\" non us-ascii +characters are regarded as variable `default-mime-charset'. + +If an encoded-word is broken or your emacs implementation can not +decode the charset included in it, it is not decoded. + +If MAX-COLUMN is omitted, `fill-column' is used. + +If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even +if there are in decoded encoded-words (generated by bad manner MUA +such as a version of Net$cape)." + (rotate-memo args-eword-decode-and-fold-structured-field + (list string start-column max-column must-unfold)) + (or max-column + (setq max-column fill-column)) + (let* ((field-name (make-string (1- start-column) ?X)) + (field-body (ew-lf-crlf-to-crlf string)) + (ew-decode-field-default-syntax '(ew-scan-unibyte-std11)) + (decoded (ew-decode-field field-name field-body))) + (unless (equal field-body decoded) + (setq decoded (ew-crlf-refold decoded start-column max-column))) + (ew-crlf-to-lf decoded))) + +(defun eword-decode-and-unfold-structured-field (string) + "Decode and unfold STRING as structured field body. +It decodes non us-ascii characters in FULL-NAME encoded as +encoded-words or invalid \"raw\" string. \"Raw\" non us-ascii +characters are regarded as variable `default-mime-charset'. + +If an encoded-word is broken or your emacs implementation can not +decode the charset included in it, it is not decoded." + (rotate-memo args-eword-decode-and-unfold-structured-field (list string)) + (let* ((ew-decode-field-default-syntax '(ew-scan-unibyte-std11)) + (decoded (ew-decode-field "" (ew-lf-crlf-to-crlf string)))) + (ew-crlf-to-lf (ew-crlf-unfold decoded)))) + +(defun eword-decode-structured-field-body (string &optional must-unfold + start-column max-column) + "Decode non us-ascii characters in STRING as structured field body. +STRING is unfolded before decoding. + +It decodes non us-ascii characters in FULL-NAME encoded as +encoded-words or invalid \"raw\" string. \"Raw\" non us-ascii +characters are regarded as variable `default-mime-charset'. + +If an encoded-word is broken or your emacs implementation can not +decode the charset included in it, it is not decoded. + +If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even +if there are in decoded encoded-words (generated by bad manner MUA +such as a version of Net$cape)." + (rotate-memo args-eword-decode-structured-field-body + (list string must-unfold start-column max-column)) + (if start-column + ;; fold with max-column + (eword-decode-and-fold-structured-field + string start-column max-column must-unfold) + ;; Don't fold + (let* ((ew-decode-field-default-syntax '(ew-scan-unibyte-std11)) + (decoded (ew-decode-field "" (ew-lf-crlf-to-crlf string)))) + (ew-crlf-to-lf decoded)))) + +(defun eword-decode-unstructured-field-body (string &optional must-unfold) + "Decode non us-ascii characters in STRING as unstructured field body. +STRING is unfolded before decoding. + +It decodes non us-ascii characters in FULL-NAME encoded as +encoded-words or invalid \"raw\" string. \"Raw\" non us-ascii +characters are regarded as variable `default-mime-charset'. + +If an encoded-word is broken or your emacs implementation can not +decode the charset included in it, it is not decoded. + +If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even +if there are in decoded encoded-words (generated by bad manner MUA +such as a version of Net$cape)." + (rotate-memo args-eword-decode-unstructured-field-body + (list string must-unfold)) + (let ((decoded (ew-decode-field "" (ew-lf-crlf-to-crlf string)))) + (ew-crlf-to-lf (ew-crlf-unfold decoded)))) + ;;; @ for region ;;; @@ -660,91 +751,6 @@ characters encoded as encoded-words or invalid \"raw\" format. (defun eword-decode-token (token) (cdr token)) -(defun eword-decode-and-fold-structured-field - (string start-column &optional max-column must-unfold) - "Decode and fold (fill) STRING as structured field body. -It decodes non us-ascii characters in FULL-NAME encoded as -encoded-words or invalid \"raw\" string. \"Raw\" non us-ascii -characters are regarded as variable `default-mime-charset'. - -If an encoded-word is broken or your emacs implementation can not -decode the charset included in it, it is not decoded. - -If MAX-COLUMN is omitted, `fill-column' is used. - -If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even -if there are in decoded encoded-words (generated by bad manner MUA -such as a version of Net$cape)." - (rotate-memo args-eword-decode-and-fold-structured-field - (list string start-column max-column must-unfold)) - (or max-column - (setq max-column fill-column)) - (let* ((field-name (make-string (1- start-column) ?X)) - (field-body (ew-lf-crlf-to-crlf string)) - (ew-decode-field-default-syntax '(ew-scan-unibyte-std11)) - (decoded (ew-decode-field field-name field-body))) - (unless (equal field-body decoded) - (setq decoded (ew-crlf-refold decoded start-column max-column))) - (ew-crlf-to-lf decoded))) - -(defun eword-decode-and-unfold-structured-field (string) - "Decode and unfold STRING as structured field body. -It decodes non us-ascii characters in FULL-NAME encoded as -encoded-words or invalid \"raw\" string. \"Raw\" non us-ascii -characters are regarded as variable `default-mime-charset'. - -If an encoded-word is broken or your emacs implementation can not -decode the charset included in it, it is not decoded." - (rotate-memo args-eword-decode-and-unfold-structured-field (list string)) - (let* ((ew-decode-field-default-syntax '(ew-scan-unibyte-std11)) - (decoded (ew-decode-field "" (ew-lf-crlf-to-crlf string)))) - (ew-crlf-to-lf (ew-crlf-unfold decoded)))) - -(defun eword-decode-structured-field-body (string &optional must-unfold - start-column max-column) - "Decode non us-ascii characters in STRING as structured field body. -STRING is unfolded before decoding. - -It decodes non us-ascii characters in FULL-NAME encoded as -encoded-words or invalid \"raw\" string. \"Raw\" non us-ascii -characters are regarded as variable `default-mime-charset'. - -If an encoded-word is broken or your emacs implementation can not -decode the charset included in it, it is not decoded. - -If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even -if there are in decoded encoded-words (generated by bad manner MUA -such as a version of Net$cape)." - (rotate-memo args-eword-decode-structured-field-body - (list string must-unfold start-column max-column)) - (if start-column - ;; fold with max-column - (eword-decode-and-fold-structured-field - string start-column max-column must-unfold) - ;; Don't fold - (let* ((ew-decode-field-default-syntax '(ew-scan-unibyte-std11)) - (decoded (ew-decode-field "" (ew-lf-crlf-to-crlf string)))) - (ew-crlf-to-lf decoded)))) - -(defun eword-decode-unstructured-field-body (string &optional must-unfold) - "Decode non us-ascii characters in STRING as unstructured field body. -STRING is unfolded before decoding. - -It decodes non us-ascii characters in FULL-NAME encoded as -encoded-words or invalid \"raw\" string. \"Raw\" non us-ascii -characters are regarded as variable `default-mime-charset'. - -If an encoded-word is broken or your emacs implementation can not -decode the charset included in it, it is not decoded. - -If MUST-UNFOLD is non-nil, it unfolds and eliminates line-breaks even -if there are in decoded encoded-words (generated by bad manner MUA -such as a version of Net$cape)." - (rotate-memo args-eword-decode-unstructured-field-body - (list string must-unfold)) - (let ((decoded (ew-decode-field "" (ew-lf-crlf-to-crlf string)))) - (ew-crlf-to-lf (ew-crlf-unfold decoded)))) - (defun eword-extract-address-components (string) "Extract full name and canonical address from STRING. Returns a list of the form (FULL-NAME CANONICAL-ADDRESS). diff --git a/mel-b-dl.el b/mel-b-dl.el index 0f0f22e..3adea3d 100644 --- a/mel-b-dl.el +++ b/mel-b-dl.el @@ -47,7 +47,7 @@ START and END are buffer positions." (insert "\n")) ) -(defun base64-decode-region (start end) +(defun decode-base64-region (start end) "Decode current region by base64. START and END are buffer positions." (interactive "r") @@ -69,7 +69,7 @@ START and END are buffer positions." (mel-define-method-function (mime-encode-region start end (nil "base64")) 'base64-encode-region) (mel-define-method-function (mime-decode-region start end (nil "base64")) - 'base64-decode-region) + 'decode-base64-region) (mel-define-method-function (encoded-text-encode-string string (nil "B")) 'encode-base64-string) @@ -92,24 +92,25 @@ mmencode included in metamail or XEmacs package)." (interactive (list (read-file-name "Insert encoded file: "))) (insert (encode-base64-string (with-temp-buffer + (set-buffer-multibyte nil) (insert-file-contents-as-binary filename) (buffer-string)))) (or (bolp) (insert "\n")) ) -(mel-define-method mime-write-decoded-region (start end filename - (nil "base64")) - "Decode and write current region encoded by base64 into FILENAME. -START and END are buffer positions." - (interactive - (list (region-beginning) (region-end) - (read-file-name "Write decoded region to file: "))) - (let ((str (buffer-substring start end))) - (with-temp-buffer - (insert (decode-base64-string str)) - (write-region-as-binary (point-min) (point-max) filename) - ))) +;; (mel-define-method mime-write-decoded-region (start end filename +;; (nil "base64")) +;; "Decode and write current region encoded by base64 into FILENAME. +;; START and END are buffer positions." +;; (interactive +;; (list (region-beginning) (region-end) +;; (read-file-name "Write decoded region to file: "))) +;; (let ((str (buffer-substring start end))) +;; (with-temp-buffer +;; (insert (decode-base64-string str)) +;; (write-region-as-binary (point-min) (point-max) filename) +;; ))) ;;; @ end diff --git a/mel-b.el b/mel-b.el index deb54ff..ad34a37 100644 --- a/mel-b.el +++ b/mel-b.el @@ -60,7 +60,10 @@ external encoder is called." :type '(choice (const :tag "Always use internal encoder" nil) (integer :tag "Size"))) -(defcustom base64-internal-decoding-limit 70000 +(defcustom base64-internal-decoding-limit (if (and (featurep 'xemacs) + (featurep 'mule)) + 1000 + 7600) "*limit size to use internal base64 decoder. If size of input to decode is larger than this limit, external decoder is called." @@ -72,8 +75,10 @@ external decoder is called." ;;; @ internal base64 encoder ;;; based on base64 decoder by Enami Tsugutomo -(defconst base64-characters - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/") +(eval-and-compile + (defconst base64-characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/") + ) (defmacro base64-num-to-char (n) `(aref base64-characters ,n)) @@ -147,13 +152,14 @@ external decoder is called." ;;; (defconst base64-numbers - `,(let ((len (length base64-characters)) + (eval-when-compile + (let ((len (length base64-characters)) (vec (make-vector 123 nil)) (i 0)) (while (< i len) (aset vec (aref base64-characters i) i) (setq i (1+ i))) - vec)) + vec))) (defmacro base64-char-to-num (c) `(aref base64-numbers ,c)) @@ -191,15 +197,30 @@ external decoder is called." (defun base64-internal-decode-string (string) (base64-internal-decode string (make-string (length string) 0))) -(defsubst base64-decode-string! (string) - (base64-internal-decode string string)) +;; (defsubst base64-decode-string! (string) +;; (setq string (string-as-unibyte string)) +;; (base64-internal-decode string string)) (defun base64-internal-decode-region (beg end) (save-excursion - (let ((str (buffer-substring beg end))) + (let ((str (string-as-unibyte (buffer-substring beg end)))) (delete-region beg end) (goto-char beg) - (insert (base64-decode-string! str))))) + (insert (base64-internal-decode str str))))) + +;; (defun base64-internal-decode-region2 (beg end) +;; (save-excursion +;; (let ((str (buffer-substring beg end))) +;; (delete-region beg end) +;; (goto-char beg) +;; (insert (base64-decode-string! str))))) + +;; (defun base64-internal-decode-region3 (beg end) +;; (save-excursion +;; (let ((str (buffer-substring beg end))) +;; (delete-region beg end) +;; (goto-char beg) +;; (insert (base64-internal-decode-string str))))) ;;; @ external encoder/decoder @@ -302,7 +323,7 @@ metamail or XEmacs package)." (base64-decode-string string) (error "Invalid encoded-text %s" string))) -(mel-define-method mime-insert-encoded-file (filename (nil "base64")) +(defun base64-insert-encoded-file (filename) "Encode contents of file FILENAME to base64, and insert the result. It calls external base64 encoder specified by `base64-external-encoder'. So you must install the program (maybe @@ -316,14 +337,17 @@ mmencode included in metamail or XEmacs package)." (insert (base64-encode-string (with-temp-buffer + (set-buffer-multibyte nil) (insert-file-contents-as-binary filename) (buffer-string)))) (or (bolp) (insert "\n")) )) -(mel-define-method mime-write-decoded-region (start end filename - (nil "base64")) +(mel-define-method-function (mime-insert-encoded-file filename (nil "base64")) + 'base64-insert-encoded-file) + +(defun base64-write-decoded-region (start end filename) "Decode and write current region encoded by base64 into FILENAME. START and END are buffer positions." (interactive @@ -341,7 +365,12 @@ START and END are buffer positions." (let ((str (buffer-substring start end))) (with-temp-buffer (insert (base64-internal-decode-string str)) - (write-region-as-binary (point-min) (point-max) filename))))) + (write-region-as-binary (point-min) (point-max) filename) + )))) + +(mel-define-method-function + (mime-write-decoded-region start end filename (nil "base64")) + 'base64-write-decoded-region) ;;; @ etc diff --git a/mel-ccl.el b/mel-ccl.el index e50ad5f..12b18e1 100644 --- a/mel-ccl.el +++ b/mel-ccl.el @@ -1173,7 +1173,7 @@ abcdefghijklmnopqrstuvwxyz\ ;;; @ B ;;; -(unless-broken ccl-execute-eof-block-on-encoding-some +(unless-broken ccl-execute-eof-block-on-decoding-some (defun base64-ccl-encode-string (string) "Encode STRING with base64 encoding." @@ -1216,7 +1216,8 @@ abcdefghijklmnopqrstuvwxyz\ (interactive (list (region-beginning) (region-end) (read-file-name "Write decoded region to file: "))) - (let ((coding-system-for-write 'mel-ccl-b-rev)) + (let ((coding-system-for-write 'mel-ccl-b-rev) + jka-compr-compression-info-list) (write-region start end filename))) (mel-define-method-function (mime-decode-string string (nil "base64")) @@ -1237,7 +1238,7 @@ abcdefghijklmnopqrstuvwxyz\ ;;; @ quoted-printable ;;; -(unless-broken ccl-execute-eof-block-on-encoding-some +(unless-broken ccl-execute-eof-block-on-decoding-some (defun quoted-printable-ccl-encode-string (string) "Encode STRING with quoted-printable encoding." diff --git a/mel.el b/mel.el index 9495b46..1ccc8b5 100644 --- a/mel.el +++ b/mel.el @@ -25,8 +25,8 @@ ;;; Code: -(require 'emu) (require 'mime-def) +(require 'poem) (defcustom mime-encoding-list '("7bit" "8bit" "binary" "base64" "quoted-printable") @@ -81,7 +81,10 @@ Content-Transfer-Encoding for it." (defvar mel-ccl-module (and (featurep 'mule) - (module-installed-p 'mel-ccl))) + (progn + (require 'path-util) + (module-installed-p 'mel-ccl) + ))) (mel-use-module 'mel-b '("base64" "B")) (mel-use-module 'mel-q '("quoted-printable" "Q")) diff --git a/mime-def.el b/mime-def.el index baff5ec..2444b42 100644 --- a/mime-def.el +++ b/mime-def.el @@ -24,8 +24,10 @@ ;;; Code: -(defconst mime-library-product ["FLAM-DOODLE" (1 10 1) "$B5`MU(B 10YR7.5/10.0"] - "Product name, version number and code name of MIME-library package.") +(eval-and-compile + (defconst mime-library-product ["FLAM-DOODLE" (1 10 2) "$B@VGrFK(B 5.0YR8.0/6.0"] + "Product name, version number and code name of MIME-library package.") + ) (defmacro mime-product-name (product) `(aref ,product 0)) -- 1.7.10.4