Most Common Lisp macros want a cl- prefix in Emacs 27 and later --- gnuserv-3.12.8/gnuserv-compat.el +++ gnuserv-3.12.8/gnuserv-compat.el @@ -49,7 +49,7 @@ ;; 20.3. Also, XEmacs preloads the common lisp stuff, and we might as ;; well use it here. -(require 'cl) +(require 'cl-macs) (eval-and-compile (unless (fboundp 'define-obsolete-variable-alias) @@ -66,7 +66,7 @@ (unless (fboundp 'add-minor-mode) (defun add-minor-mode (toggle name) "Register a new minor mode." - (pushnew (list toggle name) + (cl-pushnew (list toggle name) minor-mode-alist :test 'equal))) --- gnuserv-3.12.8/gnuserv.el +++ gnuserv-3.12.8/gnuserv.el @@ -83,6 +83,8 @@ ;;; Code: +(require 'cl-macs) + (defgroup gnuserv nil "The gnuserv suite of programs to talk to Emacs from outside." :group 'environment @@ -203,7 +205,7 @@ ;;; Internal variables: -(defstruct gnuclient +(cl-defstruct gnuclient "An object that encompasses several buffers in one. Normally, a client connecting to Emacs will be assigned an id, and will request editing of several files. @@ -289,7 +291,7 @@ (defun gnuserv-sentinel (proc msg) (let ((msgstring (concat "Gnuserv process %s; restart with `%s'")) (keystring (substitute-command-keys "\\[gnuserv-start]"))) - (case (process-status proc) + (cl-case (process-status proc) (exit (message msgstring "exited" keystring) (gnuserv-prepare-shutdown)) @@ -403,7 +405,7 @@ If a flag is `view', view the files read-only." (let (quick view) (mapc (lambda (flag) - (case flag + (cl-case flag (quick (setq quick t)) (view (setq view t)) (t (error "Invalid flag %s" flag)))) @@ -419,7 +421,7 @@ (device (cond ((frame-live-p dest-frame) (frame-device dest-frame)) ((null dest-frame) - (case (car type) + (cl-case (car type) (tty (apply 'make-tty-device (cdr type))) (gtk (make-gtk-device)) (x (make-x-device-with-gtk-fallback (cadr type))) @@ -456,7 +458,7 @@ (goto-line line) ;; Don't memorize the quick and view buffers. (unless (or quick view) - (pushnew (current-buffer) (gnuclient-buffers client)) + (cl-pushnew (current-buffer) (gnuclient-buffers client)) (setq gnuserv-minor-mode t) ;; Add the "Done" button to the menubar, only in this buffer. (if (and (featurep 'menubar) current-menubar) @@ -510,9 +512,9 @@ ;; Like `gnuserv-buffer-clients', but returns a boolean; doesn't ;; collect a list. (defun gnuserv-buffer-p (buffer) - (member* buffer gnuserv-clients - :test 'memq - :key 'gnuclient-buffers)) + (cl-member buffer gnuserv-clients + :test 'memq + :key 'gnuclient-buffers)) ;; This function makes sure that a killed buffer is deleted off the ;; list for the particular client. @@ -525,7 +527,7 @@ editing has ended." (let* ((buf (current-buffer))) (dolist (client (gnuserv-buffer-clients buf)) - (callf2 delq buf (gnuclient-buffers client)) + (cl-callf2 delq buf (gnuclient-buffers client)) ;; If no more buffers, kill the client. (when (null (gnuclient-buffers client)) (gnuserv-kill-client client))))) @@ -546,7 +548,7 @@ (defun gnuserv-kill-emacs-query-function () (or gnuserv-kill-quietly - (not (some 'gnuclient-buffers gnuserv-clients)) + (not (cl-some 'gnuclient-buffers gnuserv-clients)) (yes-or-no-p "Gnuserv buffers still have clients; exit anyway? "))) (add-hook 'kill-emacs-query-functions @@ -562,7 +564,7 @@ ;; killing the device, because it would cause a device-dead ;; error when `delete-device' tries to do the job later. (gnuserv-kill-client client t)))) - (callf2 delq device gnuserv-devices)) + (cl-callf2 delq device gnuserv-devices)) (add-hook 'delete-device-hook 'gnuserv-check-device) @@ -582,7 +584,7 @@ the function will not remove the frames associated with the client." ;; Order is important: first delete client from gnuserv-clients, to ;; prevent gnuserv-buffer-done-1 calling us recursively. - (callf2 delq client gnuserv-clients) + (cl-callf2 delq client gnuserv-clients) ;; Process the buffers. (mapc 'gnuserv-buffer-done-1 (gnuclient-buffers client)) (unless leave-frame @@ -593,15 +595,15 @@ ;; note: last frame on a device will not be deleted here. (when (and (gnuclient-frame client) (frame-live-p (gnuclient-frame client)) - (second (device-frame-list device))) + (cl-second (device-frame-list device))) (delete-frame (gnuclient-frame client))) ;; If the device is live, created by a client, and no longer used ;; by any client, delete it. (when (and (device-live-p device) (memq device gnuserv-devices) - (second (device-list)) - (not (member* device gnuserv-clients - :key 'gnuclient-device))) + (cl-second (device-list)) + (not (cl-member device gnuserv-clients + :key 'gnuclient-device))) ;; `gnuserv-check-device' will remove it from `gnuserv-devices'. (delete-device device)))) ;; Notify the client. @@ -610,7 +612,7 @@ ;; Do away with the buffer. (defun gnuserv-buffer-done-1 (buffer) (dolist (client (gnuserv-buffer-clients buffer)) - (callf2 delq buffer (gnuclient-buffers client)) + (cl-callf2 delq buffer (gnuclient-buffers client)) (when (null (gnuclient-buffers client)) (gnuserv-kill-client client))) ;; Get rid of the buffer. @@ -639,19 +641,19 @@ ;; If we have a client belonging to this frame, return ;; the first buffer from it. ((setq client - (car (member* frame gnuserv-clients :key 'gnuclient-frame))) + (car (cl-member frame gnuserv-clients :key 'gnuclient-frame))) (car (gnuclient-buffers client))) ;; Else, look for a device. ((and (memq (selected-device) gnuserv-devices) (setq client - (car (member* device gnuserv-clients :key 'gnuclient-device)))) + (car (cl-member device gnuserv-clients :key 'gnuclient-device)))) (car (gnuclient-buffers client))) ;; Else, try to find any client with at least one buffer, and ;; return its first buffer. ((setq client - (car (member-if-not #'null gnuserv-clients - :key 'gnuclient-buffers))) + (car (cl-member-if-not #'null gnuserv-clients + :key 'gnuclient-buffers))) (car (gnuclient-buffers client))) ;; Oh, give up. (t nil)))) @@ -759,7 +761,7 @@ (when (null count) (setq count 1)) (cond ((numberp count) - (while (natnump (decf count)) + (while (natnump (cl-decf count)) (let ((frame (selected-frame))) (gnuserv-buffer-done (current-buffer)) (when (eq frame (selected-frame))