aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorMiles Bader2007-10-15 05:03:21 +0000
committerMiles Bader2007-10-15 05:03:21 +0000
commit63655c83146b773b4ef3d9220b4a9d61545fd050 (patch)
tree2161d262bba2c99b0db2ed8b322eddcafeadd247 /doc
parentce8f7ca45fabe11ce32a9ced2b8e7c1987c0d997 (diff)
parentb2529d56b5126319a1659dc1530d6fc102cc21d6 (diff)
downloademacs-63655c83146b773b4ef3d9220b4a9d61545fd050.tar.gz
emacs-63655c83146b773b4ef3d9220b4a9d61545fd050.zip
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 887-889) - Update from CVS - Merge from emacs--rel--22 * emacs--rel--22 (patch 116-121) - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-268
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/ChangeLog9
-rw-r--r--doc/emacs/display.texi8
-rw-r--r--doc/emacs/files.texi20
-rw-r--r--doc/lispref/ChangeLog22
-rw-r--r--doc/lispref/commands.texi104
-rw-r--r--doc/lispref/display.texi105
-rw-r--r--doc/lispref/elisp.texi11
-rw-r--r--doc/lispref/text.texi14
8 files changed, 180 insertions, 113 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 279a9a47ec3..9d5e6158f3f 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,7 @@
12007-10-13 Eric S. Raymond <esr@snark.thyrsus.com>
2
3 * files.texi: Capitalize node names according to convention.
4
12007-10-13 Glenn Morris <rgm@gnu.org> 52007-10-13 Glenn Morris <rgm@gnu.org>
2 6
3 * misc.texi (Interactive Shell): Correct INSIDE_EMACS reference. 7 * misc.texi (Interactive Shell): Correct INSIDE_EMACS reference.
@@ -23,6 +27,11 @@
23 * files.texi (Version Systems): Describe newer VCses. 27 * files.texi (Version Systems): Describe newer VCses.
24 Reorder the descriptions to be chronological. 28 Reorder the descriptions to be chronological.
25 29
302007-10-09 Richard Stallman <rms@gnu.org>
31
32 * display.texi (Cursor Display): Correct how cursor appears
33 in nonselected windows.
34
262007-10-04 Nick Roberts <nickrob@snap.net.nz> 352007-10-04 Nick Roberts <nickrob@snap.net.nz>
27 36
28 * building.texi (GDB Graphical Interface): Remove references to gdba 37 * building.texi (GDB Graphical Interface): Remove references to gdba
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index d4d2945d584..5e1e0056592 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -1116,12 +1116,12 @@ doesn't switch, so it uses the normal cursor.
1116 1116
1117@cindex cursor in non-selected windows 1117@cindex cursor in non-selected windows
1118@vindex cursor-in-non-selected-windows 1118@vindex cursor-in-non-selected-windows
1119 Normally, the cursor appears in non-selected windows in the ``off'' 1119 Normally, the cursor appears in non-selected windows without
1120state, with the same appearance as when the blinking cursor blinks 1120blinking, with the same appearance as when the blinking cursor blinks
1121``off.'' For a box cursor, this is a hollow box; for a bar cursor, 1121``off.'' For a box cursor, this is a hollow box; for a bar cursor,
1122this is a thinner bar. To turn off cursors in non-selected windows, 1122this is a thinner bar. To turn off cursors in non-selected windows,
1123customize the variable @code{cursor-in-non-selected-windows} and assign 1123customize the variable @code{cursor-in-non-selected-windows} and
1124it a @code{nil} value. 1124assign it a @code{nil} value.
1125 1125
1126@vindex x-stretch-cursor 1126@vindex x-stretch-cursor
1127@cindex wide block cursor 1127@cindex wide block cursor
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index 78c72dac330..80feaea2340 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -1595,15 +1595,15 @@ system, but is usually not excessive.
1595@subsection Basic Editing under Version Control 1595@subsection Basic Editing under Version Control
1596 1596
1597@menu 1597@menu
1598* Selecting a fileset:: Choosing a set of files to operate on 1598* Selecting A Fileset:: Choosing a set of files to operate on
1599* Doing the next logical thing:: Stepping forward in the development cycle 1599* Doing The Right Thing:: Stepping forward in the development cycle
1600* VC with a locking VCS:: RCS in its default mode, SCCS, and optionally CVS. 1600* VC With A Locking VCS:: RCS in its default mode, SCCS, and optionally CVS.
1601* VC with a merging VCS:: Without locking: default mode for CVS. 1601* VC With A Merging VCS:: Without locking: default mode for CVS.
1602* Advanced C-x v v:: Advanced features available with a prefix argument. 1602* Advanced C-x v v:: Advanced features available with a prefix argument.
1603* Log Buffer:: Features available in log entry buffers. 1603* Log Buffer:: Features available in log entry buffers.
1604@end menu 1604@end menu
1605 1605
1606@node Selecting a fileset 1606@node Selecting A Fileset
1607@subsubsection Choosing the scope of your command 1607@subsubsection Choosing the scope of your command
1608 1608
1609@cindex filesets 1609@cindex filesets
@@ -1638,7 +1638,7 @@ marked files, but did not pass them to the version-control backends as
1638a group. Now it does, which enables VC to drive changeset-based 1638a group. Now it does, which enables VC to drive changeset-based
1639version-control systems. 1639version-control systems.
1640 1640
1641@node Doing the next logical thing 1641@node Doing The Right Thing
1642@subsubsection Performing the next operation in the development cycle 1642@subsubsection Performing the next operation in the development cycle
1643 1643
1644 The principal VC command is an all-purpose command that performs 1644 The principal VC command is an all-purpose command that performs
@@ -1667,7 +1667,7 @@ accidentally edit a file without properly checking it out first. To
1667achieve this, bind the key @kbd{C-x C-q} to @kbd{vc-toggle-read-only} 1667achieve this, bind the key @kbd{C-x C-q} to @kbd{vc-toggle-read-only}
1668in your @file{~/.emacs} file. (@xref{Init Rebinding}.) 1668in your @file{~/.emacs} file. (@xref{Init Rebinding}.)
1669 1669
1670@node VC with a locking VCS 1670@node VC With A Locking VCS
1671@subsubsection Basic Version Control with Locking 1671@subsubsection Basic Version Control with Locking
1672 1672
1673 If locking is used for the file (as with SCCS, and RCS in its default 1673 If locking is used for the file (as with SCCS, and RCS in its default
@@ -1698,7 +1698,7 @@ formerly locked the file, to inform him of what has happened.
1698 These rules also apply when you use CVS in locking mode, except 1698 These rules also apply when you use CVS in locking mode, except
1699that there is no such thing as stealing a lock. 1699that there is no such thing as stealing a lock.
1700 1700
1701@node VC with a merging VCS 1701@node VC With A Merging VCS
1702@subsubsection Basic Version Control with Merging 1702@subsubsection Basic Version Control with Merging
1703 1703
1704 When your version-control system is merging-based rather than 1704 When your version-control system is merging-based rather than
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 5c4f9159066..d95597e940b 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,25 @@
12007-10-13 Karl Berry <karl@gnu.org>
2
3 * elisp.texi (@dircategory): Move to after @copying,
4 since we want @copying as close as possible to the beginning of
5 the output.
6
72007-10-12 Richard Stallman <rms@gnu.org>
8
9 * elisp.texi (Top): Add Distinguish Interactive to subnode menu.
10
11 * commands.texi (Distinguish Interactive): New node,
12 broken out from Interactive Call and rewritten.
13 (Command Loop): Put Distinguish Interactive in menu.
14
152007-10-09 Richard Stallman <rms@gnu.org>
16
17 * text.texi (Examining Properties): Mention overlay priority.
18
19 * display.texi (Display Margins): Correct the description
20 of margin display specifications.
21 (Replacing Specs): New subnode broken out of Display Property.
22
12007-10-06 Juri Linkov <juri@jurta.org> 232007-10-06 Juri Linkov <juri@jurta.org>
2 24
3 * text.texi (Filling): Document fill-paragraph-or-region. 25 * text.texi (Filling): Document fill-paragraph-or-region.
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index aaad7ca82a7..cdd627f6b52 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -18,6 +18,7 @@ are done, and the subroutines that allow Lisp programs to do them.
18* Command Overview:: How the command loop reads commands. 18* Command Overview:: How the command loop reads commands.
19* Defining Commands:: Specifying how a function should read arguments. 19* Defining Commands:: Specifying how a function should read arguments.
20* Interactive Call:: Calling a command, so that it will read arguments. 20* Interactive Call:: Calling a command, so that it will read arguments.
21* Distinguish Interactive:: Making a command distinguish interactive calls.
21* Command Loop Info:: Variables set by the command loop for you to examine. 22* Command Loop Info:: Variables set by the command loop for you to examine.
22* Adjusting Point:: Adjustment of point after a command. 23* Adjusting Point:: Adjustment of point after a command.
23* Input Events:: What input looks like when you read it. 24* Input Events:: What input looks like when you read it.
@@ -635,42 +636,74 @@ part of the prompt.
635@end example 636@end example
636@end deffn 637@end deffn
637 638
638@defun interactive-p 639@node Distinguish Interactive
639This function returns @code{t} if the containing function (the one 640@section Distinguish Interactive Calls
640whose code includes the call to @code{interactive-p}) was called in 641
641direct response to user input. This means that it was called with the 642 Sometimes a command should display additional visual feedback (such
642function @code{call-interactively}, and that a keyboard macro is 643as an informative message in the echo area) for interactive calls
643not running, and that Emacs is not running in batch mode. 644only. There are three ways to do this. The recommended way to test
645whether the function was called using @code{call-interactively} is to
646give it an optional argument @code{print-message} and use the
647@code{interactive} spec to make it non-@code{nil} in interactive
648calls. Here's an example:
649
650@example
651(defun foo (&optional print-message)
652 (interactive "p")
653 (when print-message
654 (message "foo")))
655@end example
656
657@noindent
658We use @code{"p"} because the numeric prefix argument is never
659@code{nil}. Defined in this way, the function does display the
660message when called from a keyboard macro.
661
662 The above method with the additional argument is usually best,
663because it allows callers to say ``treat this call as interactive.''
664But you can also do the job in a simpler way by testing
665@code{called-interactively-p}.
666
667@defun called-interactively-p
668This function returns @code{t} when the calling function was called
669using @code{call-interactively}.
644 670
645If the containing function was called by Lisp evaluation (or with 671If the containing function was called by Lisp evaluation (or with
646@code{apply} or @code{funcall}), then it was not called interactively. 672@code{apply} or @code{funcall}), then it was not called interactively.
647@end defun 673@end defun
648 674
649 The most common use of @code{interactive-p} is for deciding whether 675 Here's an example of using @code{called-interactively-p}:
650to give the user additional visual feedback (such as by printing an
651informative message). For example:
652 676
653@example 677@example
654@group 678@group
655;; @r{Here's the usual way to use @code{interactive-p}.}
656(defun foo () 679(defun foo ()
657 (interactive) 680 (interactive)
658 (when (interactive-p) 681 (when (called-interactively-p)
659 (message "foo"))) 682 (message "foo"))
683 'haha)
660 @result{} foo 684 @result{} foo
661@end group 685@end group
662 686
663@group 687@group
664;; @r{This function is just to illustrate the behavior.} 688;; @r{Type @kbd{M-x foo}.}
665(defun bar () 689 @print{} foo
666 (interactive)
667 (setq foobar (list (foo) (interactive-p))))
668 @result{} bar
669@end group 690@end group
670 691
671@group 692@group
672;; @r{Type @kbd{M-x foo}.} 693(foo)
673 @print{} foo 694 @result{} haha
695@end group
696@end example
697
698 Here is another example that contrasts direct and indirect
699calls to @code{called-interactively-p}.
700
701@example
702@group
703(defun bar ()
704 (interactive)
705 (setq foobar (list (foo) (called-interactively-p))))
706 @result{} bar
674@end group 707@end group
675 708
676@group 709@group
@@ -684,31 +717,16 @@ foobar
684@end group 717@end group
685@end example 718@end example
686 719
687 If you want to test @emph{only} whether the function was called 720 If you want to treat commands run in keyboard macros just like calls
688using @code{call-interactively}, add an optional argument 721from Lisp programs, test @code{interactive-p} instead of
689@code{print-message} which should be non-@code{nil} in an interactive 722@code{called-interactively-p}.
690call, and use the @code{interactive} spec to make sure it is
691non-@code{nil}. Here's an example:
692
693@example
694(defun foo (&optional print-message)
695 (interactive "p")
696 (when print-message
697 (message "foo")))
698@end example
699
700@noindent
701Defined in this way, the function does display the message when called
702from a keyboard macro. We use @code{"p"} because the numeric prefix
703argument is never @code{nil}.
704
705@defun called-interactively-p
706This function returns @code{t} when the calling function was called
707using @code{call-interactively}.
708 723
709When possible, instead of using this function, you should use the 724@defun interactive-p
710method in the example above; that method makes it possible for a 725This function returns @code{t} if the containing function (the one
711caller to ``pretend'' that the function was called interactively. 726whose code includes the call to @code{interactive-p}) was called in
727direct response to user input. This means that it was called with the
728function @code{call-interactively}, and that a keyboard macro is
729not running, and that Emacs is not running in batch mode.
712@end defun 730@end defun
713 731
714@node Command Loop Info 732@node Command Loop Info
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 90d94dbe6b3..4c9df9c5ede 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -3245,21 +3245,47 @@ to use the value specified by the frame.
3245insert images into text, and also control other aspects of how text 3245insert images into text, and also control other aspects of how text
3246displays. The value of the @code{display} property should be a 3246displays. The value of the @code{display} property should be a
3247display specification, or a list or vector containing several display 3247display specification, or a list or vector containing several display
3248specifications. Display specifications generally apply in parallel to 3248specifications. Display specifications in the same @code{display}
3249the text they cover. 3249property value generally apply in parallel to the text they cover.
3250
3251 If several sources (overlays and/or a text property) specify values
3252for the @code{display} property, only one of the values takes effect,
3253following the rules of @code{get-char-property}. @xref{Examining
3254Properties}.
3255
3256 The rest of this section describes several kinds of
3257display specifications and what they mean.
3258
3259@menu
3260* Replacing Specs:: Display specs that replace the text.
3261* Specified Space:: Displaying one space with a specified width.
3262* Pixel Specification:: Specifying space width or height in pixels.
3263* Other Display Specs:: Displaying an image; magnifying text; moving it
3264 up or down on the page; adjusting the width
3265 of spaces within text.
3266* Display Margins:: Displaying text or images to the side of the main text.
3267@end menu
3268
3269@node Replacing Specs
3270@subsection Display Specs That Replace The Text
3250 3271
3251 Some kinds of @code{display} specifications specify something to 3272 Some kinds of @code{display} specifications specify something to
3252display instead of the text that has the property. If a list of 3273display instead of the text that has the property. These are called
3253display specifications includes more than one of this kind, the first 3274@dfn{replacing} display specifications. Emacs does not allow the user
3254is effective and the rest are ignored. You cannot interactively move 3275to interactively move point into the middle of buffer text that is
3255point into the middle of the text that is thus replaced. 3276replaced in this way.
3256 3277
3257 For these specifications, ``the text that has the property'' means 3278 If a list of display specifications includes more than one replacing
3258all the consecutive characters that have the same Lisp object as their 3279display specification, the first overrides the rest. Replacing
3259@code{display} property; these characters are replaced as a single 3280display specifications make most other display specifications
3260unit. By contrast, characters that have similar but distinct Lisp 3281irrelevant, since those don't apply to the replacement.
3261objects as their @code{display} properties are handled separately. 3282
3262Here's a function that illustrates this point: 3283 For replacing display specifications, ``the text that has the
3284property'' means all the consecutive characters that have the same
3285Lisp object as their @code{display} property; these characters are
3286replaced as a single unit. By contrast, characters that have similar
3287but distinct Lisp objects as their @code{display} properties are
3288handled separately. Here's a function that illustrates this point:
3263 3289
3264@smallexample 3290@smallexample
3265(defun foo () 3291(defun foo ()
@@ -3299,18 +3325,6 @@ object as the @code{display} property value, it's irrelevant
3299whether they got this property from a single call to 3325whether they got this property from a single call to
3300@code{put-text-property} or from two different calls. 3326@code{put-text-property} or from two different calls.
3301 3327
3302 The rest of this section describes several kinds of
3303display specifications and what they mean.
3304
3305@menu
3306* Specified Space:: Displaying one space with a specified width.
3307* Pixel Specification:: Specifying space width or height in pixels.
3308* Other Display Specs:: Displaying an image; magnifying text; moving it
3309 up or down on the page; adjusting the width
3310 of spaces within text.
3311* Display Margins:: Displaying text or images to the side of the main text.
3312@end menu
3313
3314@node Specified Space 3328@node Specified Space
3315@subsection Specified Spaces 3329@subsection Specified Spaces
3316@cindex spaces, specified height or width 3330@cindex spaces, specified height or width
@@ -3549,25 +3563,28 @@ string.
3549@cindex display margins 3563@cindex display margins
3550@cindex margins, display 3564@cindex margins, display
3551 3565
3552 A buffer can have blank areas called @dfn{display margins} on the left 3566 A buffer can have blank areas called @dfn{display margins} on the
3553and on the right. Ordinary text never appears in these areas, but you 3567left and on the right. Ordinary text never appears in these areas,
3554can put things into the display margins using the @code{display} 3568but you can put things into the display margins using the
3555property. 3569@code{display} property. There is currently no way to make text or
3556 3570images in the margin mouse-sensitive.
3557 To put text in the left or right display margin of the window, use a 3571
3558display specification of the form @code{(margin right-margin)} or 3572 The way to display something in the margins is to specify it in a
3559@code{(margin left-margin)} on it. To put an image in a display margin, 3573margin display specification in the @code{display} property of some
3560use that display specification along with the display specification for 3574text. This is a replacing display specification, meaning that the
3561the image. Unfortunately, there is currently no way to make 3575text you put it on does not get displayed; the margin display appears,
3562text or images in the margin mouse-sensitive. 3576but that text does not.
3563 3577
3564 If you put such a display specification directly on text in the 3578 A margin display specification looks like @code{((margin
3565buffer, the specified margin display appears @emph{instead of} that 3579right-margin) @var{spec}} or @code{((margin left-margin) @var{spec})}.
3566buffer text itself. To put something in the margin @emph{in 3580Here, @var{spec} is another display specification that says what to
3567association with} certain buffer text without preventing or altering 3581display in the margin. Typically it is a string of text to display,
3568the display of that text, put a @code{before-string} property on the 3582or an image descriptor.
3569text and put the display specification on the contents of the 3583
3570before-string. 3584 To display something in the margin @emph{in association with}
3585certain buffer text, without altering or preventing the display of
3586that text, put a @code{before-string} property on the text and put the
3587margin display specification on the contents of the before-string.
3571 3588
3572 Before the display margins can display anything, you must give 3589 Before the display margins can display anything, you must give
3573them a nonzero width. The usual way to do that is to set these 3590them a nonzero width. The usual way to do that is to set these
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 613bdbace38..8cd25ed59d3 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -9,11 +9,6 @@
9@set VERSION 2.9 9@set VERSION 2.9
10@set EMACSVER 23.0.50 10@set EMACSVER 23.0.50
11 11
12@dircategory Emacs
13@direntry
14* Elisp: (elisp). The Emacs Lisp Reference Manual.
15@end direntry
16
17@c in general, keep the following line commented out, unless doing a 12@c in general, keep the following line commented out, unless doing a
18@c copy of this manual that will be published. The manual should go 13@c copy of this manual that will be published. The manual should go
19@c onto the distribution in the full, 8.5 x 11" size. 14@c onto the distribution in the full, 8.5 x 11" size.
@@ -67,6 +62,11 @@ developing GNU and promoting software freedom.''
67@end quotation 62@end quotation
68@end copying 63@end copying
69 64
65@dircategory Emacs
66@direntry
67* Elisp: (elisp). The Emacs Lisp Reference Manual.
68@end direntry
69
70@titlepage 70@titlepage
71@title GNU Emacs Lisp Reference Manual 71@title GNU Emacs Lisp Reference Manual
72@subtitle For Emacs Version @value{EMACSVER} 72@subtitle For Emacs Version @value{EMACSVER}
@@ -639,6 +639,7 @@ Command Loop
639* Command Overview:: How the command loop reads commands. 639* Command Overview:: How the command loop reads commands.
640* Defining Commands:: Specifying how a function should read arguments. 640* Defining Commands:: Specifying how a function should read arguments.
641* Interactive Call:: Calling a command, so that it will read arguments. 641* Interactive Call:: Calling a command, so that it will read arguments.
642* Distinguish Interactive:: Making a command distinguish interactive calls.
642* Command Loop Info:: Variables set by the command loop for you to examine. 643* Command Loop Info:: Variables set by the command loop for you to examine.
643* Adjusting Point:: Adjustment of point after a command. 644* Adjusting Point:: Adjustment of point after a command.
644* Input Events:: What input looks like when you read it. 645* Input Events:: What input looks like when you read it.
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index c6da06b4a13..daaaf6c9b9d 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -2619,13 +2619,13 @@ the @var{prop} property of that symbol.
2619This function is like @code{get-text-property}, except that it checks 2619This function is like @code{get-text-property}, except that it checks
2620overlays first and then text properties. @xref{Overlays}. 2620overlays first and then text properties. @xref{Overlays}.
2621 2621
2622The argument @var{object} may be a string, a buffer, or a window. If it 2622The argument @var{object} may be a string, a buffer, or a window. If
2623is a window, then the buffer displayed in that window is used for text 2623it is a window, then the buffer displayed in that window is used for
2624properties and overlays, but only the overlays active for that window 2624text properties and overlays, but only the overlays active for that
2625are considered. If @var{object} is a buffer, then all overlays in that 2625window are considered. If @var{object} is a buffer, then overlays in
2626buffer are considered, as well as text properties. If @var{object} is a 2626that buffer are considered first, in order of decreasing priority,
2627string, only text properties are considered, since strings never have 2627followed by the text properties. If @var{object} is a string, only
2628overlays. 2628text properties are considered, since strings never have overlays.
2629@end defun 2629@end defun
2630 2630
2631@defun get-char-property-and-overlay position prop &optional object 2631@defun get-char-property-and-overlay position prop &optional object