Commit graph

3168 commits

Author SHA1 Message Date
Stefan Monnier
295fb2ac59 Let cconv use :fun-body in special forms that need it.
* lisp/emacs-lisp/cconv.el (cconv-closure-convert): Drop `toplevel' arg.
(cconv-closure-convert-toplevel): Remove.
(cconv-lookup-let): New fun.
(cconv-closure-convert-rec): Don't bother with defs-are-legal.
Use :fun-body to handle special forms that require closing their forms.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form, byte-compile):
Use cconv-closure-convert instead of cconv-closure-convert-toplevel.
(byte-compile-lambda, byte-compile-make-closure):
* lisp/emacs-lisp/byte-lexbind.el (byte-compile-maybe-push-heap-environment):
Make sure cconv did its job.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Check stack-depth
before using it.
* lisp/dired.el (dired-desktop-buffer-misc-data): Don't use a dynamic var as
function argument.
2011-02-11 17:30:02 -05:00
Stefan Monnier
43e67019df Make cconv-analyse understand the need for closures.
* lisp/emacs-lisp/byte-lexbind.el (byte-compile-lforminfo-analyze):
Understand the :fun-body case for catch, save-window-excursion, and
condition-case.
(byte-compile-maybe-push-heap-environment): No need when nclosures is
zero and byte-compile-current-num-closures is -1.

* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Fix `fun' that was not
renamed to `bytecomp-fun'.

* lisp/emacs-lisp/cconv.el (cconv-not-lexical-var-p): New function.
(cconv-freevars): Use it.
(cconv-closure-convert-rec): Avoid `position'.
(cconv-analyse-function): New function.
(cconv-analyse-form): Use it.  `inclosure' can't be nil any more.
Check lexical vars at let-binding time rather than when referenced.
For defuns to be in an empty environment and lambdas to take lexical args.
Pay attention to the need to build closures in catch, unwind-protect,
save-window-excursion, condition-case, and track-mouse.
Fix defconst/defvar handling.
2011-02-11 14:48:54 -05:00
Glenn Morris
5935086250 * lisp/emacs-lisp/cl-specs.el (multiple-value-bind): Fix debug spec. 2011-02-10 19:54:12 -08:00
Stefan Monnier
d779e73c22 * lisp/emacs-lisp/bytecomp.el (byte-compile-catch)
(byte-compile-unwind-protect, byte-compile-track-mouse)
(byte-compile-condition-case, byte-compile-save-window-excursion):
Provide a :fun-body alternative, so that info can be propagated from the
surrounding context, as is the case for lexical scoping.

* lisp/emacs-lisp/cconv.el (cconv-mutated, cconv-captured)
(cconv-captured+mutated, cconv-lambda-candidates): Fix up declaration.
(cconv-freevars): Minor cleanup.  Fix handling of the error var in
condition-case.
2011-02-10 18:37:03 -05:00
Stefan Monnier
9517f8af14 * lisp/emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two
conflicting ways.
(smie-indent--parent): Extend to "parent of arg".
(smie-indent-inside-string): New function.
(smie-indent-functions): Use it.
2011-02-10 14:40:17 -05:00
Stefan Monnier
49ffc0786e * lisp/emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is
still valid before using it.
2011-02-10 14:21:07 -05:00
Igor Kuzmin
94d11cb577 * lisp/emacs-lisp/cconv.el: New file.
* lisp/emacs-lisp/bytecomp.el: Use cconv.
(byte-compile-file-form, byte-compile):
Call cconv-closure-convert-toplevel when requested.
* lisp/server.el:
* lisp/mpc.el:
* lisp/emacs-lisp/pcase.el:
* lisp/doc-view.el:
* lisp/dired.el: Use lexical-binding.
2011-02-10 13:53:49 -05:00
Andreas Schwab
43e9202446 Update cl-loaddefs.el again 2011-02-10 19:26:43 +01:00
Stefan Monnier
b016851cb1 Move keymap initialization into declaration.
* lisp/textmodes/enriched.el (enriched-mode-map):
* lisp/textmodes/bib-mode.el (bib-mode-map):
* lisp/term/lk201.el (lk201-function-map):
* lisp/tar-mode.el (tar-mode-map):
* lisp/replace.el (occur-mode-map):
* lisp/progmodes/idlwave.el (idlwave-rinfo-mouse-map, idlwave-rinfo-map):
* lisp/progmodes/idlw-help.el (idlwave-help-mode-map):
* lisp/progmodes/gdb-mi.el (gdb-memory-format-menu, gdb-memory-unit-menu):
* lisp/play/solitaire.el (solitaire-mode-map):
* lisp/play/snake.el (snake-mode-map, snake-null-map):
* lisp/play/pong.el (pong-mode-map):
* lisp/play/handwrite.el (menu-bar-handwrite-map):
* lisp/play/gametree.el (gametree-mode-map):
* lisp/net/rcirc.el (rcirc-mode-map, rcirc-browse-url-map
(rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map):
* lisp/net/newst-plainview.el (newsticker-menu, newsticker-mode-map)
(newsticker--url-keymap):
* lisp/net/net-utils.el (nslookup-mode-map, ftp-mode-map):
* lisp/menu-bar.el (menu-bar-file-menu, menu-bar-i-search-menu)
(menu-bar-search-menu, menu-bar-replace-menu, menu-bar-goto-menu)
(menu-bar-edit-menu, menu-bar-custom-menu)
(menu-bar-showhide-fringe-ind-menu, menu-bar-showhide-fringe-menu)
(menu-bar-showhide-scroll-bar-menu, menu-bar-showhide-menu)
(menu-bar-line-wrapping-menu, menu-bar-options-menu)
(menu-bar-games-menu, menu-bar-encryption-decryption-menu)
(menu-bar-tools-menu, menu-bar-describe-menu)
(menu-bar-search-documentation-menu, menu-bar-manuals-menu)
(menu-bar-help-menu):
* lisp/mail/rmailsum.el (rmail-summary-mode-map):
* lisp/kmacro.el (kmacro-step-edit-map):
* lisp/ibuffer.el (ibuffer-mode-groups-popup, ibuffer-mode-map)
(ibuffer-mode-operate-map):
* lisp/hi-lock.el (hi-lock-menu, hi-lock-map):
* lisp/emulation/vip.el (vip-mode-map):
* lisp/emacs-lisp/re-builder.el (reb-lisp-mode-map):
* lisp/bookmark.el (bookmark-bmenu-mode-map):
* lisp/help-mode.el (help-mode-map):
* lisp/erc/erc-list.el (erc-list-menu-mode-map):
* lisp/org/org-remember.el (org-remember-mode-map):
* lisp/org/org-src.el (org-src-mode-map): Move initialization into declaration.
2011-02-10 11:56:00 -05:00
Andreas Schwab
16b737dc09 Update cl-loaddefs.el and ibuffer.el 2011-02-10 12:07:15 +01:00
Glenn Morris
86361e1edc cl-seq.el doc fixes.
* lisp/emacs-lisp/cl-seq.el (union, nunion, intersection)
(nintersection, set-difference, nset-difference)
(set-exclusive-or, nset-exclusive-or): Doc fix.
2011-02-09 21:07:32 -08:00
Kenichi Handa
50c822bd67 update for autoloads 2011-02-08 15:54:37 +09:00
Glenn Morris
233ba4d924 Merge from emacs-23; up to 2010-05-26T14:19:15Z!monnier@iro.umontreal.ca. 2011-02-05 14:30:14 -08:00
Glenn Morris
a60287ff99 * lisp/emacs-lisp/cl-macs.el (return-from): Fix doc typo. 2011-02-05 14:03:44 -08:00
Glenn Morris
7f07c1fe57 elint.el trivia.
* lisp/emacs-lisp/elint.el (elint-standard-variables):
Remove a couple of built-ins that now have doc-strings.
2011-02-02 23:27:59 -08:00
Sam Steingold
e90f854587 * lisp/apropos.el (apropos-print): Now that `apropos-mode' inherits
from `special-mode', entering it makes the buffer read-only, so
call it only when everything has been already inserted.
* lisp/emacs-lisp/ert.el (ert--setup-results-buffer)
(ert-results-pop-to-backtrace-for-test-at-point)
(ert-results-pop-to-messages-for-test-at-point)
(ert-results-pop-to-timings): Ditto.
* lisp/emacs-lisp/package.el (package--list-packages): Ditto.
* lisp/play/solitaire.el (solitaire): Ditto.
2011-02-02 12:59:44 -05:00
Sam Steingold
abef340a0c * lisp/simple.el (special-mode-map): Bind "h" to `describe-mode';
bind "z" to `kill-this-buffer'.
(completion-list-mode-map): Bind "z" to `kill-this-buffer'.
* lisp/apropos.el (apropos-mode-map): Inherit from `special-mode-map'.
(apropos-mode): Inherit from `special-mode'.
* lisp/arc-mode.el (archive-mode-map): Inherit from `special-mode-map'.
* lisp/bookmark.el (bookmark-bmenu-mode): Define using
`define-derived-mode' inheriting from `special-mode'.
* lisp/dired.el (dired-mode-map): Inherit from `special-mode-map'.
* lisp/image-mode.el (image-mode-map): Ditto.
* lisp/replace.el (occur-mode): Define using
`define-derived-mode' inheriting from `special-mode'.
* lisp/tar-mode.el (tar-mode): Inherit from `special-mode'.
* lisp/calendar/diary-lib.el (diary-fancy-display-mode):
Inherit from `special-mode-map'.
* lisp/emacs-lisp/ert.el (ert-simple-view-mode, ert-results-mode):
Inherit from `special-mode'.
* lisp/emacs-lisp/package.el (package-menu-mode-map): Copy from
`special-mode-map'.
(package-menu-mode): Define using `define-derived-mode'
inheriting from `special-mode'.
* erc/erc-list.el (erc-list-menu-mode): Inherit from `special-mode'.
* lisp/net/xesam.el (xesam-mode): Inherit from `special-mode'.
(xesam-mode-map): Define separately.
* lisp/play/solitaire.el (solitaire-mode): Inherit from `special-mode'.
* lisp/progmodes/compile.el (compilation-minor-mode-map)
(compilation-mode-map): Inherit from `special-mode-map'.
* lisp/vc/diff-mode.el (diff-mode-shared-map):
Inherit from `special-mode-map'.
* lisp/vc/log-view.el (log-view-mode-map): Add a comment.
2011-02-01 16:22:21 -05:00
Stefan Monnier
8f1d2ef658 Merge from trunk 2011-02-01 12:09:25 -05:00
Chong Yidong
14beddf471 Merge changes from emacs-23 branch 2011-01-31 18:54:50 -05:00
Andreas Schwab
e935c6a287 Don't complain about duplicate leim-list files
* lisp/emacs-lisp/shadow.el (load-path-shadows-find): Ignore leim-list
files.
2011-01-29 10:44:40 +01:00
Leo Liu
b1ea593c81 Fix help-mode highlighting of advice warning (Bug#6304).
* emacs-lisp/advice.el (ad-make-advised-docstring): Don't apply
highlighting to the "this function is advisted" message.

* help-mode.el (help-mode-finish): Apply highlighting here, to
avoid clobbering by substitute-command-keys (Bug#6304).
2011-01-28 16:42:11 -05:00
Chong Yidong
2e804fc7e7 Update autoloads. 2011-01-28 11:58:04 -05:00
Glenn Morris
95df8112a0 Refill some long/short copyright headers. 2011-01-26 00:36:39 -08:00
Glenn Morris
7e6e2304f8 Undo part of previous copyright.el change.
* lisp/emacs-lisp/copyright.el (copyright-update-directory):
Undo part of previous change - don't find files literally, we need
comment-start-skip, etc.
2011-01-25 09:41:28 -08:00
Glenn Morris
0fe719e691 copyright.el updates.
* lisp/emacs-lisp/copyright.el (copyright-at-end-flag)
(copyright-names-regexp): Add safety properties.
(copyright-year-ranges): New option.
(copyright-find-end): New function, split from copyright-update-year.
(copyright-update-year): Use copyright-find-end.
(copyright-fix-years): Optionally, convert years to ranges.
Handle years continued over comment lines.
Do not mess with the fill-prefix.
Do not call copyright-update.
(copyright-update-directory): Optionally, fix years rather than update.
Skip directories.  Find files literally, with only safe local vars.

* etc/NEWS: Mention copyright-fix-years and ranges.
2011-01-25 00:36:34 -08:00
Glenn Morris
73b0cd5003 Convert consecutive FSF copyright years to ranges. 2011-01-24 20:08:28 -08:00
Glenn Morris
06d8ace515 Merge from emacs-23.
Note setting of CANNOT_DUMP on ia64 hpux is still to be merged manually.
2011-01-24 19:47:47 -08:00
Glenn Morris
572bf6f254 Tweak previous copyright.el change.
* lisp/emacs-lisp/copyright.el (copyright-find-copyright)
(copyright-update, copyright-fix-years):
Do the initial widen and move in copyright-find-copyright.
2011-01-22 14:18:01 -08:00
Glenn Morris
d226ec23ec * lisp/emacs-lisp/copyright.el (copyright-fix-years): Use copyright-find-copyright. 2011-01-22 14:13:17 -08:00
Glenn Morris
0412a5a4de Some copyright.el updates.
* lisp/emacs-lisp/copyright.el (copyright-find-copyright): New function,
split out from copyright-update-year.
(copyright-update): Don't mess with the GPL version if we don't own the
copyright.  Update license regexp, and remove no longer needed
Esperanto stuff.
2011-01-22 14:09:09 -08:00
Keitaro Miyazaki
d647640760 Fix toggling of case-fold-search from re-builder menu (Bug#7650).
* emacs-lisp/re-builder.el (reb-mode-map): Set case-fold-search in
the correct buffer.
2011-01-22 15:54:27 -05:00
Glenn Morris
7c82f3e23e Merge from emacs-23 2011-01-22 11:36:45 -08:00
Chong Yidong
e3545d0d6f * emacs-lisp/re-builder.el (reb-mode-map): Fix logic error in menu item. 2011-01-21 22:03:49 -05:00
Jari Aalto
26a2788480 * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
Assume foo(bar) is a manpage reference rather than some unquoted symbol.

Fixes: debbugs:7705
2011-01-21 13:12:32 -05:00
Andreas Schwab
44ec06d43e Update md5 checksums 2011-01-18 20:08:00 +01:00
Glenn Morris
a9faac5c63 Merge from emacs-23 branch, up to 2010-05-20T22:16:19Z!juri@jurta.org. 2011-01-17 18:49:59 -08:00
Stefan Monnier
1a1fcbe13f * emacs-lisp/easy-mmode.el (define-minor-mode): Don't re-evaluate the
keymap expression.  Improve docstring.
2011-01-17 16:42:23 -05:00
Paul Eggert
61f74651c4 Merge from mainline. 2011-01-17 11:47:38 -08:00
Paul Eggert
a3e44e7937 Merge from mainline. 2011-01-17 11:01:01 -08:00
Glenn Morris
e9bffc61f2 Refill some copyright headers. 2011-01-15 18:21:30 -08:00
Glenn Morris
0d9f702fd0 Nuke arch-tags. 2011-01-15 15:16:57 -08:00
Glenn Morris
d0d4361dba Add 2011 to remaining FSF/AIST copyright years. 2011-01-15 14:10:37 -08:00
Stefan Monnier
f80aa5bfa9 Update md5 checksums 2011-01-14 13:06:07 -05:00
Stefan Monnier
77ab81d054 Merge from emacs-23 2011-01-14 12:18:41 -05:00
Stefan Monnier
fc55380c5c * lisp/emacs-lisp/easymenu.el: Add :enable, and obey :label. Require CL.
(easy-menu-create-menu, easy-menu-convert-item-1):
Use :label rather than nil for labels.  Use `case'.
Add :enable as alias for :active.
(easy-menu-binding): Obey :label.

Fixes: debbugs:7754
2011-01-13 21:12:43 -05:00
Stefan Monnier
4d789d84b8 Use run-mode-hooks for major mode hooks.
* lisp/textmodes/reftex-toc.el (reftex-toc-mode-map):
Rename from reftex-toc-map.
(reftex-toc-mode): Use define-derived-mode.
* lisp/textmodes/reftex-sel.el (reftex-select-shared-map): New map.
(reftex-select-label-mode-map, reftex-select-bib-mode-map):
Rename from reftex-select-(label|bib)-map.  Move init into declaration.
(reftex-select-label-mode, reftex-select-bib-mode):
Use define-derived-mode.
* lisp/textmodes/reftex-index.el (reftex-index-phrases-mode-map)
(reftex-index-mode-map): Rename from reftex-index(-phrases)-map.
Move init into delcaration.
(reftex-index-mode, reftex-index-phrases-mode):
Use define-derived-mode.
* lisp/speedbar.el (speedbar-mode-syntax-table): Renaqme from
speedbar-syntax-table.  Move init into declaration.
(speedbar-mode-map): Rename from speedbar-key-map.
Move init into declaration.
(speedbar-file-key-map): Move init into declaration.
(speedbar-mode): Use define-derived-mode.
* lisp/recentf.el (recentf-mode): Don't run hook (or message) redundantly.
* lisp/net/rcirc.el (rcirc-mode): Use run-mode-hooks.
* lisp/emacs-lisp/chart.el (chart-mode-map): Rename from chart-map.
(chart-face-list): Move initialization into declaration.
(chart-mode): Use define-derived-mode.
* lisp/calculator.el (calculator-mode-map): Move init into declaration.
(calculator-mode): Use define-derived-mode.
* lisp/cedet/srecode/srt-mode.el (srecode-template-mode):
Use define-derived-mode.
* lisp/cedet/semantic/symref/list.el (semantic-symref-results-mode):
Use run-mode-hooks.
* lisp/erc/erc.el (erc-mode):
* lisp/erc/erc-dcc.el (erc-dcc-chat-mode): Use define-derived-mode.
* lisp/org/org-remember.el (org-remember-mode):
* lisp/org/org-capture.el (org-capture-mode): Don't run hook redundantly.

Fixes: debbugs:513
2011-01-13 18:14:30 -05:00
Christian Ohler
8b845e3b89 Merged from trunk. 2011-01-13 19:08:58 +11:00
Chong Yidong
2a8b13afb7 * emacs-lisp/package.el (package--list-packages): Use switch-to-buffer. 2011-01-12 13:57:23 -05:00
Christian Ohler
d221e7808c Add ERT, a tool for automated testing in Emacs Lisp.
* Makefile.in, configure.in, doc/misc/Makefile.in, doc/misc/makefile.w32-in:
Add ERT.  Make "make check" run tests in test/automated.

* doc/misc/ert.texi, lisp/emacs-lisp/ert.el, lisp/emacs-lisp/ert-x.el:
New files.

* test/automated: New directory.
2011-01-13 03:08:24 +11:00
Johan Bockgård
059616e5a8 * lisp/emacs-lisp/unsafep.el (unsafep): Handle backquoted forms. 2011-01-11 19:42:30 +01:00