annotate lisp/misc.el @ 61263:56619c3aaf99

(fancy-splash-text): Shorten default text of "Emacs Tutorial" line. Also, if the current language env indicates an available tutorial file other than TUTORIAL, extract its title and append it to the line in parentheses. (fancy-splash-insert): If arg is a thunk, funcall it.
author Thien-Thi Nguyen <ttn@gnuvola.org>
date Mon, 04 Apr 2005 07:41:58 +0000
parents 7a4a7a399a2f
children 6fb026ad601f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
1 ;;; misc.el --- some nonstandard basic editing commands for Emacs
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 35
diff changeset
2
52600
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
3 ;; Copyright (C) 1989, 2003 Free Software Foundation, Inc.
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
4
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
5 ;; Maintainer: FSF
45078
829beb9a6a4b Follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 38412
diff changeset
6 ;; Keywords: convenience
35
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
35
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 ;; any later version.
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 ;; GNU General Public License for more details.
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 845
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 845
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 845
diff changeset
23 ;; Boston, MA 02111-1307, USA.
35
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 18383
diff changeset
25 ;;; Commentary:
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 18383
diff changeset
26
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
27 ;;; Code:
35
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29 (defun copy-from-above-command (&optional arg)
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30 "Copy characters from previous nonblank line, starting just above point.
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31 Copy ARG characters, but not past the end of that line.
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 If no argument given, copy the entire rest of the line.
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 The characters copied are inserted in the buffer before point."
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 (interactive "P")
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35 (let ((cc (current-column))
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 n
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 (string ""))
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 (save-excursion
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 (beginning-of-line)
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 (backward-char 1)
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 (skip-chars-backward "\ \t\n")
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 (move-to-column cc)
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 ;; Default is enough to copy the whole rest of the line.
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 (setq n (if arg (prefix-numeric-value arg) (point-max)))
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 ;; If current column winds up in middle of a tab,
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 ;; copy appropriate number of "virtual" space chars.
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 (if (< cc (current-column))
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 (if (= (preceding-char) ?\t)
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 (progn
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 (setq string (make-string (min n (- (current-column) cc)) ?\ ))
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51 (setq n (- n (min n (- (current-column) cc)))))
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 ;; In middle of ctl char => copy that whole char.
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 (backward-char 1)))
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54 (setq string (concat string
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 (buffer-substring
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 (point)
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57 (min (save-excursion (end-of-line) (point))
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 (+ n (point)))))))
63b375f17a65 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59 (insert string)))
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 35
diff changeset
60
52600
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
61 ;; Variation of `zap-to-char'.
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
62
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
63 (defun zap-up-to-char (arg char)
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
64 "Kill up to, but not including ARG'th occurrence of CHAR.
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
65 Case is ignored if `case-fold-search' is non-nil in the current buffer.
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
66 Goes backward if ARG is negative; error if CHAR not found.
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
67 Ignores CHAR at point."
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
68 (interactive "p\ncZap up to char: ")
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
69 (let ((direction (if (>= arg 0) 1 -1)))
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
70 (kill-region (point)
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
71 (progn
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
72 (forward-char direction)
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
73 (unwind-protect
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
74 (search-forward (char-to-string char) nil nil arg)
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
75 (backward-char direction))
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
76 (point)))))
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
77
51340
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
78 ;; These were added with an eye to making possible a more CCA-compatible
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
79 ;; command set; but that turned out not to be interesting.
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
80
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
81 (defun mark-beginning-of-buffer ()
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
82 "Set mark at the beginning of the buffer."
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
83 (interactive)
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
84 (push-mark (point-min)))
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
85
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
86 (defun mark-end-of-buffer ()
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
87 "Set mark at the end of the buffer."
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
88 (interactive)
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
89 (push-mark (point-max)))
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
90
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
91 (defun upcase-char (arg)
52600
7a4a7a399a2f (upcase-char): Fix docstring.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
92 "Uppercasify ARG chars starting from point. Point doesn't move."
51340
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
93 (interactive "p")
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
94 (save-excursion
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
95 (upcase-region (point) (progn (forward-char arg) (point)))))
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
96
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
97 (defun forward-to-word (arg)
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
98 "Move forward until encountering the beginning of a word.
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
99 With argument, do this that many times."
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
100 (interactive "p")
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
101 (or (re-search-forward (if (> arg 0) "\\W\\b" "\\b\\W") nil t arg)
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
102 (goto-char (if (> arg 0) (point-max) (point-min)))))
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
103
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
104 (defun backward-to-word (arg)
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
105 "Move backward until encountering the end of a word.
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
106 With argument, do this that many times."
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
107 (interactive "p")
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
108 (forward-to-word (- arg)))
bd66b46adcc8 (mark-beginning-of-buffer, mark-end-of-buffer, upcase-char, forward-to-word,
Juanma Barranquero <lekktu@gmail.com>
parents: 45078
diff changeset
109
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
110 (provide 'misc)
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
111
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51340
diff changeset
112 ;;; arch-tag: 908f7884-c19e-4388-920c-9cfa425e449b
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 35
diff changeset
113 ;;; misc.el ends here