Commit graph

3452 commits

Author SHA1 Message Date
Stefan Monnier
d9857e534b Don't autoload functions too eagerly during macroexpansion.
* lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Only autoload
a function if there's a clear indication that it has a compiler-macro.
* lisp/emacs-lisp/byte-run.el (defun-declarations-alist, defmacro, defun)
(macro-declarations-alist): Add arglist to declaration functions.
(defun-declarations-alist): Add `obsolete' and `compiler-macro'.
* lisp/emacs-lisp/cl-seq.el (cl-member, cl-assoc):
* lisp/emacs-lisp/cl-lib.el (cl-list*, cl-adjoin):
* lisp/emacs-lisp/cl-extra.el (cl-get): Use the new `declare' statement.
Also add autoload to find the compiler macro.
* lisp/emacs-lisp/cl-macs.el (eql) [compiler-macro]: Remove.
(cl--compiler-macro-member, cl--compiler-macro-assoc)
(cl--compiler-macro-adjoin, cl--compiler-macro-list*)
(cl--compiler-macro-get): New functions, replacing calls to
cl-define-compiler-macro.
(cl-typep) [compiler-macro]: Use macroexp-let².
2012-06-08 22:26:47 -04:00
Stefan Monnier
513749ee18 Clean up scoping rule of predefined single-word vars.
* lisp/startup.el (argv, argi): Make lexically scoped.
* lisp/emacs-lisp/float-sup.el (pi): Use internal-make-var-non-special.
* lisp/emacs-lisp/cl-macs.el: Use lexical-binding.
Rename cl-bind-* to cl--bind-*.
* lisp/files.el: Don't require `cl' since it doesn't use it.
* lisp/emacs-lisp/pcase.el, lisp/emacs-lisp/macroexp.el: Add coding cookie.
* src/eval.c (Fmake_var_non_special): New primitive.
(syms_of_eval): Defsubr it.
* src/lread.c (syms_of_lread): Mark `values' as lexically scoped.
2012-06-08 09:18:26 -04:00
Eli Zaretskii
e9f66fcb51 Mention in "C-u C-x =" display how to insert the character w/o input methods.
lisp/descr-text.el (describe-char): Mention how to insert the
 character, if the current input method doesn't support it.
 See the discussion in this thread for the details:
 http://lists.gnu.org/archive/html/emacs-devel/2012-05/msg00533.html.
2012-06-08 11:44:45 +03:00
Stefan Monnier
de7e2b3687 Get rid of cl-lexical-let, keeping only lexical-let for compatibility.
* lisp/emacs-lisp/cl-macs.el: Provide itself.
(cl--labels-convert-cache): New var.
(cl--labels-convert): New function.
(cl-flet, cl-labels): New implementation with new semantics, relying on
lexical-binding.
* lisp/emacs-lisp/cl.el: Mark compatibility aliases as obsolete.
(cl-closure-vars, cl--function-convert-cache)
(cl--function-convert): Move from cl-macs.el.
(lexical-let, lexical-let*, flet, labels): Move from cl-macs.el and
rename by removing the "cl-" prefix.
* lisp/emacs-lisp/macroexp.el (macroexp-unprogn): New function.
2012-06-07 22:54:35 -04:00
Stefan Monnier
6fa6c4aedb Move old compatiblity to cl.el. Remove cl-macroexpand-all.
* emacs-lisp/cl-extra.el (cl-map-keymap, cl-copy-tree)
(cl-not-hash-table, cl-builtin-gethash, cl-builtin-remhash)
(cl-builtin-clrhash, cl-builtin-maphash, cl-gethash, cl-puthash)
(cl-remhash, cl-clrhash, cl-maphash, cl-make-hash-table)
(cl-hash-table-p, cl-hash-table-count): Move to cl.el.
(cl-macroexpand-cmacs): Remove var.
(cl-macroexpand-all, cl-macroexpand-body): Remove funs.
Use macroexpand-all instead.

* emacs-lisp/cl-lib.el (cl-macro-environment): Remove decl.
(cl-macroexpand): Move to cl-macs.el and rename to cl--sm-macroexpand.
(cl-member): Remove old alias.

* emacs-lisp/cl-macs.el (cl-macro-environment): Remove var.
Use macroexpand-all-environment instead.
(cl--old-macroexpand): New var.
(cl--sm-macroexpand): New function.
(cl-symbol-macrolet): Use it during macro expansion.
(cl--function-convert-cache): New var.
(cl--function-convert): New function, extracted from
cl-macroexpand-all.
(cl-lexical-let): Use it.

* emacs-lisp/cl.el (cl-macroexpand, cl-macro-environment)
(cl-macroexpand-all, cl-not-hash-table, cl-builtin-gethash)
(cl-builtin-remhash, cl-builtin-clrhash, cl-builtin-maphash)
(cl-map-keymap, cl-copy-tree, cl-gethash, cl-puthash, cl-remhash)
(cl-clrhash, cl-maphash, cl-make-hash-table, cl-hash-table-p)
(cl-hash-table-count): Add old compatibility aliases.
2012-06-07 15:48:22 -04:00
Stefan Monnier
4dd1c416d1 Cleanup cl-macs namespace. Add macro helpers in macroexp.el.
* emacs-lisp/macroexp.el (macroexp-progn, macroexp-let*, macroexp-if)
(macroexp-let², macroexp--const-symbol-p, macroexp-const-p)
(macroexp-copyable-p): New functions and macros.
* emacs-lisp/edebug.el (edebug-unwrap):
* emacs-lisp/disass.el (disassemble-internal): Use macroexp-progn.
* emacs-lisp/pcase.el: Use macroexp-let*, macroexp-if, ...
(pcase--let*): Remove.
* emacs-lisp/bytecomp.el (byte-compile-const-symbol-p)
(byte-compile-constp): Remove.  Use macroexp--const-symbol-p and
macroexp-const-p instead.
* emacs-lisp/byte-opt.el: Use macroexp-const-p and macroexp-progn.

* emacs-lisp/cl-macs.el: Clean up the name space by using "cl--"
instead of "cl-" for internal definitions.  Use macroexp-const-p.
(cl-old-bc-file-form): Remove var.
(cl-const-exprs-p): Remove fun.
(cl-labels, cl-macrolet): Use backquote.
(cl-lexical-let): Use cl-symbol-macrolet.  Don't use cl-defun-expander.
(cl-defun-expander, cl-byte-compile-compiler-macro): Remove fun.
(cl-define-setf-expander): Rename from cl-define-setf-method.
* emacs-lisp/cl.el: Adjust alias for define-setf-method.

* international/mule-cmds.el: Don't require CL.
(view-hello-file): Don't use `letf'.
2012-06-07 15:25:48 -04:00
Stefan Monnier
fa779ab0e2 * lisp/emacs-lisp/macroexp.el: Don't require CL since we don't use it.
(macroexp--cons): Rename from maybe-cons.
(macroexp--accumulate): Rename from macroexp-accumulate.
(macroexp--all-forms): Rename from macroexpand-all-forms.
(macroexp--all-clauses): Rename from macroexpand-all-clauses.
(macroexp--expand-all): Rename from macroexpand-all-1.
2012-06-06 14:08:00 -04:00
Stefan Monnier
b7bb583819 * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Don't spam the output
with "loading" messages.

Fixes: debbugs:11635
2012-06-06 08:51:48 -04:00
Glenn Morris
276d5f5de5 Remove lib-src/vcdiff
* lib-src/vcdiff: Remove file.
* lib-src/Makefile.in (SCRIPTS, STAMP_SCRIPTS): Remove vcdiff.
(stamp-vcdiff): Remove.

* INSTALL, make-dist: Remove vcdiff.

* lisp/emacs-lisp/authors.el (authors-fixed-entries): Remove vcdiff
2012-06-05 21:06:54 -04:00
Stefan Monnier
d32926ffaa * emacs-list/cust-print.el: Move to obsolete. 2012-06-05 12:50:28 -04:00
Stefan Monnier
53aacf21b4 * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Tolerate errors during
compiler-macro expansion.
2012-06-05 12:43:43 -04:00
Stefan Monnier
57a7d50707 Add native compiler-macro support.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1):
Support compiler-macros directly.  Properly follow aliases and apply
the compiler macros more thoroughly.
* lisp/emacs-lisp/cl.el: Don't copy compiler-macro properties any more since
macroexpand now properly follows aliases.
* lisp/emacs-lisp/cl-macs.el (toplevel, cl-define-compiler-macro)
(cl-compiler-macroexpand): Use new prop.
* lisp/emacs-lisp/byte-opt.el (featurep): Optimize earlier.
* lisp/emacs-lisp/cl-lib.el (custom-print-functions): Add compatibility alias.
2012-06-05 11:41:12 -04:00
Stefan Monnier
e364a2b7e1 * lisp/emacs-lisp/cl-lib.el (cl-values, cl-values-list): Fix up last change. 2012-06-04 10:08:33 -04:00
Stefan Monnier
093c025774 Update autogenerated bootstrap file. 2012-06-04 10:00:32 -04:00
Stefan Monnier
7c1898a7b9 * lisp/emacs-lisp/cl-lib.el: Rename from cl.el.
* lisp/emacs-lisp/cl.el: New compatibility file.
* emacs-lisp/cl-lib.el, lisp/emacs-lisp/cl-seq.el, lisp/emacs-lisp/cl-macs.el:
* lisp/emacs-lisp/cl-extra.el: Rename all top-level functions and variables
to obey the "cl-" prefix.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Adjust to new name.
2012-06-03 21:05:17 -04:00
Glenn Morris
1e266c88b2 * lisp/emacs-lisp/authors.el (authors-aliases): Addition. 2012-06-03 16:31:45 -07:00
Chong Yidong
3726946669 Remove incorrect uses of "modeline".
* ansi-color.el (ansi-color-faces-vector): Change default faces.

* cus-edit.el (mode-line):
* dframe.el (dframe-mouse-hscroll):
* emacs-lisp/re-builder.el:
* emacs-lisp/easy-mmode.el (define-minor-mode):
* frame.el (set-frame-name):
* help.el (lookup-minor-mode-from-indicator):
* net/rcirc.el (rcirc-activity-string, rcirc-short-buffer-name):
* progmodes/cc-cmds.el (c-toggle-auto-newline)
(c-toggle-hungry-state):
* progmodes/antlr-mode.el (antlr-language-alist):
* progmodes/idlw-shell.el (idlwave-shell-electric-stop-line-face):
* progmodes/vhdl-mode.el (vhdl-mode):
* progmodes/which-func.el (which-func, which-func-cleanup-function):
* term/ns-win.el (ns-face-at-pos):
* term/sup-mouse.el (sup-mouse-report):
* textmodes/flyspell.el (flyspell-mode-line-string):
* textmodes/ispell.el (ispell-highlight-face):
* textmodes/reftex-global.el:
* vc/vc-arch.el (vc-arch-mode-line-string):
* vc/vc-cvs.el (vc-cvs-mode-line-string):
* vc/vc-git.el (vc-git-mode-line-string):
* vc/vc-hooks.el (vc-display-status)
(vc-default-mode-line-string):
* vc/vc-mtn.el (vc-mtn-mode-line-string): Doc fixes.

* dired.el (dired-sort-set-mode-line): Rename from
dired-sort-set-modeline.  All callers changed.

* foldout.el (foldout-mode-line-string): Rename from
foldout-modeline-string.  All callers changed.
(foldout-update-mode-line): Rename from foldout-update-modeline.

* strokes.el (strokes-lighter): Rename from
strokes-modeline-string.

* subr.el (redraw-modeline): Make into obsolete alias.

* calendar/timeclock.el (timeclock-mode-line-display): Rename from
timeclock-modeline-display.  Make old name an alias.
(timeclock-update-mode-line): Likewise.  All callers changed.
(timeclock-mode-line-display): No need to check before using
add-hook.
(timeclock-relative, timeclock-day-over-hook)
(timeclock-use-elapsed, timeclock-mode-string)
(timeclock-mode-line-display): Doc fix, "modeline" -> "mode line".

* emulation/crisp.el (crisp-mode-mode-line-string): Rename from
crisp-mode-modeline-string.

* erc-track.el (erc-track, erc-track-faces-priority-list)
(erc-track-faces-normal-list, erc-track-find-face)
(erc-track-modified-channels): Fix modeline -> mode line in docs.

* eshell/esh-mode.el (eshell-status-in-mode-line): Rename from
eshell-status-in-modeline.

* org-clock.el (org-clock-string-limit)
(org-clock-modeline-total, org-clock-task-overrun-text)
(org-clock-mode-line-entry): Doc fix, "modeline" -> "mode line".

* play/solitaire.el (solitaire-build-mode-line): Rename from
solitaire-build-modeline.  All callers changed.

* play/zone.el (zone-hiding-mode-line): Rename from
zone-hiding-modeline.  All callers changed.
(zone): Remove unusued `modeline-hidden-level' property.

* progmodes/xscheme.el (xscheme-mode-line-initialize): Rename from
xscheme-modeline-initialize.  All callers changed.

* textmodes/sgml-mode.el (html-face-tag-alist)
(html-tag-face-alist): Use mode-line face instead of obsolete
alias modeline.

Fixes: debbugs:10329
2012-06-02 18:56:09 +08:00
Glenn Morris
e7f322834d Auto-commit of loaddefs files. 2012-06-02 06:20:27 -04:00
Stefan Monnier
03fef3e61c * lisp/emacs-lisp/cl-macs.el: Use backquotes.
(cl-transform-function-property): Use eval-and-compile rather than
abusing `require'.
(defstruct): Use declare-function instead of with-no-warnings.
2012-06-01 16:36:00 -04:00
Stefan Monnier
4a5f187ae2 * lisp/emacs-lisp/bytecomp.el: Fix last change.
(byte-compile-output-docform): Re-add the print-circle bindings.
(byte-compile-fix-header): Use #$ just because it's shorter.
(byte-compile-output-file-form): Remove defun/defmacro.

Fixes: debbugs:11594
2012-06-01 15:47:54 -04:00
Chong Yidong
efc00ab16e Merge from emacs-24; up to 2012-04-24T21:47:24Z!michael.albinus@gmx.de 2012-05-31 14:08:06 +08:00
Stefan Monnier
dd41169b6c Fix long filename handling of byte-compile-fix-header.
* lisp/emacs-lisp/bytecomp.el (byte-compile-fix-header): Handle
arbitrary file name lengths (Bug#11585).
2012-05-31 13:56:57 +08:00
Stefan Monnier
500fcedc32 Add declare' for defun'. Align `defmacro's with it.
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode)
(define-globalized-minor-mode): Don't autoload the var definitions.
* lisp/emacs-lisp/byte-run.el: Use lexical-binding.
(defun-declarations-alist, macro-declarations-alist): New vars.
(defmacro, defun): Use them.
(make-obsolete, define-obsolete-function-alias)
(make-obsolete-variable, define-obsolete-variable-alias):
Use `declare'.
(macro-declaration-function): Mark obsolete.
* lisp/emacs-lisp/autoload.el: Use lexical-binding.
(make-autoload): Add `expansion' arg.  Rely more on macro expansion.
2012-05-30 21:41:17 -04:00
Stefan Monnier
61b108cc62 * lisp/emacs-lisp/byte-run.el (defmacro, defun): Move from C.
(macro-declaration-function): Move var from C code.
(macro-declaration-function): Define function with defalias.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1):
* lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form):
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't handle
defun/defmacro any more.
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-signature):
Provide fallback for unknown arglist.
(byte-compile-arglist-warn): Change calling convention.
(byte-compile-output-file-form): Move print-vars binding.
(byte-compile-output-docform): Simplify accordingly.
(byte-compile-file-form-defun, byte-compile-file-form-defmacro)
(byte-compile-defmacro-declaration): Remove.
(byte-compile-file-form-defmumble): Generalize to defalias.
(byte-compile-output-as-comment): Return byte-positions.
Simplify callers accordingly.
(byte-compile-lambda): Use `assert'.
(byte-compile-defun, byte-compile-defmacro): Remove.
(byte-compile-file-form-defalias):
Use byte-compile-file-form-defmumble.
(byte-compile-defalias-warn): Remove.
* src/eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
Move to byte-run.el.
(Fautoload): Do the hash-doc more carefully.
* src/data.c (Fdefalias): Purify definition, except for keymaps.
(Qdefun): Move from eval.c.
* src/lisp.h (Qdefun): Remove.
* src/lread.c (read1): Tiny simplification.
* lib-src/make-docfile.c: Improve comment style.
(search_lisp_doc_at_eol): New function.
(scan_lisp_file): Use it.
2012-05-29 23:59:42 -04:00
Stefan Monnier
6876a58db3 Fix minor corner case bugs in byte compilation and pcase.
* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Don't re-preprocess
functions from byte-compile-function-environment.
* lisp/emacs-lisp/bytecomp.el (byte-compile-constp): Treat #'v as a constant.
(byte-compile-close-variables): Bind byte-compile--outbuffer here...
(byte-compile-from-buffer): ...rather than here.
* lisp/emacs-lisp/pcase.el (pcase--expand): Accept different sets of vars in
different alternative patterns.
(pcase-codegen): Be more careful to preserve identity.
(pcase--u1): Don't forget to mark vars as used.
2012-05-29 10:28:02 -04:00
Juri Linkov
e4d4f53985 * lisp/emacs-lisp/lisp-mode.el (eval-defun-2): Use `eval-sexp-add-defvars'
after the `eval-defun-1' specialcaseing
like in `edebug-eval-defun'.

* lisp/emacs-lisp/edebug.el (edebug-eval-defun): Set `face-documentation'
like in `eval-defun-1'.

Fixes: debbugs:10181
2012-05-27 12:45:54 +03:00
Stefan Monnier
a179e3f7b4 Use declare' in lambda' and mis minor changes.
* lisp/subr.el (lambda): Use declare.
* lisp/emacs-lisp/lisp-mode.el (lambda):
* lisp/emacs-lisp/edebug.el (lambda): Move properties to its definition.
* lisp/gnus/legacy-gnus-agent.el (gnus-agent-unhook-expire-days):
* lisp/gnus/gnus-demon.el (gnus-demon-init): Don't bother with type-of.
2012-05-26 11:52:27 -04:00
Juanma Barranquero
5dadff364e lisp/emacs-lisp/edebug.el: Do not load cl-specs.el. 2012-05-22 18:45:44 +02:00
Stefan Monnier
3858bfe7c9 * lisp/emacs-lisp/bytecomp.el (byte-compile-root-dir): New var.
(byte-compile-warning-prefix, batch-byte-compile-file): Use it.
2012-05-19 14:28:32 -04:00
Glenn Morris
f467fdc6f9 Auto-commit of loaddefs files. 2012-05-18 07:17:30 -04:00
Stefan Monnier
b581bb5c8a * lisp/emacs-lisp/lisp-mode.el (doc-string-elt): Move those properties to
their respective macro declarations.
* lisp/skeleton.el (define-skeleton):
* lisp/progmodes/compile.el (define-compilation-mode):
* lisp/ibuf-macs.el (define-ibuffer-sorter, define-ibuffer-op)
(define-ibuffer-filter):
* lisp/emacs-lisp/generic.el (define-generic-mode):
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode)
(define-globalized-minor-mode):
* lisp/emacs-lisp/cl-macs.el (defun*, defmacro*, defstruct, deftype):
* lisp/emacs-lisp/byte-run.el (defsubst):
* lisp/custom.el (deftheme): Add doc-string metadata.
2012-05-17 21:46:20 -04:00
Stefan Monnier
70b8ef8f78 * lisp/emacs-lisp/cl-macs.el, lisp/emacs-lisp/cl.el: Move indent info. 2012-05-17 17:51:15 -04:00
Stefan Monnier
9abdc45d8a * lisp/emacs-lisp/pcase.el (pcase--u1): Avoid ((lambda ...) ...). 2012-05-17 17:40:47 -04:00
Stefan Monnier
b1198e177f * lisp/emacs-lisp/cl.el: Add edebug specs from cl-specs.el.
* lisp/emacs-lisp/cl-macs.el: Idem.
* lisp/emacs-lisp/cl-specs.el: Remove.
2012-05-17 17:39:36 -04:00
Stefan Monnier
4735906a03 Minor renaming of internal CL functions and variables.
* lisp/emacs-lisp/cl-seq.el (cl--adjoin): Rename from cl-adjoin.
(cl--position): Rename from cl-position.
(cl--delete-duplicates): Rename from cl-delete-duplicates.
* lisp/emacs-lisp/cl.el (cl--gensym-counter): Rename from *gensym-counter*.
(cl--random-state): Rename from *random-state*.
2012-05-17 16:04:56 -04:00
Stefan Monnier
6d4a05e3e0 * lisp/emacs-lisp/cl-macs.el (cl-transform-lambda): Don't add spurious
parens around the arg list.  Silly backport.

Fixes: debbugs:11499
2012-05-17 11:17:53 -04:00
Stefan Monnier
ac348012f4 * lisp/emacs-lisp/cl-macs.el (cl-transform-lambda): Don't add spurious
parens around the arg list.

Fixes: debbugs:11499
2012-05-17 11:15:51 -04:00
Stefan Monnier
c41045e6f2 * lisp/emacs-lisp/pcase.el (pcase-let*, pcase-let): Fix edebug spec. 2012-05-15 14:45:27 -04:00
Stefan Monnier
fdb058c228 * lisp/emacs-lisp/smie.el (smie-indent--bolp-1): New function.
(smie-indent-keyword): Use it.
2012-05-15 09:25:03 -04:00
Stefan Monnier
06bc5e6ea6 *** empty log message *** 2012-05-13 12:04:37 -04:00
Chong Yidong
0ae03b6aae Adapt Electric Buffer Menu to recent Buffer Menu changes.
* lisp/ebuff-menu.el (electric-buffer-list): Put electric buffer menu
command descriptions in this docstring, instead of the docstring
of electric-buffer-menu-mode.  Code cleanups.
(electric-buffer-menu-mode): Use define-derived-mode.  Rename from
Electric-buffer-menu-mode.
(electric-buffer-update-highlight): Minor code cleanup.

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-format)
(tabulated-list-entries, tabulated-list-padding)
(tabulated-list-sort-key): Make permanent-local.

Fixes: debbugs:11455
2012-05-13 22:23:45 +08:00
Stefan Monnier
e5bd0a2895 Move define-obsolete-variable-alias before the var's definition.
* lisp/vc/log-edit.el (vc-comment-ring, vc-comment-ring-index):
* lisp/tooltip.el (tooltip-hook):
* lisp/textmodes/reftex-toc.el (reftex-toc-map):
* lisp/textmodes/reftex-sel.el (reftex-select-label-map)
(reftex-select-bib-map):
* lisp/textmodes/reftex-index.el (reftex-index-map)
(reftex-index-phrases-map):
* lisp/speedbar.el (speedbar-syntax-table, speedbar-key-map):
* lisp/progmodes/meta-mode.el (meta-mode-map):
* lisp/novice.el (disabled-command-hook):
* lisp/loadhist.el (unload-hook-features-list):
* lisp/frame.el (blink-cursor):
* lisp/files.el (find-file-not-found-hooks, write-file-hooks)
(write-contents-hooks):
* lisp/emulation/tpu-edt.el (GOLD-map):
* lisp/emacs-lock.el (emacs-lock-from-exiting):
* lisp/emacs-lisp/generic.el (generic-font-lock-defaults):
* lisp/emacs-lisp/chart.el (chart-map):
* lisp/dos-fns.el (register-name-alist):
* lisp/dired-x.el (dired-omit-files-p):
* lisp/desktop.el (desktop-enable):
* lisp/cus-edit.el (custom-mode-hook):
* lisp/buff-menu.el (buffer-menu-mode-hook):
* lisp/bookmark.el (bookmark-read-annotation-text-func)
(bookmark-exit-hooks):
* lisp/allout.el (allout-mode-deactivate-hook)
(allout-exposure-change-hook, allout-structure-added-hook)
(allout-structure-deleted-hook, allout-structure-shifted-hook):
* lisp/dirtrack.el (dirtrack-toggle, dirtrackp, dirtrack-debug-toggle)
(dirtrack-debug): Move call to define-obsolete-variable-alias so it
comes before the corresponding variable's definition.
2012-05-12 23:05:06 -04:00
Glenn Morris
666b903b91 Merge from emacs-24; up to 2012-04-21T14:12:27Z!sdl.web@gmail.com 2012-05-08 20:06:08 -07:00
Stefan Monnier
f0809a9d05 * lisp/buff-menu.el (list-buffers--refresh): Mark `size' as right-align.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header):
Handle new :right-align column property.
(tabulated-list-print-col): Idem, plus use `display' text-property to
try and preserve alignment for variable pitch fonts.
2012-05-07 12:29:55 -04:00
Chong Yidong
1241b724c8 Restore Buffer-menu-use-header-line functionality.
* lisp/emacs-lisp/tabulated-list.el: Add no-header-line alternative.
(tabulated-list-use-header-line): New var.
(tabulated-list-init-header): Use it.
(tabulated-list-print-fake-header): New function.
(tabulated-list-print): Use it.
(tabulated-list-sort-button-map): Add non-header-line commands.
(tabulated-list-init-header): Add column name property to basic
labels as well.
(tabulated-list-col-sort): Handle non-header-line button case.
(tabulated-list--sort-by-column-name): Fix a corner case.

* lisp/buff-menu.el (list-buffers--refresh): Handle
Buffer-menu-use-header-line.
2012-05-07 13:37:38 +08:00
Chong Yidong
e5f9458fe8 * lisp/buff-menu.el: Convert to Tabulated List mode.
(Buffer-menu-buffer+size-width): Make obsolete.
(Buffer-menu-name-width, Buffer-menu-size-width): New variables.
(Buffer-menu-mode-map): Inherit from tabulated-list-mode-map.
(Buffer-menu-mode): Derive from tabulated-list-mode.  Move command
documentation into docstring of buffer-menu.
(Buffer-menu-toggle-files-only): Add an informative message.
(Buffer-menu-sort): Convert to alias for tabulated-list-sort.
(Buffer-menu-buffer, Buffer-menu-beginning, Buffer-menu-mark)
(Buffer-menu-unmark, Buffer-menu-backup-unmark)
(Buffer-menu-delete, Buffer-menu-save, Buffer-menu-not-modified)
(Buffer-menu-execute, Buffer-menu-select)
(Buffer-menu-marked-buffers, Buffer-menu-toggle-read-only)
(Buffer-menu-bury): Use Tabulated List machinery.
(Buffer-menu-mouse-select, Buffer-menu-sort-by-column)
(Buffer-menu-sort-button-map, Buffer-menu-make-sort-button):
Deleted.
(list-buffers--refresh): New function.
(list-buffers-noselect): Use it.
(tabulated-list-entry-size->, Buffer-menu--pretty-name)
(Buffer-menu--pretty-file-name): New helper functions.

* lisp/loadup.el: Preload tabulated-list.

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-sort): Rename from
tabulated-list-sort-column.
(tabulated-list-init-header): Add the initial aligning space even
if tabulated-list-padding is zero.

* src/lisp.mk (lisp): Update.
2012-05-07 00:45:46 +08:00
Christopher Schmidt
e129292c44 * lisp/emacs-lisp/cl-macs.el (cl-expr-contains): Handle cons cells
whose cdr is not a cons cell correctly.

Fixes: debbugs:11038
2012-05-06 11:38:30 -04:00
Chong Yidong
6632d36111 Improvements for Tabulated List mode.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-format): Accept
additional plist in column descriptors.
(tabulated-list-init-header): Obey it.
(tabulated-list-get-entry): New function.
(tabulated-list-put-tag): Use it.  Use string-width instead of
length.
(tabulated-list--column-number): New function.
(tabulated-list-print): Use it.
(tabulated-list-print-col): New function.  Set
`tabulated-list-column-name' property on each column's text.
(tabulated-list-print-entry): Use it.
(tabulated-list-delete-entry, tabulated-list-set-col): New
functions.
(tabulated-list-sort-column): New command.

Fixes: debbugs:11337
2012-05-06 16:32:37 +08:00
Chong Yidong
25f292cd48 * emacs-lisp/package.el (package-built-in-p): Handle `emacs' package.
Fixes: debbugs:11410
2012-05-06 12:05:43 +08:00
Chong Yidong
f677562b6c Fix package.el handling of local variables on first line.
* lisp/emacs-lisp/package.el (package-buffer-info): Avoid putting
local variables into description.
2012-05-05 13:13:27 +08:00