aboutsummaryrefslogtreecommitdiffstats
path: root/lispref
diff options
context:
space:
mode:
authorMiles Bader2005-06-15 23:32:15 +0000
committerMiles Bader2005-06-15 23:32:15 +0000
commit2092fd2b3339ac097e1b27643b70211dcb0b4e95 (patch)
tree7f2307bbb82c7f111678885f871d88d44c870d4e /lispref
parent8786f9fffda045f818e622bddd9c85249dfb9ff7 (diff)
parenta4bf534f1eb1dcb2048f5deeff783c23059e3924 (diff)
downloademacs-2092fd2b3339ac097e1b27643b70211dcb0b4e95.tar.gz
emacs-2092fd2b3339ac097e1b27643b70211dcb0b4e95.zip
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-63
Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 358-423) - Update from CVS - Remove "-face" suffix from widget faces - Remove "-face" suffix from custom faces - Remove "-face" suffix from change-log faces - Remove "-face" suffix from compilation faces - Remove "-face" suffix from diff-mode faces - lisp/longlines.el (longlines-visible-face): Face removed - Remove "-face" suffix from woman faces - Remove "-face" suffix from whitespace-highlight face - Remove "-face" suffix from ruler-mode faces - Remove "-face" suffix from show-paren faces - Remove "-face" suffix from log-view faces - Remove "-face" suffix from smerge faces - Remove "-face" suffix from show-tabs faces - Remove "-face" suffix from highlight-changes faces - Remove "-face" suffix from and downcase info faces - Remove "-face" suffix from pcvs faces - Update uses of renamed pcvs faces - Tweak ChangeLog - Remove "-face" suffix from strokes-char face - Remove "-face" suffix from compare-windows face - Remove "-face" suffix from calendar faces - Remove "-face" suffix from diary-button face - Remove "-face" suffix from testcover faces - Remove "-face" suffix from viper faces - Remove "-face" suffix from org faces - Remove "-face" suffix from sgml-namespace face - Remove "-face" suffix from table-cell face - Remove "-face" suffix from tex-mode faces - Remove "-face" suffix from texinfo-heading face - Remove "-face" suffix from flyspell faces - Remove "-face" suffix from gomoku faces - Remove "-face" suffix from mpuz faces - Merge from gnus--rel--5.10 - Remove "-face" suffix from Buffer-menu-buffer face - Remove "-face" suffix from antlr-mode faces - Remove "-face" suffix from ebrowse faces - Remove "-face" suffix from flymake faces - Remove "-face" suffix from idlwave faces - Remove "-face" suffix from sh-script faces - Remove "-face" suffix from vhdl-mode faces - Remove "-face" suffix from which-func face - Remove "-face" suffix from cperl-mode faces - Remove "-face" suffix from ld-script faces - Fix cperl-mode font-lock problem - Tweak which-func face * gnus--rel--5.10 (patch 80-82) - Merge from emacs--cvs-trunk--0 - Update from CVS
Diffstat (limited to 'lispref')
-rw-r--r--lispref/ChangeLog120
-rw-r--r--lispref/Makefile.in2
-rw-r--r--lispref/anti.texi3
-rw-r--r--lispref/debugging.texi35
-rw-r--r--lispref/edebug.texi99
-rw-r--r--lispref/elisp.texi32
-rw-r--r--lispref/intro.texi6
-rw-r--r--lispref/searching.texi10
-rw-r--r--lispref/syntax.texi38
-rw-r--r--lispref/text.texi84
10 files changed, 304 insertions, 125 deletions
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 6742080bd03..d1df2e17667 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,82 @@
12005-06-15 Kim F. Storm <storm@cua.dk>
2
3 * searching.texi (Entire Match Data): Rephrase warnings about
4 evaporate arg to match-data and set-match-data.
5
62005-06-14 Luc Teirlinck <teirllm@auburn.edu>
7
8 * elisp.texi (Top): Update detailed menu.
9
10 * edebug.texi (Edebug): Update menu.
11 (Instrumenting): Update xrefs.
12 (Edebug Execution Modes): Correct xref.
13 (Jumping): Clarify description of `h' command.
14 Eliminate redundant @ref.
15 (Breaks): New node.
16 (Breakpoints): is now a subsubsection.
17 (Global Break Condition): Mention `C-x X X'.
18 (Edebug Views): Clarify `v' and `p'. Mention `C-x X w'.
19 (Trace Buffer): Clarify STRING arg of `edebug-tracing'.
20 (Edebug Display Update): Correct pxref.
21 (Edebug and Macros): New node.
22 (Instrumenting Macro Calls): Is now a subsubsection.
23 Neither arg of `def-edebug-spec' is evaluated.
24 (Instrumenting Macro Calls): Mention `edebug-eval-macro-args'.
25 (Specification Examples): Fix typo.
26
272005-06-14 Lute Kamstra <lute@gnu.org>
28
29 * debugging.texi (Function Debugging): Primitives can break on
30 entry too.
31
322005-06-14 Kim F. Storm <storm@cua.dk>
33
34 * variables.texi (Setting Variables): Add add-to-ordered-list.
35
362005-06-13 Stefan Monnier <monnier@iro.umontreal.ca>
37
38 * syntax.texi (Parsing Expressions): Document aux functions and vars of
39 syntax-ppss: syntax-ppss-flush-cache and syntax-begin-function.
40
412005-06-13 Lute Kamstra <lute@gnu.org>
42
43 * text.texi (Special Properties): Fix cross reference.
44
452005-06-11 Luc Teirlinck <teirllm@auburn.edu>
46
47 * debugging.texi (Function Debugging): Delete mention of empty
48 string argument to `cancel-debug-on-entry'. Delete inaccurate
49 description of the return value of that command.
50
512005-06-11 Alan Mackenzie <acm@muc.de>
52
53 * text.texi (Adaptive Fill): Amplify the description of
54 fill-context-prefix.
55
562005-06-10 Luc Teirlinck <teirllm@auburn.edu>
57
58 * syntax.texi (Parsing Exprssions): Fix Texinfo error.
59
602005-06-10 Stefan Monnier <monnier@iro.umontreal.ca>
61
62 * syntax.texi (Parsing Expressions): Document syntax-ppss.
63
642005-06-10 Luc Teirlinck <teirllm@auburn.edu>
65
66 * debugging.texi (Error Debugging): Minor rewording.
67 (Function Debugging): FUNCTION-NAME arg to `cancel-debug-on-entry'
68 is optional.
69
702005-06-10 Lute Kamstra <lute@gnu.org>
71
72 * elisp.texi: Use EMACSVER to refer to the current version of Emacs.
73 (Top): Give it a title. Correct version number. Give the
74 detailed node listing a more prominent header.
75 * intro.texi: Don't set VERSION here a second time.
76 Mention Emacs's version too.
77 * anti.texi (Antinews): Use EMACSVER to refer to the current
78 version of Emacs.
79
12005-06-09 Kim F. Storm <storm@cua.dk> 802005-06-09 Kim F. Storm <storm@cua.dk>
2 81
3 * searching.texi (Entire Match Data): Explain new `reseat' argument to 82 * searching.texi (Entire Match Data): Explain new `reseat' argument to
@@ -78,8 +157,8 @@
78 157
792005-05-21 Eli Zaretskii <eliz@gnu.org> 1582005-05-21 Eli Zaretskii <eliz@gnu.org>
80 159
81 * files.texi (Locating Files): New subsection. Describe 160 * files.texi (Locating Files): New subsection.
82 locate-file and executable-find. 161 Describe locate-file and executable-find.
83 162
842005-05-21 Kevin Ryde <user42@zip.com.au> 1632005-05-21 Kevin Ryde <user42@zip.com.au>
85 164
@@ -94,8 +173,8 @@
94 (Major Mode Conventions): Refer to `Auto Major Mode' in more 173 (Major Mode Conventions): Refer to `Auto Major Mode' in more
95 appropriate place. 174 appropriate place.
96 (Derived Modes): Small clarifications. 175 (Derived Modes): Small clarifications.
97 (Minor Mode Conventions, Keymaps and Minor Modes): Replace 176 (Minor Mode Conventions, Keymaps and Minor Modes):
98 references to nodes with references to anchors. 177 Replace references to nodes with references to anchors.
99 (Mode Line Data): Warn that `(:eval FORM)' should not load any files. 178 (Mode Line Data): Warn that `(:eval FORM)' should not load any files.
100 Clarify description of lists whose first element is an integer. 179 Clarify description of lists whose first element is an integer.
101 (Mode Line Variables): Add anchor. 180 (Mode Line Variables): Add anchor.
@@ -247,10 +326,10 @@
247 (Font Lock Basics): Say that font-lock-defaults is buffer-local 326 (Font Lock Basics): Say that font-lock-defaults is buffer-local
248 when set and that some parts are optional. Add cross references. 327 when set and that some parts are optional. Add cross references.
249 (Search-based Fontification): Say how to specify font-lock-keywords. 328 (Search-based Fontification): Say how to specify font-lock-keywords.
250 Add cross references. Add font-lock-multiline to index. Move 329 Add cross references. Add font-lock-multiline to index.
251 font-lock-keywords-case-fold-search here from node "Other Font 330 Move font-lock-keywords-case-fold-search here from node "Other Font
252 Lock Variables". Document font-lock-add-keywords and 331 Lock Variables". Document font-lock-add-keywords and
253 font-lock-remove-keywords 332 font-lock-remove-keywords.
254 (Other Font Lock Variables): Move font-lock-keywords-only, 333 (Other Font Lock Variables): Move font-lock-keywords-only,
255 font-lock-syntax-table, font-lock-beginning-of-syntax-function, 334 font-lock-syntax-table, font-lock-beginning-of-syntax-function,
256 and font-lock-syntactic-face-function to node "Syntactic Font 335 and font-lock-syntactic-face-function to node "Syntactic Font
@@ -265,8 +344,8 @@
265 and font-lock-syntactic-face-function here from node "Other Font 344 and font-lock-syntactic-face-function here from node "Other Font
266 Lock Variables". Move font-lock-syntactic-keywords to "Setting 345 Lock Variables". Move font-lock-syntactic-keywords to "Setting
267 Syntax Properties". Add cross references. 346 Syntax Properties". Add cross references.
268 (Setting Syntax Properties): New node. Move 347 (Setting Syntax Properties): New node.
269 font-lock-syntactic-keywords here from "Syntactic Font Lock". 348 Move font-lock-syntactic-keywords here from "Syntactic Font Lock".
270 * syntax.texi (Syntax Properties): Add cross reference. 349 * syntax.texi (Syntax Properties): Add cross reference.
271 * hooks.texi (Standard Hooks): Add Font-Lock hooks. 350 * hooks.texi (Standard Hooks): Add Font-Lock hooks.
272 351
@@ -325,7 +404,7 @@
325 404
3262005-04-19 Kevin Ryde <user42@zip.com.au> 4052005-04-19 Kevin Ryde <user42@zip.com.au>
327 406
328 * streams.texi (Output Functions): Fix xref. 407 * streams.texi (Output Functions): Fix xref.
329 * strings.texi (String Conversion): Fix xref. 408 * strings.texi (String Conversion): Fix xref.
330 409
3312005-04-19 Kim F. Storm <storm@cua.dk> 4102005-04-19 Kim F. Storm <storm@cua.dk>
@@ -419,8 +498,8 @@
419 498
420 * markers.texi (The Mark): Document temporary Transient Mark mode. 499 * markers.texi (The Mark): Document temporary Transient Mark mode.
421 500
422 * minibuf.texi (Reading File Names): Document 501 * minibuf.texi (Reading File Names):
423 read-file-name-completion-ignore-case. 502 Document read-file-name-completion-ignore-case.
424 503
425 * positions.texi (Screen Lines): Document nil for width argument 504 * positions.texi (Screen Lines): Document nil for width argument
426 to compute-motion. 505 to compute-motion.
@@ -440,11 +519,10 @@
440 (Managing Overlays): Document remove-overlays. 519 (Managing Overlays): Document remove-overlays.
441 (Standard Faces): Document escape-glyph face. 520 (Standard Faces): Document escape-glyph face.
442 521
443 * minibuf.texi (Reading File Names): Document 522 * minibuf.texi (Reading File Names): Document read-file-name-function.
444 read-file-name-function.
445 523
446 * modes.texi (Other Font Lock Variables): Document 524 * modes.texi (Other Font Lock Variables):
447 font-lock-lines-before. 525 Document font-lock-lines-before.
448 526
449 * positions.texi (Skipping Characters): skip-chars-forward allows 527 * positions.texi (Skipping Characters): skip-chars-forward allows
450 character classes. 528 character classes.
@@ -498,18 +576,18 @@
498 (Progress): Clarify. 576 (Progress): Clarify.
499 (Invisible Text): Explain that main loop moves point out. 577 (Invisible Text): Explain that main loop moves point out.
500 (Selective Display): Say "hidden", not "invisible". 578 (Selective Display): Say "hidden", not "invisible".
501 (Managing Overlays): Moved up. Describe relation to Undo here. 579 (Managing Overlays): Move up. Describe relation to Undo here.
502 (Overlay Properties): Clarify intro. 580 (Overlay Properties): Clarify intro.
503 (Finding Overlays): Explain return values when nothing found. 581 (Finding Overlays): Explain return values when nothing found.
504 (Width): truncate-string-to-width has added arg. 582 (Width): truncate-string-to-width has added arg.
505 (Displaying Faces): Clarify and update mode line face handling. 583 (Displaying Faces): Clarify and update mode line face handling.
506 (Face Functions): Minor cleanup. 584 (Face Functions): Minor cleanup.
507 (Conditional Display): Merged into Other Display Specs. 585 (Conditional Display): Merge into Other Display Specs.
508 (Pixel Specification, Other Display Specs): Minor cleanups. 586 (Pixel Specification, Other Display Specs): Minor cleanups.
509 (Images, Image Descriptors): Minor cleanups. 587 (Images, Image Descriptors): Minor cleanups.
510 (GIF Images): Patents have expired. 588 (GIF Images): Patents have expired.
511 (Showing Images): Explain default text for insert-image. 589 (Showing Images): Explain default text for insert-image.
512 (Manipulating Button Types): Merged into Manipulating Buttons. 590 (Manipulating Button Types): Merge into Manipulating Buttons.
513 (Making Buttons): Explain return values. 591 (Making Buttons): Explain return values.
514 (Button Buffer Commands): Add xref. 592 (Button Buffer Commands): Add xref.
515 (Inverse Video): Update mode-line-inverse-video. 593 (Inverse Video): Update mode-line-inverse-video.
@@ -869,8 +947,8 @@
869 * commands.texi (Misc Events): Describe the help-echo event. 947 * commands.texi (Misc Events): Describe the help-echo event.
870 948
871 * text.texi (Special Properties) <help-echo>: Use `pos' 949 * text.texi (Special Properties) <help-echo>: Use `pos'
872 consistently in description of the help-echo property. Use 950 consistently in description of the help-echo property.
873 @code{nil} instead of @var{nil}. 951 Use @code{nil} instead of @var{nil}.
874 952
875 * display.texi (Overlay Properties): Fix the index entry for 953 * display.texi (Overlay Properties): Fix the index entry for
876 help-echo overlay property. 954 help-echo overlay property.
diff --git a/lispref/Makefile.in b/lispref/Makefile.in
index 2fab86ab876..f2e5e46874f 100644
--- a/lispref/Makefile.in
+++ b/lispref/Makefile.in
@@ -124,7 +124,7 @@ distclean: clean
124 124
125maintainer-clean: clean 125maintainer-clean: clean
126 rm -f elisp.dvi elisp.oaux 126 rm -f elisp.dvi elisp.oaux
127 cd $(infodir); rm -f elisp elisp-[1-9] elisp-[1-9][0-9] 127 cd $(infodir); rm -f elisp elisp-[1-9] elisp-[1-9][0-9]
128 128
129dist: $(infodir)/elisp elisp.dvi 129dist: $(infodir)/elisp elisp.dvi
130 -rm -rf temp 130 -rm -rf temp
diff --git a/lispref/anti.texi b/lispref/anti.texi
index 458409f2603..46375f3f157 100644
--- a/lispref/anti.texi
+++ b/lispref/anti.texi
@@ -10,7 +10,8 @@
10 10
11For those users who live backwards in time, here is information about 11For those users who live backwards in time, here is information about
12downgrading to Emacs version 21.4. We hope you will enjoy the greater 12downgrading to Emacs version 21.4. We hope you will enjoy the greater
13simplicity that results from the absence of many Emacs 22 features. 13simplicity that results from the absence of many Emacs @value{EMACSVER}
14features.
14 15
15@section Old Lisp Features in Emacs 21 16@section Old Lisp Features in Emacs 21
16 17
diff --git a/lispref/debugging.texi b/lispref/debugging.texi
index 07dfe18f283..739dd1fe298 100644
--- a/lispref/debugging.texi
+++ b/lispref/debugging.texi
@@ -118,8 +118,8 @@ the error. The easiest way is usually to set
118@end defopt 118@end defopt
119 119
120@defopt eval-expression-debug-on-error 120@defopt eval-expression-debug-on-error
121If you set this variable to a non-@code{nil} value, then 121If this variable has a non-@code{nil} value, then
122@code{debug-on-error} will be set to @code{t} when evaluating with the 122@code{debug-on-error} is set to @code{t} when evaluating with the
123command @code{eval-expression}. If 123command @code{eval-expression}. If
124@code{eval-expression-debug-on-error} is @code{nil}, then the value of 124@code{eval-expression-debug-on-error} is @code{nil}, then the value of
125@code{debug-on-error} is not changed. @xref{Lisp Eval,, Evaluating 125@code{debug-on-error} is not changed. @xref{Lisp Eval,, Evaluating
@@ -210,15 +210,19 @@ called shortly before the problem, step quickly over the call to that
210function, and then step through its caller. 210function, and then step through its caller.
211 211
212@deffn Command debug-on-entry function-name 212@deffn Command debug-on-entry function-name
213This function requests @var{function-name} to invoke the debugger each time 213This function requests @var{function-name} to invoke the debugger each
214it is called. It works by inserting the form @code{(debug 'debug)} into 214time it is called. It works by inserting the form
215the function definition as the first form. 215@code{(implement-debug-on-entry)} into the function definition as the
216 216first form.
217Any function defined as Lisp code may be set to break on entry, 217
218regardless of whether it is interpreted code or compiled code. If the 218Any function or macro defined as Lisp code may be set to break on
219function is a command, it will enter the debugger when called from Lisp 219entry, regardless of whether it is interpreted code or compiled code.
220and when called interactively (after the reading of the arguments). You 220If the function is a command, it will enter the debugger when called
221can't debug primitive functions (i.e., those written in C) this way. 221from Lisp and when called interactively (after the reading of the
222arguments). You can also set debug-on-entry for primitive functions
223(i.e., those written in C) this way, but it only takes effect when the
224primitive is called from Lisp code. Debug-on-entry is not allowed for
225special forms.
222 226
223When @code{debug-on-entry} is called interactively, it prompts for 227When @code{debug-on-entry} is called interactively, it prompts for
224@var{function-name} in the minibuffer. If the function is already set 228@var{function-name} in the minibuffer. If the function is already set
@@ -267,16 +271,13 @@ Debugger entered--entering a function:
267@end example 271@end example
268@end deffn 272@end deffn
269 273
270@deffn Command cancel-debug-on-entry function-name 274@deffn Command cancel-debug-on-entry &optional function-name
271This function undoes the effect of @code{debug-on-entry} on 275This function undoes the effect of @code{debug-on-entry} on
272@var{function-name}. When called interactively, it prompts for 276@var{function-name}. When called interactively, it prompts for
273@var{function-name} in the minibuffer. If @var{function-name} is 277@var{function-name} in the minibuffer. If @var{function-name} is
274@code{nil} or the empty string, it cancels break-on-entry for all 278omitted or @code{nil}, it cancels break-on-entry for all functions.
275functions.
276
277Calling @code{cancel-debug-on-entry} does nothing to a function which is 279Calling @code{cancel-debug-on-entry} does nothing to a function which is
278not currently set up to break on entry. It always returns 280not currently set up to break on entry.
279@var{function-name}.
280@end deffn 281@end deffn
281 282
282@node Explicit Debug 283@node Explicit Debug
diff --git a/lispref/edebug.texi b/lispref/edebug.texi
index cc42926ecf7..981afbb894c 100644
--- a/lispref/edebug.texi
+++ b/lispref/edebug.texi
@@ -65,7 +65,7 @@ enable you to use it.
65* Modes: Edebug Execution Modes. Execution modes, stopping more or less often. 65* Modes: Edebug Execution Modes. Execution modes, stopping more or less often.
66* Jumping:: Commands to jump to a specified place. 66* Jumping:: Commands to jump to a specified place.
67* Misc: Edebug Misc. Miscellaneous commands. 67* Misc: Edebug Misc. Miscellaneous commands.
68* Breakpoints:: Setting breakpoints to make the program stop. 68* Breaks:: Setting breakpoints to make the program stop.
69* Trapping Errors:: Trapping errors with Edebug. 69* Trapping Errors:: Trapping errors with Edebug.
70* Views: Edebug Views. Views inside and outside of Edebug. 70* Views: Edebug Views. Views inside and outside of Edebug.
71* Eval: Edebug Eval. Evaluating expressions within Edebug. 71* Eval: Edebug Eval. Evaluating expressions within Edebug.
@@ -75,7 +75,7 @@ enable you to use it.
75* Trace Buffer:: How to produce trace output in a buffer. 75* Trace Buffer:: How to produce trace output in a buffer.
76* Coverage Testing:: How to test evaluation coverage. 76* Coverage Testing:: How to test evaluation coverage.
77* The Outside Context:: Data that Edebug saves and restores. 77* The Outside Context:: Data that Edebug saves and restores.
78* Instrumenting Macro Calls:: Specifying how to handle macro calls. 78* Edebug and Macros:: Specifying how to handle macro calls.
79* Options: Edebug Options. Option variables for customizing Edebug. 79* Options: Edebug Options. Option variables for customizing Edebug.
80@end menu 80@end menu
81 81
@@ -203,13 +203,13 @@ function.
203@code{interactive} forms with an expression argument, anonymous lambda 203@code{interactive} forms with an expression argument, anonymous lambda
204expressions, and other defining forms. However, Edebug cannot determine 204expressions, and other defining forms. However, Edebug cannot determine
205on its own what a user-defined macro will do with the arguments of a 205on its own what a user-defined macro will do with the arguments of a
206macro call, so you must provide that information; see @ref{Instrumenting 206macro call, so you must provide that information; see @ref{Edebug and
207Macro Calls}, for details. 207Macros}, for details.
208 208
209 When Edebug is about to instrument code for the first time in a 209 When Edebug is about to instrument code for the first time in a
210session, it runs the hook @code{edebug-setup-hook}, then sets it to 210session, it runs the hook @code{edebug-setup-hook}, then sets it to
211@code{nil}. You can use this to load Edebug specifications 211@code{nil}. You can use this to load Edebug specifications
212(@pxref{Instrumenting Macro Calls}) associated with a package you are 212(@pxref{Edebug and Macros}) associated with a package you are
213using, but only when you use Edebug. 213using, but only when you use Edebug.
214 214
215@findex eval-expression @r{(Edebug)} 215@findex eval-expression @r{(Edebug)}
@@ -253,7 +253,7 @@ Step: stop at the next stop point encountered (@code{edebug-step-mode}).
253@item n 253@item n
254Next: stop at the next stop point encountered after an expression 254Next: stop at the next stop point encountered after an expression
255(@code{edebug-next-mode}). Also see @code{edebug-forward-sexp} in 255(@code{edebug-next-mode}). Also see @code{edebug-forward-sexp} in
256@ref{Edebug Misc}. 256@ref{Jumping}.
257 257
258@item t 258@item t
259Trace: pause (normally one second) at each Edebug stop point 259Trace: pause (normally one second) at each Edebug stop point
@@ -341,9 +341,8 @@ Run the program until the end of the containing sexp.
341Step into the function or macro called by the form after point. 341Step into the function or macro called by the form after point.
342@end table 342@end table
343 343
344The @kbd{h} command proceeds to the stop point near the current location 344The @kbd{h} command proceeds to the stop point at or after the current
345of point, using a temporary breakpoint. See @ref{Breakpoints}, for more 345location of point, using a temporary breakpoint.
346information about breakpoints.
347 346
348The @kbd{f} command runs the program forward over one expression. More 347The @kbd{f} command runs the program forward over one expression. More
349precisely, it sets a temporary breakpoint at the position that 348precisely, it sets a temporary breakpoint at the position that
@@ -427,14 +426,23 @@ recursively. Whenever Edebug is active, you can quit to the top level
427with @kbd{q} or abort one recursive edit level with @kbd{C-]}. You can 426with @kbd{q} or abort one recursive edit level with @kbd{C-]}. You can
428display a backtrace of all the pending evaluations with @kbd{d}. 427display a backtrace of all the pending evaluations with @kbd{d}.
429 428
430@node Breakpoints 429@node Breaks
431@subsection Breakpoints 430@subsection Breaks
432 431
433@cindex breakpoints
434Edebug's step mode stops execution when the next stop point is reached. 432Edebug's step mode stops execution when the next stop point is reached.
435There are three other ways to stop Edebug execution once it has started: 433There are three other ways to stop Edebug execution once it has started:
436breakpoints, the global break condition, and source breakpoints. 434breakpoints, the global break condition, and source breakpoints.
437 435
436@menu
437* Breakpoints:: Breakpoints at stop points.
438* Global Break Condition:: Breaking on an event.
439* Source Breakpoints:: Embedding breakpoints in source code.
440@end menu
441
442@node Breakpoints
443@subsubsection Breakpoints
444
445@cindex breakpoints
438While using Edebug, you can specify @dfn{breakpoints} in the program you 446While using Edebug, you can specify @dfn{breakpoints} in the program you
439are testing: these are places where execution should stop. You can set a 447are testing: these are places where execution should stop. You can set a
440breakpoint at any stop point, as defined in @ref{Using Edebug}. For 448breakpoint at any stop point, as defined in @ref{Using Edebug}. For
@@ -494,12 +502,6 @@ function, or to the first breakpoint if there are no following
494breakpoints. This command does not continue execution---it just moves 502breakpoints. This command does not continue execution---it just moves
495point in the buffer. 503point in the buffer.
496 504
497@menu
498* Global Break Condition:: Breaking on an event.
499* Source Breakpoints:: Embedding breakpoints in source code.
500@end menu
501
502
503@node Global Break Condition 505@node Global Break Condition
504@subsubsection Global Break Condition 506@subsubsection Global Break Condition
505 507
@@ -515,7 +517,9 @@ evaluating the condition gets an error, execution does not stop.
515@findex edebug-set-global-break-condition 517@findex edebug-set-global-break-condition
516 The condition expression is stored in 518 The condition expression is stored in
517@code{edebug-global-break-condition}. You can specify a new expression 519@code{edebug-global-break-condition}. You can specify a new expression
518using the @kbd{X} command (@code{edebug-set-global-break-condition}). 520using the @kbd{X} command from the source code buffer while Edebug is
521active, or using @kbd{C-x X X} from any buffer at any time, as long as
522Edebug is loaded (@code{edebug-set-global-break-condition}).
519 523
520 The global break condition is the simplest way to find where in your 524 The global break condition is the simplest way to find where in your
521code some event occurs, but it makes code run much more slowly. So you 525code some event occurs, but it makes code run much more slowly. So you
@@ -582,13 +586,14 @@ effect outside of Edebug.
582 586
583@table @kbd 587@table @kbd
584@item v 588@item v
585Temporarily view the outside window configuration 589View the outside window configuration (@code{edebug-view-outside}).
586(@code{edebug-view-outside}). 590Type @kbd{C-x X w} to return to Edebug.
587 591
588@item p 592@item p
589Temporarily display the outside current buffer with point at its outside 593Temporarily display the outside current buffer with point at its
590position (@code{edebug-bounce-point}). With a prefix argument @var{n}, 594outside position (@code{edebug-bounce-point}), pausing for one second
591pause for @var{n} seconds instead. 595before returning to Edebug. With a prefix argument @var{n}, pause for
596@var{n} seconds instead.
592 597
593@item w 598@item w
594Move point back to the current stop point in the source code buffer 599Move point back to the current stop point in the source code buffer
@@ -610,8 +615,12 @@ source code buffer, you must use @kbd{C-x X W} from the global keymap.
610 615
611 You can view the outside window configuration with @kbd{v} or just 616 You can view the outside window configuration with @kbd{v} or just
612bounce to the point in the current buffer with @kbd{p}, even if 617bounce to the point in the current buffer with @kbd{p}, even if
613it is not normally displayed. After moving point, you may wish to jump 618it is not normally displayed.
614back to the stop point with @kbd{w} from a source code buffer. 619
620 After moving point, you may wish to jump back to the stop point.
621You can do that with @kbd{w} from a source code buffer. You can jump
622back to the stop point in the source code buffer from any buffer using
623@kbd{C-x X w}.
615 624
616 Each time you use @kbd{W} to turn saving @emph{off}, Edebug forgets the 625 Each time you use @kbd{W} to turn saving @emph{off}, Edebug forgets the
617saved outside window configuration---so that even if you turn saving 626saved outside window configuration---so that even if you turn saving
@@ -838,8 +847,9 @@ redefining the functions @code{edebug-print-trace-before} and
838@defmac edebug-tracing string body@dots{} 847@defmac edebug-tracing string body@dots{}
839This macro requests additional trace information around the execution 848This macro requests additional trace information around the execution
840of the @var{body} forms. The argument @var{string} specifies text 849of the @var{body} forms. The argument @var{string} specifies text
841to put in the trace buffer. All the arguments are evaluated, and 850to put in the trace buffer, after the @samp{@{} or @samp{@}}. All
842@code{edebug-tracing} returns the value of the last form in @var{body}. 851the arguments are evaluated, and @code{edebug-tracing} returns the
852value of the last form in @var{body}.
843@end defmac 853@end defmac
844 854
845@defun edebug-trace format-string &rest format-args 855@defun edebug-trace format-string &rest format-args
@@ -990,7 +1000,7 @@ current buffer, are saved and restored.
990@item 1000@item
991@cindex window configuration (Edebug) 1001@cindex window configuration (Edebug)
992The outside window configuration is saved and restored if 1002The outside window configuration is saved and restored if
993@code{edebug-save-windows} is non-@code{nil} (@pxref{Edebug Display Update}). 1003@code{edebug-save-windows} is non-@code{nil} (@pxref{Edebug Options}).
994 1004
995The window configuration is not restored on error or quit, but the 1005The window configuration is not restored on error or quit, but the
996outside selected window @emph{is} reselected even on error or quit in 1006outside selected window @emph{is} reselected even on error or quit in
@@ -1061,8 +1071,21 @@ Edebug is active, @code{defining-kbd-macro} is bound to
1061@code{edebug-continue-kbd-macro}. 1071@code{edebug-continue-kbd-macro}.
1062@end itemize 1072@end itemize
1063 1073
1074@node Edebug and Macros
1075@subsection Edebug and Macros
1076
1077To make Edebug properly instrument expressions that call macros, some
1078extra care is needed. This subsection explains the details.
1079
1080@menu
1081* Instrumenting Macro Calls:: The basic problem.
1082* Specification List:: How to specify complex patterns of evaluation.
1083* Backtracking:: What Edebug does when matching fails.
1084* Specification Examples:: To help understand specifications.
1085@end menu
1086
1064@node Instrumenting Macro Calls 1087@node Instrumenting Macro Calls
1065@subsection Instrumenting Macro Calls 1088@subsubsection Instrumenting Macro Calls
1066 1089
1067 When Edebug instruments an expression that calls a Lisp macro, it needs 1090 When Edebug instruments an expression that calls a Lisp macro, it needs
1068additional information about the macro to do the job properly. This is 1091additional information about the macro to do the job properly. This is
@@ -1101,7 +1124,7 @@ define Edebug specifications for special forms implemented in C.
1101@deffn Macro def-edebug-spec macro specification 1124@deffn Macro def-edebug-spec macro specification
1102Specify which expressions of a call to macro @var{macro} are forms to be 1125Specify which expressions of a call to macro @var{macro} are forms to be
1103evaluated. @var{specification} should be the edebug specification. 1126evaluated. @var{specification} should be the edebug specification.
1104It is not evaluated. 1127Neither argument is evaluated.
1105 1128
1106The @var{macro} argument can actually be any symbol, not just a macro 1129The @var{macro} argument can actually be any symbol, not just a macro
1107name. 1130name.
@@ -1128,12 +1151,12 @@ calling form. The possible elements of a specification list are
1128described in the following sections. 1151described in the following sections.
1129@end table 1152@end table
1130 1153
1131@menu 1154@vindex edebug-eval-macro-args
1132* Specification List:: How to specify complex patterns of evaluation. 1155If a macro has no Edebug specification, neither through a @code{debug}
1133* Backtracking:: What Edebug does when matching fails. 1156declaration nor through a @code{def-edebug-spec} call, the variable
1134* Specification Examples:: To help understand specifications. 1157@code{edebug-eval-macro-args} comes into play. If it is @code{nil},
1135@end menu 1158the default, none of the arguments is instrumented for evaluation.
1136 1159If it is non-@code{nil}, all arguments are instrumented.
1137 1160
1138@node Specification List 1161@node Specification List
1139@subsubsection Specification List 1162@subsubsection Specification List
@@ -1406,7 +1429,7 @@ inside of the sublist to prevent backtracking once a sublist is found.
1406Edebug uses the following specifications for @code{defun} and 1429Edebug uses the following specifications for @code{defun} and
1407@code{defmacro} and the associated argument list and @code{interactive} 1430@code{defmacro} and the associated argument list and @code{interactive}
1408specifications. It is necessary to handle interactive forms specially 1431specifications. It is necessary to handle interactive forms specially
1409since an expression argument it is actually evaluated outside of the 1432since an expression argument is actually evaluated outside of the
1410function body. 1433function body.
1411 1434
1412@smallexample 1435@smallexample
diff --git a/lispref/elisp.texi b/lispref/elisp.texi
index 7a19f8a47da..4be680969a1 100644
--- a/lispref/elisp.texi
+++ b/lispref/elisp.texi
@@ -4,8 +4,10 @@
4@settitle GNU Emacs Lisp Reference Manual 4@settitle GNU Emacs Lisp Reference Manual
5@c %**end of header 5@c %**end of header
6 6
7@c Versino of the manual. 7@c Version of the manual and of Emacs.
8@set VERSION 2.9 8@c Please remember to update the edition number in README as well.
9@set VERSION 2.9
10@set EMACSVER 22.0.50
9 11
10@dircategory Emacs 12@dircategory Emacs
11@direntry 13@direntry
@@ -26,9 +28,7 @@
26 28
27@ifnottex 29@ifnottex
28This Info file contains edition @value{VERSION} of the GNU Emacs Lisp 30This Info file contains edition @value{VERSION} of the GNU Emacs Lisp
29Reference Manual, corresponding to Emacs version 22.1. 31Reference Manual, corresponding to Emacs version @value{EMACSVER}.
30@c Please REMEMBER to update edition number in *four* places in this file
31@c and also in *one* place in intro.texi and *one* in README.
32 32
33Published by the Free Software Foundation 33Published by the Free Software Foundation
3459 Temple Place, Suite 330 3459 Temple Place, Suite 330
@@ -52,9 +52,7 @@ Software Foundation raise funds for GNU development.''
52 52
53@titlepage 53@titlepage
54@title GNU Emacs Lisp Reference Manual 54@title GNU Emacs Lisp Reference Manual
55@subtitle For Emacs Version 22 55@subtitle For Emacs Version @value{EMACSVER}
56@c The edition number appears in several places in this file
57@c and also in the file intro.texi.
58@subtitle Revision @value{VERSION}, January 2002 56@subtitle Revision @value{VERSION}, January 2002
59 57
60@author by Bil Lewis, Dan LaLiberte, Richard Stallman 58@author by Bil Lewis, Dan LaLiberte, Richard Stallman
@@ -66,7 +64,7 @@ Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,@*
66 64
67@sp 2 65@sp 2
68Edition @value{VERSION} @* 66Edition @value{VERSION} @*
69Revised for Emacs Version 22.1,@* 67Revised for Emacs Version @value{EMACSVER},@*
70January 2002.@* 68January 2002.@*
71@sp 2 69@sp 2
72ISBN 1-882114-73-6 70ISBN 1-882114-73-6
@@ -92,11 +90,12 @@ Cover art by Etienne Suvasa.
92@end titlepage 90@end titlepage
93@page 91@page
94 92
93@ifnottex
95@node Top, Introduction, (dir), (dir) 94@node Top, Introduction, (dir), (dir)
95@top Emacs Lisp
96 96
97@ifnottex
98This Info file contains edition @value{VERSION} of the GNU Emacs Lisp 97This Info file contains edition @value{VERSION} of the GNU Emacs Lisp
99Reference Manual, corresponding to GNU Emacs version 22.1. 98Reference Manual, corresponding to GNU Emacs version @value{EMACSVER}.
100@end ifnottex 99@end ifnottex
101 100
102@menu 101@menu
@@ -156,7 +155,7 @@ Reference Manual, corresponding to GNU Emacs version 22.1.
156 155
157Appendices 156Appendices
158 157
159* Antinews:: Info for users downgrading to Emacs 20. 158* Antinews:: Info for users downgrading to Emacs 21.
160* GNU Free Documentation License:: The license for this documentation 159* GNU Free Documentation License:: The license for this documentation
161* GPL:: Conditions for copying and changing GNU Emacs. 160* GPL:: Conditions for copying and changing GNU Emacs.
162* Tips:: Advice and coding conventions for Emacs Lisp. 161* Tips:: Advice and coding conventions for Emacs Lisp.
@@ -171,9 +170,10 @@ Appendices
171* Index:: Index including concepts, functions, variables, 170* Index:: Index including concepts, functions, variables,
172 and other terms. 171 and other terms.
173 172
174* New Symbols:: New functions and variables in Emacs 22. 173* New Symbols:: New functions and variables in Emacs @value{EMACSVER}.
175 174
176 --- The Detailed Node Listing --- 175Detailed Node Listing
176---------------------
177 177
178Here are other nodes that are inferiors of those already listed, 178Here are other nodes that are inferiors of those already listed,
179mentioned here so you can get to them in one step: 179mentioned here so you can get to them in one step:
@@ -514,7 +514,7 @@ Edebug
514* Edebug Execution Modes:: Execution modes, stopping more or less often. 514* Edebug Execution Modes:: Execution modes, stopping more or less often.
515* Jumping:: Commands to jump to a specified place. 515* Jumping:: Commands to jump to a specified place.
516* Edebug Misc:: Miscellaneous commands. 516* Edebug Misc:: Miscellaneous commands.
517* Breakpoints:: Setting breakpoints to make the program stop. 517* Breaks:: Setting breakpoints to make the program stop.
518* Trapping Errors:: Trapping errors with Edebug. 518* Trapping Errors:: Trapping errors with Edebug.
519* Edebug Views:: Views inside and outside of Edebug. 519* Edebug Views:: Views inside and outside of Edebug.
520* Edebug Eval:: Evaluating expressions within Edebug. 520* Edebug Eval:: Evaluating expressions within Edebug.
@@ -524,7 +524,7 @@ Edebug
524* Trace Buffer:: How to produce trace output in a buffer. 524* Trace Buffer:: How to produce trace output in a buffer.
525* Coverage Testing:: How to test evaluation coverage. 525* Coverage Testing:: How to test evaluation coverage.
526* The Outside Context:: Data that Edebug saves and restores. 526* The Outside Context:: Data that Edebug saves and restores.
527* Instrumenting Macro Calls:: Specifying how to handle macro calls. 527* Edebug and Macros:: Specifying how to handle macro calls.
528* Edebug Options:: Option variables for customizing Edebug. 528* Edebug Options:: Option variables for customizing Edebug.
529 529
530Debugging Invalid Lisp Syntax 530Debugging Invalid Lisp Syntax
diff --git a/lispref/intro.texi b/lispref/intro.texi
index 999db7ad722..bb264c81c46 100644
--- a/lispref/intro.texi
+++ b/lispref/intro.texi
@@ -5,9 +5,6 @@
5@c See the file elisp.texi for copying conditions. 5@c See the file elisp.texi for copying conditions.
6@setfilename ../info/intro 6@setfilename ../info/intro
7 7
8@c Versino of the manual.
9@set VERSION 2.9
10
11@node Introduction, Lisp Data Types, Top, Top 8@node Introduction, Lisp Data Types, Top, Top
12@comment node-name, next, previous, up 9@comment node-name, next, previous, up
13@chapter Introduction 10@chapter Introduction
@@ -38,7 +35,8 @@ Lisp that have counterparts in many programming languages, and later
38chapters describe features that are peculiar to Emacs Lisp or relate 35chapters describe features that are peculiar to Emacs Lisp or relate
39specifically to editing. 36specifically to editing.
40 37
41 This is edition @value{VERSION}. 38 This is edition @value{VERSION} of the GNU Emacs Lisp Reference
39Manual, corresponding to Emacs version @value{EMACSVER}.
42 40
43@menu 41@menu
44* Caveats:: Flaws and a request for help. 42* Caveats:: Flaws and a request for help.
diff --git a/lispref/searching.texi b/lispref/searching.texi
index 15037068dd2..38a0f4915d7 100644
--- a/lispref/searching.texi
+++ b/lispref/searching.texi
@@ -1531,8 +1531,9 @@ are reseated to point to nowhere, and if the value is @code{evaporate},
1531the markers are put back on the free list. 1531the markers are put back on the free list.
1532 1532
1533@strong{Warning:} When @code{evaporate} is specified for @var{reseat}, 1533@strong{Warning:} When @code{evaporate} is specified for @var{reseat},
1534no other references to the markers on the @var{reuse} list; otherwise, 1534you must ensure that no other references to the markers on the
1535Emacs may crash during the next garbage collection. 1535@var{reuse} list exists; otherwise, Emacs may crash during the next
1536garbage collection.
1536 1537
1537As always, there must be no possibility of intervening searches between 1538As always, there must be no possibility of intervening searches between
1538the call to a search function and the call to @code{match-data} that is 1539the call to a search function and the call to @code{match-data} that is
@@ -1563,8 +1564,9 @@ are reseated to point to nowhere, and if the value is @code{evaporate},
1563the markers are put back on the free list. 1564the markers are put back on the free list.
1564 1565
1565@strong{Warning:} When @code{evaporate} is specified for @var{reseat}, 1566@strong{Warning:} When @code{evaporate} is specified for @var{reseat},
1566no other references to the markers on the @var{match-list} list; otherwise, 1567you must ensure that no other references to the markers on the
1567Emacs may crash during the next garbage collection. 1568@var{match-list} list exists; otherwise, Emacs may crash during the
1569next garbage collection.
1568 1570
1569@findex store-match-data 1571@findex store-match-data
1570@code{store-match-data} is a semi-obsolete alias for @code{set-match-data}. 1572@code{store-match-data} is a semi-obsolete alias for @code{set-match-data}.
diff --git a/lispref/syntax.texi b/lispref/syntax.texi
index a9df79e9f57..e8707709fe2 100644
--- a/lispref/syntax.texi
+++ b/lispref/syntax.texi
@@ -256,7 +256,7 @@ English text has no comment characters. In Lisp, the semicolon
256@deffn {Syntax class} @w{inherit} 256@deffn {Syntax class} @w{inherit}
257This syntax class does not specify a particular syntax. It says to look 257This syntax class does not specify a particular syntax. It says to look
258in the standard syntax table to find the syntax of this character. The 258in the standard syntax table to find the syntax of this character. The
259designator for this syntax code is @samp{@@}. 259designator for this syntax class is @samp{@@}.
260@end deffn 260@end deffn
261 261
262@deffn {Syntax class} @w{generic comment delimiter} 262@deffn {Syntax class} @w{generic comment delimiter}
@@ -385,7 +385,7 @@ nestable.
385@samp{p} identifies an additional ``prefix character'' for Lisp syntax. 385@samp{p} identifies an additional ``prefix character'' for Lisp syntax.
386These characters are treated as whitespace when they appear between 386These characters are treated as whitespace when they appear between
387expressions. When they appear within an expression, they are handled 387expressions. When they appear within an expression, they are handled
388according to their usual syntax codes. 388according to their usual syntax classes.
389 389
390The function @code{backward-prefix-chars} moves back over these 390The function @code{backward-prefix-chars} moves back over these
391characters, as well as over characters whose primary syntax class is 391characters, as well as over characters whose primary syntax class is
@@ -566,7 +566,7 @@ have certain syntax classes.
566 566
567@defun skip-syntax-forward syntaxes &optional limit 567@defun skip-syntax-forward syntaxes &optional limit
568This function moves point forward across characters having syntax 568This function moves point forward across characters having syntax
569classes mentioned in @var{syntaxes} (a string of syntax code 569classes mentioned in @var{syntaxes} (a string of syntax class
570characters). It stops when it encounters the end of the buffer, or 570characters). It stops when it encounters the end of the buffer, or
571position @var{limit} (if specified), or a character it is not supposed 571position @var{limit} (if specified), or a character it is not supposed
572to skip. 572to skip.
@@ -730,6 +730,36 @@ This function is most often used to compute indentation for languages
730that have nested parentheses. 730that have nested parentheses.
731@end defun 731@end defun
732 732
733@defun syntax-ppss &optional pos
734This function returns the state that the parser would have at position
735@var{pos}, if it were started with a default start state at the
736beginning of the buffer. Thus, it is equivalent to
737@code{(parse-partial-sexp (point-min) @var{pos})}, except that
738@code{syntax-ppss} uses a cache to speed up the computation. Also,
739the 2nd value (previous complete subexpression) and 6th value (minimum
740parenthesis depth) of the returned state are not meaningful.
741@end defun
742
743@defun syntax-ppss-flush-cache beg
744This function flushes the cache used by @code{syntax-ppss}, starting at
745position @var{beg}.
746
747When @code{syntax-ppss} is called, it automatically hooks itself
748to @code{before-change-functions} to keep its cache consistent.
749But this can fail if @code{syntax-ppss} is called while
750@code{before-change-functions} is temporarily let-bound, or if the
751buffer is modified without obeying the hook, such as when using
752@code{inhibit-modification-hooks}. For this reason, it is sometimes
753necessary to flush the cache manually.
754@end defun
755
756@defvar syntax-begin-function
757If this is non-nil, it should be a function that moves to an earlier
758buffer position where the parser state is equivalent to @code{nil},
759i.e., a position outside of any comment, string, or parenthesis.
760@code{syntax-ppss} uses it to supplement its cache.
761@end defvar
762
733@defun scan-lists from count depth 763@defun scan-lists from count depth
734This function scans forward @var{count} balanced parenthetical groupings 764This function scans forward @var{count} balanced parenthetical groupings
735from position @var{from}. It returns the position where the scan stops. 765from position @var{from}. It returns the position where the scan stops.
@@ -779,7 +809,7 @@ whitespace by the functions in this section and by @code{forward-sexp}.
779@end defopt 809@end defopt
780 810
781@vindex parse-sexp-lookup-properties 811@vindex parse-sexp-lookup-properties
782The behaviour of @code{parse-partial-sexp} is also affected by 812The behavior of @code{parse-partial-sexp} is also affected by
783@code{parse-sexp-lookup-properties} (@pxref{Syntax Properties}). 813@code{parse-sexp-lookup-properties} (@pxref{Syntax Properties}).
784 814
785You can use @code{forward-comment} to move forward or backward over 815You can use @code{forward-comment} to move forward or backward over
diff --git a/lispref/text.texi b/lispref/text.texi
index 1d4dc0fce8a..cddeeb8fbde 100644
--- a/lispref/text.texi
+++ b/lispref/text.texi
@@ -1667,8 +1667,12 @@ line won't be broken there.
1667@section Adaptive Fill Mode 1667@section Adaptive Fill Mode
1668@cindex Adaptive Fill mode 1668@cindex Adaptive Fill mode
1669 1669
1670 Adaptive Fill mode chooses a fill prefix automatically from the text 1670 When @dfn{Adaptive Fill Mode} is enabled, Emacs determines the fill
1671in each paragraph being filled. 1671prefix automatically from the text in each paragraph being filled
1672rather than using a predetermined value. During filling, this fill
1673prefix gets inserted at the start of the second and subsequent lines
1674of the paragraph as described in @ref{Filling}, and in @ref{Auto
1675Filling}.
1672 1676
1673@defopt adaptive-fill-mode 1677@defopt adaptive-fill-mode
1674Adaptive Fill mode is enabled when this variable is non-@code{nil}. 1678Adaptive Fill mode is enabled when this variable is non-@code{nil}.
@@ -1677,38 +1681,80 @@ It is @code{t} by default.
1677 1681
1678@defun fill-context-prefix from to 1682@defun fill-context-prefix from to
1679This function implements the heart of Adaptive Fill mode; it chooses a 1683This function implements the heart of Adaptive Fill mode; it chooses a
1680fill prefix based on the text between @var{from} and @var{to}. It does 1684fill prefix based on the text between @var{from} and @var{to},
1681this by looking at the first two lines of the paragraph, based on the 1685typically the start and end of a paragraph. It does this by looking
1682variables described below. 1686at the first two lines of the paragraph, based on the variables
1687described below.
1683@c The optional argument first-line-regexp is not documented 1688@c The optional argument first-line-regexp is not documented
1684@c because it exists for internal purposes and might be eliminated 1689@c because it exists for internal purposes and might be eliminated
1685@c in the future. 1690@c in the future.
1691
1692Usually, this function returns the fill prefix, a string. However,
1693before doing this, the function makes a final check (not specially
1694mentioned in the following) that a line starting with this prefix
1695wouldn't look like the start of a paragraph. Should this happen, the
1696function signals the anomaly by returning @code{nil} instead.
1697
1698In detail, @code{fill-context-prefix} does this:
1699
1700@enumerate
1701@item
1702It takes a candidate for the fill prefix from the first line---it
1703tries first the function in @code{adaptive-fill-function} (if any),
1704then the regular expression @code{adaptive-fill-regexp} (see below).
1705The first non-@code{nil} result of these, or the empty string if
1706they're both @code{nil}, becomes the first line's candidate.
1707@item
1708If the paragraph has as yet only one line, the function tests the
1709validity of the prefix candidate just found. The function then
1710returns the candidate if it's valid, or a string of spaces otherwise.
1711(see the description of @code{adaptive-fill-first-line-regexp} below).
1712@item
1713When the paragraph already has two lines, the function next looks for
1714a prefix candidate on the second line, in just the same way it did for
1715the first line. If it doesn't find one, it returns @code{nil}.
1716@item
1717The function now compares the two candidate prefixes heuristically: if
1718the non-whitespace characters in the line 2 candidate occur in the
1719same order in the line 1 candidate, the function returns the line 2
1720candidate. Otherwise, it returns the largest initial substring which
1721is common to both candidates (which might be the empty string).
1722@end enumerate
1686@end defun 1723@end defun
1687 1724
1688@defopt adaptive-fill-regexp 1725@defopt adaptive-fill-regexp
1689This variable holds a regular expression to control Adaptive Fill mode.
1690Adaptive Fill mode matches this regular expression against the text 1726Adaptive Fill mode matches this regular expression against the text
1691starting after the left margin whitespace (if any) on a line; the 1727starting after the left margin whitespace (if any) on a line; the
1692characters it matches are that line's candidate for the fill prefix. 1728characters it matches are that line's candidate for the fill prefix.
1729
1730The default value of this variable is
1731@w{@samp{"[ \t]*\\([-|#;>*]+[ \t]*\\|(?[0-9]+[.)][ \t]*\\)*"}}. This
1732matches a number enclosed in parentheses or followed by a period,
1733or certain punctuation characters, or any sequence of these
1734intermingled with whitespace. In particular, it matches a sequence of
1735whitespace, possibly empty.
1693@end defopt 1736@end defopt
1694 1737
1695@defopt adaptive-fill-first-line-regexp 1738@defopt adaptive-fill-first-line-regexp
1696In a one-line paragraph, if the candidate fill prefix matches this 1739Used only in one-line paragraphs, this regular expression acts as an
1697regular expression, or if it matches @code{comment-start-skip}, then it 1740additional check of the validity of the one available candidate fill
1698is used---otherwise, spaces amounting to the same width are used 1741prefix: the candidate must match this regular expression, or match
1699instead. 1742@code{comment-start-skip}. If it doesn't, @code{fill-context-prefix}
1700 1743replaces the candidate with a string of spaces ``of the same width''
1701However, the fill prefix is never taken from a one-line paragraph 1744as it.
1702if it would act as a paragraph starter on subsequent lines. 1745
1746The default value of this variable is @w{@samp{"\\`[ \t]*\\'"}}, which
1747matches only a string of whitespace. The effect of this default is to
1748force the fill prefixes found in one-line paragraphs always to be pure
1749whitespace.
1703@end defopt 1750@end defopt
1704 1751
1705@defopt adaptive-fill-function 1752@defopt adaptive-fill-function
1706You can specify more complex ways of choosing a fill prefix 1753You can specify more complex ways of choosing a fill prefix
1707automatically by setting this variable to a function. The function is 1754automatically by setting this variable to a function. The function is
1708called when @code{adaptive-fill-regexp} does not match, with point after 1755called with point after the left margin (if any) of a line, and it
1709the left margin of a line, and it should return the appropriate fill 1756must preserve point. It should return either ``that line's'' fill
1710prefix based on that line. If it returns @code{nil}, that means it sees 1757prefix or @code{nil}, meaning it has failed to determine a prefix.
1711no fill prefix in that line.
1712@end defopt 1758@end defopt
1713 1759
1714@node Auto Filling 1760@node Auto Filling
@@ -3078,8 +3124,8 @@ that character a non-@code{nil} @var{cursor} text property.
3078@item pointer 3124@item pointer
3079@kindex pointer @r{(text property)} 3125@kindex pointer @r{(text property)}
3080This specifies a specific pointer shape when the mouse pointer is over 3126This specifies a specific pointer shape when the mouse pointer is over
3081this text or image. See the variable @var{void-area-text-pointer} 3127this text or image. @xref{Pointer Shape}, for possible pointer
3082for possible pointer shapes. 3128shapes.
3083 3129
3084@item line-spacing 3130@item line-spacing
3085@kindex line-spacing @r{(text property)} 3131@kindex line-spacing @r{(text property)}