comparison man/lispref/commands.texi @ 5791:9fae6227ede5

Silence texinfo 5.2 warnings, primarily by adding next, prev, and up pointers to all nodes. See xemacs-patches message with ID <5315f7bf.sHpFD7lXYR05GH6E%james@xemacs.org>.
author Jerry James <james@xemacs.org>
date Thu, 27 Mar 2014 08:59:03 -0600
parents 62b9ef1ed4ac
children
comparison
equal deleted inserted replaced
5790:dcf9067f26bb 5791:9fae6227ede5
28 * Disabling Commands:: How the command loop handles disabled commands. 28 * Disabling Commands:: How the command loop handles disabled commands.
29 * Command History:: How the command history is set up, and how accessed. 29 * Command History:: How the command history is set up, and how accessed.
30 * Keyboard Macros:: How keyboard macros are implemented. 30 * Keyboard Macros:: How keyboard macros are implemented.
31 @end menu 31 @end menu
32 32
33 @node Command Overview 33 @node Command Overview, Defining Commands, Command Loop, Command Loop
34 @section Command Loop Overview 34 @section Command Loop Overview
35 35
36 The command loop in XEmacs is a standard event loop, reading events 36 The command loop in XEmacs is a standard event loop, reading events
37 one at a time with @code{next-event} and handling them with 37 one at a time with @code{next-event} and handling them with
38 @code{dispatch-event}. An event is typically a single user action, such 38 @code{dispatch-event}. An event is typically a single user action, such
92 Quitting is suppressed while running @code{pre-command-hook} and 92 Quitting is suppressed while running @code{pre-command-hook} and
93 @code{post-command-hook}. If an error happens while executing one of 93 @code{post-command-hook}. If an error happens while executing one of
94 these hooks, it terminates execution of the hook, but that is all it 94 these hooks, it terminates execution of the hook, but that is all it
95 does. 95 does.
96 96
97 @node Defining Commands 97 @node Defining Commands, Interactive Call, Command Overview, Command Loop
98 @section Defining Commands 98 @section Defining Commands
99 @cindex defining commands 99 @cindex defining commands
100 @cindex commands, defining 100 @cindex commands, defining
101 @cindex functions, making them interactive 101 @cindex functions, making them interactive
102 @cindex interactive function 102 @cindex interactive function
112 * Interactive Codes:: The standard letter-codes for reading arguments 112 * Interactive Codes:: The standard letter-codes for reading arguments
113 in various ways. 113 in various ways.
114 * Interactive Examples:: Examples of how to read interactive arguments. 114 * Interactive Examples:: Examples of how to read interactive arguments.
115 @end menu 115 @end menu
116 116
117 @node Using Interactive 117 @node Using Interactive, Interactive Codes, Defining Commands, Defining Commands
118 @subsection Using @code{interactive} 118 @subsection Using @code{interactive}
119 119
120 This section describes how to write the @code{interactive} form that 120 This section describes how to write the @code{interactive} form that
121 makes a Lisp function an interactively-callable command. 121 makes a Lisp function an interactively-callable command.
122 122
244 which may be any funcallable object. The specification will be returned 244 which may be any funcallable object. The specification will be returned
245 as the list of the symbol @code{interactive} and the specs. If 245 as the list of the symbol @code{interactive} and the specs. If
246 @var{function} is not interactive, @code{nil} will be returned. 246 @var{function} is not interactive, @code{nil} will be returned.
247 @end defun 247 @end defun
248 248
249 @node Interactive Codes 249 @node Interactive Codes, Interactive Examples, Using Interactive, Defining Commands
250 @subsection Code Characters for @code{interactive} 250 @subsection Code Characters for @code{interactive}
251 @cindex interactive code description 251 @cindex interactive code description
252 @cindex description for interactive codes 252 @cindex description for interactive codes
253 @cindex codes, interactive, description of 253 @cindex codes, interactive, description of
254 @cindex characters for interactive codes 254 @cindex characters for interactive codes
424 @cindex evaluated expression argument 424 @cindex evaluated expression argument
425 A Lisp form is read as with @kbd{x}, but then evaluated so that its 425 A Lisp form is read as with @kbd{x}, but then evaluated so that its
426 value becomes the argument for the command. Prompt. 426 value becomes the argument for the command. Prompt.
427 @end table 427 @end table
428 428
429 @node Interactive Examples 429 @node Interactive Examples, , Interactive Codes, Defining Commands
430 @subsection Examples of Using @code{interactive} 430 @subsection Examples of Using @code{interactive}
431 @cindex examples of using @code{interactive} 431 @cindex examples of using @code{interactive}
432 @cindex @code{interactive}, examples of using 432 @cindex @code{interactive}, examples of using
433 433
434 Here are some examples of @code{interactive}: 434 Here are some examples of @code{interactive}:
474 (three-b "*scratch*" "declarations.texi" "*mail*") 474 (three-b "*scratch*" "declarations.texi" "*mail*")
475 @result{} nil 475 @result{} nil
476 @end group 476 @end group
477 @end example 477 @end example
478 478
479 @node Interactive Call 479 @node Interactive Call, Command Loop Info, Defining Commands, Command Loop
480 @section Interactive Call 480 @section Interactive Call
481 @cindex interactive call 481 @cindex interactive call
482 482
483 After the command loop has translated a key sequence into a 483 After the command loop has translated a key sequence into a
484 definition, it invokes that definition using the function 484 definition, it invokes that definition using the function
626 @result{} (nil t) 626 @result{} (nil t)
627 @end group 627 @end group
628 @end example 628 @end example
629 @end defun 629 @end defun
630 630
631 @node Command Loop Info 631 @node Command Loop Info, Events, Interactive Call, Command Loop
632 @section Information from the Command Loop 632 @section Information from the Command Loop
633 633
634 The editor command loop sets several Lisp variables to keep status 634 The editor command loop sets several Lisp variables to keep status
635 records for itself and for commands that are run. 635 records for itself and for commands that are run.
636 636
769 in the same command will be echoed as well. 769 in the same command will be echoed as well.
770 770
771 If the value is zero, then command input is not echoed. 771 If the value is zero, then command input is not echoed.
772 @end defvar 772 @end defvar
773 773
774 @node Events 774 @node Events, Reading Input, Command Loop Info, Command Loop
775 @section Events 775 @section Events
776 @cindex events 776 @cindex events
777 @cindex input events 777 @cindex input events
778 778
779 The XEmacs command loop reads a sequence of @dfn{events} that 779 The XEmacs command loop reads a sequence of @dfn{events} that
807 * Working With Events:: Creating, copying, and destroying events. 807 * Working With Events:: Creating, copying, and destroying events.
808 * Converting Events:: Converting between events, keys, and 808 * Converting Events:: Converting between events, keys, and
809 characters. 809 characters.
810 @end menu 810 @end menu
811 811
812 @node Event Types 812 @node Event Types, Event Contents, Events, Events
813 @subsection Event Types 813 @subsection Event Types
814 814
815 Events represent keyboard or mouse activity or status changes of various 815 Events represent keyboard or mouse activity or status changes of various
816 sorts, such as process input being available or a timeout being triggered. 816 sorts, such as process input being available or a timeout being triggered.
817 The different event types are as follows: 817 The different event types are as follows:
854 is sometimes placed in the event queue when a magic event is processed. 854 is sometimes placed in the event queue when a magic event is processed.
855 This kind of event should generally just be passed off to 855 This kind of event should generally just be passed off to
856 @code{dispatch-event}. @xref{Dispatching an Event}. 856 @code{dispatch-event}. @xref{Dispatching an Event}.
857 @end table 857 @end table
858 858
859 @node Event Contents 859 @node Event Contents, Event Predicates, Event Types, Events
860 @subsection Contents of the Different Types of Events 860 @subsection Contents of the Different Types of Events
861 861
862 Every event, no matter what type it is, contains a timestamp (which is 862 Every event, no matter what type it is, contains a timestamp (which is
863 typically an offset in milliseconds from when the X server was started) 863 typically an offset in milliseconds from when the X server was started)
864 indicating when the event occurred. In addition, many events contain 864 indicating when the event occurred. In addition, many events contain
997 @item magic 997 @item magic
998 Some window-system-specific event has occurred. 998 Some window-system-specific event has occurred.
999 @end table 999 @end table
1000 @end defun 1000 @end defun
1001 1001
1002 @node Event Predicates 1002 @node Event Predicates, Accessing Mouse Event Positions, Event Contents, Events
1003 @subsection Event Predicates 1003 @subsection Event Predicates
1004 1004
1005 The following predicates return whether an object is an event of a 1005 The following predicates return whether an object is an event of a
1006 particular type. 1006 particular type.
1007 1007
1049 1049
1050 @defun event-live-p object 1050 @defun event-live-p object
1051 This is true if @var{object} is any event that has not been deallocated. 1051 This is true if @var{object} is any event that has not been deallocated.
1052 @end defun 1052 @end defun
1053 1053
1054 @node Accessing Mouse Event Positions 1054 @node Accessing Mouse Event Positions, Accessing Other Event Info, Event Predicates, Events
1055 @subsection Accessing the Position of a Mouse Event 1055 @subsection Accessing the Position of a Mouse Event
1056 1056
1057 Unlike other events, mouse events (i.e. motion, button-press, 1057 Unlike other events, mouse events (i.e. motion, button-press,
1058 button-release, and drag or drop type misc-user events) occur in a 1058 button-release, and drag or drop type misc-user events) occur in a
1059 particular location on the screen. Many primitives are provided for 1059 particular location on the screen. Many primitives are provided for
1067 * Event Glyph Position Info:: 1067 * Event Glyph Position Info::
1068 * Event Toolbar Position Info:: 1068 * Event Toolbar Position Info::
1069 * Other Event Position Info:: 1069 * Other Event Position Info::
1070 @end menu 1070 @end menu
1071 1071
1072 @node Frame-Level Event Position Info 1072 @node Frame-Level Event Position Info, Window-Level Event Position Info, Accessing Mouse Event Positions, Accessing Mouse Event Positions
1073 @subsubsection Frame-Level Event Position Info 1073 @subsubsection Frame-Level Event Position Info
1074 1074
1075 The following functions return frame-level information about where 1075 The following functions return frame-level information about where
1076 a mouse event occurred. 1076 a mouse event occurred.
1077 1077
1091 This function returns the Y position in pixels of the given mouse event. 1091 This function returns the Y position in pixels of the given mouse event.
1092 The value returned is relative to the frame the event occurred in. 1092 The value returned is relative to the frame the event occurred in.
1093 This will signal an error if the event is not a mouse event. 1093 This will signal an error if the event is not a mouse event.
1094 @end defun 1094 @end defun
1095 1095
1096 @node Window-Level Event Position Info 1096 @node Window-Level Event Position Info, Event Text Position Info, Frame-Level Event Position Info, Accessing Mouse Event Positions
1097 @subsubsection Window-Level Event Position Info 1097 @subsubsection Window-Level Event Position Info
1098 1098
1099 The following functions return window-level information about where 1099 The following functions return window-level information about where
1100 a mouse event occurred. 1100 a mouse event occurred.
1101 1101
1127 The value returned is relative to the window the event occurred in. 1127 The value returned is relative to the window the event occurred in.
1128 This will signal an error if the event is not a mouse-motion, button-press, 1128 This will signal an error if the event is not a mouse-motion, button-press,
1129 button-release, or misc-user event. 1129 button-release, or misc-user event.
1130 @end defun 1130 @end defun
1131 1131
1132 @node Event Text Position Info 1132 @node Event Text Position Info, Event Glyph Position Info, Window-Level Event Position Info, Accessing Mouse Event Positions
1133 @subsubsection Event Text Position Info 1133 @subsubsection Event Text Position Info
1134 1134
1135 The following functions return information about the text (including the 1135 The following functions return information about the text (including the
1136 modeline) that a mouse event occurred over or near. 1136 modeline) that a mouse event occurred over or near.
1137 1137
1179 that window, the closest point is the end of the line containing the Y 1179 that window, the closest point is the end of the line containing the Y
1180 position. If the Y pixel position is above a window, 0 is returned. If 1180 position. If the Y pixel position is above a window, 0 is returned. If
1181 it is below a window, the value of @code{(window-end)} is returned. 1181 it is below a window, the value of @code{(window-end)} is returned.
1182 @end defun 1182 @end defun
1183 1183
1184 @node Event Glyph Position Info 1184 @node Event Glyph Position Info, Event Toolbar Position Info, Event Text Position Info, Accessing Mouse Event Positions
1185 @subsubsection Event Glyph Position Info 1185 @subsubsection Event Glyph Position Info
1186 1186
1187 The following functions return information about the glyph (if any) that 1187 The following functions return information about the glyph (if any) that
1188 a mouse event occurred over. 1188 a mouse event occurred over.
1189 1189
1210 glyph, this function returns the Y position of the pointer relative to 1210 glyph, this function returns the Y position of the pointer relative to
1211 the upper left of the glyph. If the event is not over a glyph, it returns 1211 the upper left of the glyph. If the event is not over a glyph, it returns
1212 @code{nil}. 1212 @code{nil}.
1213 @end defun 1213 @end defun
1214 1214
1215 @node Event Toolbar Position Info 1215 @node Event Toolbar Position Info, Other Event Position Info, Event Glyph Position Info, Accessing Mouse Event Positions
1216 @subsubsection Event Toolbar Position Info 1216 @subsubsection Event Toolbar Position Info
1217 1217
1218 @defun event-over-toolbar-p event 1218 @defun event-over-toolbar-p event
1219 Given a mouse-motion, button-press, button-release, or misc-user event, this 1219 Given a mouse-motion, button-press, button-release, or misc-user event, this
1220 function returns @code{t} if the event is over a toolbar. Otherwise, 1220 function returns @code{t} if the event is over a toolbar. Otherwise,
1225 If the given mouse-motion, button-press, button-release, or misc-user event 1225 If the given mouse-motion, button-press, button-release, or misc-user event
1226 happened on top of a toolbar button, this function returns the button. 1226 happened on top of a toolbar button, this function returns the button.
1227 Otherwise, @code{nil} is returned. 1227 Otherwise, @code{nil} is returned.
1228 @end defun 1228 @end defun
1229 1229
1230 @node Other Event Position Info 1230 @node Other Event Position Info, , Event Toolbar Position Info, Accessing Mouse Event Positions
1231 @subsubsection Other Event Position Info 1231 @subsubsection Other Event Position Info
1232 1232
1233 @defun event-over-border-p event 1233 @defun event-over-border-p event
1234 Given a mouse-motion, button-press, button-release, or misc-user event, this 1234 Given a mouse-motion, button-press, button-release, or misc-user event, this
1235 function returns @code{t} if the event is over an internal toolbar. 1235 function returns @code{t} if the event is over an internal toolbar.
1236 Otherwise, @code{nil} is returned. 1236 Otherwise, @code{nil} is returned.
1237 @end defun 1237 @end defun
1238 1238
1239 @node Accessing Other Event Info 1239 @node Accessing Other Event Info, Working With Events, Accessing Mouse Event Positions, Events
1240 @subsection Accessing the Other Contents of Events 1240 @subsection Accessing the Other Contents of Events
1241 1241
1242 The following functions allow access to the contents of events other than 1242 The following functions allow access to the contents of events other than
1243 the position info described in the previous section. 1243 the position info described in the previous section.
1244 1244
1282 1282
1283 @defun event-process event 1283 @defun event-process event
1284 This function returns the process of the given process event. 1284 This function returns the process of the given process event.
1285 @end defun 1285 @end defun
1286 1286
1287 @node Working With Events 1287 @node Working With Events, Converting Events, Accessing Other Event Info, Events
1288 @subsection Working With Events 1288 @subsection Working With Events
1289 1289
1290 XEmacs provides primitives for creating, copying, and destroying event 1290 XEmacs provides primitives for creating, copying, and destroying event
1291 objects. Many functions that return events take an event object as an 1291 objects. Many functions that return events take an event object as an
1292 argument and fill in the fields of this event; or they make accept 1292 argument and fill in the fields of this event; or they make accept
1444 objects are garbage-collected like all other objects; however, it may be 1444 objects are garbage-collected like all other objects; however, it may be
1445 more efficient to explicitly deallocate events when you are sure that 1445 more efficient to explicitly deallocate events when you are sure that
1446 it is safe to do so. 1446 it is safe to do so.
1447 @end defun 1447 @end defun
1448 1448
1449 @node Converting Events 1449 @node Converting Events, , Working With Events, Events
1450 @subsection Converting Events 1450 @subsection Converting Events
1451 1451
1452 XEmacs provides some auxiliary functions for converting between events 1452 XEmacs provides some auxiliary functions for converting between events
1453 and other ways of representing keys. These are useful when working with 1453 and other ways of representing keys. These are useful when working with
1454 @sc{ascii} strings and with keymaps. 1454 @sc{ascii} strings and with keymaps.
1524 Given a vector of event objects, this function returns a vector of key 1524 Given a vector of event objects, this function returns a vector of key
1525 descriptors, or a string (if they all fit in the @sc{ascii} range). 1525 descriptors, or a string (if they all fit in the @sc{ascii} range).
1526 Optional arg @var{no-mice} means that button events are not allowed. 1526 Optional arg @var{no-mice} means that button events are not allowed.
1527 @end defun 1527 @end defun
1528 1528
1529 @node Reading Input 1529 @node Reading Input, Waiting, Events, Command Loop
1530 @section Reading Input 1530 @section Reading Input
1531 1531
1532 The editor command loop reads keyboard input using the function 1532 The editor command loop reads keyboard input using the function
1533 @code{next-event} and constructs key sequences out of the events using 1533 @code{next-event} and constructs key sequences out of the events using
1534 @code{dispatch-event}. Lisp programs can also use the function 1534 @code{dispatch-event}. Lisp programs can also use the function
1546 * Dispatching an Event:: What to do with an event once it has been read. 1546 * Dispatching an Event:: What to do with an event once it has been read.
1547 * Quoted Character Input:: Asking the user to specify a character. 1547 * Quoted Character Input:: Asking the user to specify a character.
1548 * Peeking and Discarding:: How to reread or throw away input events. 1548 * Peeking and Discarding:: How to reread or throw away input events.
1549 @end menu 1549 @end menu
1550 1550
1551 @node Key Sequence Input 1551 @node Key Sequence Input, Reading One Event, Reading Input, Reading Input
1552 @subsection Key Sequence Input 1552 @subsection Key Sequence Input
1553 @cindex key sequence input 1553 @cindex key sequence input
1554 1554
1555 Lisp programs can read input a key sequence at a time by calling 1555 Lisp programs can read input a key sequence at a time by calling
1556 @code{read-key-sequence}; for example, @code{describe-key} uses it to 1556 @code{read-key-sequence}; for example, @code{describe-key} uses it to
1620 If an input character is an upper-case letter and has no key binding, 1620 If an input character is an upper-case letter and has no key binding,
1621 but its lower-case equivalent has one, then @code{read-key-sequence} 1621 but its lower-case equivalent has one, then @code{read-key-sequence}
1622 converts the character to lower case. Note that @code{lookup-key} does 1622 converts the character to lower case. Note that @code{lookup-key} does
1623 not perform case conversion in this way. 1623 not perform case conversion in this way.
1624 1624
1625 @node Reading One Event 1625 @node Reading One Event, Dispatching an Event, Key Sequence Input, Reading Input
1626 @subsection Reading One Event 1626 @subsection Reading One Event
1627 1627
1628 The lowest level functions for command input are those which read a 1628 The lowest level functions for command input are those which read a
1629 single event. These functions often make a distinction between 1629 single event. These functions often make a distinction between
1630 @dfn{command events}, which are user actions (keystrokes and mouse 1630 @dfn{command events}, which are user actions (keystrokes and mouse
1691 @defun enqueue-eval-event function object 1691 @defun enqueue-eval-event function object
1692 This function adds an eval event to the back of the queue. The 1692 This function adds an eval event to the back of the queue. The
1693 eval event will be the next event read after all pending events. 1693 eval event will be the next event read after all pending events.
1694 @end defun 1694 @end defun
1695 1695
1696 @node Dispatching an Event 1696 @node Dispatching an Event, Quoted Character Input, Reading One Event, Reading Input
1697 @subsection Dispatching an Event 1697 @subsection Dispatching an Event
1698 @cindex dispatching an event 1698 @cindex dispatching an event
1699 1699
1700 @defun dispatch-event event 1700 @defun dispatch-event event
1701 Given an event object returned by @code{next-event}, this function 1701 Given an event object returned by @code{next-event}, this function
1702 executes it. This is the basic function that makes XEmacs respond to 1702 executes it. This is the basic function that makes XEmacs respond to
1703 user input; it also deals with notifications from the window system 1703 user input; it also deals with notifications from the window system
1704 (such as Expose events). 1704 (such as Expose events).
1705 @end defun 1705 @end defun
1706 1706
1707 @node Quoted Character Input 1707 @node Quoted Character Input, Peeking and Discarding, Dispatching an Event, Reading Input
1708 @subsection Quoted Character Input 1708 @subsection Quoted Character Input
1709 @cindex quoted character input 1709 @cindex quoted character input
1710 1710
1711 You can use the function @code{read-quoted-char} to ask the user to 1711 You can use the function @code{read-quoted-char} to ask the user to
1712 specify a character, and allow the user to specify a control or meta 1712 specify a character, and allow the user to specify a control or meta
1744 @end group 1744 @end group
1745 @end example 1745 @end example
1746 @end defun 1746 @end defun
1747 1747
1748 @need 2000 1748 @need 2000
1749 @node Peeking and Discarding 1749 @node Peeking and Discarding, , Quoted Character Input, Reading Input
1750 @subsection Miscellaneous Event Input Features 1750 @subsection Miscellaneous Event Input Features
1751 1751
1752 This section describes how to ``peek ahead'' at events without using 1752 This section describes how to ``peek ahead'' at events without using
1753 them up, how to check for pending input, and how to discard pending 1753 them up, how to check for pending input, and how to discard pending
1754 input. 1754 input.
1858 (discard-input)) 1858 (discard-input))
1859 @result{} nil 1859 @result{} nil
1860 @end example 1860 @end example
1861 @end defun 1861 @end defun
1862 1862
1863 @node Waiting 1863 @node Waiting, Quitting, Reading Input, Command Loop
1864 @section Waiting for Elapsed Time or Input 1864 @section Waiting for Elapsed Time or Input
1865 @cindex pausing 1865 @cindex pausing
1866 @cindex waiting 1866 @cindex waiting
1867 1867
1868 The wait functions are designed to wait for a certain amount of time 1868 The wait functions are designed to wait for a certain amount of time
1927 Use @code{sleep-for} when you wish to guarantee a delay. 1927 Use @code{sleep-for} when you wish to guarantee a delay.
1928 @end defun 1928 @end defun
1929 1929
1930 @xref{Time of Day}, for functions to get the current time. 1930 @xref{Time of Day}, for functions to get the current time.
1931 1931
1932 @node Quitting 1932 @node Quitting, Prefix Command Arguments, Waiting, Command Loop
1933 @section Quitting 1933 @section Quitting
1934 @cindex @kbd{C-g} 1934 @cindex @kbd{C-g}
1935 @cindex quitting 1935 @cindex quitting
1936 1936
1937 Typing @kbd{C-g} while a Lisp function is running causes XEmacs to 1937 Typing @kbd{C-g} while a Lisp function is running causes XEmacs to
2027 @end deffn 2027 @end deffn
2028 2028
2029 You can specify a character other than @kbd{C-g} to use for quitting. 2029 You can specify a character other than @kbd{C-g} to use for quitting.
2030 See the function @code{set-input-mode} in @ref{Terminal Input}. 2030 See the function @code{set-input-mode} in @ref{Terminal Input}.
2031 2031
2032 @node Prefix Command Arguments 2032 @node Prefix Command Arguments, Recursive Editing, Quitting, Command Loop
2033 @section Prefix Command Arguments 2033 @section Prefix Command Arguments
2034 @cindex prefix argument 2034 @cindex prefix argument
2035 @cindex raw prefix argument 2035 @cindex raw prefix argument
2036 @cindex numeric prefix argument 2036 @cindex numeric prefix argument
2037 2037
2169 argument @var{arg} is the raw prefix argument as it was before this 2169 argument @var{arg} is the raw prefix argument as it was before this
2170 command; its value is negated to form the new prefix argument. Don't 2170 command; its value is negated to form the new prefix argument. Don't
2171 call this command yourself unless you know what you are doing. 2171 call this command yourself unless you know what you are doing.
2172 @end deffn 2172 @end deffn
2173 2173
2174 @node Recursive Editing 2174 @node Recursive Editing, Disabling Commands, Prefix Command Arguments, Command Loop
2175 @section Recursive Editing 2175 @section Recursive Editing
2176 @cindex recursive command loop 2176 @cindex recursive command loop
2177 @cindex recursive editing level 2177 @cindex recursive editing level
2178 @cindex command loop, recursive 2178 @cindex command loop, recursive
2179 2179
2283 @defun recursion-depth 2283 @defun recursion-depth
2284 This function returns the current depth of recursive edits. When no 2284 This function returns the current depth of recursive edits. When no
2285 recursive edit is active, it returns 0. 2285 recursive edit is active, it returns 0.
2286 @end defun 2286 @end defun
2287 2287
2288 @node Disabling Commands 2288 @node Disabling Commands, Command History, Recursive Editing, Command Loop
2289 @section Disabling Commands 2289 @section Disabling Commands
2290 @cindex disabled command 2290 @cindex disabled command
2291 2291
2292 @dfn{Disabling a command} marks the command as requiring user 2292 @dfn{Disabling a command} marks the command as requiring user
2293 confirmation before it can be executed. Disabling is used for commands 2293 confirmation before it can be executed. Disabling is used for commands
2341 2341
2342 By default, @code{disabled-command-hook} contains a function that asks 2342 By default, @code{disabled-command-hook} contains a function that asks
2343 the user whether to proceed. 2343 the user whether to proceed.
2344 @end defvar 2344 @end defvar
2345 2345
2346 @node Command History 2346 @node Command History, Keyboard Macros, Disabling Commands, Command Loop
2347 @section Command History 2347 @section Command History
2348 @cindex command history 2348 @cindex command history
2349 @cindex complex command 2349 @cindex complex command
2350 @cindex history of commands 2350 @cindex history of commands
2351 2351
2385 @code{list-command-history} are described in the user manual 2385 @code{list-command-history} are described in the user manual
2386 (@pxref{Repetition,,, xemacs, The XEmacs User's Manual}). Within the 2386 (@pxref{Repetition,,, xemacs, The XEmacs User's Manual}). Within the
2387 minibuffer, the history commands used are the same ones available in any 2387 minibuffer, the history commands used are the same ones available in any
2388 minibuffer. 2388 minibuffer.
2389 2389
2390 @node Keyboard Macros 2390 @node Keyboard Macros, , Command History, Command Loop
2391 @section Keyboard Macros 2391 @section Keyboard Macros
2392 @cindex keyboard macros 2392 @cindex keyboard macros
2393 2393
2394 A @dfn{keyboard macro} is a canned sequence of input events that can 2394 A @dfn{keyboard macro} is a canned sequence of input events that can
2395 be considered a command and made the definition of a key. The Lisp 2395 be considered a command and made the definition of a key. The Lisp