]> code.delx.au - gnu-emacs/blobdiff - lisp/cedet/semantic/symref.el
Merge branch 'master' into cairo
[gnu-emacs] / lisp / cedet / semantic / symref.el
index 170495e5d612d5c7f843d9b03a70fc9fd3c51d53..ca5dd7dd073a6cfcba8def9e3a5e2916950c390a 100644 (file)
@@ -314,7 +314,7 @@ Use the  `semantic-symref-hit-tags' method to get this list.")
    )
   "The results from a symbol reference search.")
 
-(defmethod semantic-symref-result-get-files ((result semantic-symref-result))
+(cl-defmethod semantic-symref-result-get-files ((result semantic-symref-result))
   "Get the list of files from the symref result RESULT."
   (if (slot-boundp result :hit-files)
       (oref result hit-files)
@@ -351,8 +351,8 @@ until the next command is executed."
   (setq semantic-symref-recently-opened-buffers nil)
   (remove-hook 'post-command-hook 'semantic-symref-cleanup-recent-buffers-fcn)
   )
-  
-(defmethod semantic-symref-result-get-tags ((result semantic-symref-result)
+
+(cl-defmethod semantic-symref-result-get-tags ((result semantic-symref-result)
                                            &optional open-buffers)
   "Get the list of tags from the symref result RESULT.
 Optional OPEN-BUFFERS indicates that the buffers that the hits are
@@ -472,8 +472,12 @@ buffers that were opened."
     (goto-char (point-min))
     (forward-line (1- line))
 
-    ;; Search forward for the matching text
-    (when (re-search-forward (regexp-quote searchtxt)
+    ;; Search forward for the matching text.
+    ;; FIXME: This still fails if the regexp uses something specific
+    ;; to the extended syntax, like grouping.
+    (when (re-search-forward (if (memq searchtype '(regexp tagregexp))
+                                 searchtxt
+                               (regexp-quote searchtxt))
                             (point-at-eol)
                             t)
       (goto-char (match-beginning 0))
@@ -508,7 +512,7 @@ buffers that were opened."
    (searchtype :initarg :searchtype
                :type symbol
                :documentation "The type of search to do.
-Values could be `symbol, `regexp, 'tagname, or 'completion.")
+Values could be 'symbol, 'regexp, 'tagname, or 'completion.")
    (searchscope :initarg :searchscope
                :type symbol
                :documentation
@@ -531,7 +535,7 @@ NAME is the name of the tool used in the configuration variable
 `semantic-symref-tool'"
   :abstract t)
 
-(defmethod semantic-symref-get-result ((tool semantic-symref-tool-baseclass))
+(cl-defmethod semantic-symref-get-result ((tool semantic-symref-tool-baseclass))
   "Calculate the results of a search based on TOOL.
 The symref TOOL should already contain the search criteria."
   (let ((answer (semantic-symref-perform-search tool))
@@ -549,11 +553,11 @@ The symref TOOL should already contain the search criteria."
       )
     ))
 
-(defmethod semantic-symref-perform-search ((tool semantic-symref-tool-baseclass))
+(cl-defmethod semantic-symref-perform-search ((tool semantic-symref-tool-baseclass))
   "Base search for symref tools should throw an error."
   (error "Symref tool objects must implement `semantic-symref-perform-search'"))
 
-(defmethod semantic-symref-parse-tool-output ((tool semantic-symref-tool-baseclass)
+(cl-defmethod semantic-symref-parse-tool-output ((tool semantic-symref-tool-baseclass)
                                              outputbuffer)
   "Parse the entire OUTPUTBUFFER of a symref tool.
 Calls the method `semantic-symref-parse-tool-output-one-line' over and
@@ -567,7 +571,7 @@ over until it returns nil."
       (nreverse result)))
   )
 
-(defmethod semantic-symref-parse-tool-output-one-line ((tool semantic-symref-tool-baseclass))
+(cl-defmethod semantic-symref-parse-tool-output-one-line ((tool semantic-symref-tool-baseclass))
   "Base tool output parser is not implemented."
   (error "Symref tool objects must implement `semantic-symref-parse-tool-output-one-line'"))