]> code.delx.au - gnu-emacs/commitdiff
Fix error messages for when covers are not found.
authorMark Oteiza <mvoteiza@udel.edu>
Tue, 13 Oct 2015 18:19:18 +0000 (14:19 -0400)
committerMark Oteiza <mvoteiza@udel.edu>
Tue, 13 Oct 2015 18:25:35 +0000 (14:25 -0400)
The last change to mpc-format let the binding to file call
mpc-file-local-copy with nil argument. Instead, employ if-let here so
nil bindings don't result in needless computation and errors.
* lisp/mpc.el: Require 'subr-x at compile time.
* lisp/mpc.el (mpc-format): Use if-let.

lisp/mpc.el

index 21002ec5081d894f82d5b792558e766fadc00681..063a545da81cc7e5ed1a67e433c0105d8033d9f5 100644 (file)
@@ -91,7 +91,9 @@
 ;; UI-commands       : mpc-
 ;; internal          : mpc--
 
-(eval-when-compile (require 'cl-lib))
+(eval-when-compile
+  (require 'cl-lib)
+  (require 'subr-x))
 
 (defgroup mpc ()
   "Client for the Music Player Daemon (mpd)."
@@ -1008,31 +1010,30 @@ If PLAYLIST is t or nil or missing, use the main playlist."
                                                (substring time (match-end 0))
                                              time)))))
                     (`Cover
-                     (let* ((dir (file-name-directory
-                                  (mpc-file-local-copy (cdr (assq 'file info)))))
-                            (covers '(".folder.png" "cover.jpg" "folder.jpg"))
-                            (cover (cl-loop for file in (directory-files dir)
-                                            if (member (downcase file) covers)
-                                            return (concat dir file)))
-                            (file (with-demoted-errors "MPC: %s"
-                                    (mpc-file-local-copy cover)))
-                            image)
-                       ;; (debug)
-                       (push `(equal ',dir (file-name-directory (cdr (assq 'file info)))) pred)
-                       (if (null file)
-                           ;; Make sure we return something on which we can
-                           ;; place the `mpc-pred' property, as
-                           ;; a negative-cache.  We could also use
-                           ;; a default cover.
-                           (progn (setq size nil) " ")
-                         (if (null size) (setq image (create-image file))
-                           (let ((tempfile (make-temp-file "mpc" nil ".jpg")))
-                             (call-process "convert" nil nil nil
-                                           "-scale" size file tempfile)
-                             (setq image (create-image tempfile))
-                             (mpc-tempfiles-add image tempfile)))
-                         (setq size nil)
-                         (propertize dir 'display image))))
+                     (if-let ((dir (file-name-directory
+                                    (mpc-file-local-copy (cdr (assq 'file info)))))
+                              (covers '(".folder.png" "cover.jpg" "folder.jpg"))
+                              (cover (cl-loop for file in (directory-files dir)
+                                              if (member (downcase file) covers)
+                                              return (concat dir file)))
+                              (file (with-demoted-errors "MPC: %s"
+                                      (mpc-file-local-copy cover))))
+                         (let (image)
+                           ;; (debug)
+                           (push `(equal ',dir (file-name-directory (cdr (assq 'file info)))) pred)
+                           (if (null size) (setq image (create-image file))
+                             (let ((tempfile (make-temp-file "mpc" nil ".jpg")))
+                               (call-process "convert" nil nil nil
+                                             "-scale" size file tempfile)
+                               (setq image (create-image tempfile))
+                               (mpc-tempfiles-add image tempfile)))
+                           (setq size nil)
+                           (propertize dir 'display image))
+                       ;; Make sure we return something on which we can
+                       ;; place the `mpc-pred' property, as
+                       ;; a negative-cache.  We could also use
+                       ;; a default cover.
+                       (progn (setq size nil) " ")))
                     (_ (let ((val (cdr (assq tag info))))
                          ;; For Streaming URLs, there's no other info
                          ;; than the URL in `file'.  Pretend it's in `Title'.