Subject: bug#24317: 25.1.50; image-dired-rotate-original: regexp doesn't match .jpeg suffix

From: Tino Calancha <[email-masked]>
Date: Sat, 27 Aug 2016 21:18:37 +0900 (JST)

On Sat, 27 Aug 2016, Eli Zaretskii wrote:

>> From: Thien-Thi Nguyen <[email-masked]>
>> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
>> Date: Sat, 27 Aug 2016 11:42:31 +0200
>>
>> Another idea is to use function ‘image-type’,
>> which can handle a filename as its SOURCE argument.
>
> That is better, yes.  Except that
>
>  (let ((case-fold-search)) (image-type-from-file-name "foo.JPEG"))
>    => nil
>
> So I guess that function needs a minor change to be more robust.
That's right.  It wuld be worth take a look on 
'image-type-from-file-name'.

I have corrected previous patch.  I drop expand-file-name from
'image-dired-jpeg-file-p'.  I also corrected the extra paren mentioned
before.
If people is happy with it i will apply this patch.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>From 9d95e361e45df393feaf3f6c451878e794c924eb Mon Sep 17 00:00:00 2001
From: Tino Calancha <[email-masked]>
Date: Sat, 27 Aug 2016 18:41:44 +0900
Subject: [PATCH] image-dired-rotate-original: Fix regexp typo

* lisp/image-dired.el (image-dired-jpeg-file-p): New defsubst;
Return non-nil if a file has a JPEG extension.
(image-dired-rotate-original, image-dired-get-exif-file-name):
Use it (Bug#24317).
---
  lisp/image-dired.el | 8 ++++++--
  1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lisp/image-dired.el b/lisp/image-dired.el
index 67b023d..61b0751 100644
--- a/lisp/image-dired.el
+++ b/lisp/image-dired.el
@@ -1205,6 +1205,10 @@ image-dired-dired-file-marked-p
      (beginning-of-line)
      (not (looking-at "^ .*$"))))

+(defsubst image-dired-jpeg-file-p (file)
+  "Return non-nil if FILE has a JPEG extension."
+  (string-match-p "\\.[Jj][Pp][Ee]?[Gg]$" file))
+
  (defun image-dired-modify-mark-on-thumb-original-file (command)
    "Modify mark in dired buffer.
  COMMAND is one of `mark' for marking file in dired, `unmark' for
@@ -1912,7 +1916,7 @@ image-dired-rotate-original
        (message "No image at point")
      (let ((file (image-dired-original-file-name))
            command)
-      (if (not (string-match "\\.[jJ][pP[eE]?[gG]$" file))
+      (if (not (image-dired-jpeg-file-p file))
            (error "Only JPEG images can be rotated!"))
        (setq command (format-spec
                       image-dired-cmd-rotate-original-options
@@ -1952,7 +1956,7 @@ image-dired-get-exif-file-name
  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)))
+    (if (not (image-dired-jpeg-file-p (expand-file-name file)))
          (progn
            (setq no-exif-data-found t)
            (setq data
-- 
2.9.3

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;