annotate lisp/novice.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents 1d1d5d9bd884
children 26c02ba5ddb4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 37899
diff changeset
1 ;;; novice.el --- handling of disabled commands ("novice mode") for Emacs
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 282
diff changeset
2
74442
b2e5081b9320 Update copyright years.
Glenn Morris <rgm@gnu.org>
parents: 74240
diff changeset
3 ;; Copyright (C) 1985, 1986, 1987, 1994, 2001, 2002, 2003, 2004,
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 106020
diff changeset
4 ;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
845
213978acbc1e entered into RCS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 814
diff changeset
5
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
6 ;; Maintainer: FSF
814
38b2499cb3e9 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 807
diff changeset
7 ;; Keywords: internal, help
807
4f28bd14272c *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 659
diff changeset
8
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
10
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
13 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
14 ;; (at your option) any later version.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
15
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
20
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 87649
diff changeset
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
23
2308
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2232
diff changeset
24 ;;; Commentary:
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2232
diff changeset
25
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2232
diff changeset
26 ;; This mode provides a hook which is, by default, attached to various
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2232
diff changeset
27 ;; putatively dangerous commands in a (probably futile) attempt to
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2232
diff changeset
28 ;; prevent lusers from shooting themselves in the feet.
f287613dfc28 Added or corrected Commentary sections
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2232
diff changeset
29
2232
4f9d60f7de9d Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 845
diff changeset
30 ;;; Code:
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
31
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
32 ;; This function is called (by autoloading)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
33 ;; to handle any disabled command.
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
34 ;; The command is found in this-command
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
35 ;; and the keys are returned by (this-command-keys).
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
36
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
37 (eval-when-compile (require 'cl))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
38
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 36
diff changeset
39 ;;;###autoload
56623
c8c558c4f4a7 (disabled-command-function): New variable renamed from
Luc Teirlinck <teirllm@auburn.edu>
parents: 56569
diff changeset
40 (defvar disabled-command-function 'disabled-command-function
16649
8a01398a26e6 (disabled-command-hook): Use `defvar' and add documentation string.
Erik Naggum <erik@naggum.no>
parents: 14169
diff changeset
41 "Function to call to handle disabled commands.
8a01398a26e6 (disabled-command-hook): Use `defvar' and add documentation string.
Erik Naggum <erik@naggum.no>
parents: 14169
diff changeset
42 If nil, the feature is disabled, i.e., all commands work normally.")
268
2dd411fe2f72 *** empty log message ***
Brian Preble <rassilon@gnu.org>
parents: 256
diff changeset
43
60100
3fbab2787d99 (disabled-command-hook): Autoload the defalias
Richard M. Stallman <rms@gnu.org>
parents: 59996
diff changeset
44 ;;;###autoload
64513
d96725e9e9a8 (disabled-command-hook): Declare it with `define-obsolete-variable-alias'.
Juanma Barranquero <lekktu@gmail.com>
parents: 64091
diff changeset
45 (define-obsolete-variable-alias 'disabled-command-hook 'disabled-command-function "22.1")
56623
c8c558c4f4a7 (disabled-command-function): New variable renamed from
Luc Teirlinck <teirllm@auburn.edu>
parents: 56569
diff changeset
46
72718
240ffd11cdc0 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
47 ;; It is ok here to assume that this-command is a symbol
240ffd11cdc0 Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
48 ;; because we won't get called otherwise.
282
341f07a24b10 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 268
diff changeset
49 ;;;###autoload
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
50 (defun disabled-command-function (&optional cmd keys)
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
51 (unless cmd (setq cmd this-command))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
52 (unless keys (setq keys (this-command-keys)))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
53 (let (char)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
54 (save-window-excursion
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
55 (help-setup-xref (list 'disabled-command-function cmd keys) nil)
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
56 (with-output-to-temp-buffer "*Disabled Command*" ;; (help-buffer)
10695
1a97dea087d1 (disabled-command-hook): Recognize ESC x as well as M-x.
Karl Heuer <kwzh@gnu.org>
parents: 10216
diff changeset
57 (if (or (eq (aref keys 0)
1a97dea087d1 (disabled-command-hook): Recognize ESC x as well as M-x.
Karl Heuer <kwzh@gnu.org>
parents: 10216
diff changeset
58 (if (stringp keys)
1a97dea087d1 (disabled-command-hook): Recognize ESC x as well as M-x.
Karl Heuer <kwzh@gnu.org>
parents: 10216
diff changeset
59 (aref "\M-x" 0)
1a97dea087d1 (disabled-command-hook): Recognize ESC x as well as M-x.
Karl Heuer <kwzh@gnu.org>
parents: 10216
diff changeset
60 ?\M-x))
1a97dea087d1 (disabled-command-hook): Recognize ESC x as well as M-x.
Karl Heuer <kwzh@gnu.org>
parents: 10216
diff changeset
61 (and (>= (length keys) 2)
1a97dea087d1 (disabled-command-hook): Recognize ESC x as well as M-x.
Karl Heuer <kwzh@gnu.org>
parents: 10216
diff changeset
62 (eq (aref keys 0) meta-prefix-char)
1a97dea087d1 (disabled-command-hook): Recognize ESC x as well as M-x.
Karl Heuer <kwzh@gnu.org>
parents: 10216
diff changeset
63 (eq (aref keys 1) ?x)))
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
64 (princ (format "You have invoked the disabled command %s.\n" cmd))
43077
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
65 (princ (format "You have typed %s, invoking disabled command %s.\n"
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
66 (key-description keys) cmd)))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
67 ;; Print any special message saying why the command is disabled.
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
68 (if (stringp (get cmd 'disabled))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
69 (princ (get cmd 'disabled))
43077
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
70 (princ "It is disabled because new users often find it confusing.\n")
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
71 (princ "Here's the first part of its description:\n\n")
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
72 ;; Keep only the first paragraph of the documentation.
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
73 (with-current-buffer "*Disabled Command*" ;; standard-output
43077
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
74 (goto-char (point-max))
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
75 (let ((start (point)))
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
76 (save-excursion
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
77 (princ (or (condition-case ()
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
78 (documentation cmd)
43077
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
79 (error nil))
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
80 "<< not documented >>")))
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
81 (if (search-forward "\n\n" nil t)
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
82 (delete-region (match-beginning 0) (point-max)))
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
83 (goto-char (point-max))
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
84 (indent-rigidly start (point) 3))))
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
85 (princ "\n\nDo you want to use this command anyway?\n\n")
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
86 (princ "You can now type
44052
28bd7ea81b05 (disabled-command-hook): Clarify output text to match prompt.
Pavel Janík <Pavel@Janik.cz>
parents: 43077
diff changeset
87 y to try it and enable it (no questions if you use it again).
28bd7ea81b05 (disabled-command-hook): Clarify output text to match prompt.
Pavel Janík <Pavel@Janik.cz>
parents: 43077
diff changeset
88 n to cancel--don't try the command, and it remains disabled.
43077
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
89 SPC to try the command just this once, but leave it disabled.
1983a485a15f (disabled-command-hook): Clarify output text.
Richard M. Stallman <rms@gnu.org>
parents: 43059
diff changeset
90 ! to try it, and enable all disabled commands for this session only.")
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
91 ;; Redundant since with-output-to-temp-buffer will do it anyway.
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
92 ;; (with-current-buffer standard-output
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
93 ;; (help-mode))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
94 )
81755
0e1206aba797 (disabled-command-function): Fit window to buffer to
Martin Rudalics <rudalics@gmx.at>
parents: 75347
diff changeset
95 (fit-window-to-buffer (get-buffer-window "*Disabled Command*"))
44052
28bd7ea81b05 (disabled-command-hook): Clarify output text to match prompt.
Pavel Janík <Pavel@Janik.cz>
parents: 43077
diff changeset
96 (message "Type y, n, ! or SPC (the space bar): ")
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
97 (let ((cursor-in-echo-area t))
60460
7da5648c2f7d (disabled-command-function): Output in *Disabled Command*.
Richard M. Stallman <rms@gnu.org>
parents: 60100
diff changeset
98 (while (progn (setq char (read-event))
7da5648c2f7d (disabled-command-function): Output in *Disabled Command*.
Richard M. Stallman <rms@gnu.org>
parents: 60100
diff changeset
99 (or (not (numberp char))
7da5648c2f7d (disabled-command-function): Output in *Disabled Command*.
Richard M. Stallman <rms@gnu.org>
parents: 60100
diff changeset
100 (not (memq (downcase char)
74240
9f4b4800edc6 (disabled-command-function): "?\ " -> "?\s".
Juanma Barranquero <lekktu@gmail.com>
parents: 72718
diff changeset
101 '(?! ?y ?n ?\s ?\C-g)))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
102 (ding)
44052
28bd7ea81b05 (disabled-command-hook): Clarify output text to match prompt.
Pavel Janík <Pavel@Janik.cz>
parents: 43077
diff changeset
103 (message "Please type y, n, ! or SPC (the space bar): "))))
60460
7da5648c2f7d (disabled-command-function): Output in *Disabled Command*.
Richard M. Stallman <rms@gnu.org>
parents: 60100
diff changeset
104 (setq char (downcase char))
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
105 (case char
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
106 (?\C-g (setq quit-flag t))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
107 (?! (setq disabled-command-function nil))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
108 (?y
7173
b6a358a4bdfb (disabled-command-hook): Try to enable command in user
Richard M. Stallman <rms@gnu.org>
parents: 5927
diff changeset
109 (if (and user-init-file
b6a358a4bdfb (disabled-command-hook): Try to enable command in user
Richard M. Stallman <rms@gnu.org>
parents: 5927
diff changeset
110 (not (string= "" user-init-file))
b6a358a4bdfb (disabled-command-hook): Try to enable command in user
Richard M. Stallman <rms@gnu.org>
parents: 5927
diff changeset
111 (y-or-n-p "Enable command for future editing sessions also? "))
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
112 (enable-command cmd)
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
113 (put cmd 'disabled nil)))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
114 (?n nil)
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
115 (t (call-interactively cmd)))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
116
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
117 (defun en/disable-command (command disable)
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
118 (unless (commandp command)
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
119 (error "Invalid command name `%s'" command))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
120 (put command 'disabled disable)
43059
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
121 (let ((init-file user-init-file)
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
122 (default-init-file
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
123 (if (eq system-type 'ms-dos) "~/_emacs" "~/.emacs")))
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
124 (unless init-file
43059
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
125 (if (or (file-exists-p default-init-file)
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
126 (and (eq system-type 'windows-nt)
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
127 (file-exists-p "~/_emacs")))
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
128 ;; Started with -q, i.e. the file containing
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
129 ;; enabled/disabled commands hasn't been read. Saving
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
130 ;; settings there would overwrite other settings.
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
131 (error "Saving settings from \"emacs -q\" would overwrite existing customizations"))
0a91a443d091 (enable-command): If Emacs was invoked as "emacs -q",
Eli Zaretskii <eliz@gnu.org>
parents: 38412
diff changeset
132 (setq init-file default-init-file)
37899
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
133 (if (and (not (file-exists-p init-file))
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
134 (eq system-type 'windows-nt)
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
135 (file-exists-p "~/_emacs"))
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
136 (setq init-file "~/_emacs")))
105994
009383a57ce8 * x-dnd.el (x-dnd-maybe-call-test-function):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 100908
diff changeset
137 (with-current-buffer (find-file-noselect
009383a57ce8 * x-dnd.el (x-dnd-maybe-call-test-function):
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 100908
diff changeset
138 (substitute-in-file-name init-file))
37899
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
139 (goto-char (point-min))
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
140 (if (search-forward (concat "(put '" (symbol-name command) " ") nil t)
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
141 (delete-region
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
142 (progn (beginning-of-line) (point))
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
143 (progn (forward-line 1) (point))))
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
144 ;; Explicitly enable, in case this command is disabled by default
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
145 ;; or in case the code we deleted was actually a comment.
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
146 (goto-char (point-max))
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
147 (unless (bolp) (newline))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
148 (insert "(put '" (symbol-name command) " 'disabled "
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
149 (symbol-name disable) ")\n")
37899
3c9f67eea2f9 (enable-command): If user-init-file is nil or does not
Eli Zaretskii <eliz@gnu.org>
parents: 18383
diff changeset
150 (save-buffer))))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
151
256
7e4c7ef44243 *** empty log message ***
Roland McGrath <roland@gnu.org>
parents: 36
diff changeset
152 ;;;###autoload
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
153 (defun enable-command (command)
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
154 "Allow COMMAND to be executed without special confirmation from now on.
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
155 COMMAND must be a symbol.
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
156 This command alters the user's .emacs file so that this will apply
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
157 to future sessions."
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
158 (interactive "CEnable command: ")
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
159 (en/disable-command command nil))
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
160
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
161 ;;;###autoload
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
162 (defun disable-command (command)
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
163 "Require special confirmation to execute COMMAND from now on.
56569
a6cb62c42cec (enable-command, disable-command): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
164 COMMAND must be a symbol.
a6cb62c42cec (enable-command, disable-command): Doc fixes.
Luc Teirlinck <teirllm@auburn.edu>
parents: 52401
diff changeset
165 This command alters the user's .emacs file so that this will apply
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
166 to future sessions."
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
167 (interactive "CDisable command: ")
106020
dd16af77622d (disabled-command-function): Add useful args.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 105994
diff changeset
168 (en/disable-command command t))
36
9697c13298e5 Initial revision
Joseph Arceneaux <jla@gnu.org>
parents:
diff changeset
169
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 16675
diff changeset
170 (provide 'novice)
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 16675
diff changeset
171
57096
1ab0f10dbd94 (disabled-command-hook): Use shorthand for obsolescence.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 56623
diff changeset
172 ;; arch-tag: f83c0f96-497e-4db6-a430-8703716c6dd9
659
505130d1ddf8 *** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 282
diff changeset
173 ;;; novice.el ends here