# HG changeset patch # User Chong Yidong # Date 1253557250 0 # Node ID 8c44231178fc61a8161bb65e4da67225d9be84ef # Parent 32af6b5a433def5fd886da802965808cc2a5a15c * 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. diff -r 32af6b5a433d -r 8c44231178fc lisp/ChangeLog --- 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 + + * 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 * help-fns.el (describe-function-1): Call diff -r 32af6b5a433d -r 8c44231178fc lisp/cedet/semantic/db-file.el --- 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 diff -r 32af6b5a433d -r 8c44231178fc lisp/cedet/semantic/db.el --- 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 ()