* lisp/register.el: Move semantic tag handling back to
authorLeo Liu <sdl.web@gmail.com>
Tue, 26 Mar 2013 02:49:05 +0000 (10:49 +0800)
committerLeo Liu <sdl.web@gmail.com>
Tue, 26 Mar 2013 02:49:05 +0000 (10:49 +0800)
cedet/semantic/senator.el.

* lisp/cedet/semantic/senator.el (senator-copy-tag-to-register): Move
register handling logic from register.el.  (Bug#14052)

lisp/ChangeLog
lisp/cedet/ChangeLog
lisp/cedet/semantic/senator.el
lisp/register.el

index b6ec048..3f7e3ef 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-26  Leo Liu  <sdl.web@gmail.com>
+
+       * register.el: Move semantic tag handling back to
+       cedet/semantic/senator.el.  (Bug#14052)
+
 2013-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * eshell/em-prompt.el (eshell-emit-prompt): Make sure we can't insert
index 3991a98..8b914e8 100644 (file)
@@ -1,3 +1,8 @@
+2013-03-26  Leo Liu  <sdl.web@gmail.com>
+
+       * semantic/senator.el (senator-copy-tag-to-register): Move
+       register handling logic from register.el.  (Bug#14052)
+
 2013-03-21  Eric Ludlam  <zappo@gnu.org>
 
        * semantic.el (navigate-menu): Yank Tag :enable. Make sure
index a79e70a..157223f 100644 (file)
@@ -727,7 +727,13 @@ kill ring."
   (semantic-fetch-tags)
   (let ((ft (semantic-obtain-foreign-tag)))
     (when ft
-      (set-register register 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)))))
       (if kill-flag
           (kill-region (semantic-tag-start ft)
                        (semantic-tag-end ft))))))
index ae2f7cf..4876c61 100644 (file)
 
 (eval-when-compile (require 'cl-lib))
 
-(declare-function semantic-insert-foreign-tag "semantic/tag" (foreign-tag))
-(declare-function semantic-tag-buffer "semantic/tag" (tag))
-(declare-function semantic-tag-start "semantic/tag" (tag))
-
 ;;; Code:
 
 (cl-defstruct
@@ -174,11 +170,6 @@ delete any existing frames that the frame configuration doesn't mention.
          (error "Register access aborted"))
       (find-file (nth 1 val))
       (goto-char (nth 2 val)))
-     ((and (fboundp 'semantic-foreign-tag-p)
-          semantic-mode
-          (semantic-foreign-tag-p val))
-      (switch-to-buffer (semantic-tag-buffer val))
-      (goto-char (semantic-tag-start val)))
      (t
       (error "Register doesn't contain a buffer position or configuration")))))
 
@@ -349,10 +340,6 @@ Interactively, second arg is non-nil if prefix arg is supplied."
       (princ val (current-buffer)))
      ((and (markerp val) (marker-position val))
       (princ (marker-position val) (current-buffer)))
-     ((and (fboundp 'semantic-foreign-tag-p)
-          semantic-mode
-          (semantic-foreign-tag-p val))
-      (semantic-insert-foreign-tag val))
      (t
       (error "Register does not contain text"))))
   (if (not arg) (exchange-point-and-mark)))