aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorEli Zaretskii2014-10-14 21:10:37 +0300
committerEli Zaretskii2014-10-14 21:10:37 +0300
commite3060a0c4d2f418ac786775109d71e5843ccf42e (patch)
tree347b37fc39d0db9cd23b3e9f79ee81b4bbc40f08 /doc
parent1a3eca0656bdb764200e10a4f264138e94b1f3ce (diff)
parent980d78b3587560c13a46aef352ed8d5ed744acf6 (diff)
downloademacs-e3060a0c4d2f418ac786775109d71e5843ccf42e.tar.gz
emacs-e3060a0c4d2f418ac786775109d71e5843ccf42e.zip
Merge from trunk and resolve conflicts.
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/ChangeLog54
-rw-r--r--doc/emacs/Makefile.in16
-rw-r--r--doc/emacs/cmdargs.texi12
-rw-r--r--doc/emacs/display.texi4
-rw-r--r--doc/emacs/emacsver.texi2
-rw-r--r--doc/emacs/frames.texi70
-rw-r--r--doc/emacs/help.texi2
-rw-r--r--doc/emacs/killing.texi19
-rw-r--r--doc/emacs/macos.texi6
-rw-r--r--doc/emacs/misc.texi10
-rw-r--r--doc/emacs/package.texi5
-rw-r--r--doc/emacs/regs.texi6
-rw-r--r--doc/emacs/search.texi2
-rw-r--r--doc/emacs/vc1-xtra.texi2
-rw-r--r--doc/lispintro/ChangeLog4
-rw-r--r--doc/lispintro/Makefile.in15
-rw-r--r--doc/lispref/ChangeLog123
-rw-r--r--doc/lispref/Makefile.in15
-rw-r--r--doc/lispref/buffers.texi2
-rw-r--r--doc/lispref/commands.texi35
-rw-r--r--doc/lispref/control.texi18
-rw-r--r--doc/lispref/display.texi200
-rw-r--r--doc/lispref/elisp.texi4
-rw-r--r--doc/lispref/eval.texi7
-rw-r--r--doc/lispref/frames.texi171
-rw-r--r--doc/lispref/functions.texi26
-rw-r--r--doc/lispref/internals.texi43
-rw-r--r--doc/lispref/lists.texi68
-rw-r--r--doc/lispref/modes.texi9
-rw-r--r--doc/lispref/sequences.texi92
-rw-r--r--doc/lispref/streams.texi9
-rw-r--r--doc/lispref/strings.texi97
-rw-r--r--doc/lispref/text.texi5
-rw-r--r--doc/lispref/windows.texi122
-rw-r--r--doc/man/ChangeLog4
-rw-r--r--doc/man/emacs.12
-rw-r--r--doc/misc/ChangeLog89
-rw-r--r--doc/misc/Makefile.in18
-rw-r--r--doc/misc/cl.texi20
-rw-r--r--doc/misc/erc.texi27
-rw-r--r--doc/misc/newsticker.texi532
-rw-r--r--doc/misc/org.texi381
-rw-r--r--doc/misc/vhdl-mode.texi8
-rw-r--r--doc/misc/vip.texi2
44 files changed, 1831 insertions, 527 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 356bc26722f..23e1d0dff76 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,55 @@
12014-10-13 Glenn Morris <rgm@gnu.org>
2
3 * Makefile.in (dist): Update for new output variables.
4
52014-10-12 Paul Eggert <eggert@cs.ucla.edu>
6
7 * macos.texi (Mac OS / GNUstep, Mac / GNUstep Basics)
8 (Mac / GNUstep Customization): Mac OS X 10.6 or later now required.
9
102014-10-09 Glenn Morris <rgm@gnu.org>
11
12 * package.texi (Package Menu): The package list was changed to not
13 say "unsigned" any more.
14
152014-10-05 Glenn Morris <rgm@gnu.org>
16
17 * misc.texi (Sorting):
18 * search.texi (Query Replace): Markup fixes.
19
202014-10-04 Martin Rudalics <rudalics@gmx.at>
21
22 * frames.texi (Scroll Bars): Describe use of horizontal scroll bars.
23
242014-10-04 Glenn Morris <rgm@gnu.org>
25
26 * cmdargs.texi (Misc X):
27 * display.texi (Optional Mode Line):
28 * misc.texi (emacsclient Options):
29 * vc1-xtra.texi (VC Delete/Rename): Small fixes re @var usage.
30
31 * killing.texi (Rectangles): Copyedits re rectangle-mark-mode.
32 (CUA Bindings): Mention rectangle-mark-mode.
33
342014-10-03 Martin Rudalics <rudalics@gmx.at>
35
36 * frames.texi (Frame Commands):
37 * cmdargs.texi (Window Size X): Mention the use of
38 `frame-resize-pixelwise' to make frames truly fullscreen or maximized.
39
402014-10-02 Glenn Morris <rgm@gnu.org>
41
42 * package.texi (Package Installation): Mention etc/package-keyring.gpg.
43
442014-09-29 Eli Zaretskii <eliz@gnu.org>
45
46 * emacsver.texi (EMACSVER): Bump to 20.0.50.
47
482014-09-15 Daniel Colascione <dancol@dancol.org>
49
50 * regs.texi (Text Registers): Update end-user documentation
51 to reflect `insert-register' interface change.
52
12014-08-07 Reuben Thomas <rrt@sc3d.org> 532014-08-07 Reuben Thomas <rrt@sc3d.org>
2 54
3 * programs.texi (Program Modes): Don't advertise VMS DCL support 55 * programs.texi (Program Modes): Don't advertise VMS DCL support
@@ -10118,7 +10170,7 @@
10118 10170
10119 * frames.texi (Dialog Boxes): Add use-file-dialog. 10171 * frames.texi (Dialog Boxes): Add use-file-dialog.
10120 10172
101212003-11-22 Martin Stjernholm <bug-cc-mode@gnu.org> 101732003-11-22 Martin Stjernholm <mast@lysator.liu.se>
10122 10174
10123 * ack.texi: Note that Alan Mackenzie contributed the AWK support 10175 * ack.texi: Note that Alan Mackenzie contributed the AWK support
10124 in CC Mode. 10176 in CC Mode.
diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in
index e9894ac2207..352768517fa 100644
--- a/doc/emacs/Makefile.in
+++ b/doc/emacs/Makefile.in
@@ -209,6 +209,7 @@ bootstrap-clean maintainer-clean: distclean infoclean
209 209
210## Make a standalone tarfile of the Emacs manual sources. 210## Make a standalone tarfile of the Emacs manual sources.
211## The [c] is a dumb way to prevent configure expanding it. 211## The [c] is a dumb way to prevent configure expanding it.
212## TODO this is getting increasingly lengthy; not sure it is worth keeping.
212dist: 213dist:
213 rm -rf emacs-manual-${version} 214 rm -rf emacs-manual-${version}
214 mkdir emacs-manual-${version} 215 mkdir emacs-manual-${version}
@@ -219,6 +220,21 @@ dist:
219 -e 's/^\(clean:.*\)/\1 infoclean/' \ 220 -e 's/^\(clean:.*\)/\1 infoclean/' \
220 -e "s/@ver[s]ion@/${version}/" \ 221 -e "s/@ver[s]ion@/${version}/" \
221 -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \ 222 -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \
223 -e 's/@IN[F]O_EXT@/.info/' -e 's/@IN[F]O_OPTS@//' \
224 -e 's|@SH[E]LL@|/bin/bash|' \
225 -e 's|@[p]refix@|/usr/local|' \
226 -e 's|@[d]atarootdir@|$${prefix}/share|' \
227 -e 's|@[d]atadir@|$${datarootdir}|' \
228 -e 's|@[P]ACKAGE_TARNAME@|emacs|' \
229 -e 's|@[d]ocdir@|$${datarootdir}/doc/$${PACKAGE_TARNAME}|' \
230 -e 's|@[d]vidir@|$${docdir}|' \
231 -e 's|@[h]tmldir@|$${docdir}|' \
232 -e 's|@[p]dfdir@|$${docdir}|' \
233 -e 's|@[p]sdir@|$${docdir}|' \
234 -e 's|@[G]ZIP_PROG@|gzip|' \
235 -e 's|@IN[S]TALL@|install -c|' \
236 -e 's|@IN[S]TALL_DATA@|$${INSTALL} -m 644|' \
237 -e '/@[c]onfigure_input@/d' \
222 ${srcdir}/Makefile.in > emacs-manual-${version}/Makefile 238 ${srcdir}/Makefile.in > emacs-manual-${version}/Makefile
223 @if grep '@[a-zA-Z_]*@' emacs-manual-${version}/Makefile; then \ 239 @if grep '@[a-zA-Z_]*@' emacs-manual-${version}/Makefile; then \
224 echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \ 240 echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index 8b3654dae68..b438281b2a2 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -987,10 +987,10 @@ size with no tool bar, use an X resource to specify ``no tool bar''
987(@pxref{Table of Resources}); then Emacs will already know there's no 987(@pxref{Table of Resources}); then Emacs will already know there's no
988tool bar when it processes the specified geometry. 988tool bar when it processes the specified geometry.
989 989
990 When using one of @samp{--fullscreen}, @samp{--maximized}, @samp{--fullwidth} 990 When using one of @samp{--fullscreen}, @samp{--maximized},
991or @samp{--fullheight} there may be some space around the frame 991@samp{--fullwidth} or @samp{--fullheight}, some window managers require
992anyway. That is because Emacs rounds the sizes so they are an 992you to set the variable @code{frame-resize-pixelwise} to a non-@code{nil}
993even number of character heights and widths. 993value to make a frame appear truly ``maximized'' or ``fullscreen''.
994 994
995 Some window managers have options that can make them ignore both 995 Some window managers have options that can make them ignore both
996program-specified and user-specified positions. If these are set, 996program-specified and user-specified positions. If these are set,
@@ -1106,8 +1106,8 @@ rectangle containing the frame's title.
1106@c Enable horizontal scroll bars. Since horizontal scroll bars 1106@c Enable horizontal scroll bars. Since horizontal scroll bars
1107@c are not yet implemented, this actually does nothing. 1107@c are not yet implemented, this actually does nothing.
1108 1108
1109@item --parent-id @var{ID} 1109@item --parent-id @var{id}
1110Open Emacs as a client X window via the XEmbed protocol, with @var{ID} 1110Open Emacs as a client X window via the XEmbed protocol, with @var{id}
1111as the parent X window id. Currently, this option is mainly useful 1111as the parent X window id. Currently, this option is mainly useful
1112for developers. 1112for developers.
1113 1113
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index bdcb185a5f3..0a77e722d32 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -1245,11 +1245,11 @@ Size Indication mode. The size will be displayed immediately
1245following the buffer percentage like this: 1245following the buffer percentage like this:
1246 1246
1247@example 1247@example
1248@var{POS} of @var{SIZE} 1248@var{pos} of @var{size}
1249@end example 1249@end example
1250 1250
1251@noindent 1251@noindent
1252Here @var{SIZE} is the human readable representation of the number of 1252Here @var{size} is the human readable representation of the number of
1253characters in the buffer, which means that @samp{k} for 10^3, @samp{M} 1253characters in the buffer, which means that @samp{k} for 10^3, @samp{M}
1254for 10^6, @samp{G} for 10^9, etc., are used to abbreviate. 1254for 10^6, @samp{G} for 10^9, etc., are used to abbreviate.
1255 1255
diff --git a/doc/emacs/emacsver.texi b/doc/emacs/emacsver.texi
index 6329f8aa0e6..ac01c185bc1 100644
--- a/doc/emacs/emacsver.texi
+++ b/doc/emacs/emacsver.texi
@@ -1,4 +1,4 @@
1@c It would be nicer to generate this using configure and @version@. 1@c It would be nicer to generate this using configure and @version@.
2@c However, that would mean emacsver.texi would always be newer 2@c However, that would mean emacsver.texi would always be newer
3@c then the info files in release tarfiles. 3@c then the info files in release tarfiles.
4@set EMACSVER 24.4.50 4@set EMACSVER 25.0.50
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index 036e8cf65eb..da0dd8aa6ac 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -469,6 +469,10 @@ hides window manager decorations, giving slightly more screen space to
469Emacs itself.) 469Emacs itself.)
470@end table 470@end table
471 471
472 Note that with some window managers you may have to customize the
473variable @code{frame-resize-pixelwise} to a non-@code{nil} value in
474order to make a frame truly ``maximized'' or ``fullscreen''.
475
472 The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected 476 The @kbd{C-x 5 0} (@code{delete-frame}) command deletes the selected
473frame. However, it will refuse to delete the last frame in an Emacs 477frame. However, it will refuse to delete the last frame in an Emacs
474session, to prevent you from losing the ability to interact with the 478session, to prevent you from losing the ability to interact with the
@@ -900,10 +904,11 @@ those are drawn by the toolkit and not directly by Emacs.
900@section Scroll Bars 904@section Scroll Bars
901@cindex Scroll Bar mode 905@cindex Scroll Bar mode
902@cindex mode, Scroll Bar 906@cindex mode, Scroll Bar
907@cindex Vertical Scroll Bar
903 908
904 On graphical displays, there is a @dfn{scroll bar} on the side of 909 On graphical displays, there is a @dfn{vertical scroll bar} on the
905each Emacs window. Clicking @kbd{Mouse-1} on the scroll bar's up and 910side of each Emacs window. Clicking @kbd{Mouse-1} on the scroll bar's
906down buttons scrolls the window by one line at a time. Clicking 911up and down buttons scrolls the window by one line at a time. Clicking
907@kbd{Mouse-1} above or below the scroll bar's inner box scrolls the 912@kbd{Mouse-1} above or below the scroll bar's inner box scrolls the
908window by nearly the entire height of the window, like @kbd{M-v} and 913window by nearly the entire height of the window, like @kbd{M-v} and
909@kbd{C-v} respectively (@pxref{Moving Point}). Dragging the inner box 914@kbd{C-v} respectively (@pxref{Moving Point}). Dragging the inner box
@@ -917,23 +922,23 @@ in the scroll bar lets you drag the inner box up and down.
917 922
918@findex scroll-bar-mode 923@findex scroll-bar-mode
919@findex toggle-scroll-bar 924@findex toggle-scroll-bar
920 To toggle the use of scroll bars, type @kbd{M-x scroll-bar-mode}. 925 To toggle the use of vertical scroll bars, type @kbd{M-x
921This command applies to all frames, including frames yet to be 926scroll-bar-mode}. This command applies to all frames, including frames
922created. To toggle scroll bars for just the selected frame, use the 927yet to be created. To toggle vertical scroll bars for just the selected
923command @kbd{M-x toggle-scroll-bar}. 928frame, use the command @kbd{M-x toggle-scroll-bar}.
924 929
925@vindex scroll-bar-mode 930@vindex scroll-bar-mode
926 To control the use of scroll bars at startup, customize the variable 931 To control the use of vertical scroll bars at startup, customize the
927@code{scroll-bar-mode}. Its value should be either @code{right} (put 932variable @code{scroll-bar-mode}. Its value should be either
928scroll bars on the right side of windows), @code{left} (put them on 933@code{right} (put scroll bars on the right side of windows), @code{left}
929the left), or @code{nil} (disable scroll bars). By default, Emacs 934(put them on the left), or @code{nil} (disable vertical scroll bars).
930puts scroll bars on the right if it was compiled with GTK+ support on 935By default, Emacs puts scroll bars on the right if it was compiled with
931the X Window System, and on MS-Windows or Mac OS; Emacs puts scroll 936GTK+ support on the X Window System, and on MS-Windows or Mac OS; Emacs
932bars on the left if compiled on the X Window System without GTK+ 937puts scroll bars on the left if compiled on the X Window System without
933support (following the old convention for X applications). 938GTK+ support (following the old convention for X applications).
934 939
935@vindex scroll-bar-width 940@vindex scroll-bar-width
936@cindex width of the scroll bar 941@cindex width of the vertical scroll bar
937 You can also use the X resource @samp{verticalScrollBars} to enable 942 You can also use the X resource @samp{verticalScrollBars} to enable
938or disable the scroll bars (@pxref{Resources}). To control the scroll 943or disable the scroll bars (@pxref{Resources}). To control the scroll
939bar width, change the @code{scroll-bar-width} frame parameter 944bar width, change the @code{scroll-bar-width} frame parameter
@@ -950,6 +955,39 @@ end of the buffer is shown; if @code{nil}, the thumb will be at the
950bottom when the end of the buffer is shown. You can not over-scroll 955bottom when the end of the buffer is shown. You can not over-scroll
951when the entire buffer is visible. 956when the entire buffer is visible.
952 957
958@cindex Horizontal Scroll Bar
959@cindex Horizontal Scroll Bar mode
960 On graphical displays with toolkit support, Emacs may also supply a
961@dfn{horizontal scroll bar} on the bottom of each window. Clicking
962@kbd{Mouse-1} on the that scroll bar's left and right buttons scrolls
963the window horizontally by one column at a time. Clicking @kbd{Mouse-1}
964on the left or right of the scroll bar's inner box scrolls the window by
965four columns. Dragging the inner box scrolls the window continuously.
966
967 Note that such horizontal scrolling can make the window's position of
968point disappear on the left or the right. Typing a character to insert
969text or moving point with a keyboard command will usually bring it back
970into view.
971
972@findex horizontal-scroll-bar-mode
973 To toggle the use of horizontal scroll bars, type @kbd{M-x
974horizontal-scroll-bar-mode}. This command applies to all frames,
975including frames yet to be created. To toggle horizontal scroll bars
976for just the selected frame, use the command @kbd{M-x
977toggle-horizontal-scroll-bar}.
978
979@vindex horizontal-scroll-bar-mode
980 To control the use of horizontal scroll bars at startup, customize the
981variable @code{horizontal-scroll-bar-mode}.
982
983@vindex scroll-bar-height
984@cindex height of the horizontal scroll bar
985 You can also use the X resource @samp{horizontalScrollBars} to enable
986or disable horizontal scroll bars (@pxref{Resources}). To control the
987scroll bar height, change the @code{scroll-bar-height} frame parameter
988(@pxref{Frame Parameters,,, elisp, The Emacs Lisp Reference Manual}).
989
990
953@node Drag and Drop 991@node Drag and Drop
954@section Drag and Drop 992@section Drag and Drop
955@cindex drag and drop 993@cindex drag and drop
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 10b5fcfb095..22bebed87df 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -129,7 +129,7 @@ Display news of recent Emacs changes (@code{view-emacs-news}).
129Find packages by topic keyword (@code{finder-by-keyword}). This lists 129Find packages by topic keyword (@code{finder-by-keyword}). This lists
130packages using a package menu buffer. @xref{Packages}. 130packages using a package menu buffer. @xref{Packages}.
131@item C-h P @var{package} @key{RET} 131@item C-h P @var{package} @key{RET}
132Display documentation about the package named @var{package} 132Display documentation about the specified package
133(@code{describe-package}). 133(@code{describe-package}).
134@item C-h r 134@item C-h r
135Display the Emacs manual in Info (@code{info-emacs-manual}). 135Display the Emacs manual in Info (@code{info-emacs-manual}).
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index 45dbd5727ac..f4b1752643d 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -754,6 +754,10 @@ Replace rectangle contents with @var{string} on each line
754(@code{string-rectangle}). 754(@code{string-rectangle}).
755@item M-x string-insert-rectangle @key{RET} @var{string} @key{RET} 755@item M-x string-insert-rectangle @key{RET} @var{string} @key{RET}
756Insert @var{string} on each line of the rectangle. 756Insert @var{string} on each line of the rectangle.
757@item C-x @key{SPC}
758Toggle Rectangle Mark mode (@code{rectangle-mark-mode}).
759When this mode is active, the region-rectangle is highlighted and can
760be shrunk/grown, and the standard kill and yank commands operate on it.
757@end table 761@end table
758 762
759 The rectangle operations fall into two classes: commands to erase or 763 The rectangle operations fall into two classes: commands to erase or
@@ -840,11 +844,13 @@ rectangle shifts right.
840shifting the original text to the right. 844shifting the original text to the right.
841 845
842@findex rectangle-mark-mode 846@findex rectangle-mark-mode
843@cindex rectangular region 847 The command @kbd{C-x @key{SPC}} (@code{rectangle-mark-mode}) toggles
844 The command @kbd{C-x @key{SPC}} (@code{rectangle-mark-mode}) makes a 848whether the region-rectangle or the standard region is highlighted
845@dfn{rectangular region}. It is a new feature introduced in GNU Emacs 849(first activating the region if necessary). When this mode is enabled,
84624.4, and most commands now are still unaware of it, but kill and yank 850commands that resize the region (@kbd{C-f}, @kbd{C-n} etc.) do
847(@pxref{Killing}) do work on the rectangle. 851so in a rectangular fashion, and killing and yanking operate on the
852rectangle. @xref{Killing}. The mode persists only as long as the
853region is active.
848 854
849@node CUA Bindings 855@node CUA Bindings
850@section CUA Bindings 856@section CUA Bindings
@@ -887,7 +893,8 @@ any direction. Normal text you type is inserted to the left or right
887of each line in the rectangle (on the same side as the cursor). 893of each line in the rectangle (on the same side as the cursor).
888 894
889 You can use this rectangle support without activating CUA by calling the 895 You can use this rectangle support without activating CUA by calling the
890@code{cua-rectangle-mark-mode} command. 896@code{cua-rectangle-mark-mode} command. But see also the standard
897@code{rectangle-mark-mode}. @xref{Rectangles}.
891 898
892 With CUA you can easily copy text and rectangles into and out of 899 With CUA you can easily copy text and rectangles into and out of
893registers by providing a one-digit numeric prefix to the kill, copy, 900registers by providing a one-digit numeric prefix to the kill, copy,
diff --git a/doc/emacs/macos.texi b/doc/emacs/macos.texi
index 2177ad4e210..048b49cefc9 100644
--- a/doc/emacs/macos.texi
+++ b/doc/emacs/macos.texi
@@ -12,7 +12,7 @@ the GNUstep libraries on GNU/Linux or other operating systems, or on
12Mac OS X with native window system support. On Mac OS X, Emacs can be 12Mac OS X with native window system support. On Mac OS X, Emacs can be
13built either without window system support, with X11, or with the 13built either without window system support, with X11, or with the
14Cocoa interface; this section only applies to the Cocoa build. This 14Cocoa interface; this section only applies to the Cocoa build. This
15does not support versions of Mac OS X earlier than 10.4. 15does not support versions of Mac OS X earlier than 10.6.
16 16
17 For various historical and technical reasons, Emacs uses the term 17 For various historical and technical reasons, Emacs uses the term
18@samp{Nextstep} internally, instead of ``Cocoa'' or ``Mac OS X''; for 18@samp{Nextstep} internally, instead of ``Cocoa'' or ``Mac OS X''; for
@@ -84,7 +84,7 @@ set, which often causes the subprocesses it launches to behave differently than
84they would when launched from the shell. 84they would when launched from the shell.
85 85
86For the PATH and MANPATH variables, a system-wide method 86For the PATH and MANPATH variables, a system-wide method
87of setting PATH is recommended on Mac OS X 10.5 and later, using the 87of setting PATH is recommended on Mac OS X, using the
88@file{/etc/paths} files and the @file{/etc/paths.d} directory. 88@file{/etc/paths} files and the @file{/etc/paths.d} directory.
89 89
90@node Mac / GNUstep Customization 90@node Mac / GNUstep Customization
@@ -118,7 +118,7 @@ Useful in this context is the listing of all faces obtained by
118@kbd{M-x list-faces-display}. 118@kbd{M-x list-faces-display}.
119 119
120@cindex Core Text, on Mac OS X 120@cindex Core Text, on Mac OS X
121In Mac OS X 10.5 and later, Emacs uses a Core Text based font backend 121In Mac OS X, Emacs uses a Core Text based font backend
122by default. If you prefer the older font style, enter the following 122by default. If you prefer the older font style, enter the following
123at the command-line before starting Emacs: 123at the command-line before starting Emacs:
124 124
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index ae1aefcee76..af4d21fe180 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -1610,9 +1610,9 @@ all server buffers are finished. You can take as long as you like to
1610edit the server buffers within Emacs, and they are @emph{not} killed 1610edit the server buffers within Emacs, and they are @emph{not} killed
1611when you type @kbd{C-x #} in them. 1611when you type @kbd{C-x #} in them.
1612 1612
1613@item --parent-id @var{ID} 1613@item --parent-id @var{id}
1614Open an @command{emacsclient} frame as a client frame in the parent X 1614Open an @command{emacsclient} frame as a client frame in the parent X
1615window with id @var{ID}, via the XEmbed protocol. Currently, this 1615window with id @var{id}, via the XEmbed protocol. Currently, this
1616option is mainly useful for developers. 1616option is mainly useful for developers.
1617 1617
1618@item -q 1618@item -q
@@ -1935,9 +1935,9 @@ They divide the text of the region into many @dfn{sort records},
1935identify a @dfn{sort key} for each record, and then reorder the records 1935identify a @dfn{sort key} for each record, and then reorder the records
1936into the order determined by the sort keys. The records are ordered so 1936into the order determined by the sort keys. The records are ordered so
1937that their keys are in alphabetical order, or, for numeric sorting, in 1937that their keys are in alphabetical order, or, for numeric sorting, in
1938numeric order. In alphabetic sorting, all upper-case letters `A' through 1938numeric order. In alphabetic sorting, all upper-case letters @samp{A}
1939`Z' come before lower-case `a', in accord with the @acronym{ASCII} character 1939through @samp{Z} come before lower-case @samp{a}, in accordance with the
1940sequence. 1940@acronym{ASCII} character sequence.
1941 1941
1942 The various sort commands differ in how they divide the text into sort 1942 The various sort commands differ in how they divide the text into sort
1943records and in which part of each record is used as the sort key. Most of 1943records and in which part of each record is used as the sort key. Most of
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
index 90bdafe456a..136eff7e2fe 100644
--- a/doc/emacs/package.texi
+++ b/doc/emacs/package.texi
@@ -60,7 +60,7 @@ The package's version number (e.g., @samp{11.86}).
60@item 60@item
61The package's status---normally one of @samp{available} (can be 61The package's status---normally one of @samp{available} (can be
62downloaded from the package archive), @samp{installed}, 62downloaded from the package archive), @samp{installed},
63@samp{unsigned} (installed, but not signed; @pxref{Package Signing}), 63@c @samp{unsigned} (installed, but not signed; @pxref{Package Signing}),
64or @samp{built-in} (included in Emacs by default). 64or @samp{built-in} (included in Emacs by default).
65 65
66The status can also be @samp{new}. This is equivalent to 66The status can also be @samp{new}. This is equivalent to
@@ -184,11 +184,8 @@ key from a server such as @url{http://pgp.mit.edu/}.
184Use @kbd{M-x package-import-keyring} to import the key into Emacs. 184Use @kbd{M-x package-import-keyring} to import the key into Emacs.
185Emacs stores package keys in the @file{gnupg} subdirectory 185Emacs stores package keys in the @file{gnupg} subdirectory
186of @code{package-user-dir}. 186of @code{package-user-dir}.
187@c Uncomment this if it becomes true.
188@ignore
189The public key for the GNU package archive is distributed with Emacs, 187The public key for the GNU package archive is distributed with Emacs,
190in the @file{etc/package-keyring.gpg}. Emacs uses it automatically. 188in the @file{etc/package-keyring.gpg}. Emacs uses it automatically.
191@end ignore
192 189
193@vindex package-check-signature 190@vindex package-check-signature
194@vindex package-unsigned-archives 191@vindex package-unsigned-archives
diff --git a/doc/emacs/regs.texi b/doc/emacs/regs.texi
index a0ff7079388..bc4abb389c4 100644
--- a/doc/emacs/regs.texi
+++ b/doc/emacs/regs.texi
@@ -149,9 +149,9 @@ during the collection process, you can use the following setting.
149@kindex C-x r i 149@kindex C-x r i
150@findex insert-register 150@findex insert-register
151 @kbd{C-x r i @var{r}} inserts in the buffer the text from register 151 @kbd{C-x r i @var{r}} inserts in the buffer the text from register
152@var{r}. Normally it leaves point before the text and sets the mark 152@var{r}. Normally it leaves point after the text and sets the mark
153after, without activating it. With a numeric argument, it instead 153before, without activating it. With a numeric argument, it instead
154puts point after the text and the mark before. 154puts before after the text and the mark after.
155 155
156@node Rectangle Registers 156@node Rectangle Registers
157@section Saving Rectangles in Registers 157@section Saving Rectangles in Registers
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 64ecf165349..bdfb534e186 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -1337,7 +1337,7 @@ to replace all remaining occurrences without asking again.
1337 1337
1338@item Y @r{(Upper-case)} 1338@item Y @r{(Upper-case)}
1339to replace all remaining occurrences in all remaining buffers in 1339to replace all remaining occurrences in all remaining buffers in
1340multi-buffer replacements (like the Dired `Q' command which performs 1340multi-buffer replacements (like the Dired @key{Q} command that performs
1341query replace on selected files). It answers this question and all 1341query replace on selected files). It answers this question and all
1342subsequent questions in the series with "yes", without further 1342subsequent questions in the series with "yes", without further
1343user interaction. 1343user interaction.
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index 07f956c488d..dd52d97780d 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -113,7 +113,7 @@ Prompt for a file name, delete the file from the working tree, and
113schedule the deletion for committing. 113schedule the deletion for committing.
114 114
115@item M-x vc-rename-file 115@item M-x vc-rename-file
116Prompt for two file names, @var{VAR} and @var{OLD}, rename them in the 116Prompt for two file names, @var{var} and @var{old}, rename them in the
117working tree, and schedule the renaming for committing. 117working tree, and schedule the renaming for committing.
118@end table 118@end table
119 119
diff --git a/doc/lispintro/ChangeLog b/doc/lispintro/ChangeLog
index 70d7767635f..6ccac447134 100644
--- a/doc/lispintro/ChangeLog
+++ b/doc/lispintro/ChangeLog
@@ -1,3 +1,7 @@
12014-10-13 Glenn Morris <rgm@gnu.org>
2
3 * Makefile.in (dist): Update for new output variables.
4
12014-07-16 Álvar Jesús Ibeas Martín <alvar.ibeas@unican.es> (tiny change) 52014-07-16 Álvar Jesús Ibeas Martín <alvar.ibeas@unican.es> (tiny change)
2 6
3 * emacs-lisp-intro.texi (Variables, Buffer Names, if & or) 7 * emacs-lisp-intro.texi (Variables, Buffer Names, if & or)
diff --git a/doc/lispintro/Makefile.in b/doc/lispintro/Makefile.in
index b40c26767cc..49d3fe3c957 100644
--- a/doc/lispintro/Makefile.in
+++ b/doc/lispintro/Makefile.in
@@ -134,6 +134,21 @@ dist:
134 -e 's/^\(clean:.*\)/\1 infoclean/' \ 134 -e 's/^\(clean:.*\)/\1 infoclean/' \
135 -e "s/@ver[s]ion@/${version}/" \ 135 -e "s/@ver[s]ion@/${version}/" \
136 -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \ 136 -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \
137 -e 's/@IN[F]O_EXT@/.info/' -e 's/@IN[F]O_OPTS@//' \
138 -e 's|@SH[E]LL@|/bin/bash|' \
139 -e 's|@[p]refix@|/usr/local|' \
140 -e 's|@[d]atarootdir@|$${prefix}/share|' \
141 -e 's|@[d]atadir@|$${datarootdir}|' \
142 -e 's|@[P]ACKAGE_TARNAME@|emacs|' \
143 -e 's|@[d]ocdir@|$${datarootdir}/doc/$${PACKAGE_TARNAME}|' \
144 -e 's|@[d]vidir@|$${docdir}|' \
145 -e 's|@[h]tmldir@|$${docdir}|' \
146 -e 's|@[p]dfdir@|$${docdir}|' \
147 -e 's|@[p]sdir@|$${docdir}|' \
148 -e 's|@[G]ZIP_PROG@|gzip|' \
149 -e 's|@IN[S]TALL@|install -c|' \
150 -e 's|@IN[S]TALL_DATA@|$${INSTALL} -m 644|' \
151 -e '/@[c]onfigure_input@/d' \
137 ${srcdir}/Makefile.in > emacs-lispintro-${version}/Makefile 152 ${srcdir}/Makefile.in > emacs-lispintro-${version}/Makefile
138 @if grep '@[a-zA-Z_]*@' emacs-lispintro-${version}/Makefile; then \ 153 @if grep '@[a-zA-Z_]*@' emacs-lispintro-${version}/Makefile; then \
139 echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \ 154 echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 151fb0005a0..b8f17c0fae5 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,126 @@
12014-10-13 Glenn Morris <rgm@gnu.org>
2
3 * Makefile.in (dist): Update for new output variables.
4
52014-10-12 Glenn Morris <rgm@gnu.org>
6
7 * elisp.texi (DATE): Bump to October 2014.
8
92014-10-09 Glenn Morris <rgm@gnu.org>
10
11 * frames.texi (Multiple Terminals): Copyedits.
12
132014-10-09 Eli Zaretskii <eliz@gnu.org>
14
15 * frames.texi (Multiple Terminals): Improve the description of X
16 display names. Add index entries.
17 (Basic Parameters): Add a cross-reference to where X display names
18 are described.
19 (Position Parameters): Mention that positional parameters of the
20 form (+ POS) can be negative if they are on a non-primary monitor
21 of a multi-monitor display. (Bug#18636)
22 (Creating Frames): Mention that on multi-monitor displays the
23 frame might be positioned differently than specified by the frame
24 parameters alist.
25
262014-10-08 Leo Liu <sdl.web@gmail.com>
27
28 * streams.texi (Output Functions): Document new argument ENSURE to
29 terpri. (Bug#18652)
30
312014-10-04 Martin Rudalics <rudalics@gmx.at>
32
33 * display.texi (Scroll Bars): Add description of horizontal scroll
34 bars and associated functions.
35 * frames.texi (Layout Parameters): Add horizontal scroll bar
36 entries. Remove paragraph on "combined fringe widths".
37 * windows.texi (Window Sizes): Describe affects of horizontal
38 scroll bars on window layout and sizes. Fix description of
39 window-full-height-p.
40 (Resizing Windows): Mention horizontal scroll bar.
41
422014-10-04 Glenn Morris <rgm@gnu.org>
43
44 * commands.texi (Generic Commands): Copyedits.
45
46 * display.texi (Scroll Bars):
47 * modes.texi (Header Lines): Copyedits.
48
49 * buffers.texi (Buffer List):
50 * display.texi (Image Descriptors, Defining Images):
51 * functions.texi (Core Advising Primitives): Small fixes re @var usage.
52
53 * windows.texi (Window Sizes, Resizing Windows): Copyedits.
54
55 * frames.texi (Multiple Terminals): Copyedits re multiple monitors.
56
572014-10-03 Martin Rudalics <rudalics@gmx.at>
58
59 * frames.texi (Size Parameters, Size and Position): Mention that
60 with some window managers you have to set `frame-resize-pixelwise'
61 in order make a frame truly fullscreen or maximized.
62
632014-10-01 Paul Eggert <eggert@cs.ucla.edu>
64
65 Improve doc for use of 'int', and discuss 'ssize_t'.
66 * internals.texi (C Integer Types): Mention 'int' for other
67 randomish values that lie in 'int' range. Mention 'ssize_t'. See:
68 http://lists.gnu.org/archive/html/emacs-devel/2014-10/msg00019.html
69
70 Use AUTO_CONS instead of SCOPED_CONS, etc.
71 * internals.texi (Stack-allocated Objects):
72 Adjust to match the revised, less error-prone macros.
73
742014-09-30 Paul Eggert <eggert@cs.ucla.edu>
75
76 * internals.texi (Stack-allocated Objects): Further improvements.
77 Give an example of misuse.
78
792014-09-30 Eli Zaretskii <eliz@gnu.org>
80
81 * internals.texi (Stack-allocated Objects): Minor improvements of
82 the wording and the indexing.
83
842014-09-30 Dmitry Antipov <dmantipov@yandex.ru>
85
86 * internals.texi (Stack-allocated Objects): Describe this feature.
87
882014-09-15 Daniel Colascione <dancol@dancol.org>
89
90 * text.texi (Registers): Make `insert-register' documentation
91 reflect interface change.
92
932014-09-08 Stefan Monnier <monnier@iro.umontreal.ca>
94
95 * functions.texi (Core Advising Primitives): Add a note about the
96 confusing treatment of `interactive' for :filter-args (bug#18399).
97
982014-09-07 Michael Albinus <michael.albinus@gmx.de>
99
100 * strings.texi (Text Comparison): Describe `string-collate-equalp'
101 and `string-collate-lessp'.
102
1032014-09-06 Leo Liu <sdl.web@gmail.com>
104
105 * control.texi (Pattern matching case statement): Document vector
106 qpattern. (Bug#18327)
107
1082014-08-29 Dmitry Antipov <dmantipov@yandex.ru>
109
110 * lists.texi (Functions that Rearrange Lists): Remove
111 description of sort ...
112 * sequences.texi (Sequence Functions): ... and generalize
113 it for sequences. Add an example.
114
1152014-08-28 Eli Zaretskii <eliz@gnu.org>
116
117 * display.texi (Bidirectional Display): Update the Emacs's class
118 of bidirectional conformance.
119
1202014-08-27 Dmitry Antipov <dmantipov@yandex.ru>
121
122 * eval.texi (Eval): Mention possible recovery from stack overflow.
123
12014-10-13 Eli Zaretskii <eliz@gnu.org> 1242014-10-13 Eli Zaretskii <eliz@gnu.org>
2 125
3 * display.texi (Bidirectional Display): Update the version of the 126 * display.texi (Bidirectional Display): Update the version of the
diff --git a/doc/lispref/Makefile.in b/doc/lispref/Makefile.in
index 2919d97b3a3..22955fb9bae 100644
--- a/doc/lispref/Makefile.in
+++ b/doc/lispref/Makefile.in
@@ -192,6 +192,21 @@ dist:
192 -e 's/^\(clean:.*\)/\1 infoclean/' \ 192 -e 's/^\(clean:.*\)/\1 infoclean/' \
193 -e "s/@ver[s]ion@/${version}/" \ 193 -e "s/@ver[s]ion@/${version}/" \
194 -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \ 194 -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \
195 -e 's/@IN[F]O_EXT@/.info/' -e 's/@IN[F]O_OPTS@//' \
196 -e 's|@SH[E]LL@|/bin/bash|' \
197 -e 's|@[p]refix@|/usr/local|' \
198 -e 's|@[d]atarootdir@|$${prefix}/share|' \
199 -e 's|@[d]atadir@|$${datarootdir}|' \
200 -e 's|@[P]ACKAGE_TARNAME@|emacs|' \
201 -e 's|@[d]ocdir@|$${datarootdir}/doc/$${PACKAGE_TARNAME}|' \
202 -e 's|@[d]vidir@|$${docdir}|' \
203 -e 's|@[h]tmldir@|$${docdir}|' \
204 -e 's|@[p]dfdir@|$${docdir}|' \
205 -e 's|@[p]sdir@|$${docdir}|' \
206 -e 's|@[G]ZIP_PROG@|gzip|' \
207 -e 's|@IN[S]TALL@|install -c|' \
208 -e 's|@IN[S]TALL_DATA@|$${INSTALL} -m 644|' \
209 -e '/@[c]onfigure_input@/d' \
195 ${srcdir}/Makefile.in > emacs-lispref-${version}/Makefile 210 ${srcdir}/Makefile.in > emacs-lispref-${version}/Makefile
196 @if grep '@[a-zA-Z_]*@' emacs-lispref-${version}/Makefile; then \ 211 @if grep '@[a-zA-Z_]*@' emacs-lispref-${version}/Makefile; then \
197 echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \ 212 echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 1293a03082c..5ac2d6786e8 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -863,7 +863,7 @@ If no suitable buffer exists, the buffer @file{*scratch*} is returned
863 863
864@defun last-buffer &optional buffer visible-ok frame 864@defun last-buffer &optional buffer visible-ok frame
865This function returns the last buffer in @var{frame}'s buffer list other 865This function returns the last buffer in @var{frame}'s buffer list other
866than @var{BUFFER}. If @var{frame} is omitted or @code{nil}, it uses the 866than @var{buffer}. If @var{frame} is omitted or @code{nil}, it uses the
867selected frame's buffer list. 867selected frame's buffer list.
868 868
869The argument @var{visible-ok} is handled as with @code{other-buffer}, 869The argument @var{visible-ok} is handled as with @code{other-buffer},
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi
index 58e903918bf..e5db4d87539 100644
--- a/doc/lispref/commands.texi
+++ b/doc/lispref/commands.texi
@@ -589,31 +589,26 @@ Put them into three windows, selecting the last one."
589@cindex alternatives, defining 589@cindex alternatives, defining
590 590
591The macro @code{define-alternatives} can be used to define 591The macro @code{define-alternatives} can be used to define
592@dfn{generic commands}. Generic commands are interactive functions 592@dfn{generic commands}. These are interactive functions whose
593whose implementation can be selected among several alternatives, as a 593implementation can be selected from several alternatives, as a matter
594matter of user preference. 594of user preference.
595 595
596@defmac define-alternatives command &rest customizations 596@defmac define-alternatives command &rest customizations
597Define the new command `COMMAND'. 597Define the new command @var{command}, a symbol.
598 598
599The argument `COMMAND' should be a symbol. 599When a user runs @kbd{M-x @var{command} @key{RET}} for the first time,
600Emacs prompts for which real form of the command to use, and records
601the selection by way of a custom variable. Using a prefix argument
602repeats this process of choosing an alternative.
600 603
601When a user runs @kbd{M-x COMMAND @key{RET}} for the first time, Emacs 604The variable @code{@var{command}-alternatives} should contain an alist
602will prompt for which alternative to use and record the selected 605with alternative implementations of @var{command}.
603command as a custom variable. 606Until this variable is set, @code{define-alternatives} has no effect.
604 607
605Running @kbd{C-u M-x COMMAND @key{RET}} prompts again for an 608If @var{customizations} is non-@code{nil}, it should consist of
606alternative and overwrites the previous choice. 609alternating @code{defcustom} keywords (typically @code{:group} and
607 610@code{:version}) and values to add to the declaration of
608The variable @code{COMMAND-alternatives} contains an alist 611@code{@var{command}-alternatives}.
609(@pxref{Association Lists}) with alternative implementations of
610`COMMAND'. @code{define-alternatives} does not have any effect until
611this variable is set.
612
613If @var{customizations} is non-@var{nil}, it should be composed of
614alternating @code{defcustom} keywords and values to add to the
615declaration of @code{COMMAND-alternatives} (typically :group and
616:version).
617@end defmac 612@end defmac
618 613
619@node Interactive Call 614@node Interactive Call
diff --git a/doc/lispref/control.texi b/doc/lispref/control.texi
index edf60dd5cc8..5cf6368db52 100644
--- a/doc/lispref/control.texi
+++ b/doc/lispref/control.texi
@@ -328,13 +328,13 @@ lexical binding):
328@example 328@example
329(defun evaluate (exp env) 329(defun evaluate (exp env)
330 (pcase exp 330 (pcase exp
331 (`(add ,x ,y) (+ (evaluate x env) (evaluate y env))) 331 (`(add ,x ,y) (+ (evaluate x env) (evaluate y env)))
332 (`(call ,fun ,arg) (funcall (evaluate fun env) (evaluate arg env))) 332 (`(call ,fun ,arg) (funcall (evaluate fun env) (evaluate arg env)))
333 (`(fn ,arg ,body) (lambda (val) 333 (`(fn ,arg ,body) (lambda (val)
334 (evaluate body (cons (cons arg val) env)))) 334 (evaluate body (cons (cons arg val) env))))
335 ((pred numberp) exp) 335 ((pred numberp) exp)
336 ((pred symbolp) (cdr (assq exp env))) 336 ((pred symbolp) (cdr (assq exp env)))
337 (_ (error "Unknown expression %S" exp)))) 337 (_ (error "Unknown expression %S" exp))))
338@end example 338@end example
339 339
340Where @code{`(add ,x ,y)} is a pattern that checks that @code{exp} is a three 340Where @code{`(add ,x ,y)} is a pattern that checks that @code{exp} is a three
@@ -370,6 +370,10 @@ More specifically, a Q-pattern can take the following forms:
370@item (@var{qpattern1} . @var{qpattern2}) 370@item (@var{qpattern1} . @var{qpattern2})
371This pattern matches any cons cell whose @code{car} matches @var{QPATTERN1} and 371This pattern matches any cons cell whose @code{car} matches @var{QPATTERN1} and
372whose @code{cdr} matches @var{PATTERN2}. 372whose @code{cdr} matches @var{PATTERN2}.
373@item [@var{qpattern1 qpattern2..qpatternm}]
374This pattern matches a vector of length @code{M} whose 0..(M-1)th
375elements match @var{QPATTERN1}, @var{QPATTERN2}..@var{QPATTERNm},
376respectively.
373@item @var{atom} 377@item @var{atom}
374This pattern matches any atom @code{equal} to @var{atom}. 378This pattern matches any atom @code{equal} to @var{atom}.
375@item ,@var{upattern} 379@item ,@var{upattern}
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index fd4a7d7058e..4cb06dd188f 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -23,7 +23,7 @@ that Emacs presents to the user.
23* Faces:: A face defines a graphics style for text characters: 23* Faces:: A face defines a graphics style for text characters:
24 font, colors, etc. 24 font, colors, etc.
25* Fringes:: Controlling window fringes. 25* Fringes:: Controlling window fringes.
26* Scroll Bars:: Controlling vertical scroll bars. 26* Scroll Bars:: Controlling scroll bars.
27* Window Dividers:: Separating windows visually. 27* Window Dividers:: Separating windows visually.
28* Display Property:: Enabling special display features. 28* Display Property:: Enabling special display features.
29* Images:: Displaying images in Emacs buffers. 29* Images:: Displaying images in Emacs buffers.
@@ -3866,102 +3866,164 @@ arrow position. If either property is not set, the default
3866@code{overlay-arrow-string} or @code{overlay-arrow} fringe indicator 3866@code{overlay-arrow-string} or @code{overlay-arrow} fringe indicator
3867is used. 3867is used.
3868 3868
3869
3869@node Scroll Bars 3870@node Scroll Bars
3870@section Scroll Bars 3871@section Scroll Bars
3871@cindex scroll bars 3872@cindex scroll bars
3872 3873
3873Normally the frame parameter @code{vertical-scroll-bars} controls 3874Normally the frame parameter @code{vertical-scroll-bars} controls
3874whether the windows in the frame have vertical scroll bars, and 3875whether the windows in the frame have vertical scroll bars, and whether
3875whether they are on the left or right. The frame parameter 3876they are on the left or right. The frame parameter
3876@code{scroll-bar-width} specifies how wide they are (@code{nil} 3877@code{scroll-bar-width} specifies how wide they are (@code{nil} meaning
3877meaning the default). @xref{Layout Parameters}. 3878the default).
3879
3880 The frame parameter @code{horizontal-scroll-bars} controls whether
3881the windows in the frame have horizontal scroll bars. The frame
3882parameter @code{scroll-bar-height} specifies how high they are
3883(@code{nil} meaning the default). @xref{Layout Parameters}.
3884
3885@vindex horizontal-scroll-bars-available-p
3886 Horizontal scroll bars are not available on all platforms. The
3887function @code{horizontal-scroll-bars-available-p} which takes no
3888argument returns non-@code{nil} if they are available on your system.
3889
3890 The following three functions take as argument a live frame which
3891defaults to the selected one.
3878 3892
3879@defun frame-current-scroll-bars &optional frame 3893@defun frame-current-scroll-bars &optional frame
3880This function reports the scroll bar type settings for frame 3894This function reports the scroll bar types for frame @var{frame}. The
3881@var{frame}. The value is a cons cell 3895value is a cons cell @code{(@var{vertical-type} .@:
3882@code{(@var{vertical-type} .@: @var{horizontal-type})}, where 3896@var{horizontal-type})}, where @var{vertical-type} is either
3883@var{vertical-type} is either @code{left}, @code{right}, or @code{nil} 3897@code{left}, @code{right}, or @code{nil} (which means no vertical scroll
3884(which means no scroll bar.) @var{horizontal-type} is meant to 3898bar.) @var{horizontal-type} is either @code{bottom} or @code{nil}
3885specify the horizontal scroll bar type, but since they are not 3899(which means no horizontal scroll bar).
3886implemented, it is always @code{nil}. 3900@end defun
3887@end defun
3888
3889@vindex vertical-scroll-bar
3890 You can enable or disable scroll bars for a particular buffer,
3891by setting the variable @code{vertical-scroll-bar}. This variable
3892automatically becomes buffer-local when set. The possible values are
3893@code{left}, @code{right}, @code{t}, which means to use the
3894frame's default, and @code{nil} for no scroll bar.
3895 3901
3896 You can also control this for individual windows. Call the function 3902@defun frame-scroll-bar-width &optional Lisp_Object &optional frame
3897@code{set-window-scroll-bars} to specify what to do for a specific window: 3903This function returns the width of vertical scroll bars of @var{frame}
3904in pixels.
3905@end defun
3898 3906
3899@defun set-window-scroll-bars window width &optional vertical-type horizontal-type 3907@defun frame-scroll-bar-height &optional Lisp_Object &optional frame
3900This function sets the width and type of scroll bars for window 3908This function returns the height of horizontal scroll bars of
3901@var{window}. 3909@var{frame} in pixels.
3910@end defun
3902 3911
3903@var{width} specifies the scroll bar width in pixels (@code{nil} means 3912You can override the frame specific settings for individual windows by
3904use the width specified for the frame). @var{vertical-type} specifies 3913using the following function:
3905whether to have a vertical scroll bar and, if so, where. The possible
3906values are @code{left}, @code{right} and @code{nil}, just like the
3907values of the @code{vertical-scroll-bars} frame parameter.
3908 3914
3909The argument @var{horizontal-type} is meant to specify whether and 3915@defun set-window-scroll-bars window &optional width vertical-type height horizontal-type
3910where to have horizontal scroll bars, but since they are not 3916This function sets the width and/or height and the types of scroll bars
3911implemented, it has no effect. If @var{window} is @code{nil}, the 3917for window @var{window}.
3912selected window is used. 3918
3919@var{width} specifies the width of the vertical scroll bar in pixels
3920(@code{nil} means use the width specified for the frame).
3921@var{vertical-type} specifies whether to have a vertical scroll bar and,
3922if so, where. The possible values are @code{left}, @code{right},
3923@code{t}, which means to use the frame's default, and @code{nil} for no
3924vertical scroll bar.
3925
3926@var{height} specifies the height of the horizontal scroll bar in pixels
3927(@code{nil} means use the height specified for the frame).
3928@var{horizontal-type} specifies whether to have a horizontal scroll bar.
3929The possible values are @code{bottom}, @code{t}, which means to use the
3930frame's default, and @code{nil} for no horizontal scroll bar.
3931
3932If @var{window} is @code{nil}, the selected window is used.
3913@end defun 3933@end defun
3914 3934
3935The following four functions take as argument a live window which
3936defaults to the selected one.
3937
3915@defun window-scroll-bars &optional window 3938@defun window-scroll-bars &optional window
3916Report the width and type of scroll bars specified for @var{window}. 3939This function returns a list of the form @code{(@var{width}
3917If @var{window} is omitted or @code{nil}, the selected window is used. 3940@var{columns} @var{vertical-type} @var{height} @var{lines}
3918The value is a list of the form @code{(@var{width} 3941@var{horizontal-type})}.
3919@var{cols} @var{vertical-type} @var{horizontal-type})}. The value
3920@var{width} is the value that was specified for the width (which may
3921be @code{nil}); @var{cols} is the number of columns that the scroll
3922bar actually occupies.
3923 3942
3924@var{horizontal-type} is not actually meaningful. 3943The value @var{width} is the value that was specified for the width of
3944the vertical scroll bar (which may be @code{nil}); @var{columns} is the
3945(possibly rounded) number of columns that the vertical scroll bar
3946actually occupies.
3947
3948The value @var{height} is the value that was specified for the height of
3949the horizontal scroll bar (which may be @code{nil}); @var{lines} is the
3950(possibly rounded) number of lines that the horizontally scroll bar
3951actually occupies.
3952@end defun
3953
3954@defun window-current-scroll-bars &optional window
3955This function reports the scroll bar type for window @var{window}. The
3956value is a cons cell @code{(@var{vertical-type} .@:
3957@var{horizontal-type})}. Unlike @code{window-scroll-bars}, this reports
3958the scroll bar type actually used, once frame defaults and
3959@code{scroll-bar-mode} are taken into account.
3925@end defun 3960@end defun
3926 3961
3927@defun window-scroll-bar-width &optional window 3962@defun window-scroll-bar-width &optional window
3928This function returns the width of @var{window}'s vertical scrollbar, 3963This function returns the width in pixels of @var{window}'s vertical
3929in pixels. @var{window} must be a live window. If @var{window} is 3964scrollbar.
3930@code{nil} or omitted, it will be the selected window. 3965@end defun
3966
3967@defun window-scroll-bar-height &optional window
3968This function returns the height in pixels of @var{window}'s horizontal
3969scrollbar.
3931@end defun 3970@end defun
3932 3971
3933If you don't specify these values for a window with 3972If you don't specify these values for a window with
3934@code{set-window-scroll-bars}, the buffer-local variables 3973@code{set-window-scroll-bars}, the buffer-local variables
3935@code{scroll-bar-mode} and @code{scroll-bar-width} in the buffer being 3974@code{vertical-scroll-bar}, @code{horizontal-scroll-bar},
3936displayed control the window's vertical scroll bars. The function 3975@code{scroll-bar-width} and @code{scroll-bar-height} in the buffer being
3976displayed control the window's scroll bars. The function
3937@code{set-window-buffer} examines these variables. If you change them 3977@code{set-window-buffer} examines these variables. If you change them
3938in a buffer that is already visible in a window, you can make the 3978in a buffer that is already visible in a window, you can make the window
3939window take note of the new values by calling @code{set-window-buffer} 3979take note of the new values by calling @code{set-window-buffer}
3940specifying the same buffer that is already displayed. 3980specifying the same buffer that is already displayed.
3941 3981
3942@defopt scroll-bar-mode 3982You can control the appearance of scroll bars for a particular buffer by
3943This variable, always local in all buffers, controls whether and where 3983setting the following variables which automatically become buffer-local
3944to put scroll bars in windows displaying the buffer. The possible values 3984when set.
3945are @code{nil} for no scroll bar, @code{left} to put a scroll bar on
3946the left, and @code{right} to put a scroll bar on the right.
3947@end defopt
3948 3985
3949@defun window-current-scroll-bars &optional window 3986@defvar vertical-scroll-bar
3950This function reports the scroll bar type for window @var{window}. 3987This variable specifies the location of the vertical scroll bar. The
3951If @var{window} is omitted or @code{nil}, the selected window is used. 3988possible values are @code{left}, @code{right}, @code{t}, which means to
3952The value is a cons cell 3989use the frame's default, and @code{nil} for no scroll bar.
3953@code{(@var{vertical-type} .@: @var{horizontal-type})}. Unlike 3990@end defvar
3954@code{window-scroll-bars}, this reports the scroll bar type actually 3991
3955used, once frame defaults and @code{scroll-bar-mode} are taken into 3992@defvar horizontal-scroll-bar
3956account. 3993This variable specifies the location of the horizontal scroll bar. The
3957@end defun 3994possible values are @code{bottom}, @code{t}, which means to use the
3995frame's default, and @code{nil} for no scroll bar.
3996@end defvar
3958 3997
3959@defvar scroll-bar-width 3998@defvar scroll-bar-width
3960This variable, always local in all buffers, specifies the width of the 3999This variable specifies the width of the buffer's vertical scroll bars,
3961buffer's scroll bars, measured in pixels. A value of @code{nil} means 4000measured in pixels. A value of @code{nil} means to use the value
3962to use the value specified by the frame. 4001specified by the frame.
3963@end defvar 4002@end defvar
3964 4003
4004@defvar scroll-bar-height
4005This variable specifies the height of the buffer's horizontal scroll
4006bar, measured in pixels. A value of @code{nil} means to use the value
4007specified by the frame.
4008@end defvar
4009
4010Finally you can toggle the display of scroll bars on all frames by
4011customizing the variables @code{scroll-bar-mode} and
4012@code{horizontal-scroll-bar-mode}.
4013
4014@defopt scroll-bar-mode
4015This variable controls whether and where to put vertical scroll bars in
4016all frames. The possible values are @code{nil} for no scroll bars,
4017@code{left} to put scroll bars on the left and @code{right} to put
4018scroll bars on the right.
4019@end defopt
4020
4021@defopt horizontal-scroll-bar-mode
4022This variable controls whether to display horizontal scroll bars on all
4023frames.
4024@end defopt
4025
4026
3965@node Window Dividers 4027@node Window Dividers
3966@section Window Dividers 4028@section Window Dividers
3967@cindex window dividers 4029@cindex window dividers
@@ -4503,7 +4565,7 @@ functions to insert images into buffers.
4503 4565
4504 Each image descriptor has the form @code{(image . @var{props})}, 4566 Each image descriptor has the form @code{(image . @var{props})},
4505where @var{props} is a property list of alternating keyword symbols 4567where @var{props} is a property list of alternating keyword symbols
4506and values, including at least the pair @code{:type @var{TYPE}} which 4568and values, including at least the pair @code{:type @var{type}} that
4507specifies the image type. 4569specifies the image type.
4508 4570
4509 The following is a list of properties that are meaningful for all 4571 The following is a list of properties that are meaningful for all
@@ -4995,7 +5057,7 @@ of a list of image specifications @var{specs}.
4995Each specification in @var{specs} is a property list with contents 5057Each specification in @var{specs} is a property list with contents
4996depending on image type. All specifications must at least contain the 5058depending on image type. All specifications must at least contain the
4997properties @code{:type @var{type}} and either @w{@code{:file @var{file}}} 5059properties @code{:type @var{type}} and either @w{@code{:file @var{file}}}
4998or @w{@code{:data @var{DATA}}}, where @var{type} is a symbol specifying 5060or @w{@code{:data @var{data}}}, where @var{type} is a symbol specifying
4999the image type, e.g., @code{xbm}, @var{file} is the file to load the 5061the image type, e.g., @code{xbm}, @var{file} is the file to load the
5000image from, and @var{data} is a string containing the actual image data. 5062image from, and @var{data} is a string containing the actual image data.
5001The first specification in the list whose @var{type} is supported, and 5063The first specification in the list whose @var{type} is supported, and
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index bb2e4638396..fa665da34a4 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -56,7 +56,7 @@
56@c (See comments for EDITION in emacs.texi) 56@c (See comments for EDITION in emacs.texi)
57@set VERSION 3.1 57@set VERSION 3.1
58@include emacsver.texi 58@include emacsver.texi
59@set DATE January 2013 59@set DATE October 2014
60 60
61@c in general, keep the following line commented out, unless doing a 61@c in general, keep the following line commented out, unless doing a
62@c copy of this manual that will be published. The manual should go 62@c copy of this manual that will be published. The manual should go
@@ -1343,7 +1343,7 @@ Emacs Display
1343* Faces:: A face defines a graphics style 1343* Faces:: A face defines a graphics style
1344 for text characters: font, colors, etc. 1344 for text characters: font, colors, etc.
1345* Fringes:: Controlling window fringes. 1345* Fringes:: Controlling window fringes.
1346* Scroll Bars:: Controlling vertical scroll bars. 1346* Scroll Bars:: Controlling scroll bars.
1347* Window Dividers:: Separating windows visually. 1347* Window Dividers:: Separating windows visually.
1348* Display Property:: Enabling special display features. 1348* Display Property:: Enabling special display features.
1349* Images:: Displaying images in Emacs buffers. 1349* Images:: Displaying images in Emacs buffers.
diff --git a/doc/lispref/eval.texi b/doc/lispref/eval.texi
index 05250233b00..6ffc7db8abf 100644
--- a/doc/lispref/eval.texi
+++ b/doc/lispref/eval.texi
@@ -805,7 +805,12 @@ message @code{"Lisp nesting exceeds max-lisp-eval-depth"}).
805This limit, with the associated error when it is exceeded, is one way 805This limit, with the associated error when it is exceeded, is one way
806Emacs Lisp avoids infinite recursion on an ill-defined function. If 806Emacs Lisp avoids infinite recursion on an ill-defined function. If
807you increase the value of @code{max-lisp-eval-depth} too much, such 807you increase the value of @code{max-lisp-eval-depth} too much, such
808code can cause stack overflow instead. 808code can cause stack overflow instead. On some systems, this overflow
809can be handled. In that case, normal Lisp evaluation is interrupted
810and control is transferred back to the top level command loop
811(@code{top-level}). Note that there is no way to enter Emacs Lisp
812debugger in this situation. @xref{Error Debugging}.
813
809@cindex Lisp nesting error 814@cindex Lisp nesting error
810 815
811The depth limit counts internal uses of @code{eval}, @code{apply}, and 816The depth limit counts internal uses of @code{eval}, @code{apply}, and
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index b95a5ccdb92..a14702a7ce1 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -131,6 +131,13 @@ applies any parameters listed in @code{frame-inherited-parameters}
131(see below) and not present in the argument, taking the values from 131(see below) and not present in the argument, taking the values from
132the frame that was selected when @code{make-frame} was called. 132the frame that was selected when @code{make-frame} was called.
133 133
134Note that on multi-monitor displays (@pxref{Multiple Terminals}), the
135window manager might position the frame differently than specified by
136the positional parameters in @var{alist} (@pxref{Position
137Parameters}). For example, some window managers have a policy of
138displaying the frame on the monitor that contains the largest part of
139the window (a.k.a.@: the @dfn{dominating} monitor).
140
134This function itself does not make the new frame the selected frame. 141This function itself does not make the new frame the selected frame.
135@xref{Input Focus}. The previously selected frame remains selected. 142@xref{Input Focus}. The previously selected frame remains selected.
136On graphical terminals, however, the windowing system may select the 143On graphical terminals, however, the windowing system may select the
@@ -258,13 +265,27 @@ of those frames is ``@emph{the} selected frame'' at any given moment
258terminals, by interacting with the @command{emacsclient} program. 265terminals, by interacting with the @command{emacsclient} program.
259@xref{Emacs Server,,, emacs, The GNU Emacs Manual}. 266@xref{Emacs Server,,, emacs, The GNU Emacs Manual}.
260 267
268@cindex X display names
269@cindex display name on X
261 A single X server can handle more than one display. Each X display 270 A single X server can handle more than one display. Each X display
262has a three-part name, @samp{@var{host}:@var{server}.@var{screen}}. 271has a three-part name,
263The first two parts, @var{host} and @var{server}, identify the X 272@samp{@var{hostname}:@var{displaynumber}.@var{screennumber}}. The
264server; the third part, @var{screen}, identifies a screen number on 273first part, @var{hostname}, specifies the name of the machine to which
265that X server. When you use two or more screens belonging to one 274the display is physically connected. The second part,
266server, Emacs knows by the similarity in their names that they share a 275@var{displaynumber}, is a zero-based number that identifies one or
267single keyboard. 276more monitors connected to that machine that share a common keyboard
277and pointing device (mouse, tablet, etc.). The third part,
278@var{screennumber}, identifies a zero-based screen number (a separate
279monitor) that is part of a single monitor collection on that X server.
280When you use two or more screens belonging to one server, Emacs knows
281by the similarity in their names that they share a single keyboard.
282
283 Systems that don't use the X window system, such as MS-Windows,
284don't support the notion of X displays, and have only one display on
285each host. The display name on these systems doesn't follow the above
2863-part format; for example, the display name on MS-Windows systems is
287a constant string @samp{w32}, and exists for compatibility, so that
288you could pass it to functions that expect a display name.
268 289
269@deffn Command make-frame-on-display display &optional parameters 290@deffn Command make-frame-on-display display &optional parameters
270This function creates and returns a new frame on @var{display}, taking 291This function creates and returns a new frame on @var{display}, taking
@@ -314,57 +335,84 @@ on that display (@pxref{Deleting Frames}).
314 335
315@cindex multi-monitor 336@cindex multi-monitor
316 On some ``multi-monitor'' setups, a single X display outputs to more 337 On some ``multi-monitor'' setups, a single X display outputs to more
317than one physical monitor. @code{display-monitor-attributes-list} and 338than one physical monitor. You can use the functions
318@code{frame-monitor-attributes} can be used to obtain information 339@code{display-monitor-attributes-list} and @code{frame-monitor-attributes}
319about each physical monitor on multi-monitor setups. 340to obtain information about such setups.
320 341
321@defun display-monitor-attributes-list &optional display 342@defun display-monitor-attributes-list &optional display
322This function returns a list of physical monitor attributes on 343This function returns a list of physical monitor attributes on
323@var{display}. Each element of the list is an association list, 344@var{display}, which can be a display name (a string), a terminal, or
324representing the attributes of each physical monitor. The first 345a frame; if omitted or @code{nil}, it defaults to the selected frame's
325element corresponds to the primary monitor. 346display. Each element of the list is an association list,
326 347representing the attributes of a physical monitor. The first element
327Attributes for a physical monitor are: 348corresponds to the primary monitor. The attribute keys and values
349are:
328 350
329@table @samp 351@table @samp
330@item geometry 352@item geometry
331Position and size in pixels in the form of @samp{(X Y WIDTH HEIGHT)} 353Position of the top-left corner of the monitor's screen and its size,
354in pixels, as @samp{(@var{x} @var{y} @var{width} @var{height})}. Note
355that, if the monitor is not the primary monitor, some of the
356coordinates might be negative.
332 357
333@item workarea 358@item workarea
334Position and size of the workarea in pixels in the form of @samp{(X Y 359Position of the top-left corner and size of the work area (``usable''
335WIDTH HEIGHT)} 360space) in pixels as @samp{(@var{x} @var{y} @var{width} @var{height})}.
361This may be different from @samp{geometry} in that space occupied by
362various window manager features (docks, taskbars, etc.) may be
363excluded from the work area. Whether or not such features actually
364subtract from the work area depends on the platform and environment.
365Again, if the monitor is not the primary monitor, some of the
366coordinates might be negative.
336 367
337@item mm-size 368@item mm-size
338Width and height in millimeters in the form of @samp{(WIDTH HEIGHT)} 369Width and height in millimeters as @samp{(@var{width} @var{height})}
339 370
340@item frames 371@item frames
341List of frames dominated by the physical monitor 372List of frames that this physical monitor dominates (see below).
342 373
343@item name 374@item name
344Name of the physical monitor as a string 375Name of the physical monitor as @var{string}.
345@end table
346 376
347where X, Y, WIDTH, and HEIGHT are integers. @samp{name} is optional. 377@item source
378Source of the multi-monitor information as @var{string};
379e.g., @samp{XRandr} or @samp{Xinerama}.
380@end table
348 381
349A frame is dominated by a physical monitor when either the 382@var{x}, @var{y}, @var{width}, and @var{height} are integers.
350largest area of the frame resides in the monitor, or the monitor 383@samp{name} and @samp{source} may be absent.
351is the closest to the frame if the frame does not intersect any 384
352physical monitors. Every non-tip frame (including invisible one) 385A frame is @dfn{dominated} by a physical monitor when either the
353in a graphical display is dominated by exactly one physical 386largest area of the frame resides in that monitor, or (if the frame
354monitor at a time, though it can span multiple (or no) physical 387does not intersect any physical monitors) that monitor is the closest
355monitors. 388to the frame. Every (non-tooltip) frame (whether visible or not) in a
389graphical display is dominated by exactly one physical monitor at a
390time, though the frame can span multiple (or no) physical monitors.
391
392Here's an example of the data produced by this function on a 2-monitor
393display:
394
395@lisp
396 (display-monitor-attributes-list)
397 @result{}
398 (((geometry 0 0 1920 1080) ;; @r{Left-hand, primary monitor}
399 (workarea 0 0 1920 1050) ;; @r{A taskbar occupies some of the height}
400 (mm-size 677 381)
401 (name . "DISPLAY1")
402 (frames #<frame emacs@@host *Messages* 0x11578c0>
403 #<frame emacs@@host *scratch* 0x114b838>))
404 ((geometry 1920 0 1680 1050) ;; @r{Right-hand monitor}
405 (workarea 1920 0 1680 1050) ;; @r{Whole screen can be used}
406 (mm-size 593 370)
407 (name . "DISPLAY2")
408 (frames)))
409@end lisp
356 410
357@var{display} defaults to the selected frame's display.
358@end defun 411@end defun
359 412
360@defun frame-monitor-attributes &optional frame 413@defun frame-monitor-attributes &optional frame
361This function returns the attributes of the physical monitor 414This function returns the attributes of the physical monitor
362dominating @var{frame}, which defaults to the selected frame. 415dominating (see above) @var{frame}, which defaults to the selected frame.
363
364A frame is dominated by a physical monitor when either the
365largest area of the frame resides in the monitor, or the monitor
366is the closest to the frame if the frame does not intersect any
367physical monitors.
368@end defun 416@end defun
369 417
370@node Frame Parameters 418@node Frame Parameters
@@ -536,8 +584,9 @@ frame. @code{title} and @code{name} are meaningful on all terminals.
536@vindex display, a frame parameter 584@vindex display, a frame parameter
537@item display 585@item display
538The display on which to open this frame. It should be a string of the 586The display on which to open this frame. It should be a string of the
539form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the 587form @samp{@var{host}:@var{dpy}.@var{screen}}, just like the
540@env{DISPLAY} environment variable. 588@env{DISPLAY} environment variable. @xref{Multiple Terminals}, for
589more details about display names.
541 590
542@vindex display-type, a frame parameter 591@vindex display-type, a frame parameter
543@item display-type 592@item display-type
@@ -593,12 +642,14 @@ right screen edge.
593@item @code{(+ @var{pos})} 642@item @code{(+ @var{pos})}
594This specifies the position of the left frame edge relative to the left 643This specifies the position of the left frame edge relative to the left
595screen edge. The integer @var{pos} may be positive or negative; a 644screen edge. The integer @var{pos} may be positive or negative; a
596negative value specifies a position outside the screen. 645negative value specifies a position outside the screen or on a monitor
646other than the primary one (for multi-monitor displays).
597 647
598@item @code{(- @var{pos})} 648@item @code{(- @var{pos})}
599This specifies the position of the right frame edge relative to the right 649This specifies the position of the right frame edge relative to the right
600screen edge. The integer @var{pos} may be positive or negative; a 650screen edge. The integer @var{pos} may be positive or negative; a
601negative value specifies a position outside the screen. 651negative value specifies a position outside the screen or on a monitor
652other than the primary one (for multi-monitor displays).
602@end table 653@end table
603 654
604Some window managers ignore program-specified positions. If you want to 655Some window managers ignore program-specified positions. If you want to
@@ -686,6 +737,11 @@ difference between @code{maximized} and @code{fullboth} is that the
686former can still be resized by dragging window manager decorations 737former can still be resized by dragging window manager decorations
687with the mouse, while the latter really covers the whole screen and 738with the mouse, while the latter really covers the whole screen and
688does not allow resizing by mouse dragging. 739does not allow resizing by mouse dragging.
740
741With some window managers you may have to customize the variable
742@code{frame-resize-pixelwise} to a non-@code{nil} value in order to make
743a frame appear ``maximized'' or ``fullscreen''.
744
689@end table 745@end table
690 746
691@node Layout Parameters 747@node Layout Parameters
@@ -711,19 +767,21 @@ Whether the frame has scroll bars for vertical scrolling, and which side
711of the frame they should be on. The possible values are @code{left}, 767of the frame they should be on. The possible values are @code{left},
712@code{right}, and @code{nil} for no scroll bars. 768@code{right}, and @code{nil} for no scroll bars.
713 769
714@ignore
715@vindex horizontal-scroll-bars, a frame parameter 770@vindex horizontal-scroll-bars, a frame parameter
716@item horizontal-scroll-bars 771@item horizontal-scroll-bars
717Whether the frame has scroll bars for horizontal scrolling 772Whether the frame has scroll bars for horizontal scrolling (@code{t} and
718(non-@code{nil} means yes). Horizontal scroll bars are not currently 773@code{bottom} mean yes, @code{nil} means no).
719implemented.
720@end ignore
721 774
722@vindex scroll-bar-width, a frame parameter 775@vindex scroll-bar-width, a frame parameter
723@item scroll-bar-width 776@item scroll-bar-width
724The width of vertical scroll bars, in pixels, or @code{nil} meaning to 777The width of vertical scroll bars, in pixels, or @code{nil} meaning to
725use the default width. 778use the default width.
726 779
780@vindex scroll-bar-height, a frame parameter
781@item scroll-bar-height
782The height of horizontal scroll bars, in pixels, or @code{nil} meaning
783to use the default height.
784
727@vindex left-fringe, a frame parameter 785@vindex left-fringe, a frame parameter
728@vindex right-fringe, a frame parameter 786@vindex right-fringe, a frame parameter
729@item left-fringe 787@item left-fringe
@@ -737,14 +795,6 @@ these two frame parameters, the return value is always an integer.
737When using @code{set-frame-parameter}, passing a @code{nil} value 795When using @code{set-frame-parameter}, passing a @code{nil} value
738imposes an actual default value of 8 pixels. 796imposes an actual default value of 8 pixels.
739 797
740The combined fringe widths must add up to an integral number of
741columns, so the actual default fringe widths for the frame, as
742reported by @code{frame-parameter}, may be larger than what you
743specify. Any extra width is distributed evenly between the left and
744right fringe. However, you can force one fringe or the other to a
745precise width by specifying that width as a negative integer. If both
746widths are negative, only the left fringe gets the specified width.
747
748@vindex right-divider-width, a frame parameter 798@vindex right-divider-width, a frame parameter
749@item right-divider-width 799@item right-divider-width
750The width (thickness) reserved for the right divider (@pxref{Window 800The width (thickness) reserved for the right divider (@pxref{Window
@@ -966,7 +1016,7 @@ variable do not take effect immediately, only when you specify the
966A list of symbols, specifying the @dfn{font backends} to use for 1016A list of symbols, specifying the @dfn{font backends} to use for
967drawing fonts in the frame, in order of priority. On X, there are 1017drawing fonts in the frame, in order of priority. On X, there are
968currently two available font backends: @code{x} (the X core font 1018currently two available font backends: @code{x} (the X core font
969driver) and @code{xft} (the Xft font driver). On Windows, there are 1019driver) and @code{xft} (the Xft font driver). On MS-Windows, there are
970currently two available font backends: @code{gdi} and 1020currently two available font backends: @code{gdi} and
971@code{uniscribe} (@pxref{Windows Fonts,,, emacs, The GNU Emacs 1021@code{uniscribe} (@pxref{Windows Fonts,,, emacs, The GNU Emacs
972Manual}). On other systems, there is only one available font backend, 1022Manual}). On other systems, there is only one available font backend,
@@ -1158,12 +1208,15 @@ size hints to the window manager. This means that this variable should
1158be set only in a user's initial file; applications should never bind it 1208be set only in a user's initial file; applications should never bind it
1159temporarily. 1209temporarily.
1160 1210
1161The precise semantics of a value of @code{nil} for this option depends 1211The precise meaning of a value of @code{nil} for this option depends
1162on the toolkit used: Dragging the frame border with the mouse is usually 1212on the toolkit used. Dragging the frame border with the mouse is usually
1163always done character-wise. Calling @code{set-frame-size} (see below) 1213done character-wise. Calling @code{set-frame-size} (see below)
1164with arguments that do not specify the frame size as an integer multiple 1214with arguments that do not specify the frame size as an integer multiple
1165of its character size may be, however, either ignored or cause a 1215of its character size, however, may: be ignored, cause a
1166rounding (GTK+, Windows) or get accepted (Lucid, Motif). 1216rounding (GTK+), or be accepted (Lucid, Motif, MS-Windows).
1217
1218With some window managers you may have to set this to non-@code{nil} in
1219order to make a frame appear truly ``maximized'' or ``fullscreen''.
1167@end defopt 1220@end defopt
1168 1221
1169@defun set-frame-size frame width height pixelwise 1222@defun set-frame-size frame width height pixelwise
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 91fdcc63cbe..023175e3632 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -1220,15 +1220,6 @@ ways to do it. The added function is also called an @emph{advice}.
1220This macro is the handy way to add the advice @var{function} to the function 1220This macro is the handy way to add the advice @var{function} to the function
1221stored in @var{place} (@pxref{Generalized Variables}). 1221stored in @var{place} (@pxref{Generalized Variables}).
1222 1222
1223If @var{function} is not interactive, then the combined function will inherit
1224the interactive spec, if any, of the original function. Else, the combined
1225function will be interactive and will use the interactive spec of
1226@var{function}. One exception: if the interactive spec of @var{function}
1227is a function (rather than an expression or a string), then the interactive
1228spec of the combined function will be a call to that function with as sole
1229argument the interactive spec of the original function. To interpret the spec
1230received as argument, use @code{advice-eval-interactive-spec}.
1231
1232@var{where} determines how @var{function} is composed with the 1223@var{where} determines how @var{function} is composed with the
1233existing function, e.g. whether @var{function} should be called before, or 1224existing function, e.g. whether @var{function} should be called before, or
1234after the original function. @xref{Advice combinators}, for the list of 1225after the original function. @xref{Advice combinators}, for the list of
@@ -1241,7 +1232,7 @@ global value of @var{place}. Whereas if @var{place} is of the form
1241@code{(local @var{symbol})}, where @var{symbol} is an expression which returns 1232@code{(local @var{symbol})}, where @var{symbol} is an expression which returns
1242the variable name, then @var{function} will only be added in the 1233the variable name, then @var{function} will only be added in the
1243current buffer. Finally, if you want to modify a lexical variable, you will 1234current buffer. Finally, if you want to modify a lexical variable, you will
1244have to use @code{(var @var{VARIABLE})}. 1235have to use @code{(var @var{variable})}.
1245 1236
1246Every function added with @code{add-function} can be accompanied by an 1237Every function added with @code{add-function} can be accompanied by an
1247association list of properties @var{props}. Currently only two of those 1238association list of properties @var{props}. Currently only two of those
@@ -1271,6 +1262,21 @@ original function and other advices will apply to it, whereas an outermost
1271@code{:override} advice will override not only the original function but all 1262@code{:override} advice will override not only the original function but all
1272other advices applied to it as well. 1263other advices applied to it as well.
1273@end table 1264@end table
1265
1266If @var{function} is not interactive, then the combined function will inherit
1267the interactive spec, if any, of the original function. Else, the combined
1268function will be interactive and will use the interactive spec of
1269@var{function}. One exception: if the interactive spec of @var{function}
1270is a function (rather than an expression or a string), then the interactive
1271spec of the combined function will be a call to that function with as sole
1272argument the interactive spec of the original function. To interpret the spec
1273received as argument, use @code{advice-eval-interactive-spec}.
1274
1275Note: The interactive spec of @var{function} will apply to the combined
1276function and should hence obey the calling convention of the combined function
1277rather than that of @var{function}. In many cases, it makes no difference
1278since they are identical, but it does matter for @code{:around},
1279@code{:filter-args}, and @code{filter-return}, where @var{function}.
1274@end defmac 1280@end defmac
1275 1281
1276@defmac remove-function place function 1282@defmac remove-function place function
diff --git a/doc/lispref/internals.texi b/doc/lispref/internals.texi
index 3d85b474d4b..db6ed41268c 100644
--- a/doc/lispref/internals.texi
+++ b/doc/lispref/internals.texi
@@ -14,6 +14,7 @@ internal aspects of GNU Emacs that may be of interest to C programmers.
14* Building Emacs:: How the dumped Emacs is made. 14* Building Emacs:: How the dumped Emacs is made.
15* Pure Storage:: Kludge to make preloaded Lisp functions shareable. 15* Pure Storage:: Kludge to make preloaded Lisp functions shareable.
16* Garbage Collection:: Reclaiming space for Lisp objects no longer used. 16* Garbage Collection:: Reclaiming space for Lisp objects no longer used.
17* Stack-allocated Objects:: Temporary conses and strings on C stack.
17* Memory Usage:: Info about total size of Lisp objects made so far. 18* Memory Usage:: Info about total size of Lisp objects made so far.
18* C Dialect:: What C variant Emacs is written in. 19* C Dialect:: What C variant Emacs is written in.
19* Writing Emacs Primitives:: Writing C code for Emacs. 20* Writing Emacs Primitives:: Writing C code for Emacs.
@@ -529,6 +530,35 @@ during garbage collection so far in this Emacs session, as a
529floating-point number. 530floating-point number.
530@end defvar 531@end defvar
531 532
533@node Stack-allocated Objects
534@section Stack-allocated Objects
535
536@cindex stack allocated Lisp objects
537@cindex Lisp objects, stack-allocated
538 The garbage collector described above is used to manage data visible
539from Lisp programs, as well as most of the data internally used by the
540Lisp interpreter. Sometimes it may be useful to allocate temporary
541internal objects using the C stack of the interpreter. This can help
542performance, as stack allocation is typically faster than using heap
543memory to allocate and the garbage collector to free. The downside is
544that using such objects after they are freed results in undefined
545behavior, so uses should be well thought out and carefully debugged by
546using the @code{GC_CHECK_MARKED_OBJECTS} feature (see
547@file{src/alloc.c}). In particular, stack-allocated objects should
548never be made visible to user Lisp code.
549
550 Currently, cons cells and strings can be allocated this way. This
551is implemented by C macros like @code{AUTO_CONS} and
552@code{AUTO_STRING} that define a named @code{Lisp_Object} with block
553lifetime. These objects are not freed by the garbage collector;
554instead, they have automatic storage duration, i.e., they are
555allocated like local variables and are automatically freed at the end
556of execution of the C block that defined the object.
557
558 For performance reasons, stack-allocated strings are limited to
559@acronym{ASCII} characters, and many of these strings are immutable,
560i.e., calling @code{ASET} on them produces undefined behavior.
561
532@node Memory Usage 562@node Memory Usage
533@section Memory Usage 563@section Memory Usage
534@cindex memory usage 564@cindex memory usage
@@ -1595,6 +1625,8 @@ of @code{intptr_t}).
1595 1625
1596@item 1626@item
1597Prefer @code{int} for Emacs character codes, in the range 0 ..@: 0x3FFFFF. 1627Prefer @code{int} for Emacs character codes, in the range 0 ..@: 0x3FFFFF.
1628More generally, prefer @code{int} for integers known to be in
1629@code{int} range, e.g., screen column counts.
1598 1630
1599@item 1631@item
1600Prefer @code{ptrdiff_t} for sizes, i.e., for integers bounded by the 1632Prefer @code{ptrdiff_t} for sizes, i.e., for integers bounded by the
@@ -1606,6 +1638,17 @@ anyway since they would break pointer subtraction, so this does not
1606impose an arbitrary limit. 1638impose an arbitrary limit.
1607 1639
1608@item 1640@item
1641Avoid @code{ssize_t} except when communicating to low-level APIs that
1642have @code{ssize_t}-related limitations. Although it's equivalent to
1643@code{ptrdiff_t} on typical platforms, @code{ssize_t} is occasionally
1644narrower, so using it for size-related calculations could overflow.
1645Also, @code{ptrdiff_t} is more ubiquitous and better-standardized, has
1646standard @code{printf} formats, and is the basis for Emacs's internal
1647size-overflow checking. When using @code{ssize_t}, please note that
1648POSIX requires support only for values in the range @minus{}1 ..@:
1649@code{SSIZE_MAX}.
1650
1651@item
1609Prefer @code{intptr_t} for internal representations of pointers, or 1652Prefer @code{intptr_t} for internal representations of pointers, or
1610for integers bounded only by the number of objects that can exist at 1653for integers bounded only by the number of objects that can exist at
1611any given time or by the total number of bytes that can be allocated. 1654any given time or by the total number of bytes that can be allocated.
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi
index f724d5bd902..21be5cca4fc 100644
--- a/doc/lispref/lists.texi
+++ b/doc/lispref/lists.texi
@@ -1124,74 +1124,6 @@ each time you run it! Here is what happens:
1124@end smallexample 1124@end smallexample
1125@end defun 1125@end defun
1126 1126
1127@defun sort list predicate
1128@cindex stable sort
1129@cindex sorting lists
1130This function sorts @var{list} stably, though destructively, and
1131returns the sorted list. It compares elements using @var{predicate}. A
1132stable sort is one in which elements with equal sort keys maintain their
1133relative order before and after the sort. Stability is important when
1134successive sorts are used to order elements according to different
1135criteria.
1136
1137The argument @var{predicate} must be a function that accepts two
1138arguments. It is called with two elements of @var{list}. To get an
1139increasing order sort, the @var{predicate} should return non-@code{nil} if the
1140first element is ``less than'' the second, or @code{nil} if not.
1141
1142The comparison function @var{predicate} must give reliable results for
1143any given pair of arguments, at least within a single call to
1144@code{sort}. It must be @dfn{antisymmetric}; that is, if @var{a} is
1145less than @var{b}, @var{b} must not be less than @var{a}. It must be
1146@dfn{transitive}---that is, if @var{a} is less than @var{b}, and @var{b}
1147is less than @var{c}, then @var{a} must be less than @var{c}. If you
1148use a comparison function which does not meet these requirements, the
1149result of @code{sort} is unpredictable.
1150
1151The destructive aspect of @code{sort} is that it rearranges the cons
1152cells forming @var{list} by changing @sc{cdr}s. A nondestructive sort
1153function would create new cons cells to store the elements in their
1154sorted order. If you wish to make a sorted copy without destroying the
1155original, copy it first with @code{copy-sequence} and then sort.
1156
1157Sorting does not change the @sc{car}s of the cons cells in @var{list};
1158the cons cell that originally contained the element @code{a} in
1159@var{list} still has @code{a} in its @sc{car} after sorting, but it now
1160appears in a different position in the list due to the change of
1161@sc{cdr}s. For example:
1162
1163@example
1164@group
1165(setq nums '(1 3 2 6 5 4 0))
1166 @result{} (1 3 2 6 5 4 0)
1167@end group
1168@group
1169(sort nums '<)
1170 @result{} (0 1 2 3 4 5 6)
1171@end group
1172@group
1173nums
1174 @result{} (1 2 3 4 5 6)
1175@end group
1176@end example
1177
1178@noindent
1179@strong{Warning}: Note that the list in @code{nums} no longer contains
11800; this is the same cons cell that it was before, but it is no longer
1181the first one in the list. Don't assume a variable that formerly held
1182the argument now holds the entire sorted list! Instead, save the result
1183of @code{sort} and use that. Most often we store the result back into
1184the variable that held the original list:
1185
1186@example
1187(setq nums (sort nums '<))
1188@end example
1189
1190@xref{Sorting}, for more functions that perform sorting.
1191See @code{documentation} in @ref{Accessing Documentation}, for a
1192useful example of @code{sort}.
1193@end defun
1194
1195@node Sets And Lists 1127@node Sets And Lists
1196@section Using Lists as Sets 1128@section Using Lists as Sets
1197@cindex lists as sets 1129@cindex lists as sets
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index e23e2685a7c..d67bac63b15 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -2221,13 +2221,10 @@ is the same as for @code{mode-line-format} (@pxref{Mode Line Data}).
2221It is normally @code{nil}, so that ordinary buffers have no header line. 2221It is normally @code{nil}, so that ordinary buffers have no header line.
2222@end defvar 2222@end defvar
2223 2223
2224The function @code{window-header-line-height} returns the height of
2225the header line:
2226
2227@defun window-header-line-height &optional window 2224@defun window-header-line-height &optional window
2228Return the height of @var{window}'s header line, in pixels. 2225This function returns the height in pixels of @var{window}'s header
2229@var{window} must be a live window. If @var{window} is @code{nil} or 2226line. @var{window} must be a live window, and defaults to the
2230omitted, it will be the selected window. 2227selected window.
2231@end defun 2228@end defun
2232 2229
2233 A window that is just one line tall never displays a header line. A 2230 A window that is just one line tall never displays a header line. A
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi
index 8f17862d427..d3a6792c1ba 100644
--- a/doc/lispref/sequences.texi
+++ b/doc/lispref/sequences.texi
@@ -327,6 +327,98 @@ encouraged to treat strings as immutable.
327 327
328@end defun 328@end defun
329 329
330@defun sort sequence predicate
331@cindex stable sort
332@cindex sorting lists
333@cindex sorting vectors
334This function sorts @var{sequence} stably. Note that this function doesn't work
335for all sequences; it may be used only for lists and vectors. If @var{sequence}
336is a list, it is modified destructively. This functions returns the sorted
337@var{sequence} and compares elements using @var{predicate}. A stable sort is
338one in which elements with equal sort keys maintain their relative order before
339and after the sort. Stability is important when successive sorts are used to
340order elements according to different criteria.
341
342The argument @var{predicate} must be a function that accepts two
343arguments. It is called with two elements of @var{sequence}. To get an
344increasing order sort, the @var{predicate} should return non-@code{nil} if the
345first element is ``less than'' the second, or @code{nil} if not.
346
347The comparison function @var{predicate} must give reliable results for
348any given pair of arguments, at least within a single call to
349@code{sort}. It must be @dfn{antisymmetric}; that is, if @var{a} is
350less than @var{b}, @var{b} must not be less than @var{a}. It must be
351@dfn{transitive}---that is, if @var{a} is less than @var{b}, and @var{b}
352is less than @var{c}, then @var{a} must be less than @var{c}. If you
353use a comparison function which does not meet these requirements, the
354result of @code{sort} is unpredictable.
355
356The destructive aspect of @code{sort} for lists is that it rearranges the
357cons cells forming @var{sequence} by changing @sc{cdr}s. A nondestructive
358sort function would create new cons cells to store the elements in their
359sorted order. If you wish to make a sorted copy without destroying the
360original, copy it first with @code{copy-sequence} and then sort.
361
362Sorting does not change the @sc{car}s of the cons cells in @var{sequence};
363the cons cell that originally contained the element @code{a} in
364@var{sequence} still has @code{a} in its @sc{car} after sorting, but it now
365appears in a different position in the list due to the change of
366@sc{cdr}s. For example:
367
368@example
369@group
370(setq nums '(1 3 2 6 5 4 0))
371 @result{} (1 3 2 6 5 4 0)
372@end group
373@group
374(sort nums '<)
375 @result{} (0 1 2 3 4 5 6)
376@end group
377@group
378nums
379 @result{} (1 2 3 4 5 6)
380@end group
381@end example
382
383@noindent
384@strong{Warning}: Note that the list in @code{nums} no longer contains
3850; this is the same cons cell that it was before, but it is no longer
386the first one in the list. Don't assume a variable that formerly held
387the argument now holds the entire sorted list! Instead, save the result
388of @code{sort} and use that. Most often we store the result back into
389the variable that held the original list:
390
391@example
392(setq nums (sort nums '<))
393@end example
394
395For the better understanding of what stable sort is, consider the following
396vector example. After sorting, all items whose @code{car} is 8 are grouped
397at the beginning of @code{vector}, but their relative order is preserved.
398All items whose @code{car} is 9 are grouped at the end of @code{vector},
399but their relative order is also preserved:
400
401@example
402@group
403(setq
404 vector
405 (vector '(8 . "xxx") '(9 . "aaa") '(8 . "bbb") '(9 . "zzz")
406 '(9 . "ppp") '(8 . "ttt") '(8 . "eee") '(9 . "fff")))
407 @result{} [(8 . "xxx") (9 . "aaa") (8 . "bbb") (9 . "zzz")
408 (9 . "ppp") (8 . "ttt") (8 . "eee") (9 . "fff")]
409@end group
410@group
411(sort vector (lambda (x y) (< (car x) (car y))))
412 @result{} [(8 . "xxx") (8 . "bbb") (8 . "ttt") (8 . "eee")
413 (9 . "aaa") (9 . "zzz") (9 . "ppp") (9 . "fff")]
414@end group
415@end example
416
417@xref{Sorting}, for more functions that perform sorting.
418See @code{documentation} in @ref{Accessing Documentation}, for a
419useful example of @code{sort}.
420@end defun
421
330@node Arrays 422@node Arrays
331@section Arrays 423@section Arrays
332@cindex array 424@cindex array
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index 1d549ae8916..c287b617713 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -615,10 +615,13 @@ spacing between calls.
615@end example 615@end example
616@end defun 616@end defun
617 617
618@defun terpri &optional stream 618@defun terpri &optional stream ensure
619@cindex newline in print 619@cindex newline in print
620This function outputs a newline to @var{stream}. The name stands 620This function outputs a newline to @var{stream}. The name stands for
621for ``terminate print''. 621``terminate print''. If @var{ensure} is non-nil no newline is printed
622if @var{stream} is already at the beginning of a line. Note in this
623case @var{stream} can not be a function and an error is signalled if
624it is. This function returns @code{t} if a newline is printed.
622@end defun 625@end defun
623 626
624@defun write-char character &optional stream 627@defun write-char character &optional stream
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index e6b00f06f79..5e0148b75a9 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -458,6 +458,59 @@ Representations}.
458@code{string-equal} is another name for @code{string=}. 458@code{string-equal} is another name for @code{string=}.
459@end defun 459@end defun
460 460
461@defun string-collate-equalp string1 string2 &optional locale ignore-case
462This function returns @code{t} if @var{string1} and @var{string2} are
463equal with respect to collation rules. A collation rule is not only
464determined by the lexicographic order of the characters contained in
465@var{string1} and @var{string2}, but also further rules about
466relations between these characters. Usually, it is defined by the
467@var{locale} environment Emacs is running with.
468
469For example, characters with different coding points but
470the same meaning might be considered as equal, like different grave
471accent Unicode characters:
472
473@example
474@group
475(string-collate-equalp (string ?\uFF40) (string ?\u1FEF))
476 @result{} t
477@end group
478@end example
479
480The optional argument @var{locale}, a string, overrides the setting of
481your current locale identifier for collation. The value is system
482dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX
483systems, while it would be, e.g., "enu_USA.1252" on MS-Windows
484systems.
485
486If @var{IGNORE-CASE} is non-nil, characters are converted to lower-case
487before comparing them.
488
489To emulate Unicode-compliant collation on MS-Windows systems,
490bind @code{w32-collate-ignore-punctuation} to a non-nil value, since
491the codeset part of the locale cannot be "UTF-8" on MS-Windows.
492
493If your system does not support a locale environment, this function
494behaves like @code{string-equal}.
495
496Do NOT use this function to compare file names for equality, only
497for sorting them.
498@end defun
499
500@defun string-prefix-p string1 string2 &optional ignore-case
501This function returns non-@code{nil} if @var{string1} is a prefix of
502@var{string2}; i.e., if @var{string2} starts with @var{string1}. If
503the optional argument @var{ignore-case} is non-@code{nil}, the
504comparison ignores case differences.
505@end defun
506
507@defun string-suffix-p suffix string &optional ignore-case
508This function returns non-@code{nil} if @var{suffix} is a suffix of
509@var{string}; i.e., if @var{string} ends with @var{suffix}. If the
510optional argument @var{ignore-case} is non-@code{nil}, the comparison
511ignores case differences.
512@end defun
513
461@cindex lexical comparison 514@cindex lexical comparison
462@defun string< string1 string2 515@defun string< string1 string2
463@c (findex string< causes problems for permuted index!!) 516@c (findex string< causes problems for permuted index!!)
@@ -516,6 +569,50 @@ are used.
516@code{string-lessp} is another name for @code{string<}. 569@code{string-lessp} is another name for @code{string<}.
517@end defun 570@end defun
518 571
572@defun string-collate-lessp string1 string2 &optional locale ignore-case
573This function returns @code{t} if @var{string1} is less than
574@var{string2} in collation order. A collation order is not only
575determined by the lexicographic order of the characters contained in
576@var{string1} and @var{string2}, but also further rules about
577relations between these characters. Usually, it is defined by the
578@var{locale} environment Emacs is running with.
579
580For example, punctuation and whitespace characters might be considered
581less significant for @ref{Sorting,,sorting}.
582
583@example
584@group
585(sort '("11" "12" "1 1" "1 2" "1.1" "1.2") 'string-collate-lessp)
586 @result{} ("11" "1 1" "1.1" "12" "1 2" "1.2")
587@end group
588@end example
589
590The optional argument @var{locale}, a string, overrides the setting of
591your current locale identifier for collation. The value is system
592dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX
593systems, while it would be, e.g., "enu_USA.1252" on MS-Windows
594systems. The @var{locale} "POSIX" lets @code{string-collate-lessp}
595behave like @code{string-lessp}:
596
597@example
598@group
599(sort '("11" "12" "1 1" "1 2" "1.1" "1.2")
600 (lambda (s1 s2) (string-collate-lessp s1 s2 "POSIX")))
601 @result{} ("1 1" "1 2" "1.1" "1.2" "11" "12")
602@end group
603@end example
604
605If @var{IGNORE-CASE} is non-nil, characters are converted to lower-case
606before comparing them.
607
608To emulate Unicode-compliant collation on MS-Windows systems,
609bind @code{w32-collate-ignore-punctuation} to a non-nil value, since
610the codeset part of the locale cannot be "UTF-8" on MS-Windows.
611
612If your system does not support a locale environment, this function
613behaves like @code{string-lessp}.
614@end defun
615
519@defun string-prefix-p string1 string2 &optional ignore-case 616@defun string-prefix-p string1 string2 &optional ignore-case
520This function returns non-@code{nil} if @var{string1} is a prefix of 617This function returns non-@code{nil} if @var{string1} is a prefix of
521@var{string2}; i.e., if @var{string2} starts with @var{string1}. If 618@var{string2}; i.e., if @var{string2} starts with @var{string1}. If
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 6665cc3e673..f21d2b76656 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -4114,8 +4114,9 @@ buffer.
4114Normally, this command puts point before the inserted text, and the 4114Normally, this command puts point before the inserted text, and the
4115mark after it. However, if the optional second argument @var{beforep} 4115mark after it. However, if the optional second argument @var{beforep}
4116is non-@code{nil}, it puts the mark before and point after. 4116is non-@code{nil}, it puts the mark before and point after.
4117You can pass a non-@code{nil} second argument @var{beforep} to this 4117
4118function interactively by supplying any prefix argument. 4118When called interactively, the command defaults to putting point after
4119text, and a prefix argument inverts this behavior.
4119 4120
4120If the register contains a rectangle, then the rectangle is inserted 4121If the register contains a rectangle, then the rectangle is inserted
4121with its upper left corner at point. This means that text is inserted 4122with its upper left corner at point. This means that text is inserted
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index f2fe5c85a93..5060fef804f 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -394,13 +394,14 @@ internal window). The @var{edges} element is a list @code{(@var{left}
394@group 394@group
395 ____________________________________________ 395 ____________________________________________
396 |______________ Header Line ______________|RD| ^ 396 |______________ Header Line ______________|RD| ^
397 ^ |LS|LF|LM| |RM|RF|RS| | | 397 ^ |LS|LM|LF| |RF|RM|RS| | |
398 | | | | | | | | | | | 398 | | | | | | | | | | |
399Window | | | | Text Area | | | | | Window 399Window | | | | Text Area | | | | | Window
400Body | | | | | (Window Body) | | | | | Total 400Body | | | | | (Window Body) | | | | | Total
401Height | | | | | | | | | Height 401Height | | | | | | | | | Height
402 | | | | |<- Window Body Width ->| | | | | | 402 | | | | |<- Window Body Width ->| | | | | |
403 v |__|__|__|_______________________|__|__|__| | | 403 v |__|__|__|_______________________|__|__|__| | |
404 |_________ Horizontal Scroll Bar _________| | |
404 |_______________ Mode Line _______________|__| | 405 |_______________ Mode Line _______________|__| |
405 |_____________ Bottom Divider _______________| v 406 |_____________ Bottom Divider _______________| v
406 <---------- Window Total Width ------------> 407 <---------- Window Total Width ------------>
@@ -414,15 +415,15 @@ Height | | | | | | | | | Height
414 At the center of the window is the @dfn{text area}, or @dfn{body}, 415 At the center of the window is the @dfn{text area}, or @dfn{body},
415where the buffer text is displayed. The text area can be surrounded by 416where the buffer text is displayed. The text area can be surrounded by
416a series of optional areas. On the left and right, from innermost to 417a series of optional areas. On the left and right, from innermost to
417outermost, these are the left and right margins, denoted by LM and RM in 418outermost, these are the left and right fringes, denoted by LF and RF
418the schematic (@pxref{Display Margins}); the left and right fringes, 419(@pxref{Fringes}); the left and right margins, denoted by LM and RM in
419denoted by LF and RF (@pxref{Fringes}); the left or right scroll bar, 420the schematic (@pxref{Display Margins}); the left or right vertical
420only one of which is present at any time, denoted by LS and RS 421scroll bar, only one of which is present at any time, denoted by LS and
421(@pxref{Scroll Bars}); and the right divider, denoted by RD 422RS (@pxref{Scroll Bars}); and the right divider, denoted by RD
422(@pxref{Window Dividers}). At the top of the window is the header line 423(@pxref{Window Dividers}). At the top of the window is the header line
423(@pxref{Header Lines}); at the bottom of the window is the mode line 424(@pxref{Header Lines}). At the bottom of the window are the horizontal
424(@pxref{Mode Line Format}) followed by the bottom divider (@pxref{Window 425scroll bar (@pxref{Scroll Bars}); the mode line (@pxref{Mode Line
425Dividers}). 426Format}); and the bottom divider (@pxref{Window Dividers}).
426 427
427 Emacs provides miscellaneous functions for finding the height and 428 Emacs provides miscellaneous functions for finding the height and
428width of a window. The return value of many of these functions can be 429width of a window. The return value of many of these functions can be
@@ -439,11 +440,8 @@ displayed within it.
439@cindex height of a window 440@cindex height of a window
440@cindex total height of a window 441@cindex total height of a window
441 The @dfn{total height} of a window is the number of lines comprising 442 The @dfn{total height} of a window is the number of lines comprising
442the window's body, the header line, the mode line and the bottom divider 443the window's body, the header line, the horizontal scroll bar, the mode
443(if any). Note that the height of a frame is not the same as the height 444line and the bottom divider (if any).
444of its root window (@pxref{Windows and Frames}), since a frame may also
445contain an echo area, a menu bar, and a tool bar (@pxref{Size and
446Position}).
447 445
448@defun window-total-height &optional window round 446@defun window-total-height &optional window round
449This function returns the total height, in lines, of the window 447This function returns the total height, in lines, of the window
@@ -451,24 +449,23 @@ This function returns the total height, in lines, of the window
451the selected window. If @var{window} is an internal window, the return 449the selected window. If @var{window} is an internal window, the return
452value is the total height occupied by its descendant windows. 450value is the total height occupied by its descendant windows.
453 451
454 If a window's pixel height is not an integral multiple of its frame's 452 If a window's pixel height is not an integral multiple of its frame's
455default character height, the number of lines occupied by the window is 453default character height, the number of lines occupied by the window is
456rounded internally. This is done in a way such that, if the window is a 454rounded internally. This is done in a way such that, if the window is a
457parent window, the sum of the total heights of all its child windows 455parent window, the sum of the total heights of all its child windows
458internally equals the total height of their parent. This means that 456internally equals the total height of their parent. This means that
459although two windows have the same pixel height, their internal total 457although two windows have the same pixel height, their internal total
460heights may differ by one line. This means also, that if this window is 458heights may differ by one line. This means also, that if window is
461vertically combined and has a right sibling, the topmost row of that 459vertically combined and has a next sibling, the topmost row of that
462sibling can be calculated as the sum of this window's topmost row and 460sibling can be calculated as the sum of this window's topmost row and
463total height (@pxref{Coordinates and Windows}) 461total height (@pxref{Coordinates and Windows})
464 462
465 If the optional argument @var{round} equals @code{ceiling}, this 463 If the optional argument @var{round} is @code{ceiling}, this
466function returns the smallest integer larger than @var{window}'s pixel 464function returns the smallest integer larger than @var{window}'s pixel
467height divided by the character height of @var{window}'s frame; if it is 465height divided by the character height of its frame; if it is
468@code{floor}, it returns the largest integer smaller than @var{window}'s 466@code{floor}, it returns the largest integer smaller than said value;
469pixel height divided by the character height of @var{window}'s frame. 467with any other @var{round} it returns the internal value of
470Any other value of @var{round} means to return the internal value of the 468@var{windows}'s total height.
471total height of @var{window}.
472@end defun 469@end defun
473 470
474@cindex window width 471@cindex window width
@@ -484,24 +481,17 @@ This function returns the total width, in columns, of the window
484the selected window. If @var{window} is internal, the return value is 481the selected window. If @var{window} is internal, the return value is
485the total width occupied by its descendant windows. 482the total width occupied by its descendant windows.
486 483
487 If a window's pixel width is not an integral multiple of its frame's 484 If a window's pixel width is not an integral multiple of its frame's
488character width, the number of lines occupied by the window is rounded 485character width, the number of lines occupied by the window is rounded
489internally. This is done in a way such that, if the window is a parent 486internally. This is done in a way such that, if the window is a parent
490window, the sum of the total widths of all its children internally 487window, the sum of the total widths of all its children internally
491equals the total width of their parent. This means that although two 488equals the total width of their parent. This means that although two
492windows have the same pixel width, their internal total widths may 489windows have the same pixel width, their internal total widths may
493differ by one column. This means also, that if this window is 490differ by one column. This means also, that if this window is
494horizontally combined and has a right sibling, the leftmost column of 491horizontally combined and has a next sibling, the leftmost column of
495that sibling can be calculated as the sum of this window's leftmost 492that sibling can be calculated as the sum of this window's leftmost
496column and total width (@pxref{Coordinates and Windows}). 493column and total width (@pxref{Coordinates and Windows}). The optional
497 494argument @var{round} behaves as it does for @code{window-total-height}.
498If the optional argument @var{round} is @code{ceiling}, this function
499will return the smallest integer larger than @var{window}'s pixel width
500divided by the character width of @var{window}'s frame; if it is
501@code{floor}, it returns the largest integer smaller than @var{window}'s
502pixel width divided by the character width of @var{window}'s frame. Any
503other value of @var{round} means to return the internal total width of
504@var{window}.
505@end defun 495@end defun
506 496
507@defun window-total-size &optional window horizontal round 497@defun window-total-size &optional window horizontal round
@@ -510,8 +500,7 @@ width in columns of the window @var{window}. If @var{horizontal} is
510omitted or @code{nil}, this is equivalent to calling 500omitted or @code{nil}, this is equivalent to calling
511@code{window-total-height} for @var{window}; otherwise it is equivalent 501@code{window-total-height} for @var{window}; otherwise it is equivalent
512to calling @code{window-total-width} for @var{window}. The optional 502to calling @code{window-total-width} for @var{window}. The optional
513argument @code{ROUND} is handled as for @code{window-total-height} and 503argument @var{round} behaves as it does for @code{window-total-height}.
514@code{window-total-width}.
515@end defun 504@end defun
516 505
517The following two functions can be used to return the total size of a 506The following two functions can be used to return the total size of a
@@ -525,9 +514,10 @@ window in units of pixels.
525This function returns the total height of window @var{window} in pixels. 514This function returns the total height of window @var{window} in pixels.
526@var{window} must be a valid window and defaults to the selected one. 515@var{window} must be a valid window and defaults to the selected one.
527 516
528The return value includes mode and header line and a bottom divider, if 517The return value includes mode and header line, a horizontal scroll bar
529any. If @var{window} is an internal window, its pixel height is the 518and a bottom divider, if any. If @var{window} is an internal window,
530pixel height of the screen areas spanned by its children. 519its pixel height is the pixel height of the screen areas spanned by its
520children.
531@end defun 521@end defun
532 522
533@cindex window pixel height 523@cindex window pixel height
@@ -550,10 +540,12 @@ the screen areas spanned by its children.
550window has any adjacent windows. 540window has any adjacent windows.
551 541
552@defun window-full-height-p &optional window 542@defun window-full-height-p &optional window
553This function returns non-@code{nil} if @var{window} has no other 543This function returns non-@code{nil} if @var{window} has no other window
554window above or below it in its frame, i.e., its total height equals 544above or below it in its frame. More precisely, this means that the
555the total height of the root window on that frame. If @var{window} is 545total height of @var{window} equals the total height of the root window
556omitted or @code{nil}, it defaults to the selected window. 546on that frame. The minibuffer window does not count in this regard. If
547@var{window} is omitted or @code{nil}, it defaults to the selected
548window.
557@end defun 549@end defun
558 550
559@defun window-full-width-p &optional window 551@defun window-full-width-p &optional window
@@ -567,7 +559,8 @@ that of the root window on that frame. If @var{window} is omitted or
567@cindex body height of a window 559@cindex body height of a window
568@cindex window body width 560@cindex window body width
569The @dfn{body height} of a window is the height of its text area, which 561The @dfn{body height} of a window is the height of its text area, which
570does not include a mode or header line or a bottom divider. 562does not include a mode or header line, a horizontal scroll bar, or a
563bottom divider.
571 564
572@defun window-body-height &optional window pixelwise 565@defun window-body-height &optional window pixelwise
573This function returns the height, in lines, of the body of window 566This function returns the height, in lines, of the body of window
@@ -654,7 +647,8 @@ size:
654@defopt window-min-height 647@defopt window-min-height
655This option specifies the minimum total height, in lines, of any window. 648This option specifies the minimum total height, in lines, of any window.
656Its value has to accommodate at least one text line as well as a mode 649Its value has to accommodate at least one text line as well as a mode
657and header line and a bottom divider, if present. 650and header line, a horizontal scroll bar and a bottom divider, if
651present.
658@end defopt 652@end defopt
659 653
660@defopt window-min-width 654@defopt window-min-width
@@ -693,10 +687,11 @@ of @var{window}'s lines.
693 687
694The return value makes sure that all components of @var{window} remain 688The return value makes sure that all components of @var{window} remain
695fully visible if @var{window}'s size were actually set to it. With 689fully visible if @var{window}'s size were actually set to it. With
696@var{horizontal} @code{nil} it includes the mode and header line and the 690@var{horizontal} @code{nil} it includes the mode and header line, the
697bottom divider. With @var{horizontal} non-@code{nil} it includes the 691horizontal scroll bar and the bottom divider. With @var{horizontal}
698fringes, a scroll bar, and a right divider, if present. It does not, 692non-@code{nil} it includes the fringes, a scroll bar, and a right
699however, include the space reserved for the margins. 693divider, if present. It does not, however, include the space reserved
694for the margins.
700 695
701The optional argument @var{ignore}, if non-@code{nil}, means ignore 696The optional argument @var{ignore}, if non-@code{nil}, means ignore
702restrictions imposed by fixed size windows, @code{window-min-height} or 697restrictions imposed by fixed size windows, @code{window-min-height} or
@@ -748,14 +743,14 @@ Normally, the variables @code{window-min-height} and
748(@pxref{Window Sizes}). However, if the optional argument @var{ignore} 743(@pxref{Window Sizes}). However, if the optional argument @var{ignore}
749is non-@code{nil}, this function ignores @code{window-min-height} and 744is non-@code{nil}, this function ignores @code{window-min-height} and
750@code{window-min-width}, as well as @code{window-size-fixed}. Instead, 745@code{window-min-width}, as well as @code{window-size-fixed}. Instead,
751it considers the minimum-height window to be one consisting of a header, 746it considers the minimum-height window to be one consisting of a header
752a mode line and a bottom divider (if any), plus a text area one line 747and a mode line, a horizontal scrollbar and a bottom divider (if any),
753tall; and a minimum-width window as one consisting of fringes, margins, 748plus a text area one line tall; and a minimum-width window as one
754a scroll bar and a right divider (if any), plus a text area two columns 749consisting of fringes, margins, a scroll bar and a right divider (if
755wide. 750any), plus a text area two columns wide.
756 751
757If the optional argument @code{pixelwise} is non-@code{nil}, 752If the optional argument @var{pixelwise} is non-@code{nil},
758@var{delta} will be interpreted as pixels. 753@var{delta} is interpreted as pixels.
759@end defun 754@end defun
760 755
761@defun window-resize window delta &optional horizontal ignore pixelwise 756@defun window-resize window delta &optional horizontal ignore pixelwise
@@ -779,7 +774,7 @@ values of the option @code{window-combination-resize} and the
779combination limits of the involved windows; in some cases, it may alter 774combination limits of the involved windows; in some cases, it may alter
780both edges. @xref{Recombining Windows}. To resize by moving only the 775both edges. @xref{Recombining Windows}. To resize by moving only the
781bottom or right edge of a window, use the function 776bottom or right edge of a window, use the function
782@code{adjust-window-trailing-edge}, below. 777@code{adjust-window-trailing-edge}.
783@end defun 778@end defun
784 779
785@c The commands enlarge-window, enlarge-window-horizontally, 780@c The commands enlarge-window, enlarge-window-horizontally,
@@ -792,8 +787,8 @@ If optional argument @var{horizontal} is non-@code{nil}, it instead
792moves the right edge by @var{delta} columns. If @var{window} is 787moves the right edge by @var{delta} columns. If @var{window} is
793@code{nil}, it defaults to the selected window. 788@code{nil}, it defaults to the selected window.
794 789
795If the optional argument @code{pixelwise} is non-@code{nil}, 790If the optional argument @var{pixelwise} is non-@code{nil},
796@var{delta} will be interpreted as pixels. 791@var{delta} is interpreted as pixels.
797 792
798A positive @var{delta} moves the edge downwards or to the right; a 793A positive @var{delta} moves the edge downwards or to the right; a
799negative @var{delta} moves it upwards or to the left. If the edge 794negative @var{delta} moves it upwards or to the left. If the edge
@@ -807,17 +802,16 @@ window is fixed-size), it may resize other windows.
807 802
808@cindex pixelwise, resizing windows 803@cindex pixelwise, resizing windows
809@defopt window-resize-pixelwise 804@defopt window-resize-pixelwise
810If the value of this option is non-@code{nil}, windows are resized in 805If the value of this option is non-@code{nil}, Emacs resizes windows in
811units of pixels. This currently affects functions like 806units of pixels. This currently affects functions like
812@code{split-window} (@pxref{Splitting Windows}), @code{maximize-window}, 807@code{split-window} (@pxref{Splitting Windows}), @code{maximize-window},
813@code{minimize-window}, @code{fit-window-to-buffer}, 808@code{minimize-window}, @code{fit-window-to-buffer},
814@code{shrink-window-if-larger-than-buffer} (all listed below) and 809@code{shrink-window-if-larger-than-buffer} (all listed below) and
815@code{fit-frame-to-buffer} (@pxref{Size and Position}). 810@code{fit-frame-to-buffer} (@pxref{Size and Position}).
816 811
817Note that when a frame's pixel size is not a multiple of the frame's 812Note that when a frame's pixel size is not a multiple of its character
818character size, at least one window may get resized pixelwise even if 813size, at least one window may get resized pixelwise even if this
819this option is @code{nil}. The default value of this option is 814option is @code{nil}. The default value is @code{nil}.
820@code{nil}.
821@end defopt 815@end defopt
822 816
823 The following commands resize windows in more specific ways. When 817 The following commands resize windows in more specific ways. When
diff --git a/doc/man/ChangeLog b/doc/man/ChangeLog
index 34ecda837ef..8723d9a9d6d 100644
--- a/doc/man/ChangeLog
+++ b/doc/man/ChangeLog
@@ -1,3 +1,7 @@
12014-09-29 Eli Zaretskii <eliz@gnu.org>
2
3 * emacs.1: Bump version to 25.0.50.
4
12014-01-12 Glenn Morris <rgm@gnu.org> 52014-01-12 Glenn Morris <rgm@gnu.org>
2 6
3 * emacs.1: Replace reference to etc/MAILINGLISTS. 7 * emacs.1: Replace reference to etc/MAILINGLISTS.
diff --git a/doc/man/emacs.1 b/doc/man/emacs.1
index 45bdb64d8b0..6ad6ee1030b 100644
--- a/doc/man/emacs.1
+++ b/doc/man/emacs.1
@@ -1,5 +1,5 @@
1.\" See section COPYING for copyright and redistribution information. 1.\" See section COPYING for copyright and redistribution information.
2.TH EMACS 1 "2007 April 13" "GNU Emacs 24.4.50" 2.TH EMACS 1 "2007 April 13" "GNU Emacs 25.0.50"
3. 3.
4. 4.
5.SH NAME 5.SH NAME
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index cc0da7e25f3..23c3e66b86f 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,66 @@
12014-10-13 Glenn Morris <rgm@gnu.org>
2
3 * Makefile.in (dist): Update for new output variables.
4
52014-10-08 Leo Liu <sdl.web@gmail.com>
6
7 * cl.texi (Porting Common Lisp): Remove parse-integer.
8
92014-10-06 Ulf Jasper <ulf.jasper@web.de>
10
11 * newsticker.texi (Supported Formats): Fix order of subheading and
12 itemize.
13
142014-10-04 Glenn Morris <rgm@gnu.org>
15
16 * vip.texi (Other Vi Commands): Markup fix.
17
182014-10-03 Bastien Guerry <bzg@gnu.org>
19
20 * org.texi (Key bindings and useful functions): Fix typo.
21 Use the correct function's name.
22
232014-10-03 Michael Brand <michael.ch.brand@gmail.com>
24
25 * org.texi (Formula syntax for Calc): Add `f-1' to TBLFM example
26 about `nan'.
27
282014-10-03 Nicolas Goaziou <mail@nicolasgoaziou.fr>
29
30 * org.texi (Export settings): Be more explicit about how output
31 file name is built.
32
33 * org.texi (Headings and sectioning structure): Document menus.
34
35 * org.texi (Include files, Publishing options): Remove reference
36 to nonexistent variable.
37
382014-10-03 Eli Zaretskii <eliz@gnu.org>
39
40 * erc.texi (Connecting): Remove stray "OA" that failed the manual
41 build.
42
432014-10-03 Kelvin White <kwhite@gnu.org>
44
45 * erc.texi (Advanced Usage, Options): Add descriptions and examples
46 for erc-format-nick-function and erc-rename-buffers options.
47
482014-09-26 Leo Liu <sdl.web@gmail.com>
49
50 * cl.texi (Predicates on Numbers): Document cl-digit-char-p.
51 (Numerical Functions): Document cl-parse-integer. (Bug#18557)
52
532014-09-24 Ulf Jasper <ulf.jasper@web.de>
54
55 * newsticker.texi: Reworked. Document new treeview group
56 commands. Remove VERSION, UPDATED, use EMACSVER instead. Use
57 term 'feed reader'.
58
592014-09-04 Paul Eggert <eggert@cs.ucla.edu>
60
61 Less chatter in 'make' output.
62 * Makefile.in (clean): Simplify, for shorter command line.
63
12014-08-07 Reuben Thomas <rrt@sc3d.org> 642014-08-07 Reuben Thomas <rrt@sc3d.org>
2 65
3 * ediff.texi (Merging and diff3): Don't mention lack of support 66 * ediff.texi (Merging and diff3): Don't mention lack of support
@@ -264,14 +327,14 @@
264 327
2652014-03-23 Katsumi Yamaoka <yamaoka@jpl.org> 3282014-03-23 Katsumi Yamaoka <yamaoka@jpl.org>
266 329
267 * gnus.texi (MIME Commands): Mention 330 * gnus.texi (MIME Commands):
268 gnus-mime-buttonize-attachments-in-header and 331 Mention gnus-mime-buttonize-attachments-in-header and
269 gnus-mime-display-attachment-buttons-in-header. 332 gnus-mime-display-attachment-buttons-in-header.
270 333
2712014-03-23 Lars Ingebrigtsen <larsi@gnus.org> 3342014-03-23 Lars Ingebrigtsen <larsi@gnus.org>
272 335
273 * message.texi (Forwarding): Mention 336 * message.texi (Forwarding):
274 `message-forward-included-headers'. 337 Mention `message-forward-included-headers'.
275 338
2762014-03-23 Lars Ingebrigtsen <larsi@gnus.org> 3392014-03-23 Lars Ingebrigtsen <larsi@gnus.org>
277 340
@@ -8791,7 +8854,7 @@
8791 8854
8792 * org.texi (Installation, Activation): Split from Installation and 8855 * org.texi (Installation, Activation): Split from Installation and
8793 Activation. 8856 Activation.
8794 (Clocking work time): Documented new features. 8857 (Clocking work time): Document new features.
8795 8858
87962006-08-13 Alex Schroeder <alex@gnu.org> 88592006-08-13 Alex Schroeder <alex@gnu.org>
8797 8860
@@ -9392,22 +9455,22 @@
9392 * emacs-mime.texi (Flowed text): Add mm-fill-flowed. (Sync 9455 * emacs-mime.texi (Flowed text): Add mm-fill-flowed. (Sync
9393 2004-01-27 from the trunk). 9456 2004-01-27 from the trunk).
9394 9457
93952006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org> 94582006-02-24 Alan Mackenzie <acm@muc.de>
9396 9459
9397 * cc-mode.texi: Rename c-hungry-backspace to 9460 * cc-mode.texi: Rename c-hungry-backspace to
9398 c-hungry-delete-backwards, at the request of RMS. Leave the old 9461 c-hungry-delete-backwards, at the request of RMS. Leave the old
9399 name as an alias. 9462 name as an alias.
9400 9463
94012006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org> 94642006-02-24 Alan Mackenzie <acm@muc.de>
9402 9465
9403 * cc-mode.texi: Correct the definition of c-beginning-of-defun, to 9466 * cc-mode.texi: Correct the definition of c-beginning-of-defun, to
9404 include the function header within the defun. 9467 include the function header within the defun.
9405 9468
94062006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org> 94692006-02-24 Alan Mackenzie <acm@muc.de>
9407 9470
9408 * cc-mode.texi: Correct two typos. 9471 * cc-mode.texi: Correct two typos.
9409 9472
94102006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org> 94732006-02-24 Alan Mackenzie <acm@muc.de>
9411 9474
9412 * cc-mode.texi (Comment Commands): State that C-u M-; kills any 9475 * cc-mode.texi (Comment Commands): State that C-u M-; kills any
9413 existing comment. 9476 existing comment.
@@ -9721,7 +9784,7 @@
9721 (MIME with Emacs mail packages): Delete section about the Emacs 9784 (MIME with Emacs mail packages): Delete section about the Emacs
9722 MIME FAQ (it's not reachable anymore). 9785 MIME FAQ (it's not reachable anymore).
9723 9786
97242005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> 97872005-12-08 Alan Mackenzie <acm@muc.de>
9725 9788
9726 * cc-mode.texi: The manual has been extensively revised: the 9789 * cc-mode.texi: The manual has been extensively revised: the
9727 information about using CC Mode has been separated from the larger 9790 information about using CC Mode has been separated from the larger
@@ -9949,7 +10012,7 @@
9949 10012
99502005-10-10 Carsten Dominik <dominik@science.uva.nl> 100132005-10-10 Carsten Dominik <dominik@science.uva.nl>
9951 10014
9952 * org.texi (Workflow states): Documented that change in keywords 10015 * org.texi (Workflow states): Document that change in keywords
9953 becomes active only after restart of Emacs. 10016 becomes active only after restart of Emacs.
9954 10017
99552005-10-08 Michael Albinus <michael.albinus@gmx.de> 100182005-10-08 Michael Albinus <michael.albinus@gmx.de>
@@ -10824,7 +10887,7 @@
10824 10887
10825 * Makefile.in (../info/tramp, tramp.dvi): Depend on trampver.texi. 10888 * Makefile.in (../info/tramp, tramp.dvi): Depend on trampver.texi.
10826 10889
108272004-08-11 Martin Stjernholm <bug-cc-mode@gnu.org> 108902004-08-11 Martin Stjernholm <mast@lysator.liu.se>
10828 10891
10829 * cc-mode.texi: Various updates for CC Mode 5.30.9. 10892 * cc-mode.texi: Various updates for CC Mode 5.30.9.
10830 10893
@@ -11072,7 +11135,7 @@
11072 11135
11073 * eshell.texi (Known Problems): Add doc item. 11136 * eshell.texi (Known Problems): Add doc item.
11074 11137
110752003-11-22 Martin Stjernholm <bug-cc-mode@gnu.org> 111382003-11-22 Martin Stjernholm <mast@lysator.liu.se>
11076 11139
11077 * cc-mode.texi: Update for CC Mode 5.30. 11140 * cc-mode.texi: Update for CC Mode 5.30.
11078 11141
diff --git a/doc/misc/Makefile.in b/doc/misc/Makefile.in
index 53537122cef..250d3c39c45 100644
--- a/doc/misc/Makefile.in
+++ b/doc/misc/Makefile.in
@@ -221,8 +221,7 @@ mostlyclean:
221 rm -f gnustmp* 221 rm -f gnustmp*
222 222
223clean: mostlyclean 223clean: mostlyclean
224 rm -f $(DVI_TARGETS) $(HTML_TARGETS) $(PDF_TARGETS) $(PS_TARGETS) 224 rm -f *.dvi *.html *.pdf *.ps
225 rm -f efaq-w32.dvi efaq-w32.html efaq-w32.pdf efaq-w32.ps
226 rm -f emacs-misc-${version}.tar* 225 rm -f emacs-misc-${version}.tar*
227 226
228distclean: clean 227distclean: clean
@@ -252,6 +251,21 @@ dist:
252 -e 's/^\(clean:.*\)/\1 infoclean/' \ 251 -e 's/^\(clean:.*\)/\1 infoclean/' \
253 -e "s/@ver[s]ion@/${version}/" \ 252 -e "s/@ver[s]ion@/${version}/" \
254 -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \ 253 -e 's/@MAKE[I]NFO@/makeinfo/' -e 's/@MK[D]IR_P@/mkdir -p/' \
254 -e 's/@IN[F]O_EXT@/.info/' -e 's/@IN[F]O_OPTS@//' \
255 -e 's|@SH[E]LL@|/bin/bash|' \
256 -e 's|@[p]refix@|/usr/local|' \
257 -e 's|@[d]atarootdir@|$${prefix}/share|' \
258 -e 's|@[d]atadir@|$${datarootdir}|' \
259 -e 's|@[P]ACKAGE_TARNAME@|emacs|' \
260 -e 's|@[d]ocdir@|$${datarootdir}/doc/$${PACKAGE_TARNAME}|' \
261 -e 's|@[d]vidir@|$${docdir}|' \
262 -e 's|@[h]tmldir@|$${docdir}|' \
263 -e 's|@[p]dfdir@|$${docdir}|' \
264 -e 's|@[p]sdir@|$${docdir}|' \
265 -e 's|@[G]ZIP_PROG@|gzip|' \
266 -e 's|@IN[S]TALL@|install -c|' \
267 -e 's|@IN[S]TALL_DATA@|$${INSTALL} -m 644|' \
268 -e '/@[c]onfigure_input@/d' \
255 ${srcdir}/Makefile.in > emacs-misc-${version}/Makefile 269 ${srcdir}/Makefile.in > emacs-misc-${version}/Makefile
256 @if grep '@[a-zA-Z_]*@' emacs-misc-${version}/Makefile; then \ 270 @if grep '@[a-zA-Z_]*@' emacs-misc-${version}/Makefile; then \
257 echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \ 271 echo "Unexpanded configure variables in Makefile?" 1>&2; exit 1; \
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi
index b2914adc062..c15918afc4e 100644
--- a/doc/misc/cl.texi
+++ b/doc/misc/cl.texi
@@ -2929,6 +2929,12 @@ This predicate tests whether @var{integer} is even. It is an
2929error if the argument is not an integer. 2929error if the argument is not an integer.
2930@end defun 2930@end defun
2931 2931
2932@defun cl-digit-char-p char radix
2933Test if @var{char} is a digit in the specified @var{radix} (default is
293410). If true return the decimal value of digit @var{char} in
2935@var{radix}.
2936@end defun
2937
2932@node Numerical Functions 2938@node Numerical Functions
2933@section Numerical Functions 2939@section Numerical Functions
2934 2940
@@ -3011,6 +3017,15 @@ This function returns the same value as the second return value
3011of @code{cl-truncate}. 3017of @code{cl-truncate}.
3012@end defun 3018@end defun
3013 3019
3020@defun cl-parse-integer string &key start end radix junk-allowed
3021This function implements the Common Lisp @code{parse-integer}
3022function. It parses an integer in the specified @var{radix} from the
3023substring of @var{string} between @var{start} and @var{end}. Any
3024leading and trailing whitespace chars are ignored. It signals an error
3025if the substring between @var{start} and @var{end} cannot be parsed as
3026an integer unless @var{junk-allowed} is non-nil.
3027@end defun
3028
3014@node Random Numbers 3029@node Random Numbers
3015@section Random Numbers 3030@section Random Numbers
3016 3031
@@ -4692,9 +4707,8 @@ exactly the same thing, so this package has not bothered to
4692implement a Common Lisp-style @code{make-list}. 4707implement a Common Lisp-style @code{make-list}.
4693 4708
4694@item 4709@item
4695A few more notable Common Lisp features not included in this 4710A few more notable Common Lisp features not included in this package:
4696package: @code{compiler-let}, @code{tagbody}, @code{prog}, 4711@code{compiler-let}, @code{prog}, @code{ldb/dpb}, @code{cerror}.
4697@code{ldb/dpb}, @code{parse-integer}, @code{cerror}.
4698 4712
4699@item 4713@item
4700Recursion. While recursion works in Emacs Lisp just like it 4714Recursion. While recursion works in Emacs Lisp just like it
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index 96bfc1e79da..bcdae1e84db 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -588,6 +588,16 @@ In the latter case, if the first nick in the list is already in use,
588other nicks are tried in the list order. 588other nicks are tried in the list order.
589@end defopt 589@end defopt
590 590
591@defopt erc-format-nick-function
592A function to format a nickname for message display
593
594You can set this to @code{erc-format-@@nick} to display user mode prefix
595@end defopt
596
597@example
598(setq erc-format-nick-function 'erc-format-@@nick)
599@end example
600
591@defopt erc-nick-uniquifier 601@defopt erc-nick-uniquifier
592The string to append to the nick if it is already in use. 602The string to append to the nick if it is already in use.
593@end defopt 603@end defopt
@@ -661,7 +671,8 @@ your Emacs configuration file. Everything after the @code{(require
661;; using the version of ERC that comes with Emacs 671;; using the version of ERC that comes with Emacs
662(add-to-list 'load-path "~/elisp/erc") 672(add-to-list 'load-path "~/elisp/erc")
663 673
664;; Load ERC 674;; Load ERC -- again, you don't need this if you are using the version
675;; of ERC that comes with Emacs
665(require 'erc) 676(require 'erc)
666 677
667;; Load authentication info from an external source. Put sensitive 678;; Load authentication info from an external source. Put sensitive
@@ -712,6 +723,12 @@ stuff, to the current ERC buffer."
712;; Join the #emacs and #erc channels whenever connecting to Freenode. 723;; Join the #emacs and #erc channels whenever connecting to Freenode.
713(setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc"))) 724(setq erc-autojoin-channels-alist '(("freenode.net" "#emacs" "#erc")))
714 725
726;; Rename server buffers to reflect the current network name instead
727;; of IP:PORT. (e.g. "freenode" instead of "84.240.3.129:6667"). This
728;; is useful when using a bouncer like ZNC where you have multiple
729;; connections to the same server.
730(setq erc-rename-buffers t)
731
715;; Interpret mIRC-style color commands in IRC chats 732;; Interpret mIRC-style color commands in IRC chats
716(setq erc-interpret-mirc-color t) 733(setq erc-interpret-mirc-color t)
717 734
@@ -750,6 +767,14 @@ lurkers. The function @code{erc-lurker-p} determines whether a given
750nickname is considered a lurker. 767nickname is considered a lurker.
751@end defopt 768@end defopt
752 769
770@defopt erc-rename-buffers
771If non, @code{nil}, this will rename server buffers to reflect the
772current network name instead of IP:PORT
773
774@example
775(setq erc-rename-buffers t)
776@end example
777@end defopt
753 778
754@node Getting Help and Reporting Bugs 779@node Getting Help and Reporting Bugs
755@chapter Getting Help and Reporting Bugs 780@chapter Getting Help and Reporting Bugs
diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi
index ec1236d531b..bef63c0a1dd 100644
--- a/doc/misc/newsticker.texi
+++ b/doc/misc/newsticker.texi
@@ -1,8 +1,8 @@
1\input texinfo @c -*-texinfo-*- 1\input texinfo @c -*-texinfo-*-
2@comment %**start of header 2@comment %**start of header
3@setfilename ../../info/newsticker.info 3@setfilename ../../info/newsticker.info
4@set VERSION 1.99 4@include emacsver.texi
5@set UPDATED June 2008 5@set VERSION @value{EMACSVER}
6@settitle Newsticker @value{VERSION} 6@settitle Newsticker @value{VERSION}
7@syncodeindex vr cp 7@syncodeindex vr cp
8@syncodeindex fn cp 8@syncodeindex fn cp
@@ -11,7 +11,8 @@
11@comment %**end of header 11@comment %**end of header
12 12
13@copying 13@copying
14This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}). 14This manual documents Newsticker, a feed reader for Emacs. It
15corresponds to Emacs version @value{EMACSVER}.
15 16
16@noindent 17@noindent
17Copyright @copyright{} 2004--2014 Free Software Foundation, Inc. 18Copyright @copyright{} 2004--2014 Free Software Foundation, Inc.
@@ -31,12 +32,11 @@ modify this GNU manual.''
31 32
32@dircategory Emacs network features 33@dircategory Emacs network features
33@direntry 34@direntry
34* Newsticker: (newsticker). A Newsticker for Emacs. 35* Newsticker: (newsticker). A feed reader for Emacs.
35@end direntry 36@end direntry
36 37
37@titlepage 38@titlepage
38@title Newsticker---a Newsticker for Emacs 39@title Newsticker---a feed reader for Emacs
39@subtitle for version @value{VERSION}, @value{UPDATED}
40@author Ulf Jasper 40@author Ulf Jasper
41@author @email{ulf.jasper@@web.de} 41@author @email{ulf.jasper@@web.de}
42@author @uref{http://ulf.epplejasper.de/} 42@author @uref{http://ulf.epplejasper.de/}
@@ -56,136 +56,419 @@ modify this GNU manual.''
56@end ifnottex 56@end ifnottex
57 57
58@menu 58@menu
59* Overview:: General description of newsticker. 59* Overview:: What is Newsticker?
60* Requirements:: Requirements for using newsticker. 60* Installation:: Things to do before starting Newsticker the first time.
61* Installation:: Installing newsticker on your system. 61* Retrieving News:: How Newsticker fetches headlines.
62* Usage:: Basic newsticker instructions. 62* Headline Management:: How Newsticker stores headlines.
63* Configuration:: Customizable newsticker settings. 63* Reading News:: How to read RSS and Atom feeds with Newsticker.
64* Remarks:: Remarks about newsticker. 64* Automatic Processing:: Automatically process news items.
65* Configuration:: Customize Newsticker to your liking.
66* Supported Formats:: RSS and Atom formats supported by Newsticker.
67
65* GNU Free Documentation License:: The license for this documentation. 68* GNU Free Documentation License:: The license for this documentation.
66* Index:: Variable, function, and concept index. 69* Index:: Variable, function, and concept index.
67@end menu 70@end menu
68 71
69@node Overview 72@node Overview
70@chapter Overview 73@chapter Overview
71 74
72Newsticker provides a newsticker for Emacs. A newsticker is a thing 75Newsticker provides a @b{Feed Reader} for Emacs. It retrieves
73that asynchronously retrieves headlines from a list of news sites, 76headlines from a list of news sites, processes them, and provides
74prepares these headlines for reading, and allows for loading the 77frontends for reading and managing them. (Standard headline formats
75corresponding articles in a web browser. 78are RSS and Atom which makes Newsticker an ``RSS Reader'', ``Atom
79Reader'' or ``Feed Aggregator''.)
76 80
81Headlines (or news items) consist of a title, (mostly) a description,
82and a link to the full story. The description may be a brief summary
83in plain text or a full HTML-formatted article. A headline may carry
84enclosed data such as images, audio or video files, typically in the
85case of so ``podcast feeds''.
77 86
78Headlines consist of a title and (possibly) a small description. They 87Newsticker downloads headlines asynchronously at configurable times,
79are contained in ``RSS'' (RDF Site Summary) or ``Atom'' files. Newsticker 88processes and stores them so that you can read them later. The list
80works with the following RSS formats: 89of subscribed feeds, the headline processing, the presentation of the
90headlines and almost all other aspects of Newsticker can be
91customized to your liking.
81 92
82@itemize 93@node Installation
83@item RSS 0.91 (see @uref{http://backend.userland.com/rss091} or 94@chapter Installation
84@uref{http://my.netscape.com/publish/formats/rss-spec-0.91.html}),
85@item RSS 0.92 (see @uref{http://backend.userland.com/rss092}),
86@item RSS 1.0 (see @uref{http://purl.org/rss/1.0/spec}
87@item RSS 2.0 (see @uref{http://blogs.law.harvard.edu/tech/rss}),
88@end itemize
89@itemize
90as well as the following Atom formats:
91@item Atom 0.3
92@item Atom 1.0 (see
93@uref{https://datatracker.ietf.org/doc/rfc4287/}).
94@end itemize
95 95
96That makes Newsticker.el an ``Atom aggregator'', ``RSS reader'', ``Feed 96As Newsticker is part of GNU Emacs there is no need to perform any
97aggregator'', or ``Feed reader''. 97installation steps in order to use it.
98 98
99Newsticker provides several commands for reading headlines, navigating 99Newsticker is highly customizable. All options have reasonable default
100through them, marking them as read/unread, hiding old headlines etc. 100values, so that (in most cases) it is not necessary to customize
101Headlines can be displayed as plain text or as rendered HTML. 101anything before you start Newsticker for the first time.
102 102
103Headlines can be displayed in the echo area, either scrolling like 103@node Retrieving News
104messages in a stock-quote ticker, or just changing. 104@chapter Retrieving News
105
106Newsticker allows for automatic processing of headlines by providing
107hooks and (sample) functions for automatically downloading images and
108enclosed files (as delivered by, e.g., podcasts).
109
110@ignore
111@ifhtml
112Here are screen shots of the @uref{newsticker-1.7.png, version 1.7
113(current version)} and some older screen shots:
114@uref{newsticker-1.6.png, version 1.6},
115@uref{newsticker-1.5.png, version 1.5},
116@uref{newsticker-1.4.png, version 1.4}
117@uref{newsticker-1.3.png, version 1.3},
118@uref{newsticker-1.0.png, version 1.0}.
119@end ifhtml
120@end ignore
121
122@node Requirements
123@chapter Requirements
124
125Newsticker can be used with
126@uref{http://www.gnu.org/software/emacs/emacs.html, GNU Emacs} version
12721.1 or later as well as @uref{http://www.xemacs.org, XEmacs}. It
128requires an XML-parser (@file{xml.el}), which is part of GNU Emacs. If
129you are using XEmacs you want to get the @file{net-utils} package
130which contains @file{xml.el} for XEmacs.
131
132Newsticker retrieves headlines either via Emacs's built-in retrieval
133functions, by an arbitrary external program that retrieves files via
134http and prints them to stdout (like
135@uref{http://www.gnu.org/software/wget/wget.html, wget}, or---on a
136per feed basis---via an arbitrary Lisp command.
137 105
106Newsticker downloads news periodically in the background. This is
107triggered as soon as you start reading news (@ref{Reading News}).
138 108
139@node Installation 109@findex newsticker-start
140@chapter Installation 110@findex newsticker-stop
111Alternatively you may use the command @code{newsticker-start}
112(@code{newsticker-stop}) in order to start (stop) the periodic
113download of news without opening the reader.
141 114
142As Newsticker is part of GNU Emacs there is no need to perform any 115The following variables define which feeds are fetched and how this is
143installation steps in order to use Newsticker. 116done.
117
118@table @code
119@vindex newsticker-url-list-defaults
120@item newsticker-url-list-defaults
121You may select any number of feeds from this list of (sample) news feeds.
122
123@vindex newsticker-url-list
124@item newsticker-url-list
125All your personal news feeds are defined here. Each feed is
126identified by its name and an URL. You may set the start-time and the
127retrieval interval for each feed as well as the retrieval command
128arguments in case that the default values do not fit a certain feed.
129
130@vindex newsticker-retrieval-method
131@vindex newsticker-wget-name
132@vindex newsticker-wget-arguments
133@item newsticker-retrieval-method
134By default Newsticker uses Emacs's built-in download capabilities for
135fetching headlines. You may change this to use an external tool like
136@code{wget}. In this case you need to set @code{newsticker-wget-name}
137and possibly @code{newsticker-wget-arguments}.
138
139@vindex newsticker-retrieval-interval
140@item newsticker-retrieval-interval
141The number of seconds between headline retrievals.
142@end table
143
144@node Headline Management
145@chapter Headline Management
146
147@cindex Age
148@cindex Status
149
150Newsticker assigns a status (or ``age'') to each headline which you
151can modify manually. This makes it easy to distinguish new headlines
152from old ones, to keep important headlines, to hide boring headlines
153etc. An item is ``new'' when it has just arrived and has not been
154read. You can mark it as ``old'' when you have read it or -- if you
155want to keep it -- you can mark it as ``immortal''. You can do that
156manually and you can define filters which do that automatically, see
157below. When a headline has vanished from the feed it is automatically
158marked as ``obsolete'' unless it has the status ``immortal''.
159``Obsolete'' headlines get removed automatically after a certain time.
160
161@table @code
162@cindex Filter
163@vindex newsticker-auto-mark-filter-list
164@item newsticker-auto-mark-filter-list
165You may define any number of filters for automatically marking newly
166arrived headlines as ``immortal'' or ``old''. A filter looks for a
167regular expression in either the title or the description of a
168headline and then, if the expression matches, marks the headline as
169``immortal'' or as ``old''. This is done only once, when a headline
170is fetched for the very first time.
171
172@vindex newsticker-keep-obsolete-items
173@vindex newsticker-obsolete-item-max-age
174@item newsticker-keep-obsolete-items
175Obsolete headlines are removed immediately unless
176@code{newsticker-keep-obsolete-items} is non-nil in which case they
177are kept until @code{newsticker-obsolete-item-max-age} is reached.
178
179@vindex newsticker-automatically-mark-items-as-old
180@item newsticker-automatically-mark-items-as-old
181If this is set to `t' then a ``new'' item becomes ``old'' as soon as
182it is retrieved a second time.
183
184@end table
185
186@node Reading News
187@chapter Reading News
188
189@findex newsticker-show-news
190Start Newsticker with the command @kbd{M-x newsticker-show-news}. This
191will start the asynchronous news download and displays all available
192headlines.
193
194@menu
195* Frontends:: Select the way headlines are displayed.
196* Navigation:: Move to the next unread headline etc.
197* Marking:: Mark important headlines.
198* More Actions:: Add new feeds etc..
199@end menu
200
201@node Frontends
202@section Frontends
203@cindex Frontends
204
205@vindex newsticker-frontend
206Newsticker provides two different @i{views} for browsing, marking and
207reading news. The variable @code{newsticker-frontend} determines the
208actual headline reader.
209
210@subheading Treeview
211@cindex Treeview
212
213In this view separate windows are used for displaying feeds, headlines
214and their descriptions. The feeds are shown as a tree on the left
215hand side, headlines of the currently selected feed are shown on the
216upper right side, and the full contents of the currently selected
217headline is shown on the lower right side.
218
219Feeds can be placed into groups, which themselves can be placed in
220groups and so on. This results in the tree which is displayed on the
221left. A node represents either a feed or a group of feeds holding a
222subtree. The following commands allow for managing groups.
223
224@table @kbd
225@item M-a
226@kindex M-a
227@findex newsticker-group-add-group
228Add a new feed group. Name of the new group and of the parent group
229must be entered. If The name of the parent group is the new group
230becomes a top-level group. (@code{newsticker-group-add-group})
231@item M-m
232@kindex M-m
233@findex newsticker-group-move-feed
234Moves a feed into a group. The name of the group must be
235entered. (@code{newsticker-group-move-feed})
236@end table
237
238The position of groups and feeds within the tree can be changed with these
239commands:
240
241@table @kbd
242@item M-up
243@itemx M-down
244@kindex M-up
245@kindex M-down
246@findex newsticker-group-shift-feed-up
247@findex newsticker-group-shift-feed-down
248Shift the currently selected feed up and down within its group.
249@item M-S-up
250@itemx M-S-down
251@kindex M-S-up
252@kindex M-S-down
253@findex newsticker-group-shift-group-up
254@findex newsticker-group-shift-group-down
255Shift the currently selected group up and down within its parent group.
256@end table
257
258The group settings are saved to a file either automatically when
259newsticker is being quit or manually when the following command is
260executed.
261
262@table @kbd
263@item s
264@kindex s
265@findex newsticker-treeview-save
266Save treeview group settings.
267@end table
268
269The Treeview is updated automatically as soon as new headlines have
270arrived.
271
272The Treeview is used when the variable @code{newsticker-frontend} is
273set to the value @code{newsticker-treeview}. (Alternatively it can be
274started with the command @code{newsticker-treeview}.)
275
276@subheading Plainview
277@cindex Plainview
144 278
145However, if you are using imenu, which allows for navigating with the 279In this view all headlines of all feeds are displayed in a single
146help of a menu, you should add the following to your Emacs startup file 280buffer (@file{*newsticker*}). The modeline in the @file{*newsticker*}
147(@file{~/.emacs}). 281buffer informs you whenever new headlines have arrived.
282
283You may want to use imenu with Plainview, which allows for navigating
284with the help of a menu. In this case add the following to your Emacs
285startup file (@file{~/.emacs}).
148 286
149@lisp 287@lisp
150(add-hook 'newsticker-mode-hook 'imenu-add-menubar-index) 288(add-hook 'newsticker-mode-hook 'imenu-add-menubar-index)
151@end lisp 289@end lisp
152 290
153That's it. 291(Note that preparing the Plainview takes significantly more time than
292starting the Treeview because all headlines are displayed in a single
293buffer. When you have subscribed to a large amount of feeds you may
294find that Newsticker's efforts of minimizing rendering times, caching
295rendered items and so on you may find However, when you have
296subscribed to a large amount of feeds you may want to give the
297Treeview a try.)
154 298
155@node Usage 299The Plainview is used when the variable @code{newsticker-frontend} is
156@chapter Usage 300set to the value @code{newsticker-plainview}. (Alternatively it can be
301started with the command @code{newsticker-plainview}.)
157 302
158@findex newsticker-show-news 303@subheading Ticker
159The command @code{newsticker-show-news} will display all available 304@cindex Ticker
160headlines. It will also start the asynchronous download of headlines.
161 305
162You can choose between two different frontends for reading headlines: 306Additionally, headlines can be displayed in the echo area in the style of a
163@itemize 307news ticker.
164@item Newsticker's @emph{treeview} uses separate windows for the
165feeds (in tree form), a list of headlines for the current feed, and
166the content of the current headline. Feeds can be placed into groups,
167which themselves can be placed in groups and so on.
168@item Newsticker's @emph{plainview} displays all headlines in a
169single buffer, called @file{*newsticker*}. The modeline in the
170@file{*newsticker*} buffer informs you whenever new headlines have
171arrived.
172@end itemize
173In both views clicking mouse-button 2 or pressing @key{RET} on a
174headline will call @code{browse-url} to load the corresponding news
175story in your favorite web browser.
176 308
177@findex newsticker-start-ticker 309@findex newsticker-start-ticker
178@findex newsticker-stop-ticker 310@findex newsticker-stop-ticker
179The scrolling, or flashing of headlines in the echo area, can be 311Headlines can be displayed in the echo area, either scrolling like
312messages in a stock-quote ticker, or just changing. This can be
180started with the command @code{newsticker-start-ticker}. It can be 313started with the command @code{newsticker-start-ticker}. It can be
181stopped with @code{newsticker-stop-ticker}. 314stopped with @code{newsticker-stop-ticker}.
182 315
183@findex newsticker-start 316
184@findex newsticker-stop 317@node Navigation
185If you just want to start the periodic download of headlines use the 318@section Navigation
186command @code{newsticker-start}. Calling @code{newsticker-stop} will 319@cindex Navigation
187stop the periodic download, but will call 320
188@code{newsticker-stop-ticker} as well. 321Navigating through the list of feeds and headlines is rather
322straightforward. You may do this either with the mouse or with the
323keyboard. The following key bindings are provided in both, the
324Treeview as well as the Plainview.
325
326@table @kbd
327@item f
328@findex newsticker-next-feed
329@findex newsticker-treeview-next-feed
330Move to next feed (@code{newsticker-next-feed},
331@code{newsticker-treeview-next-feed}).
332@item F
333@findex newsticker-previous-feed
334@findex newsticker-treeview-prev-feed
335Move to previous feed (@code{newsticker-previous-feed},
336@code{newsticker-treeview-prev-feed}).
337@item n
338@findex newsticker-next-item
339@findex newsticker-treeview-next-item
340Move to next item (@code{newsticker-next-item},
341@code{newsticker-treeview-next-item}).
342@item N
343@findex newsticker-next-new-item
344@findex newsticker-treeview-next-new-item
345Move to next new item (possibly in another feed)
346(@code{newsticker-next-new-item},
347@code{newsticker-treeview-next-new-item}).
348@item p
349@findex newsticker-previous-item
350@findex newsticker-treeview-prev-item
351Move to previous item (@code{newsticker-previous-item},
352@code{newsticker-treeview-prev-item}).
353@item P
354@findex newsticker-previous-new-item
355@findex newsticker-treeview-prev-new-item
356Move to previous new item (possibly in another feed)
357(@code{newsticker-previous-new-item},
358@code{newsticker-treeview-prev-new-item}).
359@end table
360
361@subheading Treeview
362@table @kbd
363@item j
364@findex newsticker-treeview-jump
365Enter the name of a feed and jump to it
366(@code{newsticker-treeview-jump}).
367@end table
368
369
370@node Marking
371@section Marking
372@cindex Marking
373
374The following key bindings are provided in both, the Treeview as well
375as the Plainview.
376
377@table @kbd
378@item o
379@findex newsticker-mark-item-at-point-as-read
380@findex newsticker-treeview-mark-item-old
381Mark current item as old.
382(@code{newsticker-mark-item-at-point-as-read},
383@code{newsticker-treeview-mark-item-old}).
384@item i
385@findex newsticker-mark-item-at-point-as-immortal
386@findex newsticker-treeview-mark-item-immortal
387Mark current item as immortal. Immortal items are kept forever.
388(@code{newsticker-mark-item-at-point-as-immortal},
389@code{newsticker-treeview-mark-item-immortal}).
390@end table
391
392@node More Actions
393@section More Actions
394@cindex More Actions
395
396@subheading View full article
397@table @kbd
398@cindex Get News
399@item v
400@itemx RET
401@itemx <mouse-1>
402@findex newsticker-treeview-browse-url
403Open the link to the full article (as contained in the current
404headline) in your web browser @code{newsticker-treeview-browse-url}).
405@end table
406
407@subheading Get News
408@cindex Get News
409
410You can force immediate download of news with the following commands.
411
412@table @kbd
413@item g
414@findex newsticker-treeview-get-news
415Get news for currently shown feed (@code{newsticker-treeview-get-news}).
416@item G
417@findex newsticker-get-all-news
418Get news for all feeds (@code{newsticker-get-all-news}).
419@end table
420
421@subheading Add More Feeds
422@cindex Add More Feeds
423
424@table @kbd
425@item a
426@findex newsticker-add-url
427The command @code{newsticker-add-url} prompts for an URL and a name of
428a new feed. It then prepares a customization buffer where the details
429of the new feed can be set.
430@end table
431
432
433@node Automatic Processing
434@chapter Automatic Processing
435@cindex Automatic Processing
436
437Apart from automatic marking of headlines (by means of filters)
438Newsticker provides the possibility to fully process newly arrived
439headlines. Instead of reading headlines yourself you can tell
440Newsticker to do that for you.
441
442@vindex newsticker-new-item-functions
443In order to do so write a function which takes three arguments
444
445@table @var
446@item FEED
447the name of the corresponding news feed,
448@item TITLE
449the title of the headline,
450@item DESC
451the decoded description of the headline.
452@end table
453
454and add it to @code{newsticker-new-item-functions}. Each function
455contained in this list is called once for each new headline.
456Depending on the feed, the title and the description of a headline you
457can
458
459@itemize
460@item
461automatically download images referenced in HTML-formatted
462descriptions (for which a function already exists, see
463@code{newsticker-download-images}),
464@item
465automatically save enclosed audio and video files (for which another
466function exists as well, see @code{newsticker-download-images}),
467@item
468flash the screen while playing some sound,
469@item
470whatever you want.
471@end itemize
189 472
190@node Configuration 473@node Configuration
191@chapter Configuration 474@chapter Configuration
@@ -195,11 +478,8 @@ Emacs customization methods. Call the command
195@code{customize-group} and enter @samp{newsticker} for the customization 478@code{customize-group} and enter @samp{newsticker} for the customization
196group. 479group.
197 480
198All Newsticker options have reasonable default values, so that in most 481@noindent
199cases it is not necessary to customize settings before starting Newsticker 482The following list shows the available groups of Newsticker options
200for the first time.
201
202The following list shows the available groups of newsticker options
203and some of the most important options. 483and some of the most important options.
204 484
205@itemize 485@itemize
@@ -296,13 +576,35 @@ treeview reader.
296 576
297@end itemize 577@end itemize
298 578
579@noindent
299For the complete list of options please have a look at the 580For the complete list of options please have a look at the
300customization buffers. 581customization buffers.
301 582
302@node Remarks 583@node Supported Formats
303@chapter Remarks 584@appendix Supported Formats
585@cindex Supported Formats
586
587Newsticker works with the standard RSS and Atom formats listed below
588(being lenient with feeds which break the specifications).
589
590@subheading RSS formats
591
592@itemize
593@item RSS 0.91 (see @uref{http://backend.userland.com/rss091} or
594@uref{http://my.netscape.com/publish/formats/rss-spec-0.91.html})
595@item RSS 0.92 (see @uref{http://backend.userland.com/rss092})
596@item RSS 1.0 (see @uref{http://purl.org/rss/1.0/spec})
597@item RSS 2.0 (see @uref{http://blogs.law.harvard.edu/tech/rss})
598@end itemize
599
600@subheading Atom formats
601
602@itemize
603@item Atom 0.3
604@item Atom 1.0 (see
605@uref{https://datatracker.ietf.org/doc/rfc4287/})
606@end itemize
304 607
305Byte-compiling newsticker.el is recommended.
306 608
307@node GNU Free Documentation License 609@node GNU Free Documentation License
308@appendix GNU Free Documentation License 610@appendix GNU Free Documentation License
@@ -310,7 +612,7 @@ Byte-compiling newsticker.el is recommended.
310 612
311@node Index 613@node Index
312@unnumbered Index 614@unnumbered Index
313
314@printindex cp 615@printindex cp
315 616
617
316@bye 618@bye
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 6466a001f0d..2af44239e8d 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -2,7 +2,8 @@
2@c %**start of header 2@c %**start of header
3@setfilename ../../info/org.info 3@setfilename ../../info/org.info
4@settitle The Org Manual 4@settitle The Org Manual
5@set VERSION 8.2.6 5
6@set VERSION 8.2.9
6 7
7@c Version and Contact Info 8@c Version and Contact Info
8@set MAINTAINERSITE @uref{http://orgmode.org,maintainers web page} 9@set MAINTAINERSITE @uref{http://orgmode.org,maintainers web page}
@@ -584,8 +585,9 @@ Exporting
584* Markdown export:: Exporting to Markdown 585* Markdown export:: Exporting to Markdown
585* OpenDocument Text export:: Exporting to OpenDocument Text 586* OpenDocument Text export:: Exporting to OpenDocument Text
586* Org export:: Exporting to Org 587* Org export:: Exporting to Org
588* Texinfo export:: Exporting to Texinfo
587* iCalendar export:: Exporting to iCalendar 589* iCalendar export:: Exporting to iCalendar
588* Other built-in back-ends:: Exporting to @code{Texinfo} or a man page 590* Other built-in back-ends:: Exporting to a man page
589* Export in foreign buffers:: Author tables and lists in Org syntax 591* Export in foreign buffers:: Author tables and lists in Org syntax
590* Advanced configuration:: Fine-tuning the export output 592* Advanced configuration:: Fine-tuning the export output
591 593
@@ -637,6 +639,16 @@ Advanced topics in ODT export
637* Customizing tables in ODT export:: How to define and use Table templates 639* Customizing tables in ODT export:: How to define and use Table templates
638* Validating OpenDocument XML:: How to debug corrupt OpenDocument files 640* Validating OpenDocument XML:: How to debug corrupt OpenDocument files
639 641
642Texinfo export
643
644* Texinfo export commands:: How to invoke Texinfo export
645* Document preamble:: File header, title and copyright page
646* Headings and sectioning structure:: Building document structure
647* Indices:: Creating indices
648* Quoting Texinfo code:: Incorporating literal Texinfo code
649* Texinfo specific attributes:: Controlling Texinfo output
650* An example::
651
640Publishing 652Publishing
641 653
642* Configuration:: Defining projects 654* Configuration:: Defining projects
@@ -2725,9 +2737,11 @@ Operations, , Logical Operations, calc, GNU Emacs Calc Manual}). For example
2725@item if($1 < 20, teen, string("")) 2737@item if($1 < 20, teen, string(""))
2726"teen" if age $1 is less than 20, else the Org table result field is set to 2738"teen" if age $1 is less than 20, else the Org table result field is set to
2727empty with the empty string. 2739empty with the empty string.
2728@item if("$1" == "nan" || "$2" == "nan", string(""), $1 + $2); E 2740@item if("$1" == "nan" || "$2" == "nan", string(""), $1 + $2); E f-1
2729Sum of the first two columns. When at least one of the input fields is empty 2741Sum of the first two columns. When at least one of the input fields is empty
2730the Org table result field is set to empty. 2742the Org table result field is set to empty. @samp{E} is required to not
2743convert empty fields to 0. @samp{f-1} is an optional Calc format string
2744similar to @samp{%.1f} but leaves empty results empty.
2731@item if(typeof(vmean($1..$7)) == 12, string(""), vmean($1..$7); E 2745@item if(typeof(vmean($1..$7)) == 12, string(""), vmean($1..$7); E
2732Mean value of a range unless there is any empty field. Every field in the 2746Mean value of a range unless there is any empty field. Every field in the
2733range that is empty is replaced by @samp{nan} which lets @samp{vmean} result 2747range that is empty is replaced by @samp{nan} which lets @samp{vmean} result
@@ -4410,7 +4424,7 @@ To record a timestamp without a note for TODO keywords configured with
4410 4424
4411@noindent 4425@noindent
4412@vindex org-log-done 4426@vindex org-log-done
4413you not only define global TODO keywords and fast access keys, but also 4427You not only define global TODO keywords and fast access keys, but also
4414request that a time is recorded when the entry is set to 4428request that a time is recorded when the entry is set to
4415DONE@footnote{It is possible that Org mode will record two timestamps 4429DONE@footnote{It is possible that Org mode will record two timestamps
4416when you are using both @code{org-log-done} and state change logging. 4430when you are using both @code{org-log-done} and state change logging.
@@ -9951,11 +9965,10 @@ include your @file{.emacs} file, you could use:
9951@end example 9965@end example
9952 9966
9953@noindent 9967@noindent
9954The optional second and third parameter are the markup (e.g., @samp{quote}, 9968The optional second and third parameter are the markup (i.e., @samp{example}
9955@samp{example}, or @samp{src}), and, if the markup is @samp{src}, the 9969or @samp{src}), and, if the markup is @samp{src}, the language for formatting
9956language for formatting the contents. The markup is optional; if it is not 9970the contents. The markup is optional; if it is not given, the text will be
9957given, the text will be assumed to be in Org mode format and will be 9971assumed to be in Org mode format and will be processed normally.
9958processed normally.
9959 9972
9960Contents of the included file will belong to the same structure (headline, 9973Contents of the included file will belong to the same structure (headline,
9961item) containing the @code{INCLUDE} keyword. In particular, headlines within 9974item) containing the @code{INCLUDE} keyword. In particular, headlines within
@@ -10364,8 +10377,9 @@ in the iCalendar format.
10364* Markdown export:: Exporting to Markdown 10377* Markdown export:: Exporting to Markdown
10365* OpenDocument Text export:: Exporting to OpenDocument Text 10378* OpenDocument Text export:: Exporting to OpenDocument Text
10366* Org export:: Exporting to Org 10379* Org export:: Exporting to Org
10380* Texinfo export:: Exporting to Texinfo
10367* iCalendar export:: Exporting to iCalendar 10381* iCalendar export:: Exporting to iCalendar
10368* Other built-in back-ends:: Exporting to @code{Texinfo} or a man page 10382* Other built-in back-ends:: Exporting to a man page
10369* Export in foreign buffers:: Author tables and lists in Org syntax 10383* Export in foreign buffers:: Author tables and lists in Org syntax
10370* Advanced configuration:: Fine-tuning the export output 10384* Advanced configuration:: Fine-tuning the export output
10371@end menu 10385@end menu
@@ -10690,16 +10704,12 @@ Toggle inclusion of TODO keywords into exported text
10690Toggle inclusion of tables (@code{org-export-with-tables}). 10704Toggle inclusion of tables (@code{org-export-with-tables}).
10691@end table 10705@end table
10692 10706
10693@cindex property, EXPORT_FILE_NAME
10694When exporting only a subtree, each of the previous keywords@footnote{With 10707When exporting only a subtree, each of the previous keywords@footnote{With
10695the exception of @samp{SETUPFILE}.} can be overridden locally by special node 10708the exception of @samp{SETUPFILE}.} can be overridden locally by special node
10696properties. These begin with @samp{EXPORT_}, followed by the name of the 10709properties. These begin with @samp{EXPORT_}, followed by the name of the
10697keyword they supplant. For example, @samp{DATE} and @samp{OPTIONS} keywords 10710keyword they supplant. For example, @samp{DATE} and @samp{OPTIONS} keywords
10698become, respectively, @samp{EXPORT_DATE} and @samp{EXPORT_OPTIONS} 10711become, respectively, @samp{EXPORT_DATE} and @samp{EXPORT_OPTIONS}
10699properties. Subtree export also supports the self-explicit 10712properties.
10700@samp{EXPORT_FILE_NAME} property@footnote{There is no buffer-wide equivalent
10701for this property. The file name in this case is derived from the file
10702associated to the buffer, if possible, or asked to the user otherwise.}.
10703 10713
10704@cindex #+BIND 10714@cindex #+BIND
10705@vindex org-export-allow-bind-keywords 10715@vindex org-export-allow-bind-keywords
@@ -10708,6 +10718,13 @@ can become buffer-local during export by using the BIND keyword. Its syntax
10708is @samp{#+BIND: variable value}. This is particularly useful for in-buffer 10718is @samp{#+BIND: variable value}. This is particularly useful for in-buffer
10709settings that cannot be changed using specific keywords. 10719settings that cannot be changed using specific keywords.
10710 10720
10721@cindex property, EXPORT_FILE_NAME
10722The name of the output file to be generated is taken from the file associated
10723to the buffer, when possible, or asked to you otherwise. For subtree export,
10724you can also set @samp{EXPORT_FILE_NAME} property. In all cases, only the
10725base name of the file is retained, and a back-end specific extension is
10726added.
10727
10711@node ASCII/Latin-1/UTF-8 export, Beamer export, Export settings, Exporting 10728@node ASCII/Latin-1/UTF-8 export, Beamer export, Export settings, Exporting
10712@section ASCII/Latin-1/UTF-8 export 10729@section ASCII/Latin-1/UTF-8 export
10713@cindex ASCII export 10730@cindex ASCII export
@@ -12834,7 +12851,324 @@ Export to a temporary buffer. Do not create a file.
12834Export to an Org file, then open it. 12851Export to an Org file, then open it.
12835@end table 12852@end table
12836 12853
12837@node iCalendar export, Other built-in back-ends, Org export, Exporting 12854@node Texinfo export, iCalendar export, Org export, Exporting
12855@section Texinfo export
12856@cindex Texinfo export
12857
12858@samp{texinfo} export back-end generates Texinfo code and can compile it into
12859an Info file.
12860
12861@menu
12862* Texinfo export commands:: How to invoke Texinfo export
12863* Document preamble:: File header, title and copyright page
12864* Headings and sectioning structure:: Building document structure
12865* Indices:: Creating indices
12866* Quoting Texinfo code:: Incorporating literal Texinfo code
12867* Texinfo specific attributes:: Controlling Texinfo output
12868* An example::
12869@end menu
12870
12871@node Texinfo export commands, Document preamble, Texinfo export, Texinfo export
12872@subsection Texinfo export commands
12873
12874@vindex org-texinfo-info-process
12875@table @kbd
12876@orgcmd{C-c C-e i t,org-texinfo-export-to-texinfo}
12877Export as a Texinfo file. For an Org file, @file{myfile.org}, the resulting
12878file will be @file{myfile.texi}. The file will be overwritten without
12879warning.
12880@orgcmd{C-c C-e i i,org-texinfo-export-to-info}
12881Export to Texinfo and then process to an Info file@footnote{By setting
12882@code{org-texinfo-info-process}, it is possible to generate other formats,
12883including DocBook.}.
12884@end table
12885
12886@node Document preamble, Headings and sectioning structure, Texinfo export commands, Texinfo export
12887@subsection Document preamble
12888
12889When processing a document, @samp{texinfo} back-end generates a minimal file
12890header along with a title page, a copyright page, and a menu. You control
12891the latter through the structure of the document (@pxref{Headings and
12892sectioning structure}). Various keywords allow to tweak the other parts. It
12893is also possible to give directions to install the document in the @samp{Top}
12894node.
12895
12896@subsubheading File header
12897
12898@cindex #+TEXINFO_FILENAME
12899Upon creating the header of a Texinfo file, the back-end guesses a name for
12900the Info file to be compiled. This may not be a sensible choice, e.g., if
12901you want to produce the final document in a different directory. Specify an
12902alternate path with @code{#+TEXINFO_FILENAME} keyword to override the default
12903destination.
12904
12905@vindex org-texinfo-coding-system
12906@vindex org-texinfo-classes
12907@cindex #+TEXINFO_HEADER
12908@cindex #+TEXINFO_CLASS
12909Along with the output file name, the header contains information about the
12910language (@pxref{Export settings}) and current encoding used@footnote{See
12911@code{org-texinfo-coding-system} for more information.}. Insert
12912a @code{#+TEXINFO_HEADER} keyword for each additional command needed, e.g.,
12913@@code@{@@synindex@}.
12914
12915If you happen to regularly install the same set of commands, it may be easier
12916to define your own class in @code{org-texinfo-classes}, which see. Set
12917@code{#+TEXINFO_CLASS} keyword accordingly in your document to activate it.
12918
12919@subsubheading Title and copyright page
12920
12921@cindex #+TEXINFO_PRINTED_TITLE
12922@cindex #+SUBTITLE
12923The default template includes a title page for hard copy output. The title
12924and author displayed on this page are extracted from, respectively,
12925@code{#+TITLE} and @code{#+AUTHOR} keywords (@pxref{Export settings}). It is
12926also possible to print a different, more specific, title with
12927@code{#+TEXINFO_PRINTED_TITLE} keyword, and add subtitles with
12928@code{#+SUBTITLE} keyword. Both expect raw Texinfo code in their value.
12929
12930@cindex #+SUBAUTHOR
12931Likewise, information brought by @code{#+AUTHOR} may not be enough. You can
12932include other authors with several @code{#+SUBAUTHOR} keywords. Values are
12933also expected to be written in Texinfo code.
12934
12935@example
12936#+AUTHOR: Jane Smith
12937#+SUBAUTHOR: John Doe
12938#+TEXINFO_PRINTED_TITLE: This Long Title@@inlinefmt@{tex,@@*@} Is Broken in @@TeX@{@}
12939@end example
12940
12941@cindex property, COPYING
12942Copying material is defined in a dedicated headline with a non-nil
12943@code{:COPYING:} property. The contents are inserted within
12944a @code{@@copying} command at the beginning of the document whereas the
12945heading itself does not appear in the structure of the document.
12946
12947Copyright information is printed on the back of the title page.
12948
12949@example
12950* Copying
12951 :PROPERTIES:
12952 :COPYING: t
12953 :END:
12954
12955 This is a short example of a complete Texinfo file, version 1.0.
12956
12957 Copyright \copy 2014 Free Software Foundation, Inc.
12958@end example
12959
12960@subsubheading The Top node
12961
12962@cindex #+TEXINFO_DIR_CATEGORY
12963@cindex #+TEXINFO_DIR_TITLE
12964@cindex #+TEXINFO_DIR_DESC
12965You may ultimately want to install your new Info file to your system. You
12966can write an appropriate entry in the top level directory specifying its
12967category and title with, respectively, @code{#+TEXINFO_DIR_CATEGORY} and
12968@code{#+TEXINFO_DIR_TITLE}. Optionally, you can add a short description
12969using @code{#+TEXINFO_DIR_DESC}. The following example would write an entry
12970similar to Org's in the @samp{Top} node.
12971
12972@example
12973#+TEXINFO_DIR_CATEGORY: Emacs
12974#+TEXINFO_DIR_TITLE: Org Mode: (org)
12975#+TEXINFO_DIR_DESC: Outline-based notes management and organizer
12976@end example
12977
12978@node Headings and sectioning structure, Indices, Document preamble, Texinfo export
12979@subsection Headings and sectioning structure
12980
12981@vindex org-texinfo-classes
12982@vindex org-texinfo-default-class
12983@cindex #+TEXINFO_CLASS
12984@samp{texinfo} uses a pre-defined scheme, or class, to convert headlines into
12985Texinfo structuring commands. For example, a top level headline appears as
12986@code{@@chapter} if it should be numbered or as @code{@@unnumbered}
12987otherwise. If you need to use a different set of commands, e.g., to start
12988with @code{@@part} instead of @code{@@chapter}, install a new class in
12989@code{org-texinfo-classes}, then activate it with @code{#+TEXINFO_CLASS}
12990keyword. Export process defaults to @code{org-texinfo-default-class} when
12991there is no such keyword in the document.
12992
12993If a headline's level has no associated structuring command, or is below
12994a certain threshold @pxref{Export settings}, that headline becomes a list in
12995Texinfo output.
12996
12997@cindex property, APPENDIX
12998As an exception, a headline with a non-nil @code{:APPENDIX:} property becomes
12999an appendix, independently on its level and the class used.
13000
13001@cindex property, DESCRIPTION
13002Each regular sectioning structure creates a menu entry, named after the
13003heading. You can provide a different, e.g., shorter, title in
13004@code{:ALT_TITLE:} property (@pxref{Table of contents}). Optionally, you can
13005specify a description for the item in @code{:DESCRIPTION:} property. E.g.,
13006
13007@example
13008* Controlling Screen Display
13009 :PROPERTIES:
13010 :ALT_TITLE: Display
13011 :DESCRIPTION: Controlling Screen Display
13012 :END:
13013@end example
13014
13015@node Indices, Quoting Texinfo code, Headings and sectioning structure, Texinfo export
13016@subsection Indices
13017
13018@cindex #+CINDEX
13019@cindex #+FINDEX
13020@cindex #+KINDEX
13021@cindex #+PINDEX
13022@cindex #+TINDEX
13023@cindex #+VINDEX
13024Index entries are created using dedicated keywords. @samp{texinfo} back-end
13025provides one for each predefined type: @code{#+CINDEX}, @code{#+FINDEX},
13026@code{#+KINDEX}, @code{#+PINDEX}, @code{#+TINDEX} and @code{#+VINDEX}. For
13027custom indices, you can write raw Texinfo code (@pxref{Quoting Texinfo
13028code}).
13029
13030@example
13031#+CINDEX: Defining indexing entries
13032@end example
13033
13034@cindex property, INDEX
13035To generate an index, you need to set the @code{:INDEX:} property of
13036a headline to an appropriate abbreviation (e.g., @samp{cp} or @samp{vr}).
13037The headline is then exported as an unnumbered chapter or section command and
13038the index is inserted after its contents.
13039
13040@example
13041* Concept Index
13042 :PROPERTIES:
13043 :INDEX: cp
13044 :END:
13045@end example
13046
13047@node Quoting Texinfo code, Texinfo specific attributes, Indices, Texinfo export
13048@subsection Quoting Texinfo code
13049
13050It is possible to insert raw Texinfo code using any of the following
13051constructs
13052
13053@cindex #+TEXINFO
13054@cindex #+BEGIN_TEXINFO
13055@example
13056Richard @@@@texinfo:@@sc@{@@@@Stallman@@@@texinfo:@}@@@@ commence' GNU.
13057
13058#+TEXINFO: @@need800
13059This paragraph is preceded by...
13060
13061#+BEGIN_TEXINFO
13062@@auindex Johnson, Mark
13063@@auindex Lakoff, George
13064#+END_TEXINFO
13065@end example
13066
13067@node Texinfo specific attributes, An example, Quoting Texinfo code, Texinfo export
13068@subsection Texinfo specific attributes
13069
13070@cindex #+ATTR_TEXINFO
13071@samp{texinfo} back-end understands several attributes in plain lists and
13072tables. They must be specified using an @code{#+ATTR_TEXINFO} keyword,
13073written just above the list or table.
13074
13075@subsubheading Plain lists
13076
13077In Texinfo output, description lists appear as two-column tables, using the
13078default command @code{@@table}. You can use @code{@@ftable} or
13079@code{@@vtable}@footnote{For more information, @inforef{Two-column
13080Tables,,texinfo}.} instead with @code{:table-type} attribute.
13081
13082@vindex org-texinfo-def-table-markup
13083In any case, these constructs require a highlighting command for entries in
13084the list. You can provide one with @code{:indic} attribute. If you do not,
13085it defaults to the value stored in @code{org-texinfo-def-table-markup}, which
13086see.
13087
13088@example
13089#+ATTR_TEXINFO: :indic @@asis
13090- foo :: This is the text for /foo/, with no highlighting.
13091@end example
13092
13093@subsubheading Tables
13094
13095When exporting a table, column widths are deduced from the longest cell in
13096each column. You can also define them explicitly as fractions of the line
13097length, using @code{:columns} attribute.
13098
13099@example
13100#+ATTR_TEXINFO: :columns .5 .5
13101| a cell | another cell |
13102@end example
13103
13104@node An example, , Texinfo specific attributes, Texinfo export
13105@subsection An example
13106
13107Here is a thorough example, taken from @inforef{GNU Sample Texts,,texinfo}.
13108
13109@smallexample
13110#+MACRO: version 2.0
13111#+MACRO: updated last updated 4 March 2014
13112
13113#+OPTIONS: ':t toc:t author:t email:t
13114#+TITLE: GNU Sample @{@{@{version@}@}@}
13115#+AUTHOR: A.U. Thor
13116#+EMAIL: bug-sample@@gnu.org
13117#+LANGUAGE: en
13118
13119#+TEXINFO_FILENAME: sample.info
13120#+TEXINFO_HEADER: @@syncodeindex pg cp
13121
13122#+TEXINFO_DIR_CATEGORY: Texinfo documentation system
13123#+TEXINFO_DIR_TITLE: sample: (sample)
13124#+TEXINFO_DIR_DESC: Invoking sample
13125
13126#+TEXINFO_PRINTED_TITLE: GNU Sample
13127#+SUBTITLE: for version 2.0, last updated 4 March 2014
13128
13129* Copying
13130 :PROPERTIES:
13131 :COPYING: t
13132 :END:
13133
13134 This manual is for GNU Sample (version @{@{@{version@}@}@},
13135 @{@{@{updated@}@}@}), which is an example in the Texinfo documentation.
13136
13137 Copyright @@@@texinfo:@@copyright@{@}@@@@ 2013 Free Software Foundation,
13138 Inc.
13139
13140 #+BEGIN_QUOTE
13141 Permission is granted to copy, distribute and/or modify this
13142 document under the terms of the GNU Free Documentation License,
13143 Version 1.3 or any later version published by the Free Software
13144 Foundation; with no Invariant Sections, with no Front-Cover Texts,
13145 and with no Back-Cover Texts. A copy of the license is included in
13146 the section entitled "GNU Free Documentation License".
13147 #+END_QUOTE
13148
13149* Invoking sample
13150
13151 #+PINDEX: sample
13152 #+CINDEX: invoking @@command@{sample@}
13153
13154 This is a sample manual. There is no sample program to invoke, but
13155 if there were, you could see its basic usage and command line
13156 options here.
13157
13158* GNU Free Documentation License
13159 :PROPERTIES:
13160 :APPENDIX: t
13161 :END:
13162
13163 #+TEXINFO: @@include fdl.texi
13164
13165* Index
13166 :PROPERTIES:
13167 :INDEX: cp
13168 :END:
13169@end smallexample
13170
13171@node iCalendar export, Other built-in back-ends, Texinfo export, Exporting
12838@section iCalendar export 13172@section iCalendar export
12839@cindex iCalendar export 13173@cindex iCalendar export
12840 13174
@@ -12912,12 +13246,11 @@ On top of the aforementioned back-ends, Org comes with other built-in ones:
12912 13246
12913@itemize 13247@itemize
12914@item @file{ox-man.el}: export to a man page. 13248@item @file{ox-man.el}: export to a man page.
12915@item @file{ox-texinfo.el}: export to @code{Texinfo} format.
12916@end itemize 13249@end itemize
12917 13250
12918To activate these export back-end, customize @code{org-export-backends} or 13251To activate these export back-end, customize @code{org-export-backends} or
12919load them directly with e.g., @code{(require 'ox-texinfo)}. This will add 13252load them directly with e.g., @code{(require 'ox-man)}. This will add new
12920new keys in the export dispatcher (@pxref{The Export Dispatcher}). 13253keys in the export dispatcher (@pxref{The Export Dispatcher}).
12921 13254
12922See the comment section of these files for more information on how to use 13255See the comment section of these files for more information on how to use
12923them. 13256them.
@@ -13334,7 +13667,6 @@ string of these options for details.
13334@item @code{:headline-levels} @tab @code{org-export-headline-levels} 13667@item @code{:headline-levels} @tab @code{org-export-headline-levels}
13335@item @code{:language} @tab @code{org-export-default-language} 13668@item @code{:language} @tab @code{org-export-default-language}
13336@item @code{:preserve-breaks} @tab @code{org-export-preserve-breaks} 13669@item @code{:preserve-breaks} @tab @code{org-export-preserve-breaks}
13337@item @code{:publishing-directory} @tab @code{org-export-publishing-directory}
13338@item @code{:section-numbers} @tab @code{org-export-with-section-numbers} 13670@item @code{:section-numbers} @tab @code{org-export-with-section-numbers}
13339@item @code{:select-tags} @tab @code{org-export-select-tags} 13671@item @code{:select-tags} @tab @code{org-export-select-tags}
13340@item @code{:with-author} @tab @code{org-export-with-author} 13672@item @code{:with-author} @tab @code{org-export-with-author}
@@ -15473,10 +15805,10 @@ are active:
15473@item @kbd{C-c C-c} @tab @code{org-babel-execute-src-block} 15805@item @kbd{C-c C-c} @tab @code{org-babel-execute-src-block}
15474@kindex C-c C-o 15806@kindex C-c C-o
15475@item @kbd{C-c C-o} @tab @code{org-babel-open-src-block-result} 15807@item @kbd{C-c C-o} @tab @code{org-babel-open-src-block-result}
15476@kindex C-up 15808@kindex M-up
15477@item @kbd{C-@key{up}} @tab @code{org-babel-load-in-session} 15809@item @kbd{M-@key{up}} @tab @code{org-babel-load-in-session}
15478@kindex M-down 15810@kindex M-down
15479@item @kbd{M-@key{down}} @tab @code{org-babel-pop-to-session} 15811@item @kbd{M-@key{down}} @tab @code{org-babel-switch-to-session}
15480@end multitable 15812@end multitable
15481 15813
15482In an Org mode buffer, the following key bindings are active: 15814In an Org mode buffer, the following key bindings are active:
@@ -18208,7 +18540,6 @@ org-customize @key{RET}} and then click yourself through the tree.
18208@bye 18540@bye
18209 18541
18210@c Local variables: 18542@c Local variables:
18211@c coding: utf-8
18212@c fill-column: 77 18543@c fill-column: 77
18213@c indent-tabs-mode: nil 18544@c indent-tabs-mode: nil
18214@c paragraph-start: "\\|^@[a-zA-Z]*[ \n]\\|^@x?org\\(key\\|cmd\\)\\|\f\\|[ ]*$" 18545@c paragraph-start: "\\|^@[a-zA-Z]*[ \n]\\|^@x?org\\(key\\|cmd\\)\\|\f\\|[ ]*$"
diff --git a/doc/misc/vhdl-mode.texi b/doc/misc/vhdl-mode.texi
index 35c6e0b130e..39bdcac5139 100644
--- a/doc/misc/vhdl-mode.texi
+++ b/doc/misc/vhdl-mode.texi
@@ -212,7 +212,7 @@ indented relative to buffer position 20, which is the @samp{b} in the
212 212
213@cindex comment only line 213@cindex comment only line
214Syntactic component lists can contain more than one component, and 214Syntactic component lists can contain more than one component, and
215individual syntactic compenents need not have relative buffer positions. 215individual syntactic components need not have relative buffer positions.
216The most common example of this is a line that contains a @dfn{comment 216The most common example of this is a line that contains a @dfn{comment
217only line}. 217only line}.
218@example 218@example
@@ -416,7 +416,7 @@ to:
416@end group 416@end group
417@end example 417@end example
418 418
419In other words, we want to change the indentation of the statments 419In other words, we want to change the indentation of the statements
420inside the inverter process. Notice that the construct we want to 420inside the inverter process. Notice that the construct we want to
421change starts on line 3. To change the indentation of a line, we need 421change starts on line 3. To change the indentation of a line, we need
422to see which syntactic component affect the offset calculations for that 422to see which syntactic component affect the offset calculations for that
@@ -630,7 +630,7 @@ using @code{vhdl-set-style}.
630@findex set-offset (vhdl-) 630@findex set-offset (vhdl-)
631Another variable, @code{vhdl-file-offsets}, takes an association list 631Another variable, @code{vhdl-file-offsets}, takes an association list
632similar to what is allowed in @code{vhdl-offsets-alist}. When the file is 632similar to what is allowed in @code{vhdl-offsets-alist}. When the file is
633visited, VHDL Mode will automatically institute these offets using 633visited, VHDL Mode will automatically institute these offsets using
634@code{vhdl-set-offset}. @xref{Customizing Indentation}. 634@code{vhdl-set-offset}. @xref{Customizing Indentation}.
635 635
636Note that file style settings (i.e. @code{vhdl-file-style}) are applied 636Note that file style settings (i.e. @code{vhdl-file-style}) are applied
@@ -648,7 +648,7 @@ before file offset settings (i.e. @code{vhdl-file-offsets}).
648For most users, VHDL Mode will support their coding styles with 648For most users, VHDL Mode will support their coding styles with
649very little need for customizations. Usually, one of the standard 649very little need for customizations. Usually, one of the standard
650styles defined in @code{vhdl-style-alist} will do the trick. Sometimes, 650styles defined in @code{vhdl-style-alist} will do the trick. Sometimes,
651one of the syntactic symbol offsets will need to be tweeked slightly, or 651one of the syntactic symbol offsets will need to be tweaked slightly, or
652perhaps @code{vhdl-basic-offset} will need to be changed. However, some 652perhaps @code{vhdl-basic-offset} will need to be changed. However, some
653styles require a more advanced ability for customization, and one of the 653styles require a more advanced ability for customization, and one of the
654real strengths of VHDL Mode is that the syntactic analysis model 654real strengths of VHDL Mode is that the syntactic analysis model
diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi
index 2b255eefcca..a6c6d3067ea 100644
--- a/doc/misc/vip.texi
+++ b/doc/misc/vip.texi
@@ -1561,7 +1561,7 @@ assigned to a function that just beeps (@code{vip-nil}).
1561@end example 1561@end example
1562 1562
1563VIP uses a special local keymap to interpret key strokes you enter in vi 1563VIP uses a special local keymap to interpret key strokes you enter in vi
1564mode. The following keys are bound to @var{nil} in the keymap. Therefore, 1564mode. The following keys are bound to @code{nil} in the keymap. Therefore,
1565these keys are interpreted by the global keymap of Emacs. We give below a 1565these keys are interpreted by the global keymap of Emacs. We give below a
1566short description of the functions bound to these keys in the global 1566short description of the functions bound to these keys in the global
1567keymap. See GNU Emacs Manual for details. 1567keymap. See GNU Emacs Manual for details.