Mercurial > emacs
changeset 94616:7b6b7f6f8539
(mailcap-replace-in-string): New compatibility alias.
(mailcap-file-default-commands): Use mailcap-replace-in-string
instead of replace-regexp-in-string, and mailcap-delete-duplicates
instead of delete-dups. Use [ \t\n]* for whitespace in regexp.
author | Juri Linkov <juri@jurta.org> |
---|---|
date | Sun, 04 May 2008 23:12:02 +0000 |
parents | a0615a586d39 |
children | d304e69844c2 |
files | lisp/gnus/mailcap.el |
diffstat | 1 files changed, 27 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/gnus/mailcap.el Sun May 04 19:46:16 2008 +0000 +++ b/lisp/gnus/mailcap.el Sun May 04 23:12:02 2008 +0000 @@ -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,15 +1030,17 @@ (mailcap-parse-mimetypes) (let* ((all-mime-type ;; All unique MIME types from file extensions - (delete-dups (mapcar (lambda (file) - (mailcap-extension-to-mime - (file-name-extension file t))) - files))) + (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-mime-info mime-type 'all)) - all-mime-type))) + (mailcap-delete-duplicates + (mapcar (lambda (mime-type) + (mailcap-mime-info mime-type 'all)) + all-mime-type))) (common-mime-info ;; Intersection of mime-infos from different mime-types; ;; or just the first MIME info for a single MIME type @@ -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))