Fix "Symbol nil may not be buffer-local" error

* lisp/org.el (org-set-regexps-and-options): Fix "Symbol nil may not
  be buffer-local" error when encountering an nonexistent startup
  keyword.

Reported-by: Mike McLean <mike.mclean@pobox.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/92279>
This commit is contained in:
Nicolas Goaziou 2014-11-01 12:02:47 +01:00
parent 17d014ec65
commit 82de7dafa3
1 changed files with 7 additions and 6 deletions

View File

@ -4989,12 +4989,13 @@ related expressions."
(let ((startup (cdr (assq 'startup alist))))
(dolist (option startup)
(let ((entry (assoc-string option org-startup-options t)))
(let ((var (nth 1 entry))
(val (nth 2 entry)))
(if (not (nth 3 entry)) (org-set-local var val)
(unless (listp (symbol-value var))
(org-set-local var nil))
(add-to-list var val))))))
(when entry
(let ((var (nth 1 entry))
(val (nth 2 entry)))
(if (not (nth 3 entry)) (org-set-local var val)
(unless (listp (symbol-value var))
(org-set-local var nil))
(add-to-list var val)))))))
;; TODO keywords.
(org-set-local 'org-todo-kwd-alist nil)
(org-set-local 'org-todo-key-alist nil)