From: Dmitry Gutov Date: Fri, 26 Jun 2020 00:41:42 +0000 (+0300) Subject: project--read-project-list: Add structure verification X-Git-Tag: emacs-28.0.90~7094 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=96ff641cd90217d4dfa1ab621e3c6a18d409fc76;p=emacs.git project--read-project-list: Add structure verification * lisp/progmodes/project.el (project--list): Update docstring. (project--read-project-list): Add structure verification. --- diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index add0e592f69..7e25869e286 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -874,7 +874,8 @@ Certain buffers may be \"spared\", see `project-kill-buffers-ignores'." :group 'project) (defvar project--list 'unset - "List of known project directories.") + "List structure containing root directories of known projects. +With some possible metadata (to be decided).") (defun project--read-project-list () "Initialize `project--list' using contents of `project-list-file'." @@ -883,7 +884,14 @@ Certain buffers may be \"spared\", see `project-kill-buffers-ignores'." (when (file-exists-p filename) (with-temp-buffer (insert-file-contents filename) - (read (current-buffer))))))) + (read (current-buffer))))) + (unless (seq-every-p + (lambda (elt) (and (listp elt) + (stringp (car elt)))) + project--list) + (warn "Contents of %s are in wrong format, resetting" + project-list-file) + (setq project--list nil)))) (defun project--ensure-read-project-list () "Initialize `project--list' if it isn't already initialized."