diff --git a/site-lisp/db-emms.el b/site-lisp/db-emms.el index 1569177..c5c3620 100644 --- a/site-lisp/db-emms.el +++ b/site-lisp/db-emms.el @@ -72,14 +72,17 @@ This function can be used as a value for `emms-track-description-function’." 'face 'emms-browser-album-face))) (if (not (seq-empty-p title)) (concat (format "“%s”" title) - (cond ((not (seq-empty-p composer)) - (if (seq-empty-p performer) - (format " by %s" composer) - (if (string= composer performer) - (format " by %s" composer) - (format " by %s, performed by %s" composer performer)))) - ((not (seq-empty-p artist)) - (format " by %s" artist))) + (let* ((first-entry (cond ((not (seq-empty-p composer)) + composer) + ((not (seq-empty-p artist)) + artist))) + (second-entry (when (and (not (seq-empty-p performer)) + (not (string= performer first-entry))) + performer))) + (when first-entry + (if second-entry + (format " by %s, performed by %s" first-entry second-entry) + (format " by %s" first-entry)))) (and (not (seq-empty-p album)) (format " (%s)" album))) (string-remove-prefix (expand-file-name emms-source-file-default-directory)