From 18c83aedd91023a677153abeafe561eddb430146 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Fri, 14 Jun 2019 16:51:27 +0200 Subject: [PATCH] Avoid using registerv-make in senator.el * lisp/cedet/semantic/senator.el (senator-register): New class. (register-val-jump-to, register-val-describe) (register-val-insert): New methods. (senator-copy-tag-to-register): Use this instead of the deprecated registerv-make function. --- lisp/calendar/cal-bahai.el | 3 ++- lisp/cedet/semantic/senator.el | 24 +++++++++++++++++------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lisp/calendar/cal-bahai.el b/lisp/calendar/cal-bahai.el index ec491ec782f..8aa1eed4a5d 100644 --- a/lisp/calendar/cal-bahai.el +++ b/lisp/calendar/cal-bahai.el @@ -313,7 +313,8 @@ Prefix argument ARG will make the entry nonmarking." diary-bahai-entry-symbol 'calendar-bahai-from-absolute)) -(defvar date) +(with-suppressed-warnings ((lexical date)) + (defvar date)) ;; To be called from diary-list-sexp-entries, where DATE is bound. ;;;###diary-autoload diff --git a/lisp/cedet/semantic/senator.el b/lisp/cedet/semantic/senator.el index 2d858dd9851..ebe171a3a7a 100644 --- a/lisp/cedet/semantic/senator.el +++ b/lisp/cedet/semantic/senator.el @@ -717,6 +717,22 @@ yanked to." (message "Use C-y to recover the yank the text of %s." (semantic-tag-name ft)))))) +(cl-defstruct (senator-register + (:constructor nil) + (:constructor senator-make-register (foreign-tag))) + foreign-tag) + +(cl-defmethod register-val-jump-to ((data senator-register) _arg) + (let ((ft (senator-register-foreign-tag data))) + (switch-to-buffer (semantic-tag-buffer ft)) + (goto-char (semantic-tag-start ft)))) + +(cl-defmethod register-val-describe ((data senator-register) _verbose) + (cl-prin1-to-string (senator-register-foreign-tag data))) + +(cl-defmethod register-val-insert ((data senator-register)) + (semantic-insert-foreign-tag (senator-register-foreign-tag data))) + ;;;###autoload (defun senator-copy-tag-to-register (register &optional kill-flag) "Copy the current tag into REGISTER. @@ -732,13 +748,7 @@ if available." (semantic-fetch-tags) (let ((ft (semantic-obtain-foreign-tag))) (when ft - (set-register - register (registerv-make - ft - :insert-func #'semantic-insert-foreign-tag - :jump-func (lambda (v) - (switch-to-buffer (semantic-tag-buffer v)) - (goto-char (semantic-tag-start v))))) + (set-register register (senator-make-register ft)) (if kill-flag (kill-region (semantic-tag-start ft) (semantic-tag-end ft)))))) -- 2.39.5