Update CEDET from upstream.
[bpt/emacs.git] / lisp / cedet / semantic / db-find.el
index 15ef3b0..d42ecf7 100644 (file)
 
 (defvar data-debug-thing-alist)
 (declare-function data-debug-insert-stuff-list "data-debug")
+(declare-function data-debug-new-buffer "data-debug")
 ;;;(declare-function data-debug-insert-tag-list "adebug")
 (declare-function semantic-scope-reset-cache "semantic/scope")
 (declare-function semanticdb-typecache-notify-reset "semantic/db-typecache")
@@ -167,6 +168,8 @@ the following keys:
   :group 'semanticdb
   :type semanticdb-find-throttle-custom-list)
 
+(make-variable-buffer-local 'semanticdb-find-default-throttle)
+
 (defun semanticdb-find-throttle-active-p (access-type)
   "Non-nil if ACCESS-TYPE is an active throttle type."
   (or (memq access-type semanticdb-find-default-throttle)
@@ -879,8 +882,9 @@ instead."
                ;; Find-file-match allows a tool to make sure the tag is
                ;; 'live', somewhere in a buffer.
                (cond ((eq find-file-match 'name)
-                      (let ((f (semanticdb-full-filename nametable)))
-                        (semantic--tag-put-property ntag :filename f)))
+                      (or (semantic--tag-get-property ntag :filename)
+                          (let ((f (semanticdb-full-filename nametable)))
+                            (semantic--tag-put-property ntag :filename f))))
                      ((and find-file-match ntab)
                       (semanticdb-get-buffer ntab))
                      )
@@ -1322,7 +1326,12 @@ Returns a table of all matching tags."
   "In TABLE, find all occurrences of tags of CLASS.
 Optional argument TAGS is a list of tags to search.
 Returns a table of all matching tags."
-  (semantic-find-tags-by-class class (or tags (semanticdb-get-tags table))))
+  ;; Delegate 'include' to the overridable
+  ;; `semantic-find-tags-included', which by default will just call
+  ;; `semantic-find-tags-by-class'.
+  (if (eq class 'include)
+      (semantic-find-tags-included (or tags (semanticdb-get-tags table)))
+    (semantic-find-tags-by-class class (or tags (semanticdb-get-tags table)))))
 
 (defmethod semanticdb-find-tags-external-children-of-type-method ((table semanticdb-abstract-table) parent &optional tags)
    "In TABLE, find all occurrences of tags whose parent is the PARENT type.