From 2db3307e8a966a8f652a210d8f8eb83daddd7d9f Mon Sep 17 00:00:00 2001 From: Tino Calancha Date: Sun, 4 Sep 2016 11:09:31 +0900 Subject: [PATCH] image-type-from-file-name: Perform a case insensitive match Fix Bug#24317 * lisp/image.el (image-type-from-file-name): Bind case-fold-search to a non-nil value to force a case insensitive match. * lisp/image-dired.el (image-dired-rotate-original): Use image-type (Bug#24317). (image-dired-get-exif-file-name): Idem. Set 'no-exif-data-found' and 'data' in same setq call. Use file-attribute-modification-time. --- lisp/image-dired.el | 19 +++++++++---------- lisp/image.el | 2 +- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/lisp/image-dired.el b/lisp/image-dired.el index 67b023dfd70..34e4eaefbc1 100644 --- a/lisp/image-dired.el +++ b/lisp/image-dired.el @@ -1912,8 +1912,8 @@ overwritten. This confirmation can be turned off using (message "No image at point") (let ((file (image-dired-original-file-name)) command) - (if (not (string-match "\\.[jJ][pP[eE]?[gG]$" file)) - (error "Only JPEG images can be rotated!")) + (unless (eq 'jpeg (image-type file)) + (error "Only JPEG images can be rotated!")) (setq command (format-spec image-dired-cmd-rotate-original-options (list @@ -1952,15 +1952,14 @@ for traceability. The format of the returned file name is YYYY_MM_DD_HH_MM_DD_ORIG_FILE_NAME.jpg. Used from `image-dired-copy-with-exif-file-name'." (let (data no-exif-data-found) - (if (not (string-match "\\.[Jj][Pp][Ee]?[Gg]$" (expand-file-name file))) - (progn - (setq no-exif-data-found t) - (setq data - (format-time-string - "%Y:%m:%d %H:%M:%S" - (nth 5 (file-attributes (expand-file-name file)))))) + (if (not (eq 'jpeg (image-type (expand-file-name file)))) + (setq no-exif-data-found t + data (format-time-string + "%Y:%m:%d %H:%M:%S" + (file-attribute-modification-time + (file-attributes (expand-file-name file))))) (setq data (image-dired-get-exif-data (expand-file-name file) - "DateTimeOriginal"))) + "DateTimeOriginal"))) (while (string-match "[ :]" data) (setq data (replace-match "_" nil nil data))) (format "%s%s%s" data diff --git a/lisp/image.el b/lisp/image.el index 791a902a1b9..e1f52de8be5 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -343,7 +343,7 @@ be determined." "Determine the type of image file FILE from its name. Value is a symbol specifying the image type, or nil if type cannot be determined." - (let (type first) + (let (type first (case-fold-search t)) (catch 'found (dolist (elem image-type-file-name-regexps first) (when (string-match-p (car elem) file) -- 2.11.4.GIT