diff --git a/empc.el b/empc.el index 5a6d1ee..345c385 100644 --- a/empc.el +++ b/empc.el @@ -291,10 +291,11 @@ For status: (defun empc-process-sentinel (proc event) "Process sentinel for `empc-process'." (let ((debug-on-error t) - (status (process-status proc))) + (status (process-status proc))) (cond ((eq status 'closed) - (when empc-verbose - (message "empc: connection closed")))))) + (when empc-verbose + (message "empc: connection closed")) + (empc-cleanup))))) (defun empc-process-filter (object string) "Append STRING to the process buffer then process the data." @@ -742,10 +743,14 @@ Send the password or retrieve available commands." "Close connection between empc and mpd." (interactive) (let* ((process (empc-process empc-object))) - (when (and process - (processp process) - (eq (process-status process) 'open)) - (empc-send-close))) + (if (and process + (processp process) + (eq (process-status process) 'open)) + (empc-send-close) + (empc-cleanup)))) + +(defun empc-cleanup () + "Cleanup empc resources after disconnection." (when empc-object (empc-close empc-object)) (empc-mode-line nil)