changeset 104510:8c44231178fc

* cedet/semantic/db.el (semanticdb--inhibit-make-directory): New var. (semanticdb-save-all-db): Use it. * cedet/semantic/db-file.el (semanticdb-default-save-directory): Save in user-emacs-directory instead of the home directory. (semanticdb-file-directory-exists-p): Avoid prompting the user multiple times.
author Chong Yidong <cyd@stupidchicken.com>
date Mon, 21 Sep 2009 18:20:50 +0000
parents 32af6b5a433d
children afd748c5780c
files lisp/ChangeLog lisp/cedet/semantic/db-file.el lisp/cedet/semantic/db.el
diffstat 3 files changed, 31 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Sep 21 17:49:07 2009 +0000
+++ b/lisp/ChangeLog	Mon Sep 21 18:20:50 2009 +0000
@@ -1,3 +1,14 @@
+2009-09-21  Chong Yidong  <cyd@stupidchicken.com>
+
+	* cedet/semantic/db.el (semanticdb--inhibit-make-directory): New
+	var.
+	(semanticdb-save-all-db): Use it.
+
+	* cedet/semantic/db-file.el (semanticdb-default-save-directory):
+	Save in user-emacs-directory instead of the home directory.
+	(semanticdb-file-directory-exists-p): Avoid prompting the user
+	multiple times.
+
 2009-09-21  Chong Yidong  <cyd@stupidchicken.com>
 
 	* help-fns.el (describe-function-1): Call
--- a/lisp/cedet/semantic/db-file.el	Mon Sep 21 17:49:07 2009 +0000
+++ b/lisp/cedet/semantic/db-file.el	Mon Sep 21 18:20:50 2009 +0000
@@ -38,12 +38,13 @@
 ;;; Settings
 ;;
 (defcustom semanticdb-default-file-name "semantic.cache"
-  "*File name of the semantic tag cache."
+  "File name of the semantic tag cache."
   :group 'semanticdb
   :type 'string)
 
-(defcustom semanticdb-default-save-directory (expand-file-name "~/.semanticdb")
-  "*Directory name where semantic cache files are stored.
+(defcustom semanticdb-default-save-directory
+  (expand-file-name "semanticdb" user-emacs-directory)
+  "Directory name where semantic cache files are stored.
 If this value is nil, files are saved in the current directory.  If the value
 is a valid directory, then it overrides `semanticdb-default-file-name' and
 stores caches in a coded file name in this directory."
@@ -54,7 +55,7 @@
                  (directory)))
 
 (defcustom semanticdb-persistent-path '(always)
-  "*List of valid paths that semanticdb will cache tags to.
+  "List of valid paths that semanticdb will cache tags to.
 When `global-semanticdb-minor-mode' is active, tag lists will
 be saved to disk when Emacs exits.  Not all directories will have
 tags that should be saved.
@@ -68,7 +69,7 @@
   :type nil)
 
 (defcustom semanticdb-save-database-hooks nil
-  "*Hooks run after a database is saved.
+  "Hooks run after a database is saved.
 Each function is called with one argument, the object representing
 the database recently written."
   :group 'semanticdb
@@ -202,13 +203,16 @@
 	   ;; @TODO - If it was never set up... what should we do ?
 	   nil)
 	  ((file-exists-p dest) t)
-	  (supress-questions nil)
-	  ((y-or-n-p (format "Create directory %s for SemanticDB? "
-			     dest))
+	  ((or supress-questions
+	       (and (boundp 'semanticdb--inhibit-make-directory)
+		    semanticdb--inhibit-make-directory))
+	   nil)
+	  ((y-or-n-p (format "Create directory %s for SemanticDB? " dest))
 	   (make-directory dest t)
 	   t)
-	  (t nil))
-    ))
+	  (t (if (boundp 'semanticdb--inhibit-make-directory)
+		 (setq semanticdb--inhibit-make-directory t))
+	     nil))))
 
 (defmethod semanticdb-save-db ((DB semanticdb-project-database-file)
 			       &optional
--- a/lisp/cedet/semantic/db.el	Mon Sep 21 17:49:07 2009 +0000
+++ b/lisp/cedet/semantic/db.el	Mon Sep 21 18:20:50 2009 +0000
@@ -656,11 +656,16 @@
   (semanticdb-save-db semanticdb-current-database)
   (message "Saving current tag summaries...done"))
 
+;; This prevents Semanticdb from querying multiple times if the users
+;; answers "no" to creating the Semanticdb directory.
+(defvar semanticdb--inhibit-create-file-directory)
+
 (defun semanticdb-save-all-db ()
   "Save all semantic tag databases."
   (interactive)
   (message "Saving tag summaries...")
-  (mapc 'semanticdb-save-db semanticdb-database-list)
+  (let ((semanticdb--inhibit-make-directory nil))
+    (mapc 'semanticdb-save-db semanticdb-database-list))
   (message "Saving tag summaries...done"))
 
 (defun semanticdb-save-all-db-idle ()