emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/gnus/mailcap.el,v


From: Juri Linkov
Subject: [Emacs-diffs] Changes to emacs/lisp/gnus/mailcap.el,v
Date: Sun, 04 May 2008 23:12:03 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Juri Linkov <jurta>     08/05/04 23:12:02

Index: mailcap.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/gnus/mailcap.el,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- mailcap.el  22 Apr 2008 19:51:00 -0000      1.23
+++ mailcap.el  4 May 2008 23:12:02 -0000       1.24
@@ -42,6 +42,19 @@
     (autoload 'mm-delete-duplicates "mm-util")
     'mm-delete-duplicates))
 
+;; `mailcap-replace-in-string' is an alias like `gnus-replace-in-string'.
+(eval-and-compile
+  (cond
+   ((fboundp 'replace-regexp-in-string)
+    (defun mailcap-replace-in-string  (string regexp newtext &optional literal)
+      "Replace all matches for REGEXP with NEWTEXT in STRING.
+If LITERAL is non-nil, insert NEWTEXT literally.  Return a new
+string containing the replacements.
+This is a compatibility function for different Emacsen."
+      (replace-regexp-in-string regexp newtext string nil literal)))
+   ((fboundp 'replace-in-string)
+    (defalias 'mailcap-replace-in-string 'replace-in-string))))
+
 (defgroup mailcap nil
   "Definition of viewers for MIME types."
   :version "21.1"
@@ -1017,13 +1030,15 @@
   (mailcap-parse-mimetypes)
   (let* ((all-mime-type
          ;; All unique MIME types from file extensions
-         (delete-dups (mapcar (lambda (file)
+         (mailcap-delete-duplicates
+          (mapcar (lambda (file)
                                 (mailcap-extension-to-mime
                                  (file-name-extension file t)))
                               files)))
         (all-mime-info
          ;; All MIME info lists
-         (delete-dups (mapcar (lambda (mime-type)
+         (mailcap-delete-duplicates
+          (mapcar (lambda (mime-type)
                                 (mailcap-mime-info mime-type 'all))
                               all-mime-type)))
         (common-mime-info
@@ -1040,18 +1055,17 @@
            (car all-mime-info)))
         (commands
          ;; Command strings from `viewer' field of the MIME info
-         (delete-dups
+         (mailcap-delete-duplicates
           (delq nil (mapcar (lambda (mime-info)
                               (let ((command (cdr (assoc 'viewer mime-info))))
                                 (if (stringp command)
-                                    (replace-regexp-in-string
+                                    (mailcap-replace-in-string
                                      ;; Replace mailcap's `%s' placeholder
                                      ;; with dired's `?' placeholder
-                                     "%s" "?"
-                                     (replace-regexp-in-string
+                                     (mailcap-replace-in-string
                                       ;; Remove the final filename placeholder
-                                      "\s*\\('\\)?%s\\1?\s*\\'" "" command nil 
t)
-                                     nil t))))
+                                      command "[ \t\n]*\\('\\)?%s\\1?[ 
\t\n]*\\'" "" t)
+                                     "%s" "?" t))))
                             common-mime-info)))))
     commands))
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]