Commit graph

3845 commits

Author SHA1 Message Date
Stefan Monnier
eb8006c61f * lisp/emacs-lisp/cl.el (letf): Make it an alias of cl-letf.
(cl--symbol-function): Remove (now that funbound is like nil).
2012-12-12 20:46:47 -05:00
Jonas Bernoulli
69e1c203e9 * lisp/emacs-lisp/eieio.el: Prettier object pretty-printing.
(eieio-override-prin1): Don't quote kewords and booleans.
(object-write) <eieio-default-superclass>: Don't put closing parens
on new line, avoid needless empty lines, align values that are objects
with the slot keyword (instead of beginning on the same line).
(eieio-list-prin1): Align value with slot keyword; increase
eieio-print-depth before printing members of the list.

Fixes: debbugs:13115
2012-12-11 21:16:05 -05:00
Glenn Morris
265c2fbf11 Merge from emacs-24; up to 2012-11-26T19:56:14Z!monnier@iro.umontreal.ca 2012-12-09 18:00:42 -08:00
Stefan Monnier
bad162fd1b * lisp/emacs-lisp/cl-lib.el (cl-declaim): Paren typo. 2012-12-09 20:32:36 -05:00
Glenn Morris
c6c08d3f8f Make eval-defun on a pre-defined defcustom call any :set function
* lisp/emacs-lisp/lisp-mode.el (eval-defun-1): Doc fix.
Respect a defcustom's :set function, if appropriate. 
(eval-defun): Doc fix.

* doc/lispref/customize.texi (Variable Definitions): Mention eval-defun
on a defcustom calls the :set function when appropriate.

* etc/NEWS: Mention this.

Fixes: debbugs:109
2012-12-08 17:04:43 -08:00
Michael Heerdegen
610251116c * lisp/emacs-lisp/debug.el (debug): Fix hard-coded frame counts.
Virtually backported from trunk.

Fixes: debbugs:10025
2012-12-06 23:31:24 -05:00
Stefan Monnier
4611a3cce7 * lisp/emacs-lisp/cl-macs.el (cl-tagbody): New macro. 2012-12-06 22:56:57 -05:00
Stefan Monnier
338bfefacb Further cleanup of the "cl-" namespace. Fit CL in 80 columns.
* lisp/emacs-lisp/cl-macs.el (cl--pop2, cl--optimize-safety)
(cl--optimize-speed, cl--not-toplevel, cl--parse-loop-clause)
(cl--expand-do-loop, cl--proclaim-history, cl--declare-stack)
(cl--do-proclaim, cl--proclaims-deferred): Rename from the "cl-" prefix.
(cl-progv): Don't rely on dynamic scoping to find the body.
* lisp/emacs-lisp/cl-lib.el (cl--optimize-speed, cl--optimize-safety)
(cl--proclaims-deferred): Rename from the "cl-" prefix.
(cl-declaim): Use backquotes.
* lisp/emacs-lisp/cl-extra.el (cl-make-random-state, cl-random-state-p):
Use "cl--" prefix for the object's tag.
2012-12-06 16:29:29 -05:00
Stefan Monnier
82e1f390ab * lisp/emacs-lisp/cl.el, lisp/emacs-lisp/cl-lib.el: Move cl-unload-function and
cl-load-hook where they belong.
2012-12-06 16:08:50 -05:00
Chong Yidong
9dffb5b693 Fix last change.
* emacs-lisp/lisp-mode.el (lisp-current-defun-name):
* progmodes/m4-mode.el (m4-current-defun-name):
* progmodes/perl-mode.el (perl-current-defun-name):
* textmodes/tex-mode.el (tex-current-defun-name):
* textmodes/texinfo.el (texinfo-current-defun-name): Use save-excursion.
2012-12-01 13:09:12 +08:00
Chong Yidong
ba03d0d932 Modularize add-log-current-defun.
Suggested by Jari Aalto.

* lisp/emacs-lisp/lisp-mode.el (lisp-current-defun-name): New.
(lisp-mode-variables): Use it.

* lisp/progmodes/cc-mode.el (c-common-init):
* lisp/progmodes/cperl-mode.el (cperl-mode): Set a value for
add-log-current-defun-function.

* lisp/progmodes/m4-mode.el (m4-current-defun-name): New function.
(m4-mode): Use it.

* lisp/progmodes/perl-mode.el (perl-current-defun-name): New.
(perl-mode): Use it.

* lisp/progmodes/scheme.el (scheme-mode-variables, dsssl-mode): Use
lisp-current-defun-name.

* lisp/textmodes/tex-mode.el (tex-current-defun-name): New.
(tex-common-initialization): Use it.

* lisp/textmodes/texinfo.el (texinfo-current-defun-name): New.
(texinfo-mode): Use it.

* lisp/vc/add-log.el (add-log-current-defun-function): Doc fix.
(add-log-current-defun): Move mode-specific code to other files.
(add-log-lisp-like-modes, add-log-c-like-modes)
(add-log-tex-like-modes): Variables deleted.

Fixes: debbugs:2224
2012-12-01 12:57:07 +08:00
Chong Yidong
92eadba57f Convert several major modes to setq-local.
* emacs-lisp/lisp-mode.el (lisp-mode-variables, lisp-mode):
* progmodes/autoconf.el (autoconf-mode):
* progmodes/js.el (js-mode):
* progmodes/make-mode.el (makefile-mode, makefile-makepp-mode)
(makefile-bsdmake-mode, makefile-imake-mode, makefile-browse):
* progmodes/perl-mode.el (perl-mode):
* progmodes/sh-script.el (sh-mode, sh-set-shell):
* textmodes/css-mode.el (css-mode):
* textmodes/sgml-mode.el (html-mode, sgml-mode)
(sgml-tags-invisible, sgml-guess-indent):
* textmodes/tex-mode.el (tex-common-initialization)
(latex-complete-bibtex-keys, tex-shell, tex-main-file)
(doctex-mode, plain-tex-mode, latex-mode):
* textmodes/texinfo.el (texinfo-mode): Use setq-local.
2012-12-01 12:09:55 +08:00
Glenn Morris
48d6d9c019 derived-mode-make-docstring tweak for bug#11277
* lisp/emacs-lisp/derived.el (derived-mode-make-docstring):
Don't mention "abbrev" or "syntax" if nil.
2012-11-27 11:40:04 -05:00
Glenn Morris
026822f966 Auto-commit of loaddefs files. 2012-11-27 06:18:12 -05:00
Glenn Morris
5c9cf0a3f9 Merge from emacs-24; up to 2012-11-20T20:06:17Z!monnier@iro.umontreal.ca 2012-11-26 19:10:32 -08:00
Stefan Monnier
848a2dd19d * lisp/emacs-lisp/advice.el (ad-should-compile): Don't compile advice if the
base function is not yet defined.
(ad-activate-advised-definition): Use ad-compile-function.
(ad-activate): Use cond.

Fixes: debbugs:12965
2012-11-26 14:56:14 -05:00
Glenn Morris
0d35edba15 Auto-commit of loaddefs files. 2012-11-25 07:23:32 -05:00
Chong Yidong
1c4f115d4c Revamp face-spec-set to be more analogous to setq for faces.
* lisp/faces.el (face-spec-set): Change the third arg to specify
whether this function is being called via defface, customize, or a
third party.  Set the appropriate symbol properties.  Clear the
override spec if setting via Custom.  Initialize face if necessary.
(face-spec-recalc): Allow theme faces to completely replace the
defface spec, in the same way as custom faces (Bug#8454).

* lisp/cus-edit.el (custom-face-set, custom-face-mark-to-save)
(custom-face-reset-saved, custom-face-mark-to-reset-standard):
Simplify by using the new arg to face-spec-set.

* lisp/cus-face.el (custom-declare-face): Move face initialization to
face-spec-set.
(custom-theme-set-faces): Don't initialize the face name here, as
that is now done in face-spec-set.

* lisp/emacs-lisp/lisp-mode.el (eval-defun-1): When evaluating defface,
reset face-override-spec too, and use custom-declare-face.

Fixes: debbugs:4988
2012-11-25 12:50:20 +08:00
Stefan Monnier
35a1051652 * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): Add back `declare' in
the constructs to keep outside of the `cl-block'.

Fixes: debbugs:12977
2012-11-24 16:34:28 -05:00
Glenn Morris
d125ca15f3 Merge from emacs-24; up to 2012-11-19T11:36:02Z!yamaoka@jpl.org 2012-11-23 17:57:09 -08:00
Stefan Monnier
002c019c34 * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Setup default value for
lexical-binding.

Fixes: debbugs:12938
2012-11-23 16:49:13 -05:00
Stefan Monnier
15c9d04ea4 * emacs-lisp/ert.el, emacs-lisp/ert-x.el: Use cl-lib and lexical-binding. 2012-11-22 22:26:09 -05:00
Glenn Morris
6ef2e5ef52 Merge from emacs-24; up to 2012-11-17T22:12:47Z!eggert@cs.ucla.edu 2012-11-20 20:47:55 -08:00
Stefan Monnier
8b62d7427e * lisp/emacs-lisp/trace.el: Rewrite, use nadvice and lexical-binding.
(trace-buffer): Don't purecopy.
(trace-entry-message, trace-exit-message): Add `context' arg.
(trace--timer): New var.
(trace-make-advice): Adjust for use in nadvice.
Add `context' argument.  Delay `display-buffer' via a timer.
(trace-function-internal): Use advice-add.
(trace--read-args): New function.
(trace-function-foreground, trace-function-background): Use it.
(trace-function): Rename to trace-function-foreground and redefine as
an alias to that new name.
(untrace-function, untrace-all): Adjust to the use of nadvice.
2012-11-20 14:30:37 -05:00
Stefan Monnier
5d0ccd9509 * lisp/emacs-lisp/bytecomp.el (byte-compile): Fix handling of closures. 2012-11-20 14:05:20 -05:00
Stefan Monnier
3837d988dd * lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Fix last change. 2012-11-20 12:54:00 -05:00
Stefan Monnier
23ba2705e2 Make called-interactively-p work for edebug or advised code.
* lisp/subr.el (called-interactively-p-functions): New var.
(internal--called-interactively-p--get-frame): New macro.
(called-interactively-p, interactive-p): Rewrite in Lisp.
* lisp/emacs-lisp/nadvice.el (advice--called-interactively-skip): New fun.
(called-interactively-p-functions): Use it.
* lisp/emacs-lisp/edebug.el (edebug--called-interactively-skip): New fun.
(called-interactively-p-functions): Use it.
* lisp/allout.el (allout-called-interactively-p): Don't assume
called-interactively-p is a subr.
* src/eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
(syms_of_eval): Remove corresponding defsubr.
* src/bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
* test/automated/advice-tests.el (advice-tests--data): Remove.
(advice-tests): Move the tests directly here instead.
Add called-interactively-p tests.
2012-11-19 23:24:09 -05:00
Stefan Monnier
141462223d * lisp/emacs-lisp/byte-run.el (defun-declarations-alist):
Allow compiler-macros to be lambda expressions.
* lisp/progmodes/python.el: Use cl-lib.  Move var declarations outside of
eval-when-compile.
(python-syntax-context): Add compiler-macro.
(python-font-lock-keywords): Simplify with De Morgan.
2012-11-19 16:30:55 -05:00
Stefan Monnier
63f251724c * lisp/emacs-lisp/byte-run.el (defun-declarations-alist): Don't accept
non-symbols for compiler macros (yet).
2012-11-19 15:57:36 -05:00
Stefan Monnier
bc715d67b3 * lisp/emacs-lisp/ert.el (ert--expand-should-1): Adapt to cl-lib. 2012-11-19 12:02:20 -05:00
Glenn Morris
2ac9538d67 Merge from emacs-24; up to 2012-11-15T23:31:37Z!dancol@dancol.org 2012-11-17 17:52:36 -08:00
Glenn Morris
d76afb936d Auto-commit of loaddefs files. 2012-11-17 06:20:58 -05:00
Chong Yidong
ec6f8ce637 * lisp/emacs-lisp/syntax.el (syntax-propertize-function): Doc fix.
Fixes: debbugs:12810
2012-11-17 15:33:01 +08:00
Glenn Morris
9a5e2ee3cc Use set-face-underline rather than the alias set-face-underline-p
* lisp/woman.el (woman-non-underline-faces):
* lisp/emacs-lisp/cl-lib.el (face-underline-p):
Use set-face-underline rather than the alias set-face-underline-p.
2012-11-16 20:29:24 -05:00
Stefan Monnier
dd0c5bbb36 * lisp/emacs-lisp/advice.el (ad-make-advised-definition): Improve last fix. 2012-11-16 13:02:39 -05:00
Glenn Morris
96e055075d Merge from emacs-24; up to 2012-11-13T18:57:26Z!dgutov@yandex.ru 2012-11-16 09:20:23 -08:00
Stefan Monnier
cdc5d88cf6 * lisp/emacs-lisp/cl-lib.el: Set more meaningful version number. 2012-11-16 10:59:40 -05:00
Glenn Morris
2a07c70a94 Auto-commit of loaddefs files. 2012-11-16 07:17:47 -05:00
Juanma Barranquero
662b0ee67c lisp/emacs-lisp/cl-macs.el (cl-loop, cl-do, cl-do*): Doc fixes. 2012-11-15 22:01:25 +01:00
Stefan Monnier
eb31fa401d * lisp/emacs-lisp/cl-macs.el (cl-flet, cl-flet*): Fix docstring.
Fixes: debbugs:12895
2012-11-15 13:35:05 -05:00
Stefan Monnier
1232d6c2e4 * lisp/emacs-lisp/advice.el (ad-definition-type): Make sure we don't use
a preactivated advice from an old advice.el; they're not compatible!
2012-11-14 23:42:14 -05:00
Katsumi Yamaoka
47f01a8af9 * lisp/emacs-lisp/advice.el (ad-make-advised-definition): Fix undefined case.
* lisp/emacs-lisp/nadvice.el (advice--make-interactive-form):
Fix string-spec case.
2012-11-14 22:30:25 -05:00
Stefan Monnier
a61428c42d * lisp/emacs-lisp/nadvice.el: Add buffer-local support to add-function.
(advice--buffer-local-function-sample): New var.
(advice--set-buffer-local, advice--buffer-local): New functions.
(add-function, remove-function): Use them.
2012-11-14 22:20:49 -05:00
Stefan Monnier
3a514ab07e Backport fix for bug#12879 from trunk
* lisp/emacs-lisp/gv.el (setf): Fix debug spec for multiple assignments
2012-11-14 20:27:52 -05:00
Stefan Monnier
589fc4791f * lisp/emacs-lisp/cl-macs.el (cl--transform-lambda): Defend against
potential binding of print-gensym to t, and prettify (back)quotes in
case they appear in args's default values.

Fixes: debbugs:12884
2012-11-14 20:26:52 -05:00
Stefan Monnier
1668ea9062 * lisp/emacs-lisp/nadvice.el: Add around advice for interactive specs.
(advice-eval-interactive-spec): New function.
(advice--make-interactive-form): Support around advice.

Fixes: debbugs:12844
2012-11-14 15:27:42 -05:00
Stefan Monnier
9c3912d3d9 * lisp/emacs-lisp/gv.el (setf): Fix debug spec for multiple assignments.
Fixes: debbugs:12879
2012-11-13 20:12:52 -05:00
Tsuyoshi Kitamoto
a77b8d5eb0 * emacs-lisp/advice.el: Fix typos in comment. 2012-11-13 13:09:20 -05:00
Stefan Monnier
3c442f8b25 * lisp/emacs-lisp/advice.el: Layer on top of nadvice.el.
Remove out of date self-require hack.
(ad-do-advised-functions): Use simple `dolist'.
(ad-advice-name, ad-advice-protected, ad-advice-enabled)
(ad-advice-definition): Redefine as functions.
(ad-advice-classes): Move before first use.
(ad-make-origname, ad-set-orig-definition, ad-clear-orig-definition)
(ad-make-mapped-call, ad-make-advised-docstring, ad-make-plain-docstring)
(ad--defalias-fset): Remove functions.
(ad-make-advicefunname, ad-clear-advicefunname-definition): New functions.
(ad-get-orig-definition): Rewrite.
(ad-make-advised-definition-docstring): Change base docstring.
(ad-real-orig-definition): Rewrite.
(ad-map-arglists): Change name of called function.
(ad--make-advised-docstring): Redirect `function' from ad-Advice-...
(ad-make-advised-definition): Simplify.
(ad-assemble-advised-definition): Tweak for new calling context.
(ad-activate-advised-definition): Setup ad-Advice-* instead of ad-Orig-*.
(ad--defalias-fset): Rename from ad-handle-definition.  Make it set the
function and call ad-activate if needed.
(ad-activate, ad-deactivate): Don't call ad-handle-definition any more.
(ad-recover): Clear ad-Advice-* instead of ad-Orig-*.
(ad-compile-function): Compile ad-Advice-*.
(ad-activate-on-top-level, ad-with-auto-activation-disabled): Remove.
(ad-start-advice, ad-stop-advice): Remove.
2012-11-13 09:12:46 -05:00
Stefan Monnier
7db1bda8a4 * lisp/emacs-lisp/advice.el: Remove support for freezing.
(ad-make-freeze-docstring, ad-make-freeze-definition): Remove functions.
(ad-make-single-advice-docstring, ad-defadvice-flags, defadvice):
Remove support for `freeze'.
2012-11-12 23:05:35 -05:00