branch: externals/mpdired commit ec8fb11203fc64134fe5113bec61e8a0ba182a7a Author: Manuel Giraud <man...@ledu-giraud.fr> Commit: Manuel Giraud <man...@ledu-giraud.fr>
use `define-derived-mode' --- mpdired.el | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/mpdired.el b/mpdired.el index 8ebac519a9..cd909349b2 100644 --- a/mpdired.el +++ b/mpdired.el @@ -297,13 +297,10 @@ (when file (push (list id file time) result)) (reverse result))) -(defun mpdired-mode () +(define-derived-mode mpdired-mode special-mode "MPDired" "Major mode for MPDired." - (use-local-map mpdired-mode-map) (set-buffer-modified-p nil) - (setq major-mode 'mpdired-mode - mode-name "MPDired" - truncate-lines t + (setq truncate-lines t buffer-read-only t)) (defun mpdired--hostname (host service localp) @@ -458,8 +455,7 @@ used for mark followed by a space." (when (stringp top) (insert (propertize top 'face 'mpdired-currdir) ":\n")) (mapc #'mpdired--insert-entry data)) - ;; Set mode and memorize stuff - (mpdired-mode) + ;; Memorize stuff (if ascending-p (setq from mpdired--directory)) (setq mpdired--directory (when top top) mpdired--comm-buffer (process-buffer proc) @@ -520,8 +516,7 @@ used for mark followed by a space." (put-text-property (+ bol x) eol 'face 'mpdired-progress)))) ;; Go to bol no matter what (goto-char (mpdired--bol)) - ;; Set mode, restore point and memorize stuff - (mpdired-mode) + ;; Restore point and memorize stuff (when mpdired--songid-point (mpdired--goto-id mpdired--songid-point)) (setq mpdired--comm-buffer (process-buffer proc) @@ -593,10 +588,13 @@ used for mark followed by a space." :family (if localp 'local) :coding 'utf-8 :filter #'mpdired--filter))) + ;; Save communication buffer's state and set its process. (setq mpdired--network-params params mpdired--main-buffer (mpdired--main-name host service localp)) (set-process-buffer (apply 'make-network-process params) - (current-buffer))))))) + (current-buffer)) + ;; Set mode in main buffer. + (with-current-buffer (get-buffer-create mpdired--main-buffer) (mpdired-mode))))))) (defmacro mpdired--with-comm-buffer (process buffer &rest body) "Helper macro when sending a command via the communication buffer.