From 41d83c2e577998b279e808115da2892b26d16526 Mon Sep 17 00:00:00 2001 From: Mark Oteiza Date: Thu, 3 Sep 2015 11:47:31 -0400 Subject: [PATCH] * lisp/mpc.el (mpc--proc-connect): Handle unix sockets (bug#19394) --- lisp/mpc.el | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lisp/mpc.el b/lisp/mpc.el index 59581f3d687..fdc5aee3774 100644 --- a/lisp/mpc.el +++ b/lisp/mpc.el @@ -253,6 +253,7 @@ defaults to 6600 and HOST defaults to localhost." (defun mpc--proc-connect (host) (let ((port 6600) + local pass) (when (string-match "\\`\\(?:\\(.*\\)@\\)?\\(.*?\\)\\(?::\\(.*\\)\\)?\\'" @@ -267,6 +268,8 @@ defaults to 6600 and HOST defaults to localhost." (if (string-match "[^[:digit:]]" v) (string-to-number v) v))))) + (when (string-prefix-p "/" host) ;FIXME: Use file-name-absolute-p? + (setq local t)) (mpc--debug "Connecting to %s:%s..." host port) (with-current-buffer (get-buffer-create (format " *mpc-%s:%s*" host port)) @@ -279,7 +282,10 @@ defaults to 6600 and HOST defaults to localhost." (let* ((coding-system-for-read 'utf-8-unix) (coding-system-for-write 'utf-8-unix) (proc (condition-case err - (open-network-stream "MPC" (current-buffer) host port) + (make-network-process :name "MPC" :buffer (current-buffer) + :host (unless local host) + :service (if local host port) + :family (if local 'local)) (error (user-error (error-message-string err)))))) (when (processp mpc-proc) ;; Inherit the properties of the previous connection. @@ -2630,6 +2636,8 @@ This is used so that they can be compared with `eq', which is needed for (interactive (progn (if current-prefix-arg + ;; FIXME: We should provide some completion here, especially for the + ;; case where the user specifies a local socket/file name. (setq mpc-host (read-string "MPD host and port: " nil nil mpc-host))) nil)) (let* ((song-buf (mpc-songs-buf)) -- 2.11.4.GIT