Commit c7948b5f authored by Miles Bader's avatar Miles Bader
Browse files

Merge from gnus--devo--0

Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1505
parent f0131492
2008-12-18 Katsumi Yamaoka <yamaoka@jpl.org>
* mm-util.el (mm-substring-no-properties): New function.
(mm-read-charset, mm-subst-char-in-string, mm-replace-in-string)
(mm-special-display-p): Enable those lambda forms to be byte compiled.
(mm-string-to-multibyte): Doc fix.
* mml.el (mml-attach-file): Use mm-substring-no-properties.
2008-12-18 Reiner Steib <Reiner.Steib@gmx.de>
* mml.el (mml-attach-file): Strip text properties from file name.
2008-12-16 Glenn Morris <rgm@gnu.org>
* mm-util.el (mm-charset-override-alist): Declare for compiler.
......
......@@ -47,38 +47,38 @@
(if (fboundp (car elem))
(defalias nfunc (car elem))
(defalias nfunc (cdr elem)))))
'((coding-system-list . ignore)
`((coding-system-list . ignore)
(char-int . identity)
(coding-system-equal . equal)
(annotationp . ignore)
(set-buffer-file-coding-system . ignore)
(read-charset
. (lambda (prompt)
"Return a charset."
(intern
(completing-read
prompt
(mapcar (lambda (e) (list (symbol-name (car e))))
mm-mime-mule-charset-alist)
nil t))))
. ,(lambda (prompt)
"Return a charset."
(intern
(completing-read
prompt
(mapcar (lambda (e) (list (symbol-name (car e))))
mm-mime-mule-charset-alist)
nil t))))
(subst-char-in-string
. (lambda (from to string &optional inplace)
;; stolen (and renamed) from nnheader.el
"Replace characters in STRING from FROM to TO.
. ,(lambda (from to string &optional inplace)
;; stolen (and renamed) from nnheader.el
"Replace characters in STRING from FROM to TO.
Unless optional argument INPLACE is non-nil, return a new string."
(let ((string (if inplace string (copy-sequence string)))
(len (length string))
(idx 0))
;; Replace all occurrences of FROM with TO.
(while (< idx len)
(when (= (aref string idx) from)
(aset string idx to))
(setq idx (1+ idx)))
string)))
(let ((string (if inplace string (copy-sequence string)))
(len (length string))
(idx 0))
;; Replace all occurrences of FROM with TO.
(while (< idx len)
(when (= (aref string idx) from)
(aset string idx to))
(setq idx (1+ idx)))
string)))
(replace-in-string
. (lambda (string regexp rep &optional literal)
"See `replace-regexp-in-string', only the order of args differs."
(replace-regexp-in-string regexp rep string nil literal)))
. ,(lambda (string regexp rep &optional literal)
"See `replace-regexp-in-string', only the order of args differs."
(replace-regexp-in-string regexp rep string nil literal)))
(string-as-unibyte . identity)
(string-make-unibyte . identity)
;; string-as-multibyte often doesn't really do what you think it does.
......@@ -105,20 +105,32 @@
(multibyte-char-to-unibyte . identity)
(set-buffer-multibyte . ignore)
(special-display-p
. (lambda (buffer-name)
"Returns non-nil if a buffer named BUFFER-NAME gets a special frame."
(and special-display-function
(or (and (member buffer-name special-display-buffer-names) t)
(cdr (assoc buffer-name special-display-buffer-names))
(catch 'return
(dolist (elem special-display-regexps)
(and (stringp elem)
(string-match elem buffer-name)
(throw 'return t))
(and (consp elem)
(stringp (car elem))
(string-match (car elem) buffer-name)
(throw 'return (cdr elem))))))))))))
. ,(lambda (buffer-name)
"Returns non-nil if a buffer named BUFFER-NAME gets a special frame."
(and special-display-function
(or (and (member buffer-name special-display-buffer-names) t)
(cdr (assoc buffer-name special-display-buffer-names))
(catch 'return
(dolist (elem special-display-regexps)
(and (stringp elem)
(string-match elem buffer-name)
(throw 'return t))
(and (consp elem)
(stringp (car elem))
(string-match (car elem) buffer-name)
(throw 'return (cdr elem)))))))))
(substring-no-properties
. ,(lambda (string &optional from to)
"Return a substring of STRING, without text properties.
It starts at index FROM and ending before TO.
TO may be nil or omitted; then the substring runs to the end of STRING.
If FROM is nil or omitted, the substring starts at the beginning of STRING.
If FROM or TO is negative, it counts from the end.
With one argument, just copy STRING without its properties."
(setq string (substring string (or from 0) to))
(set-text-properties 0 (length string) nil string)
string)))))
(eval-and-compile
(if (featurep 'xemacs)
......@@ -156,7 +168,7 @@
'string-to-multibyte)
(t
(lambda (string)
"Return a multibyte string with the same individual chars as string."
"Return a multibyte string with the same individual chars as STRING."
(mapconcat
(lambda (ch) (mm-string-as-multibyte (char-to-string ch)))
string "")))))
......
......@@ -1289,7 +1289,9 @@ body) or \"attachment\" (separate from the body)."
(unless (message-in-body-p) (goto-char (point-max)))
(mml-insert-empty-tag 'part
'type type
'filename file
;; icicles redefines read-file-name and returns a
;; string w/ text properties :-/
'filename (mm-substring-no-properties file)
'disposition (or disposition "attachment")
'description description)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment