aboutsummaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorDavid Engster <deng@randomsample.de>2010-03-02 22:00:36 +0100
committerLucas Bonnet <lucas@rincevent.net>2010-03-04 22:11:00 +0100
commit5e6e1f3181550c0c1794acd8ba8f63871d0bcb9b (patch)
tree450fac0d7c2ab6ff10b9255a89f47048cf165036 /lisp
parent692d1841d1f088dac00737f44ecbf7aca3781317 (diff)
emms-player-mpd.el: Parsing of supported formats for newer versions of mpd.
* emms-player-mpd: (emms-player-mpd-get-supported-regexp): Added code to parse the output of newer versions of mpd.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/emms-player-mpd.el25
1 files changed, 15 insertions, 10 deletions
diff --git a/lisp/emms-player-mpd.el b/lisp/emms-player-mpd.el
index 4b37cee..ae43aa1 100644
--- a/lisp/emms-player-mpd.el
+++ b/lisp/emms-player-mpd.el
@@ -140,19 +140,24 @@ leave it set to nil."
(defun emms-player-mpd-get-supported-regexp ()
"Returns a regexp of file extensions that MusicPD supports,
or nil if we cannot figure it out."
- (let ((out (split-string (shell-command-to-string "mpd --version")
- "\n"))
+ (let ((out (shell-command-to-string "mpd --version"))
(found-start nil)
(supported nil))
;; Get supported formats
- (while (car out)
- (cond ((string= (car out) "Supported formats:")
- (setq found-start t))
- ((string= (car out) "")
- (setq found-start nil))
- (found-start
- (setq supported (concat supported (car out)))))
- (setq out (cdr out)))
+ ;; New version (0.15.x)
+ (if (string-match "Supported decoders:\\([^0]+?\\)Supported outputs:" out)
+ (setq supported (replace-regexp-in-string "\\[.+?\\]" ""
+ (match-string 1 out)))
+ ;; Older versions
+ (setq out (split-string out "\n"))
+ (while (car out)
+ (cond ((string= (car out) "Supported formats:")
+ (setq found-start t))
+ ((string= (car out) "")
+ (setq found-start nil))
+ (found-start
+ (setq supported (concat supported (car out)))))
+ (setq out (cdr out))))
;; Create regexp
(when (and (stringp supported)
(not (string= supported "")))