]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from gnus--devo--0
authorMiles Bader <miles@gnu.org>
Fri, 19 Dec 2008 02:40:25 +0000 (02:40 +0000)
committerMiles Bader <miles@gnu.org>
Fri, 19 Dec 2008 02:40:25 +0000 (02:40 +0000)
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-1505

lisp/gnus/ChangeLog
lisp/gnus/mm-util.el
lisp/gnus/mml.el

index 5dbf7ff30cb9f11c395d69ac949654cfb9951f0d..94145b74b6c10084002d724672d4abaa35208894 100644 (file)
@@ -1,3 +1,16 @@
+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.
index 1c28f375db042588b3f5efb8c3c430eac578767a..9ef3d37ac7ee4f3a8ab63ef5f21c4e820aa24ec9 100644 (file)
        (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.
      (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)
     '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 "")))))
index 3e3cb2ccda4355654bf593739473799fe4e793f3..14e060b117ab55161401856b021b06fb84029853 100644 (file)
@@ -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)))