On Wed, Jan 17, 2024 at 3:55 PM Dmitry Gutov wrote: > On 17/01/2024 21:04, Spencer Baugh wrote: > > As one particular example of the confusing current behavior, a user had > > corrupted their ~/.emacs.d/projects so that reading it failed. Also, > > they had a call to (project-forget-zombie-projects) in their init.el. > > In combination, this meant Emacs startup errored with: > > > > End of file during parsing:/home/user/.emacs.d/init.el > > > > even though there was no syntax error in init.el at all. > > Would something like this help with this particular sub-problem? > > diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el > index a6f14a0865c..196a82757b2 100644 > --- a/lisp/progmodes/project.el > +++ b/lisp/progmodes/project.el > @@ -1694,7 +1694,9 @@ project--read-project-list > (let ((name (car elem))) > (list (if (file-remote-p name) name > (abbreviate-file-name name))))) > - (read (current-buffer)))))) > + (condition-case nil > + (read (current-buffer)) > + (end-of-file (warn "Failed to read the projects list > file"))))))) > (unless (seq-every-p > (lambda (elt) (stringp (car-safe elt))) > project--list) > > Yes, I think that would be great. Especially because this allows startup to continue. If it's okay with you too, I think it's reasonable to push. This de-facto resets the contents of the projects list file (since the corrupted version will get saved over), but I think that's fine - it's not especially hard information to rebuild, and if it's corrupt anyway then it's probably already at least partially lost (in my case, a user had an empty projects file for some reason, not sure why). Oh and I guess we already reset the contents if it's in the wrong format. So yeah, this seems great.