[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 18c83ae 3/4: Avoid using registerv-make in senator.
From: |
Lars Ingebrigtsen |
Subject: |
[Emacs-diffs] master 18c83ae 3/4: Avoid using registerv-make in senator.el |
Date: |
Fri, 14 Jun 2019 10:57:49 -0400 (EDT) |
branch: master
commit 18c83aedd91023a677153abeafe561eddb430146
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>
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 ec491ec..8aa1eed 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 2d858dd..ebe171a 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))))))