aboutsummaryrefslogtreecommitdiffstats
path: root/doc/lispref
diff options
context:
space:
mode:
authorTom Tromey2013-08-19 21:53:07 -0600
committerTom Tromey2013-08-19 21:53:07 -0600
commit6d75555c5cc3d2a629646cee7629e67530fa7a36 (patch)
tree3852804dd234ad613ea8691332e10b92c027e87d /doc/lispref
parentcc231cbe45d27a1906d268fb72d3b4105a2e9c65 (diff)
parent8c2f38aaab7a7a2f0605416fc2ee38701e41ab61 (diff)
downloademacs-6d75555c5cc3d2a629646cee7629e67530fa7a36.tar.gz
emacs-6d75555c5cc3d2a629646cee7629e67530fa7a36.zip
merge from trunk
Diffstat (limited to 'doc/lispref')
-rw-r--r--doc/lispref/ChangeLog118
-rw-r--r--doc/lispref/Makefile.in90
-rw-r--r--doc/lispref/control.texi56
-rw-r--r--doc/lispref/display.texi14
-rw-r--r--doc/lispref/edebug.texi4
-rw-r--r--doc/lispref/elisp.texi1
-rw-r--r--doc/lispref/errors.texi11
-rw-r--r--doc/lispref/frames.texi6
-rw-r--r--doc/lispref/functions.texi1
-rw-r--r--doc/lispref/lists.texi15
-rw-r--r--doc/lispref/markers.texi26
-rw-r--r--doc/lispref/modes.texi6
-rw-r--r--doc/lispref/nonascii.texi51
-rw-r--r--doc/lispref/positions.texi21
-rw-r--r--doc/lispref/text.texi45
-rw-r--r--doc/lispref/variables.texi1
-rw-r--r--doc/lispref/windows.texi17
17 files changed, 390 insertions, 93 deletions
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 32717946b04..3f9d23a5476 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,121 @@
12013-08-18 Xue Fuqiao <xfq.free@gmail.com>
2
3 * positions.texi (Positions): Improve indexing.
4
52013-08-18 Eli Zaretskii <eliz@gnu.org>
6
7 * markers.texi (The Region): Improve indexing.
8
92013-08-17 Xue Fuqiao <xfq.free@gmail.com>
10
11 * modes.texi (SMIE, SMIE Grammar, SMIE Indentation): Add some indexes.
12
13 * text.texi (Maintaining Undo): Mention interactive call of
14 buffer-disable-undo.
15 (Filling): Add cross-reference for hard newlines.
16 (Sorting): Fix indentation.
17 (Columns): Comment out undefined behavior.
18 (Case Changes): Fix an `args-out-of-range' error in the example.
19
202013-08-16 Xue Fuqiao <xfq.free@gmail.com>
21
22 * text.texi (Insertion): Refine.
23 (Margins): Add an index.
24 (Undo): Doc fix for `buffer-undo-list'.
25
26 * positions.texi (Character Motion):
27 * markers.texi (Moving Markers):
28 (Creating Markers): Comment out undefined behavior.
29
302013-08-15 Xue Fuqiao <xfq.free@gmail.com>
31
32 * markers.texi (The Region): Add/move indexes.
33
342013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
35
36 * display.texi (ImageMagick Images): Mention :content-type and
37 `image-content-type-suffixes'.
38
392013-08-13 Xue Fuqiao <xfq.free@gmail.com>
40
41 * positions.texi (Word Motion): Remove redundant sentence.
42
432013-08-13 Glenn Morris <rgm@gnu.org>
44
45 * lists.texi (List Elements):
46 Undocument behavior of nth and nthcdr with n < 0. (Bug#15059)
47
482013-08-13 Xue Fuqiao <xfq.free@gmail.com>
49
50 * frames.texi (Display Feature Testing): Add indexes.
51
522013-08-12 Glenn Morris <rgm@gnu.org>
53
54 * Makefile.in (prefix, datarootdir, datadir, PACKAGE_TARNAME)
55 (docdir, dvidir, htmldir, pdfdir, psdir, GZIP_PROG, INSTALL)
56 (INSTALL_DATA): New, set by configure.
57 (HTML_OPTS, DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS):
58 New variables.
59 (.SUFFIXES): Add .ps and .dvi.
60 (.dvi.ps): New suffix rule.
61 (dvi, html, pdf, ps): Use *_TARGETS variables.
62 (elisp.html): Use HTML_OPTS.
63 (elisp.ps): Remove explicit rule.
64 (.PHONY): install-dvi, install-html, install-pdf, install-ps
65 ,install-doc, uninstall-dvi, uninstall-html, uninstall-pdf,
66 uninstall-ps, and uninstall-doc.
67 (install-dvi, install-html, install-pdf, install-ps, install-doc)
68 (uninstall-dvi, uninstall-html, uninstall-ps, uninstall-pdf)
69 (uninstall-doc): New rules.
70 (clean): Use DVI_TARGETS, HTML_TARGETS, PDF_TARGETS, PS_TARGETS.
71
722013-08-10 Xue Fuqiao <xfq.free@gmail.com>
73
74 * edebug.texi (Instrumenting Macro Calls): Use @defmac for macros.
75
762013-08-09 Xue Fuqiao <xfq.free@gmail.com>
77
78 * control.texi (Error Symbols): Minor fix for previous change.
79
802013-08-09 Stefan Monnier <monnier@iro.umontreal.ca>
81
82 * errors.texi (Standard Errors): Don't refer to `error-conditions'.
83
84 * control.texi (Signaling Errors): Refer to define-error.
85 (Error Symbols): Add `define-error'.
86
872013-08-06 Dmitry Antipov <dmantipov@yandex.ru>
88
89 * positions.texi (Motion by Screen Lines):
90 * display.texi (Truncation): Rename `cache-long-line-scans'
91 to `cache-long-scans'.
92
932013-08-05 Xue Fuqiao <xfq.free@gmail.com>
94
95 * windows.texi (Window Start and End): Add an index.
96
972013-08-02 Xue Fuqiao <xfq.free@gmail.com>
98
99 * display.texi (Face Functions): Add an index.
100
101 * variables.texi (Variable Aliases): Add an index.
102
103 * functions.texi (Defining Functions): Add an index.
104
105 * nonascii.texi (Coding System Basics): Add an index.
106
1072013-07-31 Xue Fuqiao <xfq.free@gmail.com>
108
109 * nonascii.texi (Non-ASCII Characters): Update menu.
110 (Disabling Multibyte): Move here from doc/emacs/mule.texi. Fix cross-references.
111
112 * elisp.texi (Top): Update menu.
113
1142013-07-30 Xue Fuqiao <xfq.free@gmail.com>
115
116 * windows.texi (Window History): Mention the default value of
117 switch-to-visible-buffer. Add cross-references.
118
12013-07-24 Michael Albinus <michael.albinus@gmx.de> 1192013-07-24 Michael Albinus <michael.albinus@gmx.de>
2 120
3 * errors.texi (Standard Errors): Fix typo. 121 * errors.texi (Standard Errors): Fix typo.
diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in
index 4c1d63ab5c8..675cac7949d 100644
--- a/doc/lispref/Makefile.in
+++ b/doc/lispref/Makefile.in
@@ -33,12 +33,29 @@ texinfodir = $(srcdir)/../misc
33# Directory with emacsver.texi. 33# Directory with emacsver.texi.
34emacsdir = $(srcdir)/../emacs 34emacsdir = $(srcdir)/../emacs
35 35
36prefix = @prefix@
37datarootdir = @datarootdir@
38datadir = @datadir@
39PACKAGE_TARNAME = @PACKAGE_TARNAME@
40docdir = @docdir@
41dvidir = @dvidir@
42htmldir = @htmldir@
43pdfdir = @pdfdir@
44psdir = @psdir@
45
36MKDIR_P = @MKDIR_P@ 46MKDIR_P = @MKDIR_P@
37 47
48GZIP_PROG = @GZIP_PROG@
49
50HTML_OPTS = --no-split --html
51
38INFO_EXT=@INFO_EXT@ 52INFO_EXT=@INFO_EXT@
39# Options used only when making info output. 53# Options used only when making info output.
40INFO_OPTS=@INFO_OPTS@ 54INFO_OPTS=@INFO_OPTS@
41 55
56INSTALL = @INSTALL@
57INSTALL_DATA = @INSTALL_DATA@
58
42MAKEINFO = @MAKEINFO@ 59MAKEINFO = @MAKEINFO@
43MAKEINFO_OPTS = --force --enable-encoding -I $(emacsdir) -I $(srcdir) 60MAKEINFO_OPTS = --force --enable-encoding -I $(emacsdir) -I $(srcdir)
44TEXI2DVI = texi2dvi 61TEXI2DVI = texi2dvi
@@ -48,6 +65,11 @@ DVIPS = dvips
48ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \ 65ENVADD = TEXINPUTS="$(srcdir):$(texinfodir):$(emacsdir):$(TEXINPUTS)" \
49 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)" 66 MAKEINFO="$(MAKEINFO) $(MAKEINFO_OPTS)"
50 67
68DVI_TARGETS = elisp.dvi
69HTML_TARGETS = elisp.html
70PDF_TARGETS = elisp.pdf
71PS_TARGETS = elisp.ps
72
51# List of all the texinfo files in the manual: 73# List of all the texinfo files in the manual:
52 74
53srcs = \ 75srcs = \
@@ -109,11 +131,16 @@ mkinfodir = @${MKDIR_P} ${buildinfodir}
109 131
110.PHONY: info dvi pdf ps 132.PHONY: info dvi pdf ps
111 133
134.SUFFIXES: .ps .dvi
135
136.dvi.ps:
137 $(DVIPS) -o $@ $<
138
112info: $(buildinfodir)/elisp$(INFO_EXT) 139info: $(buildinfodir)/elisp$(INFO_EXT)
113dvi: elisp.dvi 140dvi: $(DVI_TARGETS)
114html: elisp.html 141html: $(HTML_TARGETS)
115pdf: elisp.pdf 142pdf: $(PDF_TARGETS)
116ps: elisp.ps 143ps: $(PS_TARGETS)
117 144
118## Note: "<" is not portable in ordinary make rules. 145## Note: "<" is not portable in ordinary make rules.
119$(buildinfodir)/elisp$(INFO_EXT): $(srcs) 146$(buildinfodir)/elisp$(INFO_EXT): $(srcs)
@@ -124,10 +151,7 @@ elisp.dvi: $(srcs)
124 $(ENVADD) $(TEXI2DVI) $(srcdir)/elisp.texi 151 $(ENVADD) $(TEXI2DVI) $(srcdir)/elisp.texi
125 152
126elisp.html: $(srcs) 153elisp.html: $(srcs)
127 $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $(srcdir)/elisp.texi 154 $(MAKEINFO) $(MAKEINFO_OPTS) $(HTML_OPTS) -o $@ $(srcdir)/elisp.texi
128
129elisp.ps: elisp.dvi
130 $(DVIPS) -o $@ elisp.dvi
131 155
132elisp.pdf: $(srcs) 156elisp.pdf: $(srcs)
133 $(ENVADD) $(TEXI2PDF) $(srcdir)/elisp.texi 157 $(ENVADD) $(TEXI2PDF) $(srcdir)/elisp.texi
@@ -141,9 +165,8 @@ mostlyclean:
141 rm -f elisp[12]* vol[12].tmp 165 rm -f elisp[12]* vol[12].tmp
142 166
143clean: mostlyclean 167clean: mostlyclean
144 rm -f elisp.dvi elisp.pdf elisp.ps 168 rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS)
145 rm -f vol[12].dvi vol[12].pdf vol[12].ps 169 rm -f vol[12].dvi vol[12].pdf vol[12].ps
146 rm -rf elisp.html
147 rm -f emacs-lispref-${version}.tar* 170 rm -f emacs-lispref-${version}.tar*
148 171
149distclean: clean 172distclean: clean
@@ -176,4 +199,51 @@ dist:
176 tar -cf emacs-lispref-${version}.tar emacs-lispref-${version} 199 tar -cf emacs-lispref-${version}.tar emacs-lispref-${version}
177 rm -rf emacs-lispref-${version} 200 rm -rf emacs-lispref-${version}
178 201
202.PHONY: install-dvi install-html install-pdf install-ps install-doc
203
204install-dvi: dvi
205 umask 022; $(MKDIR_P) $(DESTDIR)$(dvidir)
206 $(INSTALL_DATA) $(DVI_TARGETS) $(DESTDIR)$(dvidir)
207install-html: html
208 umask 022; $(MKDIR_P) $(DESTDIR)$(htmldir)
209 $(INSTALL_DATA) $(HTML_TARGETS) $(DESTDIR)$(htmldir)
210install-pdf: pdf
211 umask 022;$(MKDIR_P) $(DESTDIR)$(pdfdir)
212 $(INSTALL_DATA) $(PDF_TARGETS) $(DESTDIR)$(pdfdir)
213install-ps: ps
214 umask 022; $(MKDIR_P) $(DESTDIR)$(psdir)
215 for file in $(PS_TARGETS); do \
216 $(INSTALL_DATA) $${file} $(DESTDIR)$(psdir); \
217 [ -n "${GZIP_PROG}" ] || continue; \
218 rm -f $(DESTDIR)$(psdir)/$${file}.gz; \
219 ${GZIP_PROG} -9n $(DESTDIR)$(psdir)/$${file}; \
220 done
221
222## Top-level Makefile installs the info pages.
223install-doc: install-dvi install-html install-pdf install-ps
224
225
226.PHONY: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps uninstall-doc
227
228uninstall-dvi:
229 for file in $(DVI_TARGETS); do \
230 rm -f $(DESTDIR)$(dvidir)/$${file}; \
231 done
232uninstall-html:
233 for file in $(HTML_TARGETS); do \
234 rm -f $(DESTDIR)$(htmldir)/$${file}; \
235 done
236uninstall-ps:
237 ext= ; [ -n "${GZIP_PROG}" ] && ext=.gz; \
238 for file in $(PS_TARGETS); do \
239 rm -f $(DESTDIR)$(psdir)/$${file}$${ext}; \
240 done
241uninstall-pdf:
242 for file in $(PDF_TARGETS); do \
243 rm -f $(DESTDIR)$(pdfdir)/$${file}; \
244 done
245
246uninstall-doc: uninstall-dvi uninstall-html uninstall-pdf uninstall-ps
247
248
179### Makefile ends here 249### Makefile ends here
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index 9ee01299260..70eabcd84a4 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -890,9 +890,8 @@ argument @var{data} is a list of additional Lisp objects relevant to
890the circumstances of the error. 890the circumstances of the error.
891 891
892The argument @var{error-symbol} must be an @dfn{error symbol}---a symbol 892The argument @var{error-symbol} must be an @dfn{error symbol}---a symbol
893bearing a property @code{error-conditions} whose value is a list of 893defined with @code{define-error}. This is how Emacs Lisp classifies different
894condition names. This is how Emacs Lisp classifies different sorts of 894sorts of errors. @xref{Error Symbols}, for a description of error symbols,
895errors. @xref{Error Symbols}, for a description of error symbols,
896error conditions and condition names. 895error conditions and condition names.
897 896
898If the error is not handled, the two arguments are used in printing 897If the error is not handled, the two arguments are used in printing
@@ -1118,8 +1117,8 @@ Here are examples of handlers:
1118@end example 1117@end example
1119 1118
1120Each error that occurs has an @dfn{error symbol} that describes what 1119Each error that occurs has an @dfn{error symbol} that describes what
1121kind of error it is. The @code{error-conditions} property of this 1120kind of error it is, and which describes also a list of condition names
1122symbol is a list of condition names (@pxref{Error Symbols}). Emacs 1121(@pxref{Error Symbols}). Emacs
1123searches all the active @code{condition-case} forms for a handler that 1122searches all the active @code{condition-case} forms for a handler that
1124specifies one or more of these condition names; the innermost matching 1123specifies one or more of these condition names; the innermost matching
1125@code{condition-case} handles the error. Within this 1124@code{condition-case} handles the error. Within this
@@ -1259,6 +1258,7 @@ should be robust if one does occur. Note that this macro uses
1259@cindex condition name 1258@cindex condition name
1260@cindex user-defined error 1259@cindex user-defined error
1261@kindex error-conditions 1260@kindex error-conditions
1261@kindex define-error
1262 1262
1263 When you signal an error, you specify an @dfn{error symbol} to specify 1263 When you signal an error, you specify an @dfn{error symbol} to specify
1264the kind of error you have in mind. Each error has one and only one 1264the kind of error you have in mind. Each error has one and only one
@@ -1275,42 +1275,38 @@ Thus, each error has one or more condition names: @code{error}, the
1275error symbol if that is distinct from @code{error}, and perhaps some 1275error symbol if that is distinct from @code{error}, and perhaps some
1276intermediate classifications. 1276intermediate classifications.
1277 1277
1278 In order for a symbol to be an error symbol, it must have an 1278@defun define-error name message &optional parent
1279@code{error-conditions} property which gives a list of condition names. 1279 In order for a symbol to be an error symbol, it must be defined with
1280This list defines the conditions that this kind of error belongs to. 1280@code{define-error} which takes a parent condition (defaults to @code{error}).
1281(The error symbol itself, and the symbol @code{error}, should always be 1281This parent defines the conditions that this kind of error belongs to.
1282members of this list.) Thus, the hierarchy of condition names is 1282The transitive set of parents always includes the error symbol itself, and the
1283defined by the @code{error-conditions} properties of the error symbols. 1283symbol @code{error}. Because quitting is not considered an error, the set of
1284Because quitting is not considered an error, the value of the 1284parents of @code{quit} is just @code{(quit)}.
1285@code{error-conditions} property of @code{quit} is just @code{(quit)}. 1285@end defun
1286 1286
1287@cindex peculiar error 1287@cindex peculiar error
1288 In addition to the @code{error-conditions} list, the error symbol 1288 In addition to its parents, the error symbol has a @var{message} which
1289should have an @code{error-message} property whose value is a string to 1289is a string to be printed when that error is signaled but not handled. If that
1290be printed when that error is signaled but not handled. If the 1290message is not valid, the error message @samp{peculiar error} is used.
1291error symbol has no @code{error-message} property or if the 1291@xref{Definition of signal}.
1292@code{error-message} property exists, but is not a string, the error 1292
1293message @samp{peculiar error} is used. @xref{Definition of signal}. 1293Internally, the set of parents is stored in the @code{error-conditions}
1294property of the error symbol and the message is stored in the
1295@code{error-message} property of the error symbol.
1294 1296
1295 Here is how we define a new error symbol, @code{new-error}: 1297 Here is how we define a new error symbol, @code{new-error}:
1296 1298
1297@example 1299@example
1298@group 1300@group
1299(put 'new-error 1301(define-error 'new-error "A new error" 'my-own-errors)
1300 'error-conditions
1301 '(error my-own-errors new-error))
1302@result{} (error my-own-errors new-error)
1303@end group
1304@group
1305(put 'new-error 'error-message "A new error")
1306@result{} "A new error"
1307@end group 1302@end group
1308@end example 1303@end example
1309 1304
1310@noindent 1305@noindent
1311This error has three condition names: @code{new-error}, the narrowest 1306This error has several condition names: @code{new-error}, the narrowest
1312classification; @code{my-own-errors}, which we imagine is a wider 1307classification; @code{my-own-errors}, which we imagine is a wider
1313classification; and @code{error}, which is the widest of all. 1308classification; and all the conditions of @code{my-own-errors} which should
1309include @code{error}, which is the widest of all.
1314 1310
1315 The error string should start with a capital letter but it should 1311 The error string should start with a capital letter but it should
1316not end with a period. This is for consistency with the rest of Emacs. 1312not end with a period. This is for consistency with the rest of Emacs.
@@ -1326,7 +1322,7 @@ your code can do this:
1326@end group 1322@end group
1327@end example 1323@end example
1328 1324
1329 This error can be handled through any of the three condition names. 1325 This error can be handled through any of its condition names.
1330This example handles @code{new-error} and any other errors in the class 1326This example handles @code{new-error} and any other errors in the class
1331@code{my-own-errors}: 1327@code{my-own-errors}:
1332 1328
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 44fbc66a60e..ff9d98170d1 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -217,9 +217,9 @@ over the @code{line-prefix} variable. @xref{Special Properties}.
217continuation to display them, computing the continuation lines can 217continuation to display them, computing the continuation lines can
218make redisplay slow. The column computation and indentation functions 218make redisplay slow. The column computation and indentation functions
219also become slow. Then you might find it advisable to set 219also become slow. Then you might find it advisable to set
220@code{cache-long-line-scans} to @code{t}. 220@code{cache-long-scans} to @code{t}.
221 221
222@defvar cache-long-line-scans 222@defvar cache-long-scans
223If this variable is non-@code{nil}, various indentation and motion 223If this variable is non-@code{nil}, various indentation and motion
224functions, and Emacs redisplay, cache the results of scanning the 224functions, and Emacs redisplay, cache the results of scanning the
225buffer, and consult the cache to avoid rescanning regions of the buffer 225buffer, and consult the cache to avoid rescanning regions of the buffer
@@ -1243,6 +1243,7 @@ Type RET when done reading
1243@node Overlays 1243@node Overlays
1244@section Overlays 1244@section Overlays
1245@cindex overlays 1245@cindex overlays
1246@c FIXME: mention intervals in this section?
1246 1247
1247You can use @dfn{overlays} to alter the appearance of a buffer's text on 1248You can use @dfn{overlays} to alter the appearance of a buffer's text on
1248the screen, for the sake of presentation features. An overlay is an 1249the screen, for the sake of presentation features. An overlay is an
@@ -2738,6 +2739,7 @@ differently from the default face.
2738@end defun 2739@end defun
2739 2740
2740@cindex face alias 2741@cindex face alias
2742@cindex alias, for faces
2741A @dfn{face alias} provides an equivalent name for a face. You can 2743A @dfn{face alias} provides an equivalent name for a face. You can
2742define a face alias by giving the alias symbol the @code{face-alias} 2744define a face alias by giving the alias symbol the @code{face-alias}
2743property, with a value of the target face name. The following example 2745property, with a value of the target face name. The following example
@@ -4662,6 +4664,14 @@ and if @code{:height} is set it will have precedence over
4662wish. @code{:max-width} and @code{:max-height} will always preserve 4664wish. @code{:max-width} and @code{:max-height} will always preserve
4663the aspect ratio. 4665the aspect ratio.
4664 4666
4667@item :format
4668ImageMagick tries to auto-detect the image type, but it isn't always
4669able to. By using @code{:format-type}, we can give ImageMagick a hint
4670to try to help it. It's used in conjunction with the
4671@code{image-format-suffixes} variable, which provides a mapping from
4672content types to file name suffixes. This is then given to
4673ImageMagick as a file name hint.
4674
4665@item :rotation 4675@item :rotation
4666Specifies a rotation angle in degrees. 4676Specifies a rotation angle in degrees.
4667 4677
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index 8e394b5d92d..8384c31a380 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -1132,14 +1132,14 @@ from the macro definition with @code{def-edebug-spec}. Adding
1132definitions in Lisp, but @code{def-edebug-spec} makes it possible to 1132definitions in Lisp, but @code{def-edebug-spec} makes it possible to
1133define Edebug specifications for special forms implemented in C. 1133define Edebug specifications for special forms implemented in C.
1134 1134
1135@deffn Macro def-edebug-spec macro specification 1135@defmac def-edebug-spec macro specification
1136Specify which expressions of a call to macro @var{macro} are forms to be 1136Specify which expressions of a call to macro @var{macro} are forms to be
1137evaluated. @var{specification} should be the edebug specification. 1137evaluated. @var{specification} should be the edebug specification.
1138Neither argument is evaluated. 1138Neither argument is evaluated.
1139 1139
1140The @var{macro} argument can actually be any symbol, not just a macro 1140The @var{macro} argument can actually be any symbol, not just a macro
1141name. 1141name.
1142@end deffn 1142@end defmac
1143 1143
1144Here is a table of the possibilities for @var{specification} and how each 1144Here is a table of the possibilities for @var{specification} and how each
1145directs processing of arguments. 1145directs processing of arguments.
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 9c013140999..e05253638d7 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -1195,6 +1195,7 @@ Text Properties
1195Non-@acronym{ASCII} Characters 1195Non-@acronym{ASCII} Characters
1196 1196
1197* Text Representations:: How Emacs represents text. 1197* Text Representations:: How Emacs represents text.
1198* Disabling Multibyte:: Controlling whether to use multibyte characters.
1198* Converting Representations:: Converting unibyte to multibyte and vice versa. 1199* Converting Representations:: Converting unibyte to multibyte and vice versa.
1199* Selecting a Representation:: Treating a byte sequence as unibyte or multi. 1200* Selecting a Representation:: Treating a byte sequence as unibyte or multi.
1200* Character Codes:: How unibyte and multibyte relate to 1201* Character Codes:: How unibyte and multibyte relate to
diff --git a/doc/lispref/errors.texi b/doc/lispref/errors.texi
index 87cfcfa532c..8a10fbf0c47 100644
--- a/doc/lispref/errors.texi
+++ b/doc/lispref/errors.texi
@@ -7,12 +7,11 @@
7@appendix Standard Errors 7@appendix Standard Errors
8@cindex standard errors 8@cindex standard errors
9 9
10 Here is a list of the more important error symbols in standard Emacs, 10 Here is a list of the more important error symbols in standard Emacs, grouped
11grouped by concept. The list includes each symbol's message (on the 11by concept. The list includes each symbol's message and a cross reference
12@code{error-message} property of the symbol) and a cross reference to a 12to a description of how the error can occur.
13description of how the error can occur.
14 13
15 Each error symbol has an @code{error-conditions} property that is a 14 Each error symbol has an set of parent error conditions that is a
16list of symbols. Normally this list includes the error symbol itself 15list of symbols. Normally this list includes the error symbol itself
17and the symbol @code{error}. Occasionally it includes additional 16and the symbol @code{error}. Occasionally it includes additional
18symbols, which are intermediate classifications, narrower than 17symbols, which are intermediate classifications, narrower than
@@ -24,8 +23,6 @@ conditions, that means it has none.
24 As a special exception, the error symbol @code{quit} does not have the 23 As a special exception, the error symbol @code{quit} does not have the
25condition @code{error}, because quitting is not considered an error. 24condition @code{error}, because quitting is not considered an error.
26 25
27@c You can grep for "(put 'foo 'error-conditions ...) to find
28@c examples defined in Lisp. E.g., soap-client.el, sasl.el.
29 Most of these error symbols are defined in C (mainly @file{data.c}), 26 Most of these error symbols are defined in C (mainly @file{data.c}),
30but some are defined in Lisp. For example, the file @file{userlock.el} 27but some are defined in Lisp. For example, the file @file{userlock.el}
31defines the @code{file-locked} and @code{file-supersession} errors. 28defines the @code{file-locked} and @code{file-supersession} errors.
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 01d2d1d6c45..370098c8b62 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -446,7 +446,7 @@ default parameters by supplying their own parameters.
446If you invoke Emacs with command-line options that specify frame 446If you invoke Emacs with command-line options that specify frame
447appearance, those options take effect by adding elements to either 447appearance, those options take effect by adding elements to either
448@code{initial-frame-alist} or @code{default-frame-alist}. Options 448@code{initial-frame-alist} or @code{default-frame-alist}. Options
449which affect just the initial frame, such as @samp{-geometry} and 449which affect just the initial frame, such as @samp{--geometry} and
450@samp{--maximized}, add to @code{initial-frame-alist}; the others add 450@samp{--maximized}, add to @code{initial-frame-alist}; the others add
451to @code{default-frame-alist}. @pxref{Emacs Invocation,, Command Line 451to @code{default-frame-alist}. @pxref{Emacs Invocation,, Command Line
452Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}. 452Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}.
@@ -1362,7 +1362,7 @@ Terminals}.
1362@node Input Focus 1362@node Input Focus
1363@section Input Focus 1363@section Input Focus
1364@cindex input focus 1364@cindex input focus
1365@c @cindex selected frame Duplicates selected-frame 1365@c @cindex selected frame Duplicates selected-frame, same for selected-window.
1366 1366
1367At any time, one frame in Emacs is the @dfn{selected frame}. The selected 1367At any time, one frame in Emacs is the @dfn{selected frame}. The selected
1368window always resides on the selected frame. 1368window always resides on the selected frame.
@@ -2391,6 +2391,7 @@ displays returned by @code{display-mm-height} and
2391@code{display-mm-width} in case the system provides incorrect values. 2391@code{display-mm-width} in case the system provides incorrect values.
2392@end defopt 2392@end defopt
2393 2393
2394@cindex backing store
2394@defun display-backing-store &optional display 2395@defun display-backing-store &optional display
2395This function returns the backing store capability of the display. 2396This function returns the backing store capability of the display.
2396Backing store means recording the pixels of windows (and parts of 2397Backing store means recording the pixels of windows (and parts of
@@ -2402,6 +2403,7 @@ Values can be the symbols @code{always}, @code{when-mapped}, or
2402when the question is inapplicable to a certain kind of display. 2403when the question is inapplicable to a certain kind of display.
2403@end defun 2404@end defun
2404 2405
2406@cindex SaveUnder feature
2405@defun display-save-under &optional display 2407@defun display-save-under &optional display
2406This function returns non-@code{nil} if the display supports the 2408This function returns non-@code{nil} if the display supports the
2407SaveUnder feature. That feature is used by pop-up windows 2409SaveUnder feature. That feature is used by pop-up windows
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index fcd345ef83b..39a9ff6b62c 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -580,6 +580,7 @@ redefinition from unintentional redefinition.
580@end defmac 580@end defmac
581 581
582@cindex function aliases 582@cindex function aliases
583@cindex alias, for functions
583@defun defalias name definition &optional doc 584@defun defalias name definition &optional doc
584@anchor{Definition of defalias} 585@anchor{Definition of defalias}
585This function defines the symbol @var{name} as a function, with 586This function defines the symbol @var{name} as a function, with
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi
index 14601de1814..9daf01cd0a2 100644
--- a/doc/lispref/lists.texi
+++ b/doc/lispref/lists.texi
@@ -270,8 +270,10 @@ are numbered starting with zero, so the @sc{car} of @var{list} is
270element number zero. If the length of @var{list} is @var{n} or less, 270element number zero. If the length of @var{list} is @var{n} or less,
271the value is @code{nil}. 271the value is @code{nil}.
272 272
273If @var{n} is negative, @code{nth} returns the first element of 273@c Behavior for -ve n undefined since 2013/08; see bug#15059.
274@var{list}. 274@ignore
275If @var{n} is negative, @code{nth} returns the first element of @var{list}.
276@end ignore
275 277
276@example 278@example
277@group 279@group
@@ -281,10 +283,6 @@ If @var{n} is negative, @code{nth} returns the first element of
281@group 283@group
282(nth 10 '(1 2 3 4)) 284(nth 10 '(1 2 3 4))
283 @result{} nil 285 @result{} nil
284@end group
285@group
286(nth -3 '(1 2 3 4))
287 @result{} 1
288 286
289(nth n x) @equiv{} (car (nthcdr n x)) 287(nth n x) @equiv{} (car (nthcdr n x))
290@end group 288@end group
@@ -300,7 +298,8 @@ This function returns the @var{n}th @sc{cdr} of @var{list}. In other
300words, it skips past the first @var{n} links of @var{list} and returns 298words, it skips past the first @var{n} links of @var{list} and returns
301what follows. 299what follows.
302 300
303If @var{n} is zero or negative, @code{nthcdr} returns all of 301@c "or negative" removed 2013/08; see bug#15059.
302If @var{n} is zero, @code{nthcdr} returns all of
304@var{list}. If the length of @var{list} is @var{n} or less, 303@var{list}. If the length of @var{list} is @var{n} or less,
305@code{nthcdr} returns @code{nil}. 304@code{nthcdr} returns @code{nil}.
306 305
@@ -314,7 +313,7 @@ If @var{n} is zero or negative, @code{nthcdr} returns all of
314 @result{} nil 313 @result{} nil
315@end group 314@end group
316@group 315@group
317(nthcdr -3 '(1 2 3 4)) 316(nthcdr 0 '(1 2 3 4))
318 @result{} (1 2 3 4) 317 @result{} (1 2 3 4)
319@end group 318@end group
320@end example 319@end example
diff --git a/doc/lispref/markers.texi b/doc/lispref/markers.texi
index cae14ab9a78..d94908994e9 100644
--- a/doc/lispref/markers.texi
+++ b/doc/lispref/markers.texi
@@ -216,11 +216,14 @@ new marker that points to the same place and the same buffer as does
216The new marker's insertion type is specified by the argument 216The new marker's insertion type is specified by the argument
217@var{insertion-type}. @xref{Marker Insertion Types}. 217@var{insertion-type}. @xref{Marker Insertion Types}.
218 218
219@c This behavior used to be documented until 2013/08.
220@ignore
219If passed an integer argument less than 1, @code{copy-marker} returns a 221If passed an integer argument less than 1, @code{copy-marker} returns a
220new marker that points to the beginning of the current buffer. If 222new marker that points to the beginning of the current buffer. If
221passed an integer argument greater than the length of the buffer, 223passed an integer argument greater than the length of the buffer,
222@code{copy-marker} returns a new marker that points to the end of the 224@code{copy-marker} returns a new marker that points to the end of the
223buffer. 225buffer.
226@end ignore
224 227
225@example 228@example
226@group 229@group
@@ -279,6 +282,8 @@ This function returns the position that @var{marker} points to, or
279This function returns the buffer that @var{marker} points into, or 282This function returns the buffer that @var{marker} points into, or
280@code{nil} if it points nowhere. 283@code{nil} if it points nowhere.
281 284
285@c FIXME: The `buffer' argument of `set-marker' already defaults to
286@c the current buffer, why use `(current-buffer)' explicitly here?
282@example 287@example
283@group 288@group
284(setq m (make-marker)) 289(setq m (make-marker))
@@ -349,11 +354,15 @@ This function moves @var{marker} to @var{position}
349in @var{buffer}. If @var{buffer} is not provided, it defaults to 354in @var{buffer}. If @var{buffer} is not provided, it defaults to
350the current buffer. 355the current buffer.
351 356
357@c This behavior used to be documented until 2013/08.
358@ignore
352If @var{position} is less than 1, @code{set-marker} moves @var{marker} 359If @var{position} is less than 1, @code{set-marker} moves @var{marker}
353to the beginning of the buffer. If @var{position} is greater than the 360to the beginning of the buffer. If @var{position} is greater than the
354size of the buffer (@pxref{Point}), @code{set-marker} moves marker to 361size of the buffer (@pxref{Point}), @code{set-marker} moves marker to
355the end of the buffer. If @var{position} is @code{nil} or a marker 362the end of the buffer.
356that points nowhere, then @var{marker} is set to point nowhere. 363@end ignore
364If @var{position} is @code{nil} or a marker that points nowhere, then
365@var{marker} is set to point nowhere.
357 366
358The value returned is @var{marker}. 367The value returned is @var{marker}.
359 368
@@ -384,7 +393,7 @@ This is another name for @code{set-marker}.
384@node The Mark 393@node The Mark
385@section The Mark 394@section The Mark
386@cindex mark, the 395@cindex mark, the
387@cindex mark ring 396@c @cindex the mark?
388 397
389 Each buffer has a special marker, which is designated @dfn{the 398 Each buffer has a special marker, which is designated @dfn{the
390mark}. When a buffer is newly created, this marker exists but does 399mark}. When a buffer is newly created, this marker exists but does
@@ -423,6 +432,7 @@ the mark is active. This is the main motivation for using Transient
423Mark mode. (Another is that this enables highlighting of the region 432Mark mode. (Another is that this enables highlighting of the region
424when the mark is active. @xref{Display}.) 433when the mark is active. @xref{Display}.)
425 434
435@cindex mark ring
426 In addition to the mark, each buffer has a @dfn{mark ring} which is a 436 In addition to the mark, each buffer has a @dfn{mark ring} which is a
427list of markers containing previous values of the mark. When editing 437list of markers containing previous values of the mark. When editing
428commands change the mark, they should normally save the old value of the 438commands change the mark, they should normally save the old value of the
@@ -644,7 +654,12 @@ more marks than this are pushed onto the @code{mark-ring},
644 654
645@node The Region 655@node The Region
646@section The Region 656@section The Region
647@cindex region (between point and mark) 657@c The index entry must be just ``region'' to make it the first hit
658@c when the user types ``i region RET'', because otherwise the Info
659@c reader will present substring matches in alphabetical order,
660@c putting this one near the end, with something utterly unrelated as
661@c the first hit.
662@cindex region
648 663
649 The text between point and the mark is known as @dfn{the region}. 664 The text between point and the mark is known as @dfn{the region}.
650Various functions operate on text delimited by point and the mark, but 665Various functions operate on text delimited by point and the mark, but
@@ -668,6 +683,7 @@ integer). This is the position of either point or the mark, whichever is
668larger. 683larger.
669@end defun 684@end defun
670 685
686@c FIXME: Mention it in tips.texi?
671 Instead of using @code{region-beginning} and @code{region-end}, a 687 Instead of using @code{region-beginning} and @code{region-end}, a
672command designed to operate on a region should normally use 688command designed to operate on a region should normally use
673@code{interactive} with the @samp{r} specification to find the 689@code{interactive} with the @samp{r} specification to find the
@@ -680,6 +696,8 @@ mark is active, and there is a valid region in the buffer. This
680function is intended to be used by commands that operate on the 696function is intended to be used by commands that operate on the
681region, instead of on text near point, when the mark is active. 697region, instead of on text near point, when the mark is active.
682 698
699@cindex empty region
700@vindex use-empty-active-region
683A region is valid if it has a non-zero size, or if the user option 701A region is valid if it has a non-zero size, or if the user option
684@code{use-empty-active-region} is non-@code{nil} (by default, it is 702@code{use-empty-active-region} is non-@code{nil} (by default, it is
685@code{nil}). The function @code{region-active-p} is similar to 703@code{nil}). The function @code{region-active-p} is similar to
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 59729380ea7..180fef7241d 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -3381,6 +3381,7 @@ of Lisp sexps and adapts it to non-Lisp languages.
3381 3381
3382@node SMIE 3382@node SMIE
3383@subsection Simple Minded Indentation Engine 3383@subsection Simple Minded Indentation Engine
3384@cindex SMIE
3384 3385
3385SMIE is a package that provides a generic navigation and indentation 3386SMIE is a package that provides a generic navigation and indentation
3386engine. Based on a very simple parser using an ``operator precedence 3387engine. Based on a very simple parser using an ``operator precedence
@@ -3548,6 +3549,8 @@ simply ignored.
3548 3549
3549@node SMIE Grammar 3550@node SMIE Grammar
3550@subsubsection Defining the Grammar of a Language 3551@subsubsection Defining the Grammar of a Language
3552@cindex SMIE grammar
3553@cindex grammar, SMIE
3551 3554
3552The usual way to define the SMIE grammar of a language is by 3555The usual way to define the SMIE grammar of a language is by
3553defining a new global variable that holds the precedence table by 3556defining a new global variable that holds the precedence table by
@@ -3623,6 +3626,8 @@ formally as left associative.
3623 3626
3624@node SMIE Lexer 3627@node SMIE Lexer
3625@subsubsection Defining Tokens 3628@subsubsection Defining Tokens
3629@cindex SMIE lexer
3630@cindex defining tokens, SMIE
3626 3631
3627SMIE comes with a predefined lexical analyzer which uses syntax tables 3632SMIE comes with a predefined lexical analyzer which uses syntax tables
3628in the following way: any sequence of characters that have word or 3633in the following way: any sequence of characters that have word or
@@ -3757,6 +3762,7 @@ surrounding text to find ad-hoc clues.
3757 3762
3758@node SMIE Indentation 3763@node SMIE Indentation
3759@subsubsection Specifying Indentation Rules 3764@subsubsection Specifying Indentation Rules
3765@cindex indentation rules, SMIE
3760 3766
3761Based on the provided grammar, SMIE will be able to provide automatic 3767Based on the provided grammar, SMIE will be able to provide automatic
3762indentation without any extra effort. But in practice, this default 3768indentation without any extra effort. But in practice, this default
diff --git a/doc/lispref/nonascii.texi b/doc/lispref/nonascii.texi
index b8b62325bb4..090310c5545 100644
--- a/doc/lispref/nonascii.texi
+++ b/doc/lispref/nonascii.texi
@@ -13,6 +13,7 @@ how they are stored in strings and buffers.
13 13
14@menu 14@menu
15* Text Representations:: How Emacs represents text. 15* Text Representations:: How Emacs represents text.
16* Disabling Multibyte:: Controlling whether to use multibyte characters.
16* Converting Representations:: Converting unibyte to multibyte and vice versa. 17* Converting Representations:: Converting unibyte to multibyte and vice versa.
17* Selecting a Representation:: Treating a byte sequence as unibyte or multi. 18* Selecting a Representation:: Treating a byte sequence as unibyte or multi.
18* Character Codes:: How unibyte and multibyte relate to 19* Character Codes:: How unibyte and multibyte relate to
@@ -140,6 +141,55 @@ This function concatenates all its argument @var{bytes} and makes the
140result a unibyte string. 141result a unibyte string.
141@end defun 142@end defun
142 143
144@node Disabling Multibyte
145@section Disabling Multibyte Characters
146@cindex disabling multibyte
147
148 By default, Emacs starts in multibyte mode: it stores the contents
149of buffers and strings using an internal encoding that represents
150non-@acronym{ASCII} characters using multi-byte sequences. Multibyte
151mode allows you to use all the supported languages and scripts without
152limitations.
153
154@cindex turn multibyte support on or off
155 Under very special circumstances, you may want to disable multibyte
156character support, for a specific buffer.
157When multibyte characters are disabled in a buffer, we call
158that @dfn{unibyte mode}. In unibyte mode, each character in the
159buffer has a character code ranging from 0 through 255 (0377 octal); 0
160through 127 (0177 octal) represent @acronym{ASCII} characters, and 128
161(0200 octal) through 255 (0377 octal) represent non-@acronym{ASCII}
162characters.
163
164 To edit a particular file in unibyte representation, visit it using
165@code{find-file-literally}. @xref{Visiting Functions}. You can
166convert a multibyte buffer to unibyte by saving it to a file, killing
167the buffer, and visiting the file again with
168@code{find-file-literally}. Alternatively, you can use @kbd{C-x
169@key{RET} c} (@code{universal-coding-system-argument}) and specify
170@samp{raw-text} as the coding system with which to visit or save a
171file. @xref{Text Coding, , Specifying a Coding System for File Text,
172emacs, GNU Emacs Manual}. Unlike @code{find-file-literally}, finding
173a file as @samp{raw-text} doesn't disable format conversion,
174uncompression, or auto mode selection.
175
176@c See http://debbugs.gnu.org/11226 for lack of unibyte tooltip.
177@vindex enable-multibyte-characters
178The buffer-local variable @code{enable-multibyte-characters} is
179non-@code{nil} in multibyte buffers, and @code{nil} in unibyte ones.
180The mode line also indicates whether a buffer is multibyte or not.
181With a graphical display, in a multibyte buffer, the portion of the
182mode line that indicates the character set has a tooltip that (amongst
183other things) says that the buffer is multibyte. In a unibyte buffer,
184the character set indicator is absent. Thus, in a unibyte buffer
185(when using a graphical display) there is normally nothing before the
186indication of the visited file's end-of-line convention (colon,
187backslash, etc.), unless you are using an input method.
188
189@findex toggle-enable-multibyte-characters
190You can turn off multibyte support in a specific buffer by invoking the
191command @code{toggle-enable-multibyte-characters} in that buffer.
192
143@node Converting Representations 193@node Converting Representations
144@section Converting Text Representations 194@section Converting Text Representations
145 195
@@ -962,6 +1012,7 @@ The value of the @code{:mime-charset} property is also defined
962as an alias for the coding system. 1012as an alias for the coding system.
963@end defun 1013@end defun
964 1014
1015@cindex alias, for coding systems
965@defun coding-system-aliases coding-system 1016@defun coding-system-aliases coding-system
966This function returns the list of aliases of @var{coding-system}. 1017This function returns the list of aliases of @var{coding-system}.
967@end defun 1018@end defun
diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi
index e8b6166f63c..69f1b80c431 100644
--- a/doc/lispref/positions.texi
+++ b/doc/lispref/positions.texi
@@ -5,6 +5,7 @@
5@node Positions 5@node Positions
6@chapter Positions 6@chapter Positions
7@cindex position (in buffer) 7@cindex position (in buffer)
8@cindex buffer position
8 9
9 A @dfn{position} is the index of a character in the text of a buffer. 10 A @dfn{position} is the index of a character in the text of a buffer.
10More precisely, a position identifies the place between two characters 11More precisely, a position identifies the place between two characters
@@ -146,9 +147,13 @@ that.
146 147
147@deffn Command goto-char position 148@deffn Command goto-char position
148This function sets point in the current buffer to the value 149This function sets point in the current buffer to the value
149@var{position}. If @var{position} is less than 1, it moves point to the 150@var{position}.
150beginning of the buffer. If @var{position} is greater than the length 151@c This behavior used to be documented until 2013/08.
151of the buffer, it moves point to the end. 152@ignore
153If @var{position} is less than 1, it moves point to the beginning of
154the buffer. If @var{position} is greater than the length of the
155buffer, it moves point to the end.
156@end ignore
152 157
153If narrowing is in effect, @var{position} still counts from the 158If narrowing is in effect, @var{position} still counts from the
154beginning of the buffer, but point cannot go outside the accessible 159beginning of the buffer, but point cannot go outside the accessible
@@ -191,8 +196,8 @@ whether a given character is part of a word. @xref{Syntax Tables}.
191 196
192@deffn Command forward-word &optional count 197@deffn Command forward-word &optional count
193This function moves point forward @var{count} words (or backward if 198This function moves point forward @var{count} words (or backward if
194@var{count} is negative). If @var{count} is @code{nil}, it moves 199@var{count} is negative). If @var{count} is omitted or @code{nil}, it
195forward one word. 200defaults to 1.
196 201
197``Moving one word'' means moving until point crosses a 202``Moving one word'' means moving until point crosses a
198word-constituent character and then encounters a word-separator 203word-constituent character and then encounters a word-separator
@@ -210,7 +215,7 @@ If @code{inhibit-field-text-motion} is non-@code{nil},
210this function ignores field boundaries. 215this function ignores field boundaries.
211 216
212In an interactive call, @var{count} is specified by the numeric prefix 217In an interactive call, @var{count} is specified by the numeric prefix
213argument. If @var{count} is omitted or @code{nil}, it defaults to 1. 218argument.
214@end deffn 219@end deffn
215 220
216@deffn Command backward-word &optional count 221@deffn Command backward-word &optional count
@@ -483,7 +488,7 @@ Display}.
483 These functions scan text to determine where screen lines break, and 488 These functions scan text to determine where screen lines break, and
484thus take time proportional to the distance scanned. If you intend to 489thus take time proportional to the distance scanned. If you intend to
485use them heavily, Emacs provides caches which may improve the 490use them heavily, Emacs provides caches which may improve the
486performance of your code. @xref{Truncation, cache-long-line-scans}. 491performance of your code. @xref{Truncation, cache-long-scans}.
487 492
488@defun vertical-motion count &optional window 493@defun vertical-motion count &optional window
489This function moves point to the start of the screen line @var{count} 494This function moves point to the start of the screen line @var{count}
@@ -805,7 +810,7 @@ thousands of times in the Lisp sources of Emacs.
805buffer, use @code{save-current-buffer} or @code{with-current-buffer} 810buffer, use @code{save-current-buffer} or @code{with-current-buffer}
806instead (@pxref{Current Buffer}). If you need to save or restore 811instead (@pxref{Current Buffer}). If you need to save or restore
807window configurations, see the forms described in @ref{Window 812window configurations, see the forms described in @ref{Window
808Configurations} and in @ref{Frame Configurations}. 813Configurations} and in @ref{Frame Configurations}. @c frameset?
809 814
810@defspec save-excursion body@dots{} 815@defspec save-excursion body@dots{}
811@cindex mark excursion 816@cindex mark excursion
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 7cace70ad07..c4250f2f0ba 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -240,6 +240,7 @@ Major and minor modes can add functions to
240copied out of the buffer. 240copied out of the buffer.
241@end defun 241@end defun
242 242
243@c FIXME: `filter-buffer-substring-function' should be documented.
243@defvar filter-buffer-substring-functions 244@defvar filter-buffer-substring-functions
244This variable is a wrapper hook (@pxref{Running Hooks}), whose members 245This variable is a wrapper hook (@pxref{Running Hooks}), whose members
245should be functions that accept four arguments: @var{fun}, 246should be functions that accept four arguments: @var{fun},
@@ -365,7 +366,8 @@ not relocate the marker, depending on the marker's insertion type
365the inserted text, regardless of the markers' insertion type. 366the inserted text, regardless of the markers' insertion type.
366 367
367 Insertion functions signal an error if the current buffer is 368 Insertion functions signal an error if the current buffer is
368read-only or if they insert within read-only text. 369read-only (@pxref{Read Only Buffers}) or if they insert within
370read-only text (@pxref{Special Properties}).
369 371
370 These functions copy text characters from strings and buffers along 372 These functions copy text characters from strings and buffers along
371with their properties. The inserted characters have exactly the same 373with their properties. The inserted characters have exactly the same
@@ -421,10 +423,10 @@ insertion point. @xref{Sticky Properties}.
421 423
422@defun insert-buffer-substring from-buffer-or-name &optional start end 424@defun insert-buffer-substring from-buffer-or-name &optional start end
423This function inserts a portion of buffer @var{from-buffer-or-name} 425This function inserts a portion of buffer @var{from-buffer-or-name}
424(which must already exist) into the current buffer before point. The 426into the current buffer before point. The text inserted is the region
425text inserted is the region between @var{start} and @var{end}. (These 427between @var{start} (inclusive) and @var{end} (exclusive). (These
426arguments default to the beginning and end of the accessible portion of 428arguments default to the beginning and end of the accessible portion
427that buffer.) This function returns @code{nil}. 429of that buffer.) This function returns @code{nil}.
428 430
429In this example, the form is executed with buffer @samp{bar} as the 431In this example, the form is executed with buffer @samp{bar} as the
430current buffer. We assume that buffer @samp{bar} is initially empty. 432current buffer. We assume that buffer @samp{bar} is initially empty.
@@ -482,6 +484,7 @@ it except to install it on a keymap.
482 484
483In an interactive call, @var{count} is the numeric prefix argument. 485In an interactive call, @var{count} is the numeric prefix argument.
484 486
487@c FIXME: This variable is obsolete since 23.1.
485Self-insertion translates the input character through 488Self-insertion translates the input character through
486@code{translation-table-for-input}. @xref{Translation of Characters}. 489@code{translation-table-for-input}. @xref{Translation of Characters}.
487 490
@@ -776,6 +779,7 @@ is deleted. If point is on a nonblank line, the command deletes all
776blank lines immediately following it. 779blank lines immediately following it.
777 780
778A blank line is defined as a line containing only tabs and spaces. 781A blank line is defined as a line containing only tabs and spaces.
782@c and the Newline character?
779 783
780@code{delete-blank-lines} returns @code{nil}. 784@code{delete-blank-lines} returns @code{nil}.
781@end deffn 785@end deffn
@@ -920,6 +924,7 @@ processes the text according to @code{yank-handled-properties} and
920text anyway.) 924text anyway.)
921@end defun 925@end defun
922 926
927@c FIXME: Add an index for yank-handler.
923 If you put a @code{yank-handler} text property on all or part of a 928 If you put a @code{yank-handler} text property on all or part of a
924string, that alters how @code{insert-for-yank} inserts the string. If 929string, that alters how @code{insert-for-yank} inserts the string. If
925different parts of the string have different @code{yank-handler} 930different parts of the string have different @code{yank-handler}
@@ -1284,8 +1289,8 @@ This is an extensible undo item, which is undone by calling
1284@item (apply @var{delta} @var{beg} @var{end} @var{funname} . @var{args}) 1289@item (apply @var{delta} @var{beg} @var{end} @var{funname} . @var{args})
1285This is an extensible undo item, which records a change limited to the 1290This is an extensible undo item, which records a change limited to the
1286range @var{beg} to @var{end}, which increased the size of the buffer 1291range @var{beg} to @var{end}, which increased the size of the buffer
1287by @var{delta}. It is undone by calling @var{funname} with arguments 1292by @var{delta} characters. It is undone by calling @var{funname} with
1288@var{args}. 1293arguments @var{args}.
1289 1294
1290This kind of element enables undo limited to a region to determine 1295This kind of element enables undo limited to a region to determine
1291whether the element pertains to that region. 1296whether the element pertains to that region.
@@ -1376,7 +1381,8 @@ possible to undo either previous changes or any subsequent changes. If
1376the undo list of @var{buffer-or-name} is already disabled, this function 1381the undo list of @var{buffer-or-name} is already disabled, this function
1377has no effect. 1382has no effect.
1378 1383
1379This function returns @code{nil}. 1384In an interactive call, BUFFER-OR-NAME is the current buffer. You
1385cannot specify any other buffer. This function returns @code{nil}.
1380@end deffn 1386@end deffn
1381 1387
1382 As editing continues, undo lists get longer and longer. To prevent 1388 As editing continues, undo lists get longer and longer. To prevent
@@ -1493,6 +1499,7 @@ the header lines. If @var{citation-regexp} is a string, it is used as
1493a regular expression; if it matches the beginning of a line, that line 1499a regular expression; if it matches the beginning of a line, that line
1494is treated as a citation marker. 1500is treated as a citation marker.
1495 1501
1502@c FIXME: "That mode" is confusing. It isn't a major/minor mode.
1496Ordinarily, @code{fill-individual-paragraphs} regards each change in 1503Ordinarily, @code{fill-individual-paragraphs} regards each change in
1497indentation as starting a new paragraph. If 1504indentation as starting a new paragraph. If
1498@code{fill-individual-varying-indent} is non-@code{nil}, then only 1505@code{fill-individual-varying-indent} is non-@code{nil}, then only
@@ -1606,11 +1613,13 @@ Manual}.
1606@defvar use-hard-newlines 1613@defvar use-hard-newlines
1607If this variable is non-@code{nil}, the filling functions do not delete 1614If this variable is non-@code{nil}, the filling functions do not delete
1608newlines that have the @code{hard} text property. These ``hard 1615newlines that have the @code{hard} text property. These ``hard
1609newlines'' act as paragraph separators. 1616newlines'' act as paragraph separators. @xref{Hard and Soft
1617Newlines,, Hard and Soft Newlines, emacs, The GNU Emacs Manual}.
1610@end defvar 1618@end defvar
1611 1619
1612@node Margins 1620@node Margins
1613@section Margins for Filling 1621@section Margins for Filling
1622@cindex margins, filling
1614 1623
1615@defopt fill-prefix 1624@defopt fill-prefix
1616This buffer-local variable, if non-@code{nil}, specifies a string of 1625This buffer-local variable, if non-@code{nil}, specifies a string of
@@ -1800,6 +1809,7 @@ prefix or @code{nil}, meaning it has failed to determine a prefix.
1800@cindex filling, automatic 1809@cindex filling, automatic
1801@cindex Auto Fill mode 1810@cindex Auto Fill mode
1802 1811
1812@c FIXME: I don't think any of the variables below is a/an normal/abnormal hook.
1803 Auto Fill mode is a minor mode that fills lines automatically as text 1813 Auto Fill mode is a minor mode that fills lines automatically as text
1804is inserted. This section describes the hook used by Auto Fill mode. 1814is inserted. This section describes the hook used by Auto Fill mode.
1805For a description of functions that you can call explicitly to fill and 1815For a description of functions that you can call explicitly to fill and
@@ -1941,10 +1951,10 @@ its @code{sort-subr} call looks like this:
1941@group 1951@group
1942(sort-subr reverse 1952(sort-subr reverse
1943 (function 1953 (function
1944 (lambda () 1954 (lambda ()
1945 (while (and (not (eobp)) 1955 (while (and (not (eobp))
1946 (looking-at paragraph-separate)) 1956 (looking-at paragraph-separate))
1947 (forward-line 1)))) 1957 (forward-line 1))))
1948 'forward-paragraph) 1958 'forward-paragraph)
1949@end group 1959@end group
1950@end example 1960@end example
@@ -2130,9 +2140,12 @@ line and point.
2130When called interactively, @var{column} is the value of prefix numeric 2140When called interactively, @var{column} is the value of prefix numeric
2131argument. If @var{column} is not an integer, an error is signaled. 2141argument. If @var{column} is not an integer, an error is signaled.
2132 2142
2143@c This behavior used to be documented until 2013/08.
2144@ignore
2133If column @var{column} is beyond the end of the line, point moves to 2145If column @var{column} is beyond the end of the line, point moves to
2134the end of the line. If @var{column} is negative, point moves to the 2146the end of the line. If @var{column} is negative, point moves to the
2135beginning of the line. 2147beginning of the line.
2148@end ignore
2136 2149
2137If it is impossible to move to column @var{column} because that is in 2150If it is impossible to move to column @var{column} because that is in
2138the middle of a multicolumn character such as a tab, point moves to the 2151the middle of a multicolumn character such as a tab, point moves to the
@@ -2341,6 +2354,8 @@ code.
2341For example, if @var{count} is 3, this command adds 3 columns of 2354For example, if @var{count} is 3, this command adds 3 columns of
2342indentation to each of the lines beginning in the region specified. 2355indentation to each of the lines beginning in the region specified.
2343 2356
2357@c FIXME: I suggest using message-indent-citation as the example, or
2358@c just remove this paragraph. --xfq
2344In Mail mode, @kbd{C-c C-y} (@code{mail-yank-original}) uses 2359In Mail mode, @kbd{C-c C-y} (@code{mail-yank-original}) uses
2345@code{indent-rigidly} to indent the text copied from the message being 2360@code{indent-rigidly} to indent the text copied from the message being
2346replied to. 2361replied to.
@@ -2518,7 +2533,7 @@ This is the contents of the 5th foo.
2518@end group 2533@end group
2519 2534
2520@group 2535@group
2521(capitalize-region 1 44) 2536(capitalize-region 1 37)
2522@result{} nil 2537@result{} nil
2523 2538
2524---------- Buffer: foo ---------- 2539---------- Buffer: foo ----------
@@ -3024,6 +3039,7 @@ Point}.
3024 3039
3025@table @code 3040@table @code
3026@cindex property category of text character 3041@cindex property category of text character
3042@c FIXME: Isn't @kindex for keyboard commands?
3027@kindex category @r{(text property)} 3043@kindex category @r{(text property)}
3028@item category 3044@item category
3029If a character has a @code{category} property, we call it the 3045If a character has a @code{category} property, we call it the
@@ -4012,6 +4028,7 @@ A rectangle is represented by a list of strings.
4012This represents a window configuration to restore in one frame, and a 4028This represents a window configuration to restore in one frame, and a
4013position to jump to in the current buffer. 4029position to jump to in the current buffer.
4014 4030
4031@c FIXME: Mention frameset here.
4015@item @code{(@var{frame-configuration} @var{position})} 4032@item @code{(@var{frame-configuration} @var{position})}
4016This represents a frame configuration to restore, and a position 4033This represents a frame configuration to restore, and a position
4017to jump to in the current buffer. 4034to jump to in the current buffer.
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index 4a38fa9ccd5..557add738ba 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -1838,6 +1838,7 @@ updates this list.
1838@node Variable Aliases 1838@node Variable Aliases
1839@section Variable Aliases 1839@section Variable Aliases
1840@cindex variable aliases 1840@cindex variable aliases
1841@cindex alias, for variables
1841 1842
1842 It is sometimes useful to make two variables synonyms, so that both 1843 It is sometimes useful to make two variables synonyms, so that both
1843variables always have the same value, and changing either one also 1844variables always have the same value, and changing either one also
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 1f65f687014..13c9ca53222 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -2244,8 +2244,9 @@ window and defaults to the selected one.
2244 2244
2245Each list element has the form @code{(@var{buffer} @var{window-start} 2245Each list element has the form @code{(@var{buffer} @var{window-start}
2246@var{window-pos})}, where @var{buffer} is a buffer previously shown in 2246@var{window-pos})}, where @var{buffer} is a buffer previously shown in
2247the window, @var{window-start} is the window start position when that 2247the window, @var{window-start} is the window start position
2248buffer was last shown, and @var{window-pos} is the point position when 2248(@pxref{Window Start and End}) when that buffer was last shown, and
2249@var{window-pos} is the point position (@pxref{Window Point}) when
2249that buffer was last shown in @var{window}. 2250that buffer was last shown in @var{window}.
2250 2251
2251The list is ordered so that earlier elements correspond to more 2252The list is ordered so that earlier elements correspond to more
@@ -2328,10 +2329,11 @@ same frame. The following option can be used to override this behavior.
2328@defopt switch-to-visible-buffer 2329@defopt switch-to-visible-buffer
2329If this variable is non-@code{nil}, @code{switch-to-prev-buffer} and 2330If this variable is non-@code{nil}, @code{switch-to-prev-buffer} and
2330@code{switch-to-next-buffer} may switch to a buffer that is already 2331@code{switch-to-next-buffer} may switch to a buffer that is already
2331visible on the same frame, provided the buffer was shown in the relevant 2332visible on the same frame, provided the buffer was shown in the
2332window before. If it is @code{nil}, @code{switch-to-prev-buffer} and 2333relevant window before. If it is @code{nil},
2333@code{switch-to-next-buffer} always try to avoid switching to a buffer 2334@code{switch-to-prev-buffer} and @code{switch-to-next-buffer} always
2334that is already visible in another window on the same frame. 2335try to avoid switching to a buffer that is already visible in another
2336window on the same frame. The default is @code{t}.
2335@end defopt 2337@end defopt
2336 2338
2337 2339
@@ -2362,6 +2364,7 @@ showing another buffer in that frame's only window. The function
2362@code{replace-buffer-in-windows} (@pxref{Buffers and Windows}) which is 2364@code{replace-buffer-in-windows} (@pxref{Buffers and Windows}) which is
2363called when a buffer gets killed, deletes the window in case (1) and 2365called when a buffer gets killed, deletes the window in case (1) and
2364behaves like @code{delete-windows-on} otherwise. 2366behaves like @code{delete-windows-on} otherwise.
2367@c FIXME: Does replace-buffer-in-windows _delete_ a window in case (1)?
2365 2368
2366 When @code{bury-buffer} (@pxref{The Buffer List}) operates on the 2369 When @code{bury-buffer} (@pxref{The Buffer List}) operates on the
2367selected window (which shows the buffer that shall be buried), it 2370selected window (which shows the buffer that shall be buried), it
@@ -2566,6 +2569,7 @@ so @code{window-point} will stay behind text inserted there.
2566@node Window Start and End 2569@node Window Start and End
2567@section The Window Start and End Positions 2570@section The Window Start and End Positions
2568@cindex window start position 2571@cindex window start position
2572@cindex display-start position
2569 2573
2570 Each window maintains a marker used to keep track of a buffer position 2574 Each window maintains a marker used to keep track of a buffer position
2571that specifies where in the buffer display should start. This position 2575that specifies where in the buffer display should start. This position
@@ -3191,6 +3195,7 @@ The value returned is @var{columns}.
3191 Here is how you can determine whether a given position @var{position} 3195 Here is how you can determine whether a given position @var{position}
3192is off the screen due to horizontal scrolling: 3196is off the screen due to horizontal scrolling:
3193 3197
3198@c FIXME: Maybe hscroll-on-screen-p is a better name?
3194@example 3199@example
3195@group 3200@group
3196(defun hscroll-on-screen (window position) 3201(defun hscroll-on-screen (window position)