Fix #3138: infinite loop when reading package! files

This commit is contained in:
Henrik Lissner 2020-05-16 20:30:00 -04:00
parent 6241ba2faa
commit de78d0cc62
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -315,12 +315,12 @@ was installed with."
(let (emacs-lisp-mode) (emacs-lisp-mode))
;; Scrape `package!' blocks from FILE for a comprehensive listing of
;; packages used by this module.
(while (search-forward "(package! " nil t)
(goto-char (match-beginning 0))
(while (search-forward "(package!" nil t)
(let ((ppss (save-excursion (syntax-ppss))))
;; Don't collect packages in comments or strings
(or (nth 3 ppss)
(nth 4 ppss)
(unless (or (nth 3 ppss)
(nth 4 ppss))
(goto-char (match-beginning 0))
(cl-destructuring-bind (_ name . plist)
(read (current-buffer))
(push (cons