diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-08-02 17:16:33 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-08-02 17:16:33 -0400 |
commit | a104f656c8217b027866d32e8d7bf024a671e3cc (patch) | |
tree | b62ddfb915099ba3398b2f0b1f9ddc0ed6203102 /test/automated/core-elisp-tests.el | |
parent | 185e3b5a2f3dc2b5163eb1fe97499c6af1edaa9c (diff) | |
download | emacs-a104f656c8217b027866d32e8d7bf024a671e3cc.tar.gz |
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.
Diffstat (limited to 'test/automated/core-elisp-tests.el')
-rw-r--r-- | test/automated/core-elisp-tests.el | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/automated/core-elisp-tests.el b/test/automated/core-elisp-tests.el new file mode 100644 index 00000000000..809be10bc02 --- /dev/null +++ b/test/automated/core-elisp-tests.el @@ -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 |