Make defvar affect the default binding outside of any let.
* src/eval.c (default_toplevel_binding): New function. (Fdefvar): Use it. (unbind_to, backtrace_eval_unrewind): Do a bit of CSE simplification. (Fdefault_toplevel_value, Fset_default_toplevel_value): New subrs. (syms_of_eval): Export them. * src/data.c (Fdefault_value): Micro cleanup. * src/term.c (init_tty): Use "false". * lisp/custom.el (custom-initialize-default, custom-initialize-set) (custom-initialize-reset, custom-initialize-changed): Affect the toplevel-default-value (bug#6275, bug#14586). * lisp/emacs-lisp/advice.el (ad-compile-function): Undo previous workaround for bug#6275. * test/automated/core-elisp-tests.el: New file.
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
2013-08-02 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* automated/core-elisp-tests.el: New file.
|
||||
|
||||
2013-08-01 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* automated/file-notify-tests.el (file-notify--test-remote-enabled):
|
||||
|
||||
38
test/automated/core-elisp-tests.el
Normal file
38
test/automated/core-elisp-tests.el
Normal file
@@ -0,0 +1,38 @@
|
||||
;;; core-elisp-tests.el --- Testing some core Elisp rules
|
||||
|
||||
;; Copyright (C) 2013 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
;; Keywords:
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; it under the terms of the GNU General Public License as published by
|
||||
;; the Free Software Foundation, either version 3 of the License, or
|
||||
;; (at your option) any later version.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;; GNU General Public License for more details.
|
||||
|
||||
;; You should have received a copy of the GNU General Public License
|
||||
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
;;
|
||||
|
||||
;;; Code:
|
||||
|
||||
(ert-deftest core-elisp-tests ()
|
||||
"Test some core Elisp rules."
|
||||
(with-temp-buffer
|
||||
;; Check that when defvar is run within a let-binding, the toplevel default
|
||||
;; is properly initialized.
|
||||
(should (equal (list (let ((c-e-x 1)) (defvar c-e-x 2) c-e-x) c-e-x)
|
||||
'(1 2)))
|
||||
(should (equal (list (let ((c-e-x 1)) (defcustom c-e-x 2) c-e-x) c-e-x)
|
||||
'(1 2)))))
|
||||
|
||||
(provide 'core-elisp-tests)
|
||||
;;; core-elisp-tests.el ends here
|
||||
Reference in New Issue
Block a user