Commit graph

1456 commits

Author SHA1 Message Date
Stefan Monnier
2ee3d7f0aa Provide generalized variables in core Elisp.
* lisp/emacs-lisp/gv.el: New file.
* lisp/subr.el (push, pop): Extend to generalized variables.
* lisp/loadup.el (macroexp): Unload if preloaded and uncompiled.
* lisp/emacs-lisp/cl-lib.el (cl-pop, cl-push, cl--set-nthcdr): Remove.
* lisp/emacs-lisp/cl-macs.el: Require gv.  Use gv-define-setter,
gv-define-simple-setter, and gv-define-expander.
Remove setf-methods defined in gv.  Rename cl-setf -> setf.
(cl-setf, cl-do-pop, cl-get-setf-method): Remove.
(cl-letf, cl-letf*, cl-define-modify-macro, cl-defsetf)
(cl-define-setf-expander, cl-struct-setf-expander): Move to cl.el.
(cl-remf, cl-shiftf, cl-rotatef, cl-callf, cl-callf2): Rewrite with
gv-letplace.
(cl-defstruct): Don't define setf-method any more.
* lisp/emacs-lisp/cl.el (flet): Don't autoload.
(cl--letf, letf, cl--letf*, letf*, cl--gv-adapt)
(define-setf-expander, defsetf, define-modify-macro)
(cl-struct-setf-expander): Move from cl-lib.el.
* lisp/emacs-lisp/syntax.el:
* lisp/emacs-lisp/ewoc.el:
* lisp/emacs-lisp/smie.el:
* lisp/emacs-lisp/cconv.el:
* lisp/emacs-lisp/timer.el: Rename cl-setf -> setf, cl-push -> push.
(timer--time): Use gv-define-simple-setter.
* lisp/emacs-lisp/macroexp.el (macroexp-let2): Rename from macroexp-let²
to avoid coding-system problems in subr.el.  Adjust all users.
(macroexp--maxsize, macroexp-small-p): New functions.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don't use cl-letf.
* lisp/scroll-bar.el (scroll-bar-mode):
* lisp/simple.el (auto-fill-mode, overwrite-mode, binary-overwrite-mode)
(normal-erase-is-backspace-mode): Don't use the `eq' place.
* lisp/winner.el (winner-configuration, winner-make-point-alist)
(winner-set-conf, winner-get-point, winner-set): Don't abuse letf.
* lisp/files.el (locate-file-completion-table): Avoid list*.

Fixes: debbugs:11657
2012-06-22 09:42:38 -04:00
Stefan Monnier
f2d6a3df6a * lisp/simple.el (execute-extended-command): Set real-this-command.
* src/keyboard.c: Export real-this-command to Elisp.
(syms_of_keyboard): Rename real_this_command to Vreal_this_command
and DEFVAR it.  Update all users.

Fixes: debbugs:11506
2012-06-02 15:21:34 -04:00
Martin Rudalics
bd56924f27 Remove obsolete binding in choose-completion.
* simple.el (choose-completion): Remove now obsolete binding for
owindow.
2012-06-01 15:44:48 +02:00
Martin Rudalics
69d565e2c2 * lisp/simple.el (choose-completion): Use quit-window.
Fixes: debbugs:11567
2012-05-29 20:21:45 +08:00
Juri Linkov
8cbd80f713 * lisp/isearch.el (isearch-search-fun-default): New function.
(isearch-search-fun): Move default part to the new function
`isearch-search-fun-default'.
(isearch-search-fun-function): Set the default value to
`isearch-search-fun-default'. 

* lisp/comint.el (comint-history-isearch-end):
Use `isearch-search-fun-default'.
(comint-history-isearch-search): Use `isearch-search-fun-default'
and remove spacial case for `isearch-word'.
(comint-history-isearch-wrap): Remove spacial case for
`isearch-word'.

* lisp/hexl.el (hexl-isearch-search-function):
Use `isearch-search-fun-default'.

* lisp/info.el (Info-isearch-search): Use `isearch-search-fun-default'.
Use `word-search-regexp' for `isearch-word'.

* lisp/misearch.el (multi-isearch-search-fun):
Use `isearch-search-fun-default'.

* lisp/simple.el (minibuffer-history-isearch-search):
Use `isearch-search-fun-default' and remove spacial case for
`isearch-word'.
(minibuffer-history-isearch-wrap): Remove spacial case for
`isearch-word'.

* lisp/textmodes/reftex-global.el (reftex-isearch-wrap-function):
Remove spacial case for `isearch-word'.
(reftex-isearch-isearch-search): Use `isearch-search-fun-default'.

Fixes: debbugs:11381
2012-05-29 12:09:38 +03:00
Stefan Monnier
71873e2b33 Add new error and function `user-error'.
* lisp/subr.el (user-error): New function.
* lisp/window.el (switch-to-buffer):
* lisp/vc/smerge-mode.el (smerge-resolve-function, smerge-resolve)
(smerge-match-conflict):
* lisp/simple.el (previous-matching-history-element)
(next-matching-history-element, goto-history-element, undo-more)
(undo-start):
* lisp/progmodes/etags.el (visit-tags-table-buffer, find-tag-tag)
(find-tag-noselect, find-tag-in-order, etags-goto-tag-location)
(next-file, tags-loop-scan, list-tags, complete-tag):
* lisp/progmodes/compile.el (compilation-loop):
* lisp/mouse.el (mouse-minibuffer-check):
* lisp/man.el (Man-bgproc-sentinel, Man-goto-page):
* lisp/info.el (Info-find-node-2, Info-extract-pointer, Info-history-back)
(Info-history-forward, Info-follow-reference, Info-menu)
(Info-extract-menu-item, Info-extract-menu-counting)
(Info-forward-node, Info-backward-node, Info-next-menu-item)
(Info-last-menu-item, Info-next-preorder, Info-last-preorder)
(Info-next-reference, Info-prev-reference, Info-index)
(Info-index-next, Info-follow-nearest-node)
(Info-copy-current-node-name):
* lisp/imenu.el (imenu--make-index-alist)
(imenu-default-create-index-function, imenu-add-to-menubar):
* lisp/files.el (basic-save-buffer, recover-file):
* lisp/emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
* lisp/emacs-lisp/checkdoc.el (checkdoc-continue, checkdoc-comments)
(checkdoc-message-text, checkdoc-defun):
* lisp/dabbrev.el (dabbrev-completion, dabbrev--abbrev-at-point):
* lisp/cus-edit.el (customize-changed-options, customize-rogue)
(customize-saved, custom-variable-set, custom-variable-mark-to-save)
(custom-variable-mark-to-reset-standard)
(custom-variable-reset-backup, custom-face-mark-to-reset-standard)
(custom-file):
* lisp/completion.el (check-completion-length):
* lisp/comint.el (comint-search-arg)
(comint-previous-matching-input-string-position)
(comint-previous-matching-input)
(comint-replace-by-expanded-history-before-point, comint-send-input)
(comint-copy-old-input, comint-backward-matching-input)
(comint-goto-process-mark, comint-set-process-mark):
* lisp/calendar/calendar.el (calendar-cursor-to-date): Use it.
* lisp/bindings.el (debug-ignored-errors): Remove regexps, add `user-error'.
* src/data.c (PUT_ERROR): New macro.
(syms_of_data): Use it.  Add new error type `user-error'.
* src/undo.c (user_error): New function.
(Fprimitive_undo): Use it.
* src/print.c (print_error_message): Adjust print style for `user-error'.
* src/keyboard.c (user_error): New function.
(Fexit_recursive_edit, Fabort_recursive_edit): Use it.
2012-05-04 19:16:47 -04:00
Aaron S. Hawley
b593d6a999 Reimplement execute-extended-command in Elisp.
* src/keyboard.c (Fexecute_extended_command, Vsuggest_key_bindings):
Move to simple.el.
* lisp/simple.el (suggest-key-bindings, execute-extended-command):
Move from keyboard.c.
2012-05-01 12:10:02 -04:00
Chong Yidong
a8e7d6d783 Merge changes from emacs-24 branch 2012-04-27 11:10:38 +08:00
Chong Yidong
d55486c7f8 * simple.el (delete-active-region): Move to killing custom group. 2012-04-22 15:19:29 +08:00
Chong Yidong
bc6494efe3 * simple.el (line-move): Use forward-line if in batch mode.
Fixes: debbugs:11053
2012-04-18 15:00:52 +08:00
Chong Yidong
e6fd457e01 Merge from emacs-24 branch 2012-04-15 15:28:01 +08:00
Glenn Morris
e153c13643 Doc and manual fixes related to processes
* doc/lispref/processes.texi (Processes, Subprocess Creation, Shell Arguments):
(Synchronous Processes): Copyedits.
(Subprocess Creation): Discourage modifying exec-path directly.
(Synchronous Processes): Update some example output.
(Process Information): Fix typo.
(Bindat Spec): Use Texinfo-recommended form of quote+punctuation.

* lisp/simple.el (process-file-side-effects): Doc fix.
2012-04-14 18:37:16 -07:00
Glenn Morris
35dc09a19c Merge from emacs-24, up to 2012-04-10T02:06:19Z!larsi@gnus.org 2012-04-13 18:46:06 -07:00
Lars Magne Ingebrigtsen
74beb59f81 * simple.el (zap-to-char): Allow zapping using input methods.
Fixes: debbugs:1580
2012-04-10 04:23:21 +02:00
Eli Zaretskii
9f847f4172 Fix bug #11208 with inaccurate doc string of shell-command-on-region.
lisp/simple.el (shell-command-on-region): Doc fix.
2012-04-09 19:56:35 +03:00
Chong Yidong
fb7ada5f94 Remove * characters from the front of variable docstrings. 2012-04-09 21:05:48 +08:00
Chong Yidong
b4d3bc10dc Remove defining user variables via * in docstring.
* lisp/apropos.el (apropos-variable):
* lisp/files-x.el (read-file-local-variable):
* lisp/simple.el (set-variable):
* lisp/woman.el (woman-mini-help):
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Callers changed.

* lisp/custom.el (custom-variable-p): Return nil for non-symbol
arguments instead of signaling an error.
(user-variable-p): Obsolete alias for custom-variable-p.

* lisp/erc/erc.el (erc-cmd-SET): Call custom-variable-p instead of
user-variable-p.

* src/callint.c (Finteractive, Fcall_interactively):
* src/minibuf.c (Fread_variable): Callers changed.

* src/eval.c (Fuser_variable_p, user_variable_p_eh)
(lisp_indirect_variable): Functions deleted.
(Fdefvar): Caller changed.

* doc/lispref/commands.texi (Interactive Codes):
* doc/lispref/help.texi (Accessing Documentation):
* doc/lispref/minibuf.texi (High-Level Completion): Callers changed.

* doc/lispref/customize.texi (Variable Definitions): Remove user-variable-p.
2012-04-09 20:36:01 +08:00
Chong Yidong
64fee3118a Fix corner case in end-of-visible-line.
* lisp/simple.el (end-of-visible-line): Handle return value of
next-single-property-change properly.

Fixes: debbugs:9371
2012-03-22 15:38:05 +08:00
Leo Liu
e2f1fdab91 * lisp/simple.el (kill-new): Use equal-including-properties for
comparison.
(kill-do-not-save-duplicates): Doc fix.
2012-03-13 02:21:35 +08:00
Chong Yidong
397a688f21 * simple.el (goto-line): Doc fix.
Fixes: debbugs:9938
2012-03-12 00:57:04 +08:00
Leo Liu
109aa8a95e * lisp/simple.el (backward-delete-char-untabify): Constrain point to
field.

Fixes: debbugs:10939
2012-03-05 23:53:34 +08:00
Chong Yidong
10607bea34 Tweaks to count-words and count-words-region behavior.
In particular, make count-words more analogous to the existing
count-lines function.

* lisp/simple.el (count-words): If called from Lisp, return the word
count, for symmetry with `count-lines'.  Arglist changed.
(count-words--message): Args changed.  Consolidate counting code
from count-words and count-words-region.
(count-words-region): Caller changed.
(count-lines-region): Make it an obsolete alias.
2012-03-05 14:10:11 +08:00
Lars Ingebrigtsen
5f0af64f87 `mail-user-agent' doc fix
* simple.el (mail-user-agent): Mention that `gnus-user-agent' only
does its stuff if Gnus is running.
2012-02-13 20:42:58 +01:00
Glenn Morris
e1ac4066d1 Minor-mode doc fixes for ARG behavior
* lisp/completion.el (dynamic-completion-mode):
* lisp/dirtrack.el (dirtrack-debug-mode):
* lisp/electric.el (electric-layout-mode):
* lisp/epa-mail.el (epa-mail-mode, epa-global-mail-mode):
* lisp/face-remap.el (text-scale-mode, buffer-face-mode):
* lisp/iimage.el (iimage-mode):
* lisp/image-mode.el (image-transform-mode):
* lisp/minibuffer.el (completion-in-region-mode):
* lisp/scroll-lock.el (scroll-lock-mode):
* lisp/simple.el (next-error-follow-minor-mode):
* lisp/tar-mode.el (tar-subfile-mode):
* lisp/tooltip.el (tooltip-mode):
* lisp/vcursor.el (vcursor-use-vcursor-map):
* lisp/wid-browse.el (widget-minor-mode):
* lisp/emulation/tpu-edt.el (tpu-edt-mode):
* lisp/emulation/tpu-extras.el (tpu-cursor-free-mode):
* lisp/international/iso-ascii.el (iso-ascii-mode):
* lisp/language/thai-util.el (thai-word-mode):
* lisp/mail/supercite.el (sc-minor-mode):
* lisp/net/goto-addr.el (goto-address-mode):
* lisp/net/rcirc.el (rcirc-multiline-minor-mode, rcirc-track-minor-mode):
* lisp/progmodes/cwarn.el (cwarn-mode):
* lisp/progmodes/flymake.el (flymake-mode):
* lisp/progmodes/glasses.el (glasses-mode):
* lisp/progmodes/hideshow.el (hs-minor-mode):
* lisp/progmodes/pascal.el (pascal-outline-mode):
* lisp/textmodes/enriched.el (enriched-mode):
* lisp/vc/smerge-mode.el (smerge-mode):
Doc fixes (minor mode argument).

* etc/NEWS: Related markup.
2012-02-07 21:12:24 -05:00
Chong Yidong
2d16b285e3 * simple.el (list-processes--refresh): Delete exited processes.
Fixes: debbugs:8094
2012-02-06 22:40:10 +08:00
Glenn Morris
34c9999804 Try to document filter-buffer-substring changes
* doc/lispref/text.texi (Buffer Contents):
Update filter-buffer-substring description.

* lisp/simple.el (filter-buffer-substring-functions)
(buffer-substring-filters, filter-buffer-substring): Doc fixes.

* etc/NEWS: Related edits.
2012-02-04 11:48:06 -08:00
Chong Yidong
6e9bad1452 * lisp/simple.el (deactivate-mark): Doc fix (Bug#8614). 2012-01-28 22:29:29 +08:00
Glenn Morris
acaf905b11 Add 2012 to FSF copyright years for Emacs files 2012-01-05 01:46:05 -08:00
Paul Eggert
99d990817c Spelling fixes. 2011-12-18 22:21:24 -08:00
Juanma Barranquero
382c953bbe Fix typos. 2011-12-09 04:12:38 +01:00
Eli Zaretskii
71cc0b7439 Fix "C-x =" wrt display of strong RTL characters and directional controls.
lisp/descr-text.el (describe-char): Fix display of strong
 right-to-left characters and directional embeddings and overrides.
 lisp/simple.el (what-cursor-position): Fix display of codepoints of
 strong right-to-left characters by appending LRM.
2011-12-05 19:46:27 +02:00
Paul Eggert
c80e3b4aed Spelling fixes. 2011-12-04 00:02:42 -08:00
Eli Zaretskii
0e23d96a60 Fix bug #10076 with vertical cursor motion in hscrolled windows.
lisp/simple.el (line-move): Force movement by logical lines for any
 hscrolled window, not only when auto-hscroll-mode is on.
 (line-move-visual): Update doc string to that effect.
2011-11-19 21:49:56 +02:00
Paul Eggert
4c36be58ca Spelling fixes. 2011-11-17 01:09:20 -08:00
Juanma Barranquero
c701515351 Fix typos. 2011-11-15 18:37:37 +01:00
Glenn Morris
947cd66b96 * lisp/simple.el (mark-whole-buffer): Doc fix. (Bug#10023) 2011-11-14 19:38:10 -05:00
Paul Eggert
91af3942e9 Spelling fixes. 2011-11-14 15:59:56 -08:00
Chong Yidong
15de15c66d Replace fundamental-mode-hook with change-major-mode-after-body-hook.
* lisp/simple.el (fundamental-mode):
* lisp/emacs-lisp/derived.el (define-derived-mode): Revert 2010-04-28
change introducing fundamental-mode-hook.

* lisp/subr.el (change-major-mode-after-body-hook): New hook.
(run-mode-hooks): Run it.

* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Use
change-major-mode-before-body-hook.
2011-10-27 11:01:40 +08:00
Chong Yidong
06e21633a4 Fix minor mode docstrings for the new meaning of a nil ARG.
* abbrev.el (abbrev-mode):
* allout.el (allout-mode):
* autoinsert.el (auto-insert-mode):
* autoarg.el (autoarg-mode, autoarg-kp-mode):
* autorevert.el (auto-revert-mode, auto-revert-tail-mode)
(global-auto-revert-mode):
* battery.el (display-battery-mode):
* composite.el (global-auto-composition-mode)
(auto-composition-mode):
* delsel.el (delete-selection-mode):
* desktop.el (desktop-save-mode):
* dired-x.el (dired-omit-mode):
* dirtrack.el (dirtrack-mode):
* doc-view.el (doc-view-minor-mode):
* double.el (double-mode):
* electric.el (electric-indent-mode, electric-pair-mode):
* emacs-lock.el (emacs-lock-mode):
* epa-hook.el (auto-encryption-mode):
* follow.el (follow-mode):
* font-core.el (font-lock-mode):
* frame.el (auto-raise-mode, auto-lower-mode, blink-cursor-mode):
* help.el (temp-buffer-resize-mode):
* hilit-chg.el (highlight-changes-mode)
(highlight-changes-visible-mode):
* hi-lock.el (hi-lock-mode):
* hl-line.el (hl-line-mode, global-hl-line-mode):
* icomplete.el (icomplete-mode):
* ido.el (ido-everywhere):
* image-file.el (auto-image-file-mode):
* image-mode.el (image-minor-mode):
* iswitchb.el (iswitchb-mode):
* jka-cmpr-hook.el (auto-compression-mode):
* linum.el (linum-mode):
* longlines.el (longlines-mode):
* master.el (master-mode):
* mb-depth.el (minibuffer-depth-indicate-mode):
* menu-bar.el (menu-bar-mode):
* minibuf-eldef.el (minibuffer-electric-default-mode):
* mouse-sel.el (mouse-sel-mode):
* msb.el (msb-mode):
* mwheel.el (mouse-wheel-mode):
* outline.el (outline-minor-mode):
* paren.el (show-paren-mode):
* recentf.el (recentf-mode):
* reveal.el (reveal-mode, global-reveal-mode):
* rfn-eshadow.el (file-name-shadow-mode):
* ruler-mode.el (ruler-mode):
* savehist.el (savehist-mode):
* scroll-all.el (scroll-all-mode):
* scroll-bar.el (scroll-bar-mode):
* server.el (server-mode):
* shell.el (shell-dirtrack-mode):
* simple.el (auto-fill-mode, transient-mark-mode)
(visual-line-mode, overwrite-mode, binary-overwrite-mode)
(line-number-mode, column-number-mode, size-indication-mode)
(auto-save-mode, normal-erase-is-backspace-mode, visible-mode):
* strokes.el (strokes-mode):
* time.el (display-time-mode):
* t-mouse.el (gpm-mouse-mode):
* tool-bar.el (tool-bar-mode):
* tooltip.el (tooltip-mode):
* type-break.el (type-break-mode-line-message-mode)
(type-break-query-mode):
* view.el (view-mode):
* whitespace.el (whitespace-mode, whitespace-newline-mode)
(global-whitespace-mode, global-whitespace-newline-mode):
* xt-mouse.el (xterm-mouse-mode): Doc fix.

* emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Fix
autogenerated docstring.
2011-10-19 08:54:24 -04:00
Eli Zaretskii
12587bbbc6 Fix the "C-x =" display of the character info for LRE, LRO, RLE, and RLO.
lisp/simple.el (what-cursor-position): Fix the display of the
 character info for LRE, LRO, RLE, and RLO characters, by appending a
 PDF to them.
2011-10-13 13:58:54 +02:00
Chong Yidong
b2b0776e50 Rework count-words-region. New command count-words.
See discussion at http://lists.gnu.org/archive/html/emacs-devel/2011-10/msg00193.html

* lisp/simple.el (count-words-region): Always count in the region.
Report the number of lines and characters too.
(count-words): New command, which counts in the buffer if the
region is inactive, as count-words-region used to.
(count-words--message): New function.  Handle plurals.
(count-lines-region): Make it an alias for count-words-region.

* lisp/bindings.el (esc-map): Replace count-lines-region with
count-words-region.

* doc/emacs/basic.texi (Position Info): Omit page commands.  Document
count-words-region and count-words.

* doc/emacs/text.texi (Pages): Move what-page documentation here.
2011-10-08 12:37:46 -04:00
Chong Yidong
ce3cefcca3 Change scroll-up/down bindings to Emacs 24's scroll-*-command.
* cus-edit.el (custom-mode-map):
* epa.el (epa-key-list-mode-map):
* man.el (Man-mode-map):
* startup.el (splash-screen-keymap):
* simple.el (special-mode-map): Use scroll-up-command and
scroll-down-command.

* progmodes/idlw-help.el (idlwave-help-mode-map):
* progmodes/ebrowse.el (ebrowse-electric-position-mode-map):
* net/newst-plainview.el (newsticker-mode-map):
* emulation/ws-mode.el (wordstar-mode-map):
* emulation/vi.el (vi-com-map):
* calc/calc-graph.el (calc-graph-show-dumb):
* term/sun.el (terminal-init-sun):
* term/ns-win.el (global-map):
* progmodes/grep.el (grep-mode-map):
* progmodes/ebrowse.el (ebrowse-electric-list-mode-map):
* mail/rmail.el (rmail-mode-map):
* progmodes/cpp.el (cpp-edit-mode-map): Likewise.
2011-10-01 16:32:01 -04:00
Eli Zaretskii
fe5f08dd8f Fix bug #9607 with vertical motion when auto-hscroll-mode is disabled.
lisp/simple.el (line-move): If auto-hscroll-mode is disabled and the
 window is hscrolled, move by logical lines.
 (line-move-visual): Update the doc string to the above effect.
2011-09-29 16:03:42 +03:00
Stefan Monnier
88d9610cae * simple.el (delete-trailing-whitespace): Fix last change. 2011-09-28 16:50:16 -04:00
Stefan Monnier
db4e950db7 * lisp/simple.el (delete-trailing-whitespace): Document last change; simplify. 2011-09-23 11:06:14 -04:00
Peter J. Weisberg
d68e189a96 * lisp/simple.el (delete-trailing-whitespace): Also delete
extra newlines at the end of the buffer.
2011-09-23 10:56:00 -04:00
Lars Magne Ingebrigtsen
022de23e6c * simple.el (kill-line): Note effect of `show-trailing-whitespace'.
Fixes: debbugs:4538
2011-09-23 12:52:23 +02:00
Eli Zaretskii
d4ef2b502c Make "C-x =" show display properties from overlays.
lisp/simple.el (what-cursor-position): Use get-char-property-change
 and next-single-char-property-change, to be able to show display
 properties that come from overlays as well as text properties.
2011-09-22 19:49:57 +03:00
Eli Zaretskii
064f328a6a Fix bug #971 with next/previous-line when goal-column is set.
lisp/simple.el (line-move): If goal-column is set, move by logical
 lines, not by display lines.
 (next-line, previous-line, goal-column, line-move-visual): Doc fix
 to reflect the above change.
2011-09-16 20:15:16 +03:00
Reuben Thomas
fece895eff * lisp/simple.el (count-words-region): Use buffer if there's no region. 2011-09-09 23:02:06 -04:00