;;; cedet-idutils.el --- ID Utils support for CEDET.
-;; Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2013 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <eric@siege-engine.com>
-;; Version: 0.2
+;; Old-Version: 0.2
;; Keywords: OO, lisp
+;; Package: cedet
;; This file is part of GNU Emacs.
:type 'string
:group 'cedet)
+(defcustom cedet-idutils-make-command "mkid"
+ "Command name for the ID Utils executable for creating token databases."
+ :type 'string
+ :group 'cedet)
+
(defun cedet-idutils-search (searchtext texttype type scope)
"Perform a search with ID Utils, return the created buffer.
SEARCHTEXT is text to find.
(defun cedet-idutils-fnid-call (flags)
"Call ID Utils fnid with the list of FLAGS.
-Return the created buffer with with program output."
+Return the created buffer with program output."
(let ((b (get-buffer-create "*CEDET fnid*"))
(cd default-directory)
)
flags)
b))
+(defun cedet-idutils-mkid-call (flags)
+ "Call ID Utils mkid with the list of FLAGS.
+Return the created buffer with program output."
+ (let ((b (get-buffer-create "*CEDET mkid*"))
+ (cd default-directory)
+ )
+ (with-current-buffer b
+ (setq default-directory cd)
+ (erase-buffer))
+ (apply 'call-process cedet-idutils-make-command
+ nil b nil
+ flags)
+ b))
+
;;; UTIL CALLS
;;
(defun cedet-idutils-expand-filename (filename)
(defun cedet-idutils-version-check (&optional noerror)
"Check the version of the installed ID Utils command.
-If optional programatic argument NOERROR is non-nil, then
-instead of throwing an error if Global isn't available, then
+If optional programmatic argument NOERROR is non-nil,
+then instead of throwing an error if Global isn't available,
return nil."
(interactive)
(require 'inversion)
nil)
(with-current-buffer b
(goto-char (point-min))
- (re-search-forward "fnid - \\([0-9.]+\\)" nil t)
- (setq rev (match-string 1))
+ (if (re-search-forward "fnid - \\([0-9.]+\\)" nil t)
+ (setq rev (match-string 1))
+ (setq rev "0"))
(if (inversion-check-version rev nil cedet-idutils-min-version)
(if noerror
nil
(message "ID Utils %s - Good enough for CEDET." rev))
t)))))
+(defun cedet-idutils-create/update-database (&optional dir)
+ "Create an IDUtils database in DIR.
+IDUtils must start from scratch when updating a database."
+ (interactive "DDirectory: ")
+ (let ((default-directory dir))
+ (cedet-idutils-mkid-call nil)))
(provide 'cedet-idutils)
-;; arch-tag: 663ca082-5b3d-4384-8710-cc74f990b501
;;; cedet-idutils.el ends here