summaryrefslogtreecommitdiff
path: root/lisp/cedet/cedet-global.el
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2010-09-23 15:00:31 -0400
committerChong Yidong <cyd@stupidchicken.com>2010-09-23 15:00:31 -0400
commit266a86bd7fedf743225c2497956b73ecb2245196 (patch)
tree7d0c8b128070eac293ce2606acb4e55de5843ba8 /lisp/cedet/cedet-global.el
parent29cdc13ed61e5a64ba30df1030029898a26b7947 (diff)
parentaf3ccb5cc061bccab1c9b024ea444d01c0767767 (diff)
downloademacs-266a86bd7fedf743225c2497956b73ecb2245196.tar.gz
Merge changes from emacs-23 branch
Diffstat (limited to 'lisp/cedet/cedet-global.el')
-rw-r--r--lisp/cedet/cedet-global.el31
1 files changed, 31 insertions, 0 deletions
diff --git a/lisp/cedet/cedet-global.el b/lisp/cedet/cedet-global.el
index b98bd316935..da4e618a749 100644
--- a/lisp/cedet/cedet-global.el
+++ b/lisp/cedet/cedet-global.el
@@ -34,6 +34,12 @@
:type 'string
:group 'cedet)
+(defcustom cedet-global-gtags-command "gtags"
+ "Command name for the GNU Global gtags executable.
+GTAGS is used to create the tags table queried by the 'global' command."
+ :type 'string
+ :group 'cedet)
+
;;; Code:
(defun cedet-gnu-global-search (searchtext texttype type scope)
"Perform a search with GNU Global, return the created buffer.
@@ -76,6 +82,19 @@ SCOPE is the scope of the search, such as 'project or 'subdirs."
flags)
b))
+(defun cedet-gnu-global-gtags-call (flags)
+ "Create GNU Global TAGS using gtags with FLAGS."
+ (let ((b (get-buffer-create "*CEDET Global gtags*"))
+ (cd default-directory)
+ )
+ (with-current-buffer b
+ (setq default-directory cd)
+ (erase-buffer))
+ (apply 'call-process cedet-global-gtags-command
+ nil b nil
+ flags)
+ b))
+
(defun cedet-gnu-global-expand-filename (filename)
"Expand the FILENAME with GNU Global.
Return a fully qualified filename."
@@ -153,6 +172,18 @@ return nil."
;; Return the results
(nreverse hits))))
+(defun cedet-gnu-global-create/update-database (&optional dir)
+ "Create a GNU Global database in DIR.
+If a database already exists, then just update it."
+ (interactive "DDirectory: ")
+ (let ((root (cedet-gnu-global-root dir)))
+ (if root (setq dir root))
+ (let ((default-directory dir))
+ (cedet-gnu-global-gtags-call
+ (when root
+ '("-i");; Incremental update flag.
+ )))))
+
(provide 'cedet-global)
;; arch-tag: 0d0d3ac2-91ef-4820-bb2b-1d59ccf38392