diff options
| author | Eli Zaretskii | 2014-10-14 21:10:37 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2014-10-14 21:10:37 +0300 |
| commit | e3060a0c4d2f418ac786775109d71e5843ccf42e (patch) | |
| tree | 347b37fc39d0db9cd23b3e9f79ee81b4bbc40f08 /doc | |
| parent | 1a3eca0656bdb764200e10a4f264138e94b1f3ce (diff) | |
| parent | 980d78b3587560c13a46aef352ed8d5ed744acf6 (diff) | |
| download | emacs-e3060a0c4d2f418ac786775109d71e5843ccf42e.tar.gz emacs-e3060a0c4d2f418ac786775109d71e5843ccf42e.zip | |
Merge from trunk and resolve conflicts.
Diffstat (limited to 'doc')
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 @@ | |||
| 1 | 2014-10-13 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * Makefile.in (dist): Update for new output variables. | ||
| 4 | |||
| 5 | 2014-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 | |||
| 10 | 2014-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 | |||
| 15 | 2014-10-05 Glenn Morris <rgm@gnu.org> | ||
| 16 | |||
| 17 | * misc.texi (Sorting): | ||
| 18 | * search.texi (Query Replace): Markup fixes. | ||
| 19 | |||
| 20 | 2014-10-04 Martin Rudalics <rudalics@gmx.at> | ||
| 21 | |||
| 22 | * frames.texi (Scroll Bars): Describe use of horizontal scroll bars. | ||
| 23 | |||
| 24 | 2014-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 | |||
| 34 | 2014-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 | |||
| 40 | 2014-10-02 Glenn Morris <rgm@gnu.org> | ||
| 41 | |||
| 42 | * package.texi (Package Installation): Mention etc/package-keyring.gpg. | ||
| 43 | |||
| 44 | 2014-09-29 Eli Zaretskii <eliz@gnu.org> | ||
| 45 | |||
| 46 | * emacsver.texi (EMACSVER): Bump to 20.0.50. | ||
| 47 | |||
| 48 | 2014-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 | |||
| 1 | 2014-08-07 Reuben Thomas <rrt@sc3d.org> | 53 | 2014-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 | ||
| 10121 | 2003-11-22 Martin Stjernholm <bug-cc-mode@gnu.org> | 10173 | 2003-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. | ||
| 212 | dist: | 213 | dist: |
| 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 |
| 988 | tool bar when it processes the specified geometry. | 988 | tool 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}, |
| 991 | or @samp{--fullheight} there may be some space around the frame | 991 | @samp{--fullwidth} or @samp{--fullheight}, some window managers require |
| 992 | anyway. That is because Emacs rounds the sizes so they are an | 992 | you to set the variable @code{frame-resize-pixelwise} to a non-@code{nil} |
| 993 | even number of character heights and widths. | 993 | value 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 |
| 996 | program-specified and user-specified positions. If these are set, | 996 | program-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} |
| 1110 | Open Emacs as a client X window via the XEmbed protocol, with @var{ID} | 1110 | Open Emacs as a client X window via the XEmbed protocol, with @var{id} |
| 1111 | as the parent X window id. Currently, this option is mainly useful | 1111 | as the parent X window id. Currently, this option is mainly useful |
| 1112 | for developers. | 1112 | for 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 | |||
| 1245 | following the buffer percentage like this: | 1245 | following 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 |
| 1252 | Here @var{SIZE} is the human readable representation of the number of | 1252 | Here @var{size} is the human readable representation of the number of |
| 1253 | characters in the buffer, which means that @samp{k} for 10^3, @samp{M} | 1253 | characters in the buffer, which means that @samp{k} for 10^3, @samp{M} |
| 1254 | for 10^6, @samp{G} for 10^9, etc., are used to abbreviate. | 1254 | for 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 | |||
| 469 | Emacs itself.) | 469 | Emacs itself.) |
| 470 | @end table | 470 | @end table |
| 471 | 471 | ||
| 472 | Note that with some window managers you may have to customize the | ||
| 473 | variable @code{frame-resize-pixelwise} to a non-@code{nil} value in | ||
| 474 | order 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 |
| 473 | frame. However, it will refuse to delete the last frame in an Emacs | 477 | frame. However, it will refuse to delete the last frame in an Emacs |
| 474 | session, to prevent you from losing the ability to interact with the | 478 | session, 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 |
| 905 | each Emacs window. Clicking @kbd{Mouse-1} on the scroll bar's up and | 910 | side of each Emacs window. Clicking @kbd{Mouse-1} on the scroll bar's |
| 906 | down buttons scrolls the window by one line at a time. Clicking | 911 | up 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 |
| 908 | window by nearly the entire height of the window, like @kbd{M-v} and | 913 | window 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 |
| 921 | This command applies to all frames, including frames yet to be | 926 | scroll-bar-mode}. This command applies to all frames, including frames |
| 922 | created. To toggle scroll bars for just the selected frame, use the | 927 | yet to be created. To toggle vertical scroll bars for just the selected |
| 923 | command @kbd{M-x toggle-scroll-bar}. | 928 | frame, 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 | 932 | variable @code{scroll-bar-mode}. Its value should be either |
| 928 | scroll 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} |
| 929 | the left), or @code{nil} (disable scroll bars). By default, Emacs | 934 | (put them on the left), or @code{nil} (disable vertical scroll bars). |
| 930 | puts scroll bars on the right if it was compiled with GTK+ support on | 935 | By default, Emacs puts scroll bars on the right if it was compiled with |
| 931 | the X Window System, and on MS-Windows or Mac OS; Emacs puts scroll | 936 | GTK+ support on the X Window System, and on MS-Windows or Mac OS; Emacs |
| 932 | bars on the left if compiled on the X Window System without GTK+ | 937 | puts scroll bars on the left if compiled on the X Window System without |
| 933 | support (following the old convention for X applications). | 938 | GTK+ 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 |
| 938 | or disable the scroll bars (@pxref{Resources}). To control the scroll | 943 | or disable the scroll bars (@pxref{Resources}). To control the scroll |
| 939 | bar width, change the @code{scroll-bar-width} frame parameter | 944 | bar 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 | |||
| 950 | bottom when the end of the buffer is shown. You can not over-scroll | 955 | bottom when the end of the buffer is shown. You can not over-scroll |
| 951 | when the entire buffer is visible. | 956 | when 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 | ||
| 963 | the window horizontally by one column at a time. Clicking @kbd{Mouse-1} | ||
| 964 | on the left or right of the scroll bar's inner box scrolls the window by | ||
| 965 | four columns. Dragging the inner box scrolls the window continuously. | ||
| 966 | |||
| 967 | Note that such horizontal scrolling can make the window's position of | ||
| 968 | point disappear on the left or the right. Typing a character to insert | ||
| 969 | text or moving point with a keyboard command will usually bring it back | ||
| 970 | into view. | ||
| 971 | |||
| 972 | @findex horizontal-scroll-bar-mode | ||
| 973 | To toggle the use of horizontal scroll bars, type @kbd{M-x | ||
| 974 | horizontal-scroll-bar-mode}. This command applies to all frames, | ||
| 975 | including frames yet to be created. To toggle horizontal scroll bars | ||
| 976 | for just the selected frame, use the command @kbd{M-x | ||
| 977 | toggle-horizontal-scroll-bar}. | ||
| 978 | |||
| 979 | @vindex horizontal-scroll-bar-mode | ||
| 980 | To control the use of horizontal scroll bars at startup, customize the | ||
| 981 | variable @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 | ||
| 986 | or disable horizontal scroll bars (@pxref{Resources}). To control the | ||
| 987 | scroll 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}). | |||
| 129 | Find packages by topic keyword (@code{finder-by-keyword}). This lists | 129 | Find packages by topic keyword (@code{finder-by-keyword}). This lists |
| 130 | packages using a package menu buffer. @xref{Packages}. | 130 | packages 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} |
| 132 | Display documentation about the package named @var{package} | 132 | Display documentation about the specified package |
| 133 | (@code{describe-package}). | 133 | (@code{describe-package}). |
| 134 | @item C-h r | 134 | @item C-h r |
| 135 | Display the Emacs manual in Info (@code{info-emacs-manual}). | 135 | Display 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} |
| 756 | Insert @var{string} on each line of the rectangle. | 756 | Insert @var{string} on each line of the rectangle. |
| 757 | @item C-x @key{SPC} | ||
| 758 | Toggle Rectangle Mark mode (@code{rectangle-mark-mode}). | ||
| 759 | When this mode is active, the region-rectangle is highlighted and can | ||
| 760 | be 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. | |||
| 840 | shifting the original text to the right. | 844 | shifting 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 | 848 | whether 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, |
| 846 | 24.4, and most commands now are still unaware of it, but kill and yank | 850 | commands that resize the region (@kbd{C-f}, @kbd{C-n} etc.) do |
| 847 | (@pxref{Killing}) do work on the rectangle. | 851 | so in a rectangular fashion, and killing and yanking operate on the |
| 852 | rectangle. @xref{Killing}. The mode persists only as long as the | ||
| 853 | region 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 | |||
| 887 | of each line in the rectangle (on the same side as the cursor). | 893 | of 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 |
| 893 | registers by providing a one-digit numeric prefix to the kill, copy, | 900 | registers 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 | |||
| 12 | Mac OS X with native window system support. On Mac OS X, Emacs can be | 12 | Mac OS X with native window system support. On Mac OS X, Emacs can be |
| 13 | built either without window system support, with X11, or with the | 13 | built either without window system support, with X11, or with the |
| 14 | Cocoa interface; this section only applies to the Cocoa build. This | 14 | Cocoa interface; this section only applies to the Cocoa build. This |
| 15 | does not support versions of Mac OS X earlier than 10.4. | 15 | does 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 | |||
| 84 | they would when launched from the shell. | 84 | they would when launched from the shell. |
| 85 | 85 | ||
| 86 | For the PATH and MANPATH variables, a system-wide method | 86 | For the PATH and MANPATH variables, a system-wide method |
| 87 | of setting PATH is recommended on Mac OS X 10.5 and later, using the | 87 | of 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 |
| 121 | In Mac OS X 10.5 and later, Emacs uses a Core Text based font backend | 121 | In Mac OS X, Emacs uses a Core Text based font backend |
| 122 | by default. If you prefer the older font style, enter the following | 122 | by default. If you prefer the older font style, enter the following |
| 123 | at the command-line before starting Emacs: | 123 | at 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 | |||
| 1610 | edit the server buffers within Emacs, and they are @emph{not} killed | 1610 | edit the server buffers within Emacs, and they are @emph{not} killed |
| 1611 | when you type @kbd{C-x #} in them. | 1611 | when you type @kbd{C-x #} in them. |
| 1612 | 1612 | ||
| 1613 | @item --parent-id @var{ID} | 1613 | @item --parent-id @var{id} |
| 1614 | Open an @command{emacsclient} frame as a client frame in the parent X | 1614 | Open an @command{emacsclient} frame as a client frame in the parent X |
| 1615 | window with id @var{ID}, via the XEmbed protocol. Currently, this | 1615 | window with id @var{id}, via the XEmbed protocol. Currently, this |
| 1616 | option is mainly useful for developers. | 1616 | option 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}, | |||
| 1935 | identify a @dfn{sort key} for each record, and then reorder the records | 1935 | identify a @dfn{sort key} for each record, and then reorder the records |
| 1936 | into the order determined by the sort keys. The records are ordered so | 1936 | into the order determined by the sort keys. The records are ordered so |
| 1937 | that their keys are in alphabetical order, or, for numeric sorting, in | 1937 | that their keys are in alphabetical order, or, for numeric sorting, in |
| 1938 | numeric order. In alphabetic sorting, all upper-case letters `A' through | 1938 | numeric order. In alphabetic sorting, all upper-case letters @samp{A} |
| 1939 | `Z' come before lower-case `a', in accord with the @acronym{ASCII} character | 1939 | through @samp{Z} come before lower-case @samp{a}, in accordance with the |
| 1940 | sequence. | 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 |
| 1943 | records and in which part of each record is used as the sort key. Most of | 1943 | records 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 |
| 61 | The package's status---normally one of @samp{available} (can be | 61 | The package's status---normally one of @samp{available} (can be |
| 62 | downloaded from the package archive), @samp{installed}, | 62 | downloaded 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}), |
| 64 | or @samp{built-in} (included in Emacs by default). | 64 | or @samp{built-in} (included in Emacs by default). |
| 65 | 65 | ||
| 66 | The status can also be @samp{new}. This is equivalent to | 66 | The 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/}. | |||
| 184 | Use @kbd{M-x package-import-keyring} to import the key into Emacs. | 184 | Use @kbd{M-x package-import-keyring} to import the key into Emacs. |
| 185 | Emacs stores package keys in the @file{gnupg} subdirectory | 185 | Emacs stores package keys in the @file{gnupg} subdirectory |
| 186 | of @code{package-user-dir}. | 186 | of @code{package-user-dir}. |
| 187 | @c Uncomment this if it becomes true. | ||
| 188 | @ignore | ||
| 189 | The public key for the GNU package archive is distributed with Emacs, | 187 | The public key for the GNU package archive is distributed with Emacs, |
| 190 | in the @file{etc/package-keyring.gpg}. Emacs uses it automatically. | 188 | in 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 |
| 153 | after, without activating it. With a numeric argument, it instead | 153 | before, without activating it. With a numeric argument, it instead |
| 154 | puts point after the text and the mark before. | 154 | puts 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)} |
| 1339 | to replace all remaining occurrences in all remaining buffers in | 1339 | to replace all remaining occurrences in all remaining buffers in |
| 1340 | multi-buffer replacements (like the Dired `Q' command which performs | 1340 | multi-buffer replacements (like the Dired @key{Q} command that performs |
| 1341 | query replace on selected files). It answers this question and all | 1341 | query replace on selected files). It answers this question and all |
| 1342 | subsequent questions in the series with "yes", without further | 1342 | subsequent questions in the series with "yes", without further |
| 1343 | user interaction. | 1343 | user 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 | |||
| 113 | schedule the deletion for committing. | 113 | schedule the deletion for committing. |
| 114 | 114 | ||
| 115 | @item M-x vc-rename-file | 115 | @item M-x vc-rename-file |
| 116 | Prompt for two file names, @var{VAR} and @var{OLD}, rename them in the | 116 | Prompt for two file names, @var{var} and @var{old}, rename them in the |
| 117 | working tree, and schedule the renaming for committing. | 117 | working 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 @@ | |||
| 1 | 2014-10-13 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * Makefile.in (dist): Update for new output variables. | ||
| 4 | |||
| 1 | 2014-07-16 Álvar Jesús Ibeas Martín <alvar.ibeas@unican.es> (tiny change) | 5 | 2014-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 @@ | |||
| 1 | 2014-10-13 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * Makefile.in (dist): Update for new output variables. | ||
| 4 | |||
| 5 | 2014-10-12 Glenn Morris <rgm@gnu.org> | ||
| 6 | |||
| 7 | * elisp.texi (DATE): Bump to October 2014. | ||
| 8 | |||
| 9 | 2014-10-09 Glenn Morris <rgm@gnu.org> | ||
| 10 | |||
| 11 | * frames.texi (Multiple Terminals): Copyedits. | ||
| 12 | |||
| 13 | 2014-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 | |||
| 26 | 2014-10-08 Leo Liu <sdl.web@gmail.com> | ||
| 27 | |||
| 28 | * streams.texi (Output Functions): Document new argument ENSURE to | ||
| 29 | terpri. (Bug#18652) | ||
| 30 | |||
| 31 | 2014-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 | |||
| 42 | 2014-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 | |||
| 57 | 2014-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 | |||
| 63 | 2014-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 | |||
| 74 | 2014-09-30 Paul Eggert <eggert@cs.ucla.edu> | ||
| 75 | |||
| 76 | * internals.texi (Stack-allocated Objects): Further improvements. | ||
| 77 | Give an example of misuse. | ||
| 78 | |||
| 79 | 2014-09-30 Eli Zaretskii <eliz@gnu.org> | ||
| 80 | |||
| 81 | * internals.texi (Stack-allocated Objects): Minor improvements of | ||
| 82 | the wording and the indexing. | ||
| 83 | |||
| 84 | 2014-09-30 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 85 | |||
| 86 | * internals.texi (Stack-allocated Objects): Describe this feature. | ||
| 87 | |||
| 88 | 2014-09-15 Daniel Colascione <dancol@dancol.org> | ||
| 89 | |||
| 90 | * text.texi (Registers): Make `insert-register' documentation | ||
| 91 | reflect interface change. | ||
| 92 | |||
| 93 | 2014-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 | |||
| 98 | 2014-09-07 Michael Albinus <michael.albinus@gmx.de> | ||
| 99 | |||
| 100 | * strings.texi (Text Comparison): Describe `string-collate-equalp' | ||
| 101 | and `string-collate-lessp'. | ||
| 102 | |||
| 103 | 2014-09-06 Leo Liu <sdl.web@gmail.com> | ||
| 104 | |||
| 105 | * control.texi (Pattern matching case statement): Document vector | ||
| 106 | qpattern. (Bug#18327) | ||
| 107 | |||
| 108 | 2014-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 | |||
| 115 | 2014-08-28 Eli Zaretskii <eliz@gnu.org> | ||
| 116 | |||
| 117 | * display.texi (Bidirectional Display): Update the Emacs's class | ||
| 118 | of bidirectional conformance. | ||
| 119 | |||
| 120 | 2014-08-27 Dmitry Antipov <dmantipov@yandex.ru> | ||
| 121 | |||
| 122 | * eval.texi (Eval): Mention possible recovery from stack overflow. | ||
| 123 | |||
| 1 | 2014-10-13 Eli Zaretskii <eliz@gnu.org> | 124 | 2014-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 |
| 865 | This function returns the last buffer in @var{frame}'s buffer list other | 865 | This function returns the last buffer in @var{frame}'s buffer list other |
| 866 | than @var{BUFFER}. If @var{frame} is omitted or @code{nil}, it uses the | 866 | than @var{buffer}. If @var{frame} is omitted or @code{nil}, it uses the |
| 867 | selected frame's buffer list. | 867 | selected frame's buffer list. |
| 868 | 868 | ||
| 869 | The argument @var{visible-ok} is handled as with @code{other-buffer}, | 869 | The 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 | ||
| 591 | The macro @code{define-alternatives} can be used to define | 591 | The 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 |
| 593 | whose implementation can be selected among several alternatives, as a | 593 | implementation can be selected from several alternatives, as a matter |
| 594 | matter of user preference. | 594 | of user preference. |
| 595 | 595 | ||
| 596 | @defmac define-alternatives command &rest customizations | 596 | @defmac define-alternatives command &rest customizations |
| 597 | Define the new command `COMMAND'. | 597 | Define the new command @var{command}, a symbol. |
| 598 | 598 | ||
| 599 | The argument `COMMAND' should be a symbol. | 599 | When a user runs @kbd{M-x @var{command} @key{RET}} for the first time, |
| 600 | Emacs prompts for which real form of the command to use, and records | ||
| 601 | the selection by way of a custom variable. Using a prefix argument | ||
| 602 | repeats this process of choosing an alternative. | ||
| 600 | 603 | ||
| 601 | When a user runs @kbd{M-x COMMAND @key{RET}} for the first time, Emacs | 604 | The variable @code{@var{command}-alternatives} should contain an alist |
| 602 | will prompt for which alternative to use and record the selected | 605 | with alternative implementations of @var{command}. |
| 603 | command as a custom variable. | 606 | Until this variable is set, @code{define-alternatives} has no effect. |
| 604 | 607 | ||
| 605 | Running @kbd{C-u M-x COMMAND @key{RET}} prompts again for an | 608 | If @var{customizations} is non-@code{nil}, it should consist of |
| 606 | alternative and overwrites the previous choice. | 609 | alternating @code{defcustom} keywords (typically @code{:group} and |
| 607 | 610 | @code{:version}) and values to add to the declaration of | |
| 608 | The 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 | ||
| 611 | this variable is set. | ||
| 612 | |||
| 613 | If @var{customizations} is non-@var{nil}, it should be composed of | ||
| 614 | alternating @code{defcustom} keywords and values to add to the | ||
| 615 | declaration 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 | ||
| 340 | Where @code{`(add ,x ,y)} is a pattern that checks that @code{exp} is a three | 340 | Where @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}) |
| 371 | This pattern matches any cons cell whose @code{car} matches @var{QPATTERN1} and | 371 | This pattern matches any cons cell whose @code{car} matches @var{QPATTERN1} and |
| 372 | whose @code{cdr} matches @var{PATTERN2}. | 372 | whose @code{cdr} matches @var{PATTERN2}. |
| 373 | @item [@var{qpattern1 qpattern2..qpatternm}] | ||
| 374 | This pattern matches a vector of length @code{M} whose 0..(M-1)th | ||
| 375 | elements match @var{QPATTERN1}, @var{QPATTERN2}..@var{QPATTERNm}, | ||
| 376 | respectively. | ||
| 373 | @item @var{atom} | 377 | @item @var{atom} |
| 374 | This pattern matches any atom @code{equal} to @var{atom}. | 378 | This 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 |
| 3867 | is used. | 3867 | is 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 | ||
| 3873 | Normally the frame parameter @code{vertical-scroll-bars} controls | 3874 | Normally the frame parameter @code{vertical-scroll-bars} controls |
| 3874 | whether the windows in the frame have vertical scroll bars, and | 3875 | whether the windows in the frame have vertical scroll bars, and whether |
| 3875 | whether they are on the left or right. The frame parameter | 3876 | they 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 |
| 3877 | meaning the default). @xref{Layout Parameters}. | 3878 | the default). |
| 3879 | |||
| 3880 | The frame parameter @code{horizontal-scroll-bars} controls whether | ||
| 3881 | the windows in the frame have horizontal scroll bars. The frame | ||
| 3882 | parameter @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 | ||
| 3887 | function @code{horizontal-scroll-bars-available-p} which takes no | ||
| 3888 | argument returns non-@code{nil} if they are available on your system. | ||
| 3889 | |||
| 3890 | The following three functions take as argument a live frame which | ||
| 3891 | defaults to the selected one. | ||
| 3878 | 3892 | ||
| 3879 | @defun frame-current-scroll-bars &optional frame | 3893 | @defun frame-current-scroll-bars &optional frame |
| 3880 | This function reports the scroll bar type settings for frame | 3894 | This function reports the scroll bar types for frame @var{frame}. The |
| 3881 | @var{frame}. The value is a cons cell | 3895 | value 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 | 3898 | bar.) @var{horizontal-type} is either @code{bottom} or @code{nil} |
| 3885 | specify the horizontal scroll bar type, but since they are not | 3899 | (which means no horizontal scroll bar). |
| 3886 | implemented, 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, | ||
| 3891 | by setting the variable @code{vertical-scroll-bar}. This variable | ||
| 3892 | automatically becomes buffer-local when set. The possible values are | ||
| 3893 | @code{left}, @code{right}, @code{t}, which means to use the | ||
| 3894 | frame'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: | 3903 | This function returns the width of vertical scroll bars of @var{frame} |
| 3904 | in 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 |
| 3900 | This function sets the width and type of scroll bars for window | 3908 | This 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 | 3912 | You can override the frame specific settings for individual windows by |
| 3904 | use the width specified for the frame). @var{vertical-type} specifies | 3913 | using the following function: |
| 3905 | whether to have a vertical scroll bar and, if so, where. The possible | ||
| 3906 | values are @code{left}, @code{right} and @code{nil}, just like the | ||
| 3907 | values of the @code{vertical-scroll-bars} frame parameter. | ||
| 3908 | 3914 | ||
| 3909 | The argument @var{horizontal-type} is meant to specify whether and | 3915 | @defun set-window-scroll-bars window &optional width vertical-type height horizontal-type |
| 3910 | where to have horizontal scroll bars, but since they are not | 3916 | This function sets the width and/or height and the types of scroll bars |
| 3911 | implemented, it has no effect. If @var{window} is @code{nil}, the | 3917 | for window @var{window}. |
| 3912 | selected 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, | ||
| 3922 | if 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 | ||
| 3924 | vertical 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. | ||
| 3929 | The possible values are @code{bottom}, @code{t}, which means to use the | ||
| 3930 | frame's default, and @code{nil} for no horizontal scroll bar. | ||
| 3931 | |||
| 3932 | If @var{window} is @code{nil}, the selected window is used. | ||
| 3913 | @end defun | 3933 | @end defun |
| 3914 | 3934 | ||
| 3935 | The following four functions take as argument a live window which | ||
| 3936 | defaults to the selected one. | ||
| 3937 | |||
| 3915 | @defun window-scroll-bars &optional window | 3938 | @defun window-scroll-bars &optional window |
| 3916 | Report the width and type of scroll bars specified for @var{window}. | 3939 | This function returns a list of the form @code{(@var{width} |
| 3917 | If @var{window} is omitted or @code{nil}, the selected window is used. | 3940 | @var{columns} @var{vertical-type} @var{height} @var{lines} |
| 3918 | The 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 | ||
| 3921 | be @code{nil}); @var{cols} is the number of columns that the scroll | ||
| 3922 | bar actually occupies. | ||
| 3923 | 3942 | ||
| 3924 | @var{horizontal-type} is not actually meaningful. | 3943 | The value @var{width} is the value that was specified for the width of |
| 3944 | the vertical scroll bar (which may be @code{nil}); @var{columns} is the | ||
| 3945 | (possibly rounded) number of columns that the vertical scroll bar | ||
| 3946 | actually occupies. | ||
| 3947 | |||
| 3948 | The value @var{height} is the value that was specified for the height of | ||
| 3949 | the horizontal scroll bar (which may be @code{nil}); @var{lines} is the | ||
| 3950 | (possibly rounded) number of lines that the horizontally scroll bar | ||
| 3951 | actually occupies. | ||
| 3952 | @end defun | ||
| 3953 | |||
| 3954 | @defun window-current-scroll-bars &optional window | ||
| 3955 | This function reports the scroll bar type for window @var{window}. The | ||
| 3956 | value is a cons cell @code{(@var{vertical-type} .@: | ||
| 3957 | @var{horizontal-type})}. Unlike @code{window-scroll-bars}, this reports | ||
| 3958 | the 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 |
| 3928 | This function returns the width of @var{window}'s vertical scrollbar, | 3963 | This function returns the width in pixels of @var{window}'s vertical |
| 3929 | in pixels. @var{window} must be a live window. If @var{window} is | 3964 | scrollbar. |
| 3930 | @code{nil} or omitted, it will be the selected window. | 3965 | @end defun |
| 3966 | |||
| 3967 | @defun window-scroll-bar-height &optional window | ||
| 3968 | This function returns the height in pixels of @var{window}'s horizontal | ||
| 3969 | scrollbar. | ||
| 3931 | @end defun | 3970 | @end defun |
| 3932 | 3971 | ||
| 3933 | If you don't specify these values for a window with | 3972 | If 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}, |
| 3936 | displayed control the window's vertical scroll bars. The function | 3975 | @code{scroll-bar-width} and @code{scroll-bar-height} in the buffer being |
| 3976 | displayed 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 |
| 3938 | in a buffer that is already visible in a window, you can make the | 3978 | in a buffer that is already visible in a window, you can make the window |
| 3939 | window take note of the new values by calling @code{set-window-buffer} | 3979 | take note of the new values by calling @code{set-window-buffer} |
| 3940 | specifying the same buffer that is already displayed. | 3980 | specifying the same buffer that is already displayed. |
| 3941 | 3981 | ||
| 3942 | @defopt scroll-bar-mode | 3982 | You can control the appearance of scroll bars for a particular buffer by |
| 3943 | This variable, always local in all buffers, controls whether and where | 3983 | setting the following variables which automatically become buffer-local |
| 3944 | to put scroll bars in windows displaying the buffer. The possible values | 3984 | when set. |
| 3945 | are @code{nil} for no scroll bar, @code{left} to put a scroll bar on | ||
| 3946 | the 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 |
| 3950 | This function reports the scroll bar type for window @var{window}. | 3987 | This variable specifies the location of the vertical scroll bar. The |
| 3951 | If @var{window} is omitted or @code{nil}, the selected window is used. | 3988 | possible values are @code{left}, @code{right}, @code{t}, which means to |
| 3952 | The value is a cons cell | 3989 | use 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 | |
| 3955 | used, once frame defaults and @code{scroll-bar-mode} are taken into | 3992 | @defvar horizontal-scroll-bar |
| 3956 | account. | 3993 | This variable specifies the location of the horizontal scroll bar. The |
| 3957 | @end defun | 3994 | possible values are @code{bottom}, @code{t}, which means to use the |
| 3995 | frame's default, and @code{nil} for no scroll bar. | ||
| 3996 | @end defvar | ||
| 3958 | 3997 | ||
| 3959 | @defvar scroll-bar-width | 3998 | @defvar scroll-bar-width |
| 3960 | This variable, always local in all buffers, specifies the width of the | 3999 | This variable specifies the width of the buffer's vertical scroll bars, |
| 3961 | buffer's scroll bars, measured in pixels. A value of @code{nil} means | 4000 | measured in pixels. A value of @code{nil} means to use the value |
| 3962 | to use the value specified by the frame. | 4001 | specified by the frame. |
| 3963 | @end defvar | 4002 | @end defvar |
| 3964 | 4003 | ||
| 4004 | @defvar scroll-bar-height | ||
| 4005 | This variable specifies the height of the buffer's horizontal scroll | ||
| 4006 | bar, measured in pixels. A value of @code{nil} means to use the value | ||
| 4007 | specified by the frame. | ||
| 4008 | @end defvar | ||
| 4009 | |||
| 4010 | Finally you can toggle the display of scroll bars on all frames by | ||
| 4011 | customizing the variables @code{scroll-bar-mode} and | ||
| 4012 | @code{horizontal-scroll-bar-mode}. | ||
| 4013 | |||
| 4014 | @defopt scroll-bar-mode | ||
| 4015 | This variable controls whether and where to put vertical scroll bars in | ||
| 4016 | all 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 | ||
| 4018 | scroll bars on the right. | ||
| 4019 | @end defopt | ||
| 4020 | |||
| 4021 | @defopt horizontal-scroll-bar-mode | ||
| 4022 | This variable controls whether to display horizontal scroll bars on all | ||
| 4023 | frames. | ||
| 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})}, |
| 4505 | where @var{props} is a property list of alternating keyword symbols | 4567 | where @var{props} is a property list of alternating keyword symbols |
| 4506 | and values, including at least the pair @code{:type @var{TYPE}} which | 4568 | and values, including at least the pair @code{:type @var{type}} that |
| 4507 | specifies the image type. | 4569 | specifies 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}. | |||
| 4995 | Each specification in @var{specs} is a property list with contents | 5057 | Each specification in @var{specs} is a property list with contents |
| 4996 | depending on image type. All specifications must at least contain the | 5058 | depending on image type. All specifications must at least contain the |
| 4997 | properties @code{:type @var{type}} and either @w{@code{:file @var{file}}} | 5059 | properties @code{:type @var{type}} and either @w{@code{:file @var{file}}} |
| 4998 | or @w{@code{:data @var{DATA}}}, where @var{type} is a symbol specifying | 5060 | or @w{@code{:data @var{data}}}, where @var{type} is a symbol specifying |
| 4999 | the image type, e.g., @code{xbm}, @var{file} is the file to load the | 5061 | the image type, e.g., @code{xbm}, @var{file} is the file to load the |
| 5000 | image from, and @var{data} is a string containing the actual image data. | 5062 | image from, and @var{data} is a string containing the actual image data. |
| 5001 | The first specification in the list whose @var{type} is supported, and | 5063 | The 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"}). | |||
| 805 | This limit, with the associated error when it is exceeded, is one way | 805 | This limit, with the associated error when it is exceeded, is one way |
| 806 | Emacs Lisp avoids infinite recursion on an ill-defined function. If | 806 | Emacs Lisp avoids infinite recursion on an ill-defined function. If |
| 807 | you increase the value of @code{max-lisp-eval-depth} too much, such | 807 | you increase the value of @code{max-lisp-eval-depth} too much, such |
| 808 | code can cause stack overflow instead. | 808 | code can cause stack overflow instead. On some systems, this overflow |
| 809 | can be handled. In that case, normal Lisp evaluation is interrupted | ||
| 810 | and control is transferred back to the top level command loop | ||
| 811 | (@code{top-level}). Note that there is no way to enter Emacs Lisp | ||
| 812 | debugger in this situation. @xref{Error Debugging}. | ||
| 813 | |||
| 809 | @cindex Lisp nesting error | 814 | @cindex Lisp nesting error |
| 810 | 815 | ||
| 811 | The depth limit counts internal uses of @code{eval}, @code{apply}, and | 816 | The 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 |
| 132 | the frame that was selected when @code{make-frame} was called. | 132 | the frame that was selected when @code{make-frame} was called. |
| 133 | 133 | ||
| 134 | Note that on multi-monitor displays (@pxref{Multiple Terminals}), the | ||
| 135 | window manager might position the frame differently than specified by | ||
| 136 | the positional parameters in @var{alist} (@pxref{Position | ||
| 137 | Parameters}). For example, some window managers have a policy of | ||
| 138 | displaying the frame on the monitor that contains the largest part of | ||
| 139 | the window (a.k.a.@: the @dfn{dominating} monitor). | ||
| 140 | |||
| 134 | This function itself does not make the new frame the selected frame. | 141 | This 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. |
| 136 | On graphical terminals, however, the windowing system may select the | 143 | On 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 | |||
| 258 | terminals, by interacting with the @command{emacsclient} program. | 265 | terminals, 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 |
| 262 | has a three-part name, @samp{@var{host}:@var{server}.@var{screen}}. | 271 | has a three-part name, |
| 263 | The first two parts, @var{host} and @var{server}, identify the X | 272 | @samp{@var{hostname}:@var{displaynumber}.@var{screennumber}}. The |
| 264 | server; the third part, @var{screen}, identifies a screen number on | 273 | first part, @var{hostname}, specifies the name of the machine to which |
| 265 | that X server. When you use two or more screens belonging to one | 274 | the display is physically connected. The second part, |
| 266 | server, Emacs knows by the similarity in their names that they share a | 275 | @var{displaynumber}, is a zero-based number that identifies one or |
| 267 | single keyboard. | 276 | more monitors connected to that machine that share a common keyboard |
| 277 | and pointing device (mouse, tablet, etc.). The third part, | ||
| 278 | @var{screennumber}, identifies a zero-based screen number (a separate | ||
| 279 | monitor) that is part of a single monitor collection on that X server. | ||
| 280 | When you use two or more screens belonging to one server, Emacs knows | ||
| 281 | by 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, | ||
| 284 | don't support the notion of X displays, and have only one display on | ||
| 285 | each host. The display name on these systems doesn't follow the above | ||
| 286 | 3-part format; for example, the display name on MS-Windows systems is | ||
| 287 | a constant string @samp{w32}, and exists for compatibility, so that | ||
| 288 | you 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 |
| 270 | This function creates and returns a new frame on @var{display}, taking | 291 | This 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 |
| 317 | than one physical monitor. @code{display-monitor-attributes-list} and | 338 | than 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} |
| 319 | about each physical monitor on multi-monitor setups. | 340 | to obtain information about such setups. |
| 320 | 341 | ||
| 321 | @defun display-monitor-attributes-list &optional display | 342 | @defun display-monitor-attributes-list &optional display |
| 322 | This function returns a list of physical monitor attributes on | 343 | This 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 |
| 324 | representing the attributes of each physical monitor. The first | 345 | a frame; if omitted or @code{nil}, it defaults to the selected frame's |
| 325 | element corresponds to the primary monitor. | 346 | display. Each element of the list is an association list, |
| 326 | 347 | representing the attributes of a physical monitor. The first element | |
| 327 | Attributes for a physical monitor are: | 348 | corresponds to the primary monitor. The attribute keys and values |
| 349 | are: | ||
| 328 | 350 | ||
| 329 | @table @samp | 351 | @table @samp |
| 330 | @item geometry | 352 | @item geometry |
| 331 | Position and size in pixels in the form of @samp{(X Y WIDTH HEIGHT)} | 353 | Position of the top-left corner of the monitor's screen and its size, |
| 354 | in pixels, as @samp{(@var{x} @var{y} @var{width} @var{height})}. Note | ||
| 355 | that, if the monitor is not the primary monitor, some of the | ||
| 356 | coordinates might be negative. | ||
| 332 | 357 | ||
| 333 | @item workarea | 358 | @item workarea |
| 334 | Position and size of the workarea in pixels in the form of @samp{(X Y | 359 | Position of the top-left corner and size of the work area (``usable'' |
| 335 | WIDTH HEIGHT)} | 360 | space) in pixels as @samp{(@var{x} @var{y} @var{width} @var{height})}. |
| 361 | This may be different from @samp{geometry} in that space occupied by | ||
| 362 | various window manager features (docks, taskbars, etc.) may be | ||
| 363 | excluded from the work area. Whether or not such features actually | ||
| 364 | subtract from the work area depends on the platform and environment. | ||
| 365 | Again, if the monitor is not the primary monitor, some of the | ||
| 366 | coordinates might be negative. | ||
| 336 | 367 | ||
| 337 | @item mm-size | 368 | @item mm-size |
| 338 | Width and height in millimeters in the form of @samp{(WIDTH HEIGHT)} | 369 | Width and height in millimeters as @samp{(@var{width} @var{height})} |
| 339 | 370 | ||
| 340 | @item frames | 371 | @item frames |
| 341 | List of frames dominated by the physical monitor | 372 | List of frames that this physical monitor dominates (see below). |
| 342 | 373 | ||
| 343 | @item name | 374 | @item name |
| 344 | Name of the physical monitor as a string | 375 | Name of the physical monitor as @var{string}. |
| 345 | @end table | ||
| 346 | 376 | ||
| 347 | where X, Y, WIDTH, and HEIGHT are integers. @samp{name} is optional. | 377 | @item source |
| 378 | Source of the multi-monitor information as @var{string}; | ||
| 379 | e.g., @samp{XRandr} or @samp{Xinerama}. | ||
| 380 | @end table | ||
| 348 | 381 | ||
| 349 | A frame is dominated by a physical monitor when either the | 382 | @var{x}, @var{y}, @var{width}, and @var{height} are integers. |
| 350 | largest area of the frame resides in the monitor, or the monitor | 383 | @samp{name} and @samp{source} may be absent. |
| 351 | is the closest to the frame if the frame does not intersect any | 384 | |
| 352 | physical monitors. Every non-tip frame (including invisible one) | 385 | A frame is @dfn{dominated} by a physical monitor when either the |
| 353 | in a graphical display is dominated by exactly one physical | 386 | largest area of the frame resides in that monitor, or (if the frame |
| 354 | monitor at a time, though it can span multiple (or no) physical | 387 | does not intersect any physical monitors) that monitor is the closest |
| 355 | monitors. | 388 | to the frame. Every (non-tooltip) frame (whether visible or not) in a |
| 389 | graphical display is dominated by exactly one physical monitor at a | ||
| 390 | time, though the frame can span multiple (or no) physical monitors. | ||
| 391 | |||
| 392 | Here's an example of the data produced by this function on a 2-monitor | ||
| 393 | display: | ||
| 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 |
| 361 | This function returns the attributes of the physical monitor | 414 | This function returns the attributes of the physical monitor |
| 362 | dominating @var{frame}, which defaults to the selected frame. | 415 | dominating (see above) @var{frame}, which defaults to the selected frame. |
| 363 | |||
| 364 | A frame is dominated by a physical monitor when either the | ||
| 365 | largest area of the frame resides in the monitor, or the monitor | ||
| 366 | is the closest to the frame if the frame does not intersect any | ||
| 367 | physical 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 |
| 538 | The display on which to open this frame. It should be a string of the | 586 | The display on which to open this frame. It should be a string of the |
| 539 | form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the | 587 | form @samp{@var{host}:@var{dpy}.@var{screen}}, just like the |
| 540 | @env{DISPLAY} environment variable. | 588 | @env{DISPLAY} environment variable. @xref{Multiple Terminals}, for |
| 589 | more 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})} |
| 594 | This specifies the position of the left frame edge relative to the left | 643 | This specifies the position of the left frame edge relative to the left |
| 595 | screen edge. The integer @var{pos} may be positive or negative; a | 644 | screen edge. The integer @var{pos} may be positive or negative; a |
| 596 | negative value specifies a position outside the screen. | 645 | negative value specifies a position outside the screen or on a monitor |
| 646 | other than the primary one (for multi-monitor displays). | ||
| 597 | 647 | ||
| 598 | @item @code{(- @var{pos})} | 648 | @item @code{(- @var{pos})} |
| 599 | This specifies the position of the right frame edge relative to the right | 649 | This specifies the position of the right frame edge relative to the right |
| 600 | screen edge. The integer @var{pos} may be positive or negative; a | 650 | screen edge. The integer @var{pos} may be positive or negative; a |
| 601 | negative value specifies a position outside the screen. | 651 | negative value specifies a position outside the screen or on a monitor |
| 652 | other than the primary one (for multi-monitor displays). | ||
| 602 | @end table | 653 | @end table |
| 603 | 654 | ||
| 604 | Some window managers ignore program-specified positions. If you want to | 655 | Some window managers ignore program-specified positions. If you want to |
| @@ -686,6 +737,11 @@ difference between @code{maximized} and @code{fullboth} is that the | |||
| 686 | former can still be resized by dragging window manager decorations | 737 | former can still be resized by dragging window manager decorations |
| 687 | with the mouse, while the latter really covers the whole screen and | 738 | with the mouse, while the latter really covers the whole screen and |
| 688 | does not allow resizing by mouse dragging. | 739 | does not allow resizing by mouse dragging. |
| 740 | |||
| 741 | With 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 | ||
| 743 | a 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 | |||
| 711 | of the frame they should be on. The possible values are @code{left}, | 767 | of 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 |
| 717 | Whether the frame has scroll bars for horizontal scrolling | 772 | Whether 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). |
| 719 | implemented. | ||
| 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 |
| 724 | The width of vertical scroll bars, in pixels, or @code{nil} meaning to | 777 | The width of vertical scroll bars, in pixels, or @code{nil} meaning to |
| 725 | use the default width. | 778 | use the default width. |
| 726 | 779 | ||
| 780 | @vindex scroll-bar-height, a frame parameter | ||
| 781 | @item scroll-bar-height | ||
| 782 | The height of horizontal scroll bars, in pixels, or @code{nil} meaning | ||
| 783 | to 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. | |||
| 737 | When using @code{set-frame-parameter}, passing a @code{nil} value | 795 | When using @code{set-frame-parameter}, passing a @code{nil} value |
| 738 | imposes an actual default value of 8 pixels. | 796 | imposes an actual default value of 8 pixels. |
| 739 | 797 | ||
| 740 | The combined fringe widths must add up to an integral number of | ||
| 741 | columns, so the actual default fringe widths for the frame, as | ||
| 742 | reported by @code{frame-parameter}, may be larger than what you | ||
| 743 | specify. Any extra width is distributed evenly between the left and | ||
| 744 | right fringe. However, you can force one fringe or the other to a | ||
| 745 | precise width by specifying that width as a negative integer. If both | ||
| 746 | widths 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 |
| 750 | The width (thickness) reserved for the right divider (@pxref{Window | 800 | The width (thickness) reserved for the right divider (@pxref{Window |
| @@ -966,7 +1016,7 @@ variable do not take effect immediately, only when you specify the | |||
| 966 | A list of symbols, specifying the @dfn{font backends} to use for | 1016 | A list of symbols, specifying the @dfn{font backends} to use for |
| 967 | drawing fonts in the frame, in order of priority. On X, there are | 1017 | drawing fonts in the frame, in order of priority. On X, there are |
| 968 | currently two available font backends: @code{x} (the X core font | 1018 | currently two available font backends: @code{x} (the X core font |
| 969 | driver) and @code{xft} (the Xft font driver). On Windows, there are | 1019 | driver) and @code{xft} (the Xft font driver). On MS-Windows, there are |
| 970 | currently two available font backends: @code{gdi} and | 1020 | currently 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 |
| 972 | Manual}). On other systems, there is only one available font backend, | 1022 | Manual}). 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 | |||
| 1158 | be set only in a user's initial file; applications should never bind it | 1208 | be set only in a user's initial file; applications should never bind it |
| 1159 | temporarily. | 1209 | temporarily. |
| 1160 | 1210 | ||
| 1161 | The precise semantics of a value of @code{nil} for this option depends | 1211 | The precise meaning of a value of @code{nil} for this option depends |
| 1162 | on the toolkit used: Dragging the frame border with the mouse is usually | 1212 | on the toolkit used. Dragging the frame border with the mouse is usually |
| 1163 | always done character-wise. Calling @code{set-frame-size} (see below) | 1213 | done character-wise. Calling @code{set-frame-size} (see below) |
| 1164 | with arguments that do not specify the frame size as an integer multiple | 1214 | with arguments that do not specify the frame size as an integer multiple |
| 1165 | of its character size may be, however, either ignored or cause a | 1215 | of its character size, however, may: be ignored, cause a |
| 1166 | rounding (GTK+, Windows) or get accepted (Lucid, Motif). | 1216 | rounding (GTK+), or be accepted (Lucid, Motif, MS-Windows). |
| 1217 | |||
| 1218 | With some window managers you may have to set this to non-@code{nil} in | ||
| 1219 | order 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}. | |||
| 1220 | This macro is the handy way to add the advice @var{function} to the function | 1220 | This macro is the handy way to add the advice @var{function} to the function |
| 1221 | stored in @var{place} (@pxref{Generalized Variables}). | 1221 | stored in @var{place} (@pxref{Generalized Variables}). |
| 1222 | 1222 | ||
| 1223 | If @var{function} is not interactive, then the combined function will inherit | ||
| 1224 | the interactive spec, if any, of the original function. Else, the combined | ||
| 1225 | function will be interactive and will use the interactive spec of | ||
| 1226 | @var{function}. One exception: if the interactive spec of @var{function} | ||
| 1227 | is a function (rather than an expression or a string), then the interactive | ||
| 1228 | spec of the combined function will be a call to that function with as sole | ||
| 1229 | argument the interactive spec of the original function. To interpret the spec | ||
| 1230 | received 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 |
| 1233 | existing function, e.g. whether @var{function} should be called before, or | 1224 | existing function, e.g. whether @var{function} should be called before, or |
| 1234 | after the original function. @xref{Advice combinators}, for the list of | 1225 | after 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 |
| 1242 | the variable name, then @var{function} will only be added in the | 1233 | the variable name, then @var{function} will only be added in the |
| 1243 | current buffer. Finally, if you want to modify a lexical variable, you will | 1234 | current buffer. Finally, if you want to modify a lexical variable, you will |
| 1244 | have to use @code{(var @var{VARIABLE})}. | 1235 | have to use @code{(var @var{variable})}. |
| 1245 | 1236 | ||
| 1246 | Every function added with @code{add-function} can be accompanied by an | 1237 | Every function added with @code{add-function} can be accompanied by an |
| 1247 | association list of properties @var{props}. Currently only two of those | 1238 | association 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 |
| 1272 | other advices applied to it as well. | 1263 | other advices applied to it as well. |
| 1273 | @end table | 1264 | @end table |
| 1265 | |||
| 1266 | If @var{function} is not interactive, then the combined function will inherit | ||
| 1267 | the interactive spec, if any, of the original function. Else, the combined | ||
| 1268 | function will be interactive and will use the interactive spec of | ||
| 1269 | @var{function}. One exception: if the interactive spec of @var{function} | ||
| 1270 | is a function (rather than an expression or a string), then the interactive | ||
| 1271 | spec of the combined function will be a call to that function with as sole | ||
| 1272 | argument the interactive spec of the original function. To interpret the spec | ||
| 1273 | received as argument, use @code{advice-eval-interactive-spec}. | ||
| 1274 | |||
| 1275 | Note: The interactive spec of @var{function} will apply to the combined | ||
| 1276 | function and should hence obey the calling convention of the combined function | ||
| 1277 | rather than that of @var{function}. In many cases, it makes no difference | ||
| 1278 | since 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 | |||
| 529 | floating-point number. | 530 | floating-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 | ||
| 539 | from Lisp programs, as well as most of the data internally used by the | ||
| 540 | Lisp interpreter. Sometimes it may be useful to allocate temporary | ||
| 541 | internal objects using the C stack of the interpreter. This can help | ||
| 542 | performance, as stack allocation is typically faster than using heap | ||
| 543 | memory to allocate and the garbage collector to free. The downside is | ||
| 544 | that using such objects after they are freed results in undefined | ||
| 545 | behavior, so uses should be well thought out and carefully debugged by | ||
| 546 | using the @code{GC_CHECK_MARKED_OBJECTS} feature (see | ||
| 547 | @file{src/alloc.c}). In particular, stack-allocated objects should | ||
| 548 | never be made visible to user Lisp code. | ||
| 549 | |||
| 550 | Currently, cons cells and strings can be allocated this way. This | ||
| 551 | is implemented by C macros like @code{AUTO_CONS} and | ||
| 552 | @code{AUTO_STRING} that define a named @code{Lisp_Object} with block | ||
| 553 | lifetime. These objects are not freed by the garbage collector; | ||
| 554 | instead, they have automatic storage duration, i.e., they are | ||
| 555 | allocated like local variables and are automatically freed at the end | ||
| 556 | of 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, | ||
| 560 | i.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 |
| 1597 | Prefer @code{int} for Emacs character codes, in the range 0 ..@: 0x3FFFFF. | 1627 | Prefer @code{int} for Emacs character codes, in the range 0 ..@: 0x3FFFFF. |
| 1628 | More 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 |
| 1600 | Prefer @code{ptrdiff_t} for sizes, i.e., for integers bounded by the | 1632 | Prefer @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 | |||
| 1606 | impose an arbitrary limit. | 1638 | impose an arbitrary limit. |
| 1607 | 1639 | ||
| 1608 | @item | 1640 | @item |
| 1641 | Avoid @code{ssize_t} except when communicating to low-level APIs that | ||
| 1642 | have @code{ssize_t}-related limitations. Although it's equivalent to | ||
| 1643 | @code{ptrdiff_t} on typical platforms, @code{ssize_t} is occasionally | ||
| 1644 | narrower, so using it for size-related calculations could overflow. | ||
| 1645 | Also, @code{ptrdiff_t} is more ubiquitous and better-standardized, has | ||
| 1646 | standard @code{printf} formats, and is the basis for Emacs's internal | ||
| 1647 | size-overflow checking. When using @code{ssize_t}, please note that | ||
| 1648 | POSIX requires support only for values in the range @minus{}1 ..@: | ||
| 1649 | @code{SSIZE_MAX}. | ||
| 1650 | |||
| 1651 | @item | ||
| 1609 | Prefer @code{intptr_t} for internal representations of pointers, or | 1652 | Prefer @code{intptr_t} for internal representations of pointers, or |
| 1610 | for integers bounded only by the number of objects that can exist at | 1653 | for integers bounded only by the number of objects that can exist at |
| 1611 | any given time or by the total number of bytes that can be allocated. | 1654 | any 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 | ||
| 1130 | This function sorts @var{list} stably, though destructively, and | ||
| 1131 | returns the sorted list. It compares elements using @var{predicate}. A | ||
| 1132 | stable sort is one in which elements with equal sort keys maintain their | ||
| 1133 | relative order before and after the sort. Stability is important when | ||
| 1134 | successive sorts are used to order elements according to different | ||
| 1135 | criteria. | ||
| 1136 | |||
| 1137 | The argument @var{predicate} must be a function that accepts two | ||
| 1138 | arguments. It is called with two elements of @var{list}. To get an | ||
| 1139 | increasing order sort, the @var{predicate} should return non-@code{nil} if the | ||
| 1140 | first element is ``less than'' the second, or @code{nil} if not. | ||
| 1141 | |||
| 1142 | The comparison function @var{predicate} must give reliable results for | ||
| 1143 | any 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 | ||
| 1145 | less 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} | ||
| 1147 | is less than @var{c}, then @var{a} must be less than @var{c}. If you | ||
| 1148 | use a comparison function which does not meet these requirements, the | ||
| 1149 | result of @code{sort} is unpredictable. | ||
| 1150 | |||
| 1151 | The destructive aspect of @code{sort} is that it rearranges the cons | ||
| 1152 | cells forming @var{list} by changing @sc{cdr}s. A nondestructive sort | ||
| 1153 | function would create new cons cells to store the elements in their | ||
| 1154 | sorted order. If you wish to make a sorted copy without destroying the | ||
| 1155 | original, copy it first with @code{copy-sequence} and then sort. | ||
| 1156 | |||
| 1157 | Sorting does not change the @sc{car}s of the cons cells in @var{list}; | ||
| 1158 | the 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 | ||
| 1160 | appears 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 | ||
| 1173 | nums | ||
| 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 | ||
| 1180 | 0; this is the same cons cell that it was before, but it is no longer | ||
| 1181 | the first one in the list. Don't assume a variable that formerly held | ||
| 1182 | the argument now holds the entire sorted list! Instead, save the result | ||
| 1183 | of @code{sort} and use that. Most often we store the result back into | ||
| 1184 | the 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. | ||
| 1191 | See @code{documentation} in @ref{Accessing Documentation}, for a | ||
| 1192 | useful 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}). | |||
| 2221 | It is normally @code{nil}, so that ordinary buffers have no header line. | 2221 | It is normally @code{nil}, so that ordinary buffers have no header line. |
| 2222 | @end defvar | 2222 | @end defvar |
| 2223 | 2223 | ||
| 2224 | The function @code{window-header-line-height} returns the height of | ||
| 2225 | the header line: | ||
| 2226 | |||
| 2227 | @defun window-header-line-height &optional window | 2224 | @defun window-header-line-height &optional window |
| 2228 | Return the height of @var{window}'s header line, in pixels. | 2225 | This 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 | 2226 | line. @var{window} must be a live window, and defaults to the |
| 2230 | omitted, it will be the selected window. | 2227 | selected 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 | ||
| 334 | This function sorts @var{sequence} stably. Note that this function doesn't work | ||
| 335 | for all sequences; it may be used only for lists and vectors. If @var{sequence} | ||
| 336 | is a list, it is modified destructively. This functions returns the sorted | ||
| 337 | @var{sequence} and compares elements using @var{predicate}. A stable sort is | ||
| 338 | one in which elements with equal sort keys maintain their relative order before | ||
| 339 | and after the sort. Stability is important when successive sorts are used to | ||
| 340 | order elements according to different criteria. | ||
| 341 | |||
| 342 | The argument @var{predicate} must be a function that accepts two | ||
| 343 | arguments. It is called with two elements of @var{sequence}. To get an | ||
| 344 | increasing order sort, the @var{predicate} should return non-@code{nil} if the | ||
| 345 | first element is ``less than'' the second, or @code{nil} if not. | ||
| 346 | |||
| 347 | The comparison function @var{predicate} must give reliable results for | ||
| 348 | any 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 | ||
| 350 | less 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} | ||
| 352 | is less than @var{c}, then @var{a} must be less than @var{c}. If you | ||
| 353 | use a comparison function which does not meet these requirements, the | ||
| 354 | result of @code{sort} is unpredictable. | ||
| 355 | |||
| 356 | The destructive aspect of @code{sort} for lists is that it rearranges the | ||
| 357 | cons cells forming @var{sequence} by changing @sc{cdr}s. A nondestructive | ||
| 358 | sort function would create new cons cells to store the elements in their | ||
| 359 | sorted order. If you wish to make a sorted copy without destroying the | ||
| 360 | original, copy it first with @code{copy-sequence} and then sort. | ||
| 361 | |||
| 362 | Sorting does not change the @sc{car}s of the cons cells in @var{sequence}; | ||
| 363 | the 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 | ||
| 365 | appears 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 | ||
| 378 | nums | ||
| 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 | ||
| 385 | 0; this is the same cons cell that it was before, but it is no longer | ||
| 386 | the first one in the list. Don't assume a variable that formerly held | ||
| 387 | the argument now holds the entire sorted list! Instead, save the result | ||
| 388 | of @code{sort} and use that. Most often we store the result back into | ||
| 389 | the variable that held the original list: | ||
| 390 | |||
| 391 | @example | ||
| 392 | (setq nums (sort nums '<)) | ||
| 393 | @end example | ||
| 394 | |||
| 395 | For the better understanding of what stable sort is, consider the following | ||
| 396 | vector example. After sorting, all items whose @code{car} is 8 are grouped | ||
| 397 | at the beginning of @code{vector}, but their relative order is preserved. | ||
| 398 | All items whose @code{car} is 9 are grouped at the end of @code{vector}, | ||
| 399 | but 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. | ||
| 418 | See @code{documentation} in @ref{Accessing Documentation}, for a | ||
| 419 | useful 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 |
| 620 | This function outputs a newline to @var{stream}. The name stands | 620 | This function outputs a newline to @var{stream}. The name stands for |
| 621 | for ``terminate print''. | 621 | ``terminate print''. If @var{ensure} is non-nil no newline is printed |
| 622 | if @var{stream} is already at the beginning of a line. Note in this | ||
| 623 | case @var{stream} can not be a function and an error is signalled if | ||
| 624 | it 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 | ||
| 462 | This function returns @code{t} if @var{string1} and @var{string2} are | ||
| 463 | equal with respect to collation rules. A collation rule is not only | ||
| 464 | determined by the lexicographic order of the characters contained in | ||
| 465 | @var{string1} and @var{string2}, but also further rules about | ||
| 466 | relations between these characters. Usually, it is defined by the | ||
| 467 | @var{locale} environment Emacs is running with. | ||
| 468 | |||
| 469 | For example, characters with different coding points but | ||
| 470 | the same meaning might be considered as equal, like different grave | ||
| 471 | accent 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 | |||
| 480 | The optional argument @var{locale}, a string, overrides the setting of | ||
| 481 | your current locale identifier for collation. The value is system | ||
| 482 | dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX | ||
| 483 | systems, while it would be, e.g., "enu_USA.1252" on MS-Windows | ||
| 484 | systems. | ||
| 485 | |||
| 486 | If @var{IGNORE-CASE} is non-nil, characters are converted to lower-case | ||
| 487 | before comparing them. | ||
| 488 | |||
| 489 | To emulate Unicode-compliant collation on MS-Windows systems, | ||
| 490 | bind @code{w32-collate-ignore-punctuation} to a non-nil value, since | ||
| 491 | the codeset part of the locale cannot be "UTF-8" on MS-Windows. | ||
| 492 | |||
| 493 | If your system does not support a locale environment, this function | ||
| 494 | behaves like @code{string-equal}. | ||
| 495 | |||
| 496 | Do NOT use this function to compare file names for equality, only | ||
| 497 | for sorting them. | ||
| 498 | @end defun | ||
| 499 | |||
| 500 | @defun string-prefix-p string1 string2 &optional ignore-case | ||
| 501 | This 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 | ||
| 503 | the optional argument @var{ignore-case} is non-@code{nil}, the | ||
| 504 | comparison ignores case differences. | ||
| 505 | @end defun | ||
| 506 | |||
| 507 | @defun string-suffix-p suffix string &optional ignore-case | ||
| 508 | This 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 | ||
| 510 | optional argument @var{ignore-case} is non-@code{nil}, the comparison | ||
| 511 | ignores 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 | ||
| 573 | This function returns @code{t} if @var{string1} is less than | ||
| 574 | @var{string2} in collation order. A collation order is not only | ||
| 575 | determined by the lexicographic order of the characters contained in | ||
| 576 | @var{string1} and @var{string2}, but also further rules about | ||
| 577 | relations between these characters. Usually, it is defined by the | ||
| 578 | @var{locale} environment Emacs is running with. | ||
| 579 | |||
| 580 | For example, punctuation and whitespace characters might be considered | ||
| 581 | less 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 | |||
| 590 | The optional argument @var{locale}, a string, overrides the setting of | ||
| 591 | your current locale identifier for collation. The value is system | ||
| 592 | dependent; a @var{locale} "en_US.UTF-8" is applicable on POSIX | ||
| 593 | systems, while it would be, e.g., "enu_USA.1252" on MS-Windows | ||
| 594 | systems. The @var{locale} "POSIX" lets @code{string-collate-lessp} | ||
| 595 | behave 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 | |||
| 605 | If @var{IGNORE-CASE} is non-nil, characters are converted to lower-case | ||
| 606 | before comparing them. | ||
| 607 | |||
| 608 | To emulate Unicode-compliant collation on MS-Windows systems, | ||
| 609 | bind @code{w32-collate-ignore-punctuation} to a non-nil value, since | ||
| 610 | the codeset part of the locale cannot be "UTF-8" on MS-Windows. | ||
| 611 | |||
| 612 | If your system does not support a locale environment, this function | ||
| 613 | behaves 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 |
| 520 | This function returns non-@code{nil} if @var{string1} is a prefix of | 617 | This 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. | |||
| 4114 | Normally, this command puts point before the inserted text, and the | 4114 | Normally, this command puts point before the inserted text, and the |
| 4115 | mark after it. However, if the optional second argument @var{beforep} | 4115 | mark after it. However, if the optional second argument @var{beforep} |
| 4116 | is non-@code{nil}, it puts the mark before and point after. | 4116 | is non-@code{nil}, it puts the mark before and point after. |
| 4117 | You can pass a non-@code{nil} second argument @var{beforep} to this | 4117 | |
| 4118 | function interactively by supplying any prefix argument. | 4118 | When called interactively, the command defaults to putting point after |
| 4119 | text, and a prefix argument inverts this behavior. | ||
| 4119 | 4120 | ||
| 4120 | If the register contains a rectangle, then the rectangle is inserted | 4121 | If the register contains a rectangle, then the rectangle is inserted |
| 4121 | with its upper left corner at point. This means that text is inserted | 4122 | with 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 | | | | | | | | | | | | |
| 399 | Window | | | | Text Area | | | | | Window | 399 | Window | | | | Text Area | | | | | Window |
| 400 | Body | | | | | (Window Body) | | | | | Total | 400 | Body | | | | | (Window Body) | | | | | Total |
| 401 | Height | | | | | | | | | Height | 401 | Height | | | | | | | | | 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}, |
| 415 | where the buffer text is displayed. The text area can be surrounded by | 416 | where the buffer text is displayed. The text area can be surrounded by |
| 416 | a series of optional areas. On the left and right, from innermost to | 417 | a series of optional areas. On the left and right, from innermost to |
| 417 | outermost, these are the left and right margins, denoted by LM and RM in | 418 | outermost, these are the left and right fringes, denoted by LF and RF |
| 418 | the schematic (@pxref{Display Margins}); the left and right fringes, | 419 | (@pxref{Fringes}); the left and right margins, denoted by LM and RM in |
| 419 | denoted by LF and RF (@pxref{Fringes}); the left or right scroll bar, | 420 | the schematic (@pxref{Display Margins}); the left or right vertical |
| 420 | only one of which is present at any time, denoted by LS and RS | 421 | scroll 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 | 422 | RS (@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 | 425 | scroll bar (@pxref{Scroll Bars}); the mode line (@pxref{Mode Line |
| 425 | Dividers}). | 426 | Format}); 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 |
| 428 | width of a window. The return value of many of these functions can be | 429 | width 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 |
| 442 | the window's body, the header line, the mode line and the bottom divider | 443 | the 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 | 444 | line and the bottom divider (if any). |
| 444 | of its root window (@pxref{Windows and Frames}), since a frame may also | ||
| 445 | contain an echo area, a menu bar, and a tool bar (@pxref{Size and | ||
| 446 | Position}). | ||
| 447 | 445 | ||
| 448 | @defun window-total-height &optional window round | 446 | @defun window-total-height &optional window round |
| 449 | This function returns the total height, in lines, of the window | 447 | This 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 | |||
| 451 | the selected window. If @var{window} is an internal window, the return | 449 | the selected window. If @var{window} is an internal window, the return |
| 452 | value is the total height occupied by its descendant windows. | 450 | value 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 |
| 455 | default character height, the number of lines occupied by the window is | 453 | default character height, the number of lines occupied by the window is |
| 456 | rounded internally. This is done in a way such that, if the window is a | 454 | rounded internally. This is done in a way such that, if the window is a |
| 457 | parent window, the sum of the total heights of all its child windows | 455 | parent window, the sum of the total heights of all its child windows |
| 458 | internally equals the total height of their parent. This means that | 456 | internally equals the total height of their parent. This means that |
| 459 | although two windows have the same pixel height, their internal total | 457 | although two windows have the same pixel height, their internal total |
| 460 | heights may differ by one line. This means also, that if this window is | 458 | heights may differ by one line. This means also, that if window is |
| 461 | vertically combined and has a right sibling, the topmost row of that | 459 | vertically combined and has a next sibling, the topmost row of that |
| 462 | sibling can be calculated as the sum of this window's topmost row and | 460 | sibling can be calculated as the sum of this window's topmost row and |
| 463 | total height (@pxref{Coordinates and Windows}) | 461 | total 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 |
| 466 | function returns the smallest integer larger than @var{window}'s pixel | 464 | function returns the smallest integer larger than @var{window}'s pixel |
| 467 | height divided by the character height of @var{window}'s frame; if it is | 465 | height 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; |
| 469 | pixel height divided by the character height of @var{window}'s frame. | 467 | with any other @var{round} it returns the internal value of |
| 470 | Any other value of @var{round} means to return the internal value of the | 468 | @var{windows}'s total height. |
| 471 | total 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 | |||
| 484 | the selected window. If @var{window} is internal, the return value is | 481 | the selected window. If @var{window} is internal, the return value is |
| 485 | the total width occupied by its descendant windows. | 482 | the 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 |
| 488 | character width, the number of lines occupied by the window is rounded | 485 | character width, the number of lines occupied by the window is rounded |
| 489 | internally. This is done in a way such that, if the window is a parent | 486 | internally. This is done in a way such that, if the window is a parent |
| 490 | window, the sum of the total widths of all its children internally | 487 | window, the sum of the total widths of all its children internally |
| 491 | equals the total width of their parent. This means that although two | 488 | equals the total width of their parent. This means that although two |
| 492 | windows have the same pixel width, their internal total widths may | 489 | windows have the same pixel width, their internal total widths may |
| 493 | differ by one column. This means also, that if this window is | 490 | differ by one column. This means also, that if this window is |
| 494 | horizontally combined and has a right sibling, the leftmost column of | 491 | horizontally combined and has a next sibling, the leftmost column of |
| 495 | that sibling can be calculated as the sum of this window's leftmost | 492 | that sibling can be calculated as the sum of this window's leftmost |
| 496 | column and total width (@pxref{Coordinates and Windows}). | 493 | column and total width (@pxref{Coordinates and Windows}). The optional |
| 497 | 494 | argument @var{round} behaves as it does for @code{window-total-height}. | |
| 498 | If the optional argument @var{round} is @code{ceiling}, this function | ||
| 499 | will return the smallest integer larger than @var{window}'s pixel width | ||
| 500 | divided 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 | ||
| 502 | pixel width divided by the character width of @var{window}'s frame. Any | ||
| 503 | other 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 | |||
| 510 | omitted or @code{nil}, this is equivalent to calling | 500 | omitted 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 |
| 512 | to calling @code{window-total-width} for @var{window}. The optional | 502 | to calling @code{window-total-width} for @var{window}. The optional |
| 513 | argument @code{ROUND} is handled as for @code{window-total-height} and | 503 | argument @var{round} behaves as it does for @code{window-total-height}. |
| 514 | @code{window-total-width}. | ||
| 515 | @end defun | 504 | @end defun |
| 516 | 505 | ||
| 517 | The following two functions can be used to return the total size of a | 506 | The following two functions can be used to return the total size of a |
| @@ -525,9 +514,10 @@ window in units of pixels. | |||
| 525 | This function returns the total height of window @var{window} in pixels. | 514 | This 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 | ||
| 528 | The return value includes mode and header line and a bottom divider, if | 517 | The return value includes mode and header line, a horizontal scroll bar |
| 529 | any. If @var{window} is an internal window, its pixel height is the | 518 | and a bottom divider, if any. If @var{window} is an internal window, |
| 530 | pixel height of the screen areas spanned by its children. | 519 | its pixel height is the pixel height of the screen areas spanned by its |
| 520 | children. | ||
| 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. | |||
| 550 | window has any adjacent windows. | 540 | window has any adjacent windows. |
| 551 | 541 | ||
| 552 | @defun window-full-height-p &optional window | 542 | @defun window-full-height-p &optional window |
| 553 | This function returns non-@code{nil} if @var{window} has no other | 543 | This function returns non-@code{nil} if @var{window} has no other window |
| 554 | window above or below it in its frame, i.e., its total height equals | 544 | above or below it in its frame. More precisely, this means that the |
| 555 | the total height of the root window on that frame. If @var{window} is | 545 | total height of @var{window} equals the total height of the root window |
| 556 | omitted or @code{nil}, it defaults to the selected window. | 546 | on 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 | ||
| 548 | window. | ||
| 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 |
| 569 | The @dfn{body height} of a window is the height of its text area, which | 561 | The @dfn{body height} of a window is the height of its text area, which |
| 570 | does not include a mode or header line or a bottom divider. | 562 | does not include a mode or header line, a horizontal scroll bar, or a |
| 563 | bottom divider. | ||
| 571 | 564 | ||
| 572 | @defun window-body-height &optional window pixelwise | 565 | @defun window-body-height &optional window pixelwise |
| 573 | This function returns the height, in lines, of the body of window | 566 | This 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 |
| 655 | This option specifies the minimum total height, in lines, of any window. | 648 | This option specifies the minimum total height, in lines, of any window. |
| 656 | Its value has to accommodate at least one text line as well as a mode | 649 | Its value has to accommodate at least one text line as well as a mode |
| 657 | and header line and a bottom divider, if present. | 650 | and header line, a horizontal scroll bar and a bottom divider, if |
| 651 | present. | ||
| 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 | ||
| 694 | The return value makes sure that all components of @var{window} remain | 688 | The return value makes sure that all components of @var{window} remain |
| 695 | fully visible if @var{window}'s size were actually set to it. With | 689 | fully 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 |
| 697 | bottom divider. With @var{horizontal} non-@code{nil} it includes the | 691 | horizontal scroll bar and the bottom divider. With @var{horizontal} |
| 698 | fringes, a scroll bar, and a right divider, if present. It does not, | 692 | non-@code{nil} it includes the fringes, a scroll bar, and a right |
| 699 | however, include the space reserved for the margins. | 693 | divider, if present. It does not, however, include the space reserved |
| 694 | for the margins. | ||
| 700 | 695 | ||
| 701 | The optional argument @var{ignore}, if non-@code{nil}, means ignore | 696 | The optional argument @var{ignore}, if non-@code{nil}, means ignore |
| 702 | restrictions imposed by fixed size windows, @code{window-min-height} or | 697 | restrictions 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} |
| 749 | is non-@code{nil}, this function ignores @code{window-min-height} and | 744 | is 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, |
| 751 | it considers the minimum-height window to be one consisting of a header, | 746 | it considers the minimum-height window to be one consisting of a header |
| 752 | a mode line and a bottom divider (if any), plus a text area one line | 747 | and a mode line, a horizontal scrollbar and a bottom divider (if any), |
| 753 | tall; and a minimum-width window as one consisting of fringes, margins, | 748 | plus a text area one line tall; and a minimum-width window as one |
| 754 | a scroll bar and a right divider (if any), plus a text area two columns | 749 | consisting of fringes, margins, a scroll bar and a right divider (if |
| 755 | wide. | 750 | any), plus a text area two columns wide. |
| 756 | 751 | ||
| 757 | If the optional argument @code{pixelwise} is non-@code{nil}, | 752 | If 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 | |||
| 779 | combination limits of the involved windows; in some cases, it may alter | 774 | combination limits of the involved windows; in some cases, it may alter |
| 780 | both edges. @xref{Recombining Windows}. To resize by moving only the | 775 | both edges. @xref{Recombining Windows}. To resize by moving only the |
| 781 | bottom or right edge of a window, use the function | 776 | bottom 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 | |||
| 792 | moves the right edge by @var{delta} columns. If @var{window} is | 787 | moves 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 | ||
| 795 | If the optional argument @code{pixelwise} is non-@code{nil}, | 790 | If 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 | ||
| 798 | A positive @var{delta} moves the edge downwards or to the right; a | 793 | A positive @var{delta} moves the edge downwards or to the right; a |
| 799 | negative @var{delta} moves it upwards or to the left. If the edge | 794 | negative @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 |
| 810 | If the value of this option is non-@code{nil}, windows are resized in | 805 | If the value of this option is non-@code{nil}, Emacs resizes windows in |
| 811 | units of pixels. This currently affects functions like | 806 | units 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 | ||
| 817 | Note that when a frame's pixel size is not a multiple of the frame's | 812 | Note that when a frame's pixel size is not a multiple of its character |
| 818 | character size, at least one window may get resized pixelwise even if | 813 | size, at least one window may get resized pixelwise even if this |
| 819 | this option is @code{nil}. The default value of this option is | 814 | option 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 @@ | |||
| 1 | 2014-09-29 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * emacs.1: Bump version to 25.0.50. | ||
| 4 | |||
| 1 | 2014-01-12 Glenn Morris <rgm@gnu.org> | 5 | 2014-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 @@ | |||
| 1 | 2014-10-13 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * Makefile.in (dist): Update for new output variables. | ||
| 4 | |||
| 5 | 2014-10-08 Leo Liu <sdl.web@gmail.com> | ||
| 6 | |||
| 7 | * cl.texi (Porting Common Lisp): Remove parse-integer. | ||
| 8 | |||
| 9 | 2014-10-06 Ulf Jasper <ulf.jasper@web.de> | ||
| 10 | |||
| 11 | * newsticker.texi (Supported Formats): Fix order of subheading and | ||
| 12 | itemize. | ||
| 13 | |||
| 14 | 2014-10-04 Glenn Morris <rgm@gnu.org> | ||
| 15 | |||
| 16 | * vip.texi (Other Vi Commands): Markup fix. | ||
| 17 | |||
| 18 | 2014-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 | |||
| 23 | 2014-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 | |||
| 28 | 2014-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 | |||
| 38 | 2014-10-03 Eli Zaretskii <eliz@gnu.org> | ||
| 39 | |||
| 40 | * erc.texi (Connecting): Remove stray "OA" that failed the manual | ||
| 41 | build. | ||
| 42 | |||
| 43 | 2014-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 | |||
| 48 | 2014-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 | |||
| 53 | 2014-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 | |||
| 59 | 2014-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 | |||
| 1 | 2014-08-07 Reuben Thomas <rrt@sc3d.org> | 64 | 2014-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 | ||
| 265 | 2014-03-23 Katsumi Yamaoka <yamaoka@jpl.org> | 328 | 2014-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 | ||
| 271 | 2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> | 334 | 2014-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 | ||
| 276 | 2014-03-23 Lars Ingebrigtsen <larsi@gnus.org> | 339 | 2014-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 | ||
| 8796 | 2006-08-13 Alex Schroeder <alex@gnu.org> | 8859 | 2006-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 | ||
| 9395 | 2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org> | 9458 | 2006-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 | ||
| 9401 | 2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org> | 9464 | 2006-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 | ||
| 9406 | 2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org> | 9469 | 2006-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 | ||
| 9410 | 2006-02-24 Alan Mackenzie <bug-cc-mode@gnu.org> | 9473 | 2006-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 | ||
| 9724 | 2005-12-08 Alan Mackenzie <bug-cc-mode@gnu.org> | 9787 | 2005-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 | ||
| 9950 | 2005-10-10 Carsten Dominik <dominik@science.uva.nl> | 10013 | 2005-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 | ||
| 9955 | 2005-10-08 Michael Albinus <michael.albinus@gmx.de> | 10018 | 2005-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 | ||
| 10827 | 2004-08-11 Martin Stjernholm <bug-cc-mode@gnu.org> | 10890 | 2004-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 | ||
| 11075 | 2003-11-22 Martin Stjernholm <bug-cc-mode@gnu.org> | 11138 | 2003-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 | ||
| 223 | clean: mostlyclean | 223 | clean: 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 | ||
| 228 | distclean: clean | 227 | distclean: 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 | |||
| 2929 | error if the argument is not an integer. | 2929 | error if the argument is not an integer. |
| 2930 | @end defun | 2930 | @end defun |
| 2931 | 2931 | ||
| 2932 | @defun cl-digit-char-p char radix | ||
| 2933 | Test if @var{char} is a digit in the specified @var{radix} (default is | ||
| 2934 | 10). 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 | |||
| 3011 | of @code{cl-truncate}. | 3017 | of @code{cl-truncate}. |
| 3012 | @end defun | 3018 | @end defun |
| 3013 | 3019 | ||
| 3020 | @defun cl-parse-integer string &key start end radix junk-allowed | ||
| 3021 | This function implements the Common Lisp @code{parse-integer} | ||
| 3022 | function. It parses an integer in the specified @var{radix} from the | ||
| 3023 | substring of @var{string} between @var{start} and @var{end}. Any | ||
| 3024 | leading and trailing whitespace chars are ignored. It signals an error | ||
| 3025 | if the substring between @var{start} and @var{end} cannot be parsed as | ||
| 3026 | an 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 | |||
| 4692 | implement a Common Lisp-style @code{make-list}. | 4707 | implement a Common Lisp-style @code{make-list}. |
| 4693 | 4708 | ||
| 4694 | @item | 4709 | @item |
| 4695 | A few more notable Common Lisp features not included in this | 4710 | A few more notable Common Lisp features not included in this package: |
| 4696 | package: @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 |
| 4700 | Recursion. While recursion works in Emacs Lisp just like it | 4714 | Recursion. 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, | |||
| 588 | other nicks are tried in the list order. | 588 | other nicks are tried in the list order. |
| 589 | @end defopt | 589 | @end defopt |
| 590 | 590 | ||
| 591 | @defopt erc-format-nick-function | ||
| 592 | A function to format a nickname for message display | ||
| 593 | |||
| 594 | You 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 |
| 592 | The string to append to the nick if it is already in use. | 602 | The 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 | |||
| 750 | nickname is considered a lurker. | 767 | nickname is considered a lurker. |
| 751 | @end defopt | 768 | @end defopt |
| 752 | 769 | ||
| 770 | @defopt erc-rename-buffers | ||
| 771 | If non, @code{nil}, this will rename server buffers to reflect the | ||
| 772 | current 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 |
| 14 | This manual is for Newsticker (version @value{VERSION}, @value{UPDATED}). | 14 | This manual documents Newsticker, a feed reader for Emacs. It |
| 15 | corresponds to Emacs version @value{EMACSVER}. | ||
| 15 | 16 | ||
| 16 | @noindent | 17 | @noindent |
| 17 | Copyright @copyright{} 2004--2014 Free Software Foundation, Inc. | 18 | Copyright @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 | ||
| 72 | Newsticker provides a newsticker for Emacs. A newsticker is a thing | 75 | Newsticker provides a @b{Feed Reader} for Emacs. It retrieves |
| 73 | that asynchronously retrieves headlines from a list of news sites, | 76 | headlines from a list of news sites, processes them, and provides |
| 74 | prepares these headlines for reading, and allows for loading the | 77 | frontends for reading and managing them. (Standard headline formats |
| 75 | corresponding articles in a web browser. | 78 | are RSS and Atom which makes Newsticker an ``RSS Reader'', ``Atom |
| 79 | Reader'' or ``Feed Aggregator''.) | ||
| 76 | 80 | ||
| 81 | Headlines (or news items) consist of a title, (mostly) a description, | ||
| 82 | and a link to the full story. The description may be a brief summary | ||
| 83 | in plain text or a full HTML-formatted article. A headline may carry | ||
| 84 | enclosed data such as images, audio or video files, typically in the | ||
| 85 | case of so ``podcast feeds''. | ||
| 77 | 86 | ||
| 78 | Headlines consist of a title and (possibly) a small description. They | 87 | Newsticker downloads headlines asynchronously at configurable times, |
| 79 | are contained in ``RSS'' (RDF Site Summary) or ``Atom'' files. Newsticker | 88 | processes and stores them so that you can read them later. The list |
| 80 | works with the following RSS formats: | 89 | of subscribed feeds, the headline processing, the presentation of the |
| 90 | headlines and almost all other aspects of Newsticker can be | ||
| 91 | customized 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 | ||
| 90 | as 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 | ||
| 96 | That makes Newsticker.el an ``Atom aggregator'', ``RSS reader'', ``Feed | 96 | As Newsticker is part of GNU Emacs there is no need to perform any |
| 97 | aggregator'', or ``Feed reader''. | 97 | installation steps in order to use it. |
| 98 | 98 | ||
| 99 | Newsticker provides several commands for reading headlines, navigating | 99 | Newsticker is highly customizable. All options have reasonable default |
| 100 | through them, marking them as read/unread, hiding old headlines etc. | 100 | values, so that (in most cases) it is not necessary to customize |
| 101 | Headlines can be displayed as plain text or as rendered HTML. | 101 | anything before you start Newsticker for the first time. |
| 102 | 102 | ||
| 103 | Headlines can be displayed in the echo area, either scrolling like | 103 | @node Retrieving News |
| 104 | messages in a stock-quote ticker, or just changing. | 104 | @chapter Retrieving News |
| 105 | |||
| 106 | Newsticker allows for automatic processing of headlines by providing | ||
| 107 | hooks and (sample) functions for automatically downloading images and | ||
| 108 | enclosed files (as delivered by, e.g., podcasts). | ||
| 109 | |||
| 110 | @ignore | ||
| 111 | @ifhtml | ||
| 112 | Here 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 | |||
| 125 | Newsticker can be used with | ||
| 126 | @uref{http://www.gnu.org/software/emacs/emacs.html, GNU Emacs} version | ||
| 127 | 21.1 or later as well as @uref{http://www.xemacs.org, XEmacs}. It | ||
| 128 | requires an XML-parser (@file{xml.el}), which is part of GNU Emacs. If | ||
| 129 | you are using XEmacs you want to get the @file{net-utils} package | ||
| 130 | which contains @file{xml.el} for XEmacs. | ||
| 131 | |||
| 132 | Newsticker retrieves headlines either via Emacs's built-in retrieval | ||
| 133 | functions, by an arbitrary external program that retrieves files via | ||
| 134 | http and prints them to stdout (like | ||
| 135 | @uref{http://www.gnu.org/software/wget/wget.html, wget}, or---on a | ||
| 136 | per feed basis---via an arbitrary Lisp command. | ||
| 137 | 105 | ||
| 106 | Newsticker downloads news periodically in the background. This is | ||
| 107 | triggered 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 |
| 111 | Alternatively you may use the command @code{newsticker-start} | ||
| 112 | (@code{newsticker-stop}) in order to start (stop) the periodic | ||
| 113 | download of news without opening the reader. | ||
| 141 | 114 | ||
| 142 | As Newsticker is part of GNU Emacs there is no need to perform any | 115 | The following variables define which feeds are fetched and how this is |
| 143 | installation steps in order to use Newsticker. | 116 | done. |
| 117 | |||
| 118 | @table @code | ||
| 119 | @vindex newsticker-url-list-defaults | ||
| 120 | @item newsticker-url-list-defaults | ||
| 121 | You may select any number of feeds from this list of (sample) news feeds. | ||
| 122 | |||
| 123 | @vindex newsticker-url-list | ||
| 124 | @item newsticker-url-list | ||
| 125 | All your personal news feeds are defined here. Each feed is | ||
| 126 | identified by its name and an URL. You may set the start-time and the | ||
| 127 | retrieval interval for each feed as well as the retrieval command | ||
| 128 | arguments 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 | ||
| 134 | By default Newsticker uses Emacs's built-in download capabilities for | ||
| 135 | fetching 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} | ||
| 137 | and possibly @code{newsticker-wget-arguments}. | ||
| 138 | |||
| 139 | @vindex newsticker-retrieval-interval | ||
| 140 | @item newsticker-retrieval-interval | ||
| 141 | The 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 | |||
| 150 | Newsticker assigns a status (or ``age'') to each headline which you | ||
| 151 | can modify manually. This makes it easy to distinguish new headlines | ||
| 152 | from old ones, to keep important headlines, to hide boring headlines | ||
| 153 | etc. An item is ``new'' when it has just arrived and has not been | ||
| 154 | read. You can mark it as ``old'' when you have read it or -- if you | ||
| 155 | want to keep it -- you can mark it as ``immortal''. You can do that | ||
| 156 | manually and you can define filters which do that automatically, see | ||
| 157 | below. When a headline has vanished from the feed it is automatically | ||
| 158 | marked 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 | ||
| 165 | You may define any number of filters for automatically marking newly | ||
| 166 | arrived headlines as ``immortal'' or ``old''. A filter looks for a | ||
| 167 | regular expression in either the title or the description of a | ||
| 168 | headline and then, if the expression matches, marks the headline as | ||
| 169 | ``immortal'' or as ``old''. This is done only once, when a headline | ||
| 170 | is 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 | ||
| 175 | Obsolete headlines are removed immediately unless | ||
| 176 | @code{newsticker-keep-obsolete-items} is non-nil in which case they | ||
| 177 | are 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 | ||
| 181 | If this is set to `t' then a ``new'' item becomes ``old'' as soon as | ||
| 182 | it is retrieved a second time. | ||
| 183 | |||
| 184 | @end table | ||
| 185 | |||
| 186 | @node Reading News | ||
| 187 | @chapter Reading News | ||
| 188 | |||
| 189 | @findex newsticker-show-news | ||
| 190 | Start Newsticker with the command @kbd{M-x newsticker-show-news}. This | ||
| 191 | will start the asynchronous news download and displays all available | ||
| 192 | headlines. | ||
| 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 | ||
| 206 | Newsticker provides two different @i{views} for browsing, marking and | ||
| 207 | reading news. The variable @code{newsticker-frontend} determines the | ||
| 208 | actual headline reader. | ||
| 209 | |||
| 210 | @subheading Treeview | ||
| 211 | @cindex Treeview | ||
| 212 | |||
| 213 | In this view separate windows are used for displaying feeds, headlines | ||
| 214 | and their descriptions. The feeds are shown as a tree on the left | ||
| 215 | hand side, headlines of the currently selected feed are shown on the | ||
| 216 | upper right side, and the full contents of the currently selected | ||
| 217 | headline is shown on the lower right side. | ||
| 218 | |||
| 219 | Feeds can be placed into groups, which themselves can be placed in | ||
| 220 | groups and so on. This results in the tree which is displayed on the | ||
| 221 | left. A node represents either a feed or a group of feeds holding a | ||
| 222 | subtree. 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 | ||
| 228 | Add a new feed group. Name of the new group and of the parent group | ||
| 229 | must be entered. If The name of the parent group is the new group | ||
| 230 | becomes a top-level group. (@code{newsticker-group-add-group}) | ||
| 231 | @item M-m | ||
| 232 | @kindex M-m | ||
| 233 | @findex newsticker-group-move-feed | ||
| 234 | Moves a feed into a group. The name of the group must be | ||
| 235 | entered. (@code{newsticker-group-move-feed}) | ||
| 236 | @end table | ||
| 237 | |||
| 238 | The position of groups and feeds within the tree can be changed with these | ||
| 239 | commands: | ||
| 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 | ||
| 248 | Shift 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 | ||
| 255 | Shift the currently selected group up and down within its parent group. | ||
| 256 | @end table | ||
| 257 | |||
| 258 | The group settings are saved to a file either automatically when | ||
| 259 | newsticker is being quit or manually when the following command is | ||
| 260 | executed. | ||
| 261 | |||
| 262 | @table @kbd | ||
| 263 | @item s | ||
| 264 | @kindex s | ||
| 265 | @findex newsticker-treeview-save | ||
| 266 | Save treeview group settings. | ||
| 267 | @end table | ||
| 268 | |||
| 269 | The Treeview is updated automatically as soon as new headlines have | ||
| 270 | arrived. | ||
| 271 | |||
| 272 | The Treeview is used when the variable @code{newsticker-frontend} is | ||
| 273 | set to the value @code{newsticker-treeview}. (Alternatively it can be | ||
| 274 | started with the command @code{newsticker-treeview}.) | ||
| 275 | |||
| 276 | @subheading Plainview | ||
| 277 | @cindex Plainview | ||
| 144 | 278 | ||
| 145 | However, if you are using imenu, which allows for navigating with the | 279 | In this view all headlines of all feeds are displayed in a single |
| 146 | help of a menu, you should add the following to your Emacs startup file | 280 | buffer (@file{*newsticker*}). The modeline in the @file{*newsticker*} |
| 147 | (@file{~/.emacs}). | 281 | buffer informs you whenever new headlines have arrived. |
| 282 | |||
| 283 | You may want to use imenu with Plainview, which allows for navigating | ||
| 284 | with the help of a menu. In this case add the following to your Emacs | ||
| 285 | startup 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 | ||
| 153 | That's it. | 291 | (Note that preparing the Plainview takes significantly more time than |
| 292 | starting the Treeview because all headlines are displayed in a single | ||
| 293 | buffer. When you have subscribed to a large amount of feeds you may | ||
| 294 | find that Newsticker's efforts of minimizing rendering times, caching | ||
| 295 | rendered items and so on you may find However, when you have | ||
| 296 | subscribed to a large amount of feeds you may want to give the | ||
| 297 | Treeview a try.) | ||
| 154 | 298 | ||
| 155 | @node Usage | 299 | The Plainview is used when the variable @code{newsticker-frontend} is |
| 156 | @chapter Usage | 300 | set to the value @code{newsticker-plainview}. (Alternatively it can be |
| 301 | started with the command @code{newsticker-plainview}.) | ||
| 157 | 302 | ||
| 158 | @findex newsticker-show-news | 303 | @subheading Ticker |
| 159 | The command @code{newsticker-show-news} will display all available | 304 | @cindex Ticker |
| 160 | headlines. It will also start the asynchronous download of headlines. | ||
| 161 | 305 | ||
| 162 | You can choose between two different frontends for reading headlines: | 306 | Additionally, headlines can be displayed in the echo area in the style of a |
| 163 | @itemize | 307 | news ticker. |
| 164 | @item Newsticker's @emph{treeview} uses separate windows for the | ||
| 165 | feeds (in tree form), a list of headlines for the current feed, and | ||
| 166 | the content of the current headline. Feeds can be placed into groups, | ||
| 167 | which themselves can be placed in groups and so on. | ||
| 168 | @item Newsticker's @emph{plainview} displays all headlines in a | ||
| 169 | single buffer, called @file{*newsticker*}. The modeline in the | ||
| 170 | @file{*newsticker*} buffer informs you whenever new headlines have | ||
| 171 | arrived. | ||
| 172 | @end itemize | ||
| 173 | In both views clicking mouse-button 2 or pressing @key{RET} on a | ||
| 174 | headline will call @code{browse-url} to load the corresponding news | ||
| 175 | story 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 |
| 179 | The scrolling, or flashing of headlines in the echo area, can be | 311 | Headlines can be displayed in the echo area, either scrolling like |
| 312 | messages in a stock-quote ticker, or just changing. This can be | ||
| 180 | started with the command @code{newsticker-start-ticker}. It can be | 313 | started with the command @code{newsticker-start-ticker}. It can be |
| 181 | stopped with @code{newsticker-stop-ticker}. | 314 | stopped with @code{newsticker-stop-ticker}. |
| 182 | 315 | ||
| 183 | @findex newsticker-start | 316 | |
| 184 | @findex newsticker-stop | 317 | @node Navigation |
| 185 | If you just want to start the periodic download of headlines use the | 318 | @section Navigation |
| 186 | command @code{newsticker-start}. Calling @code{newsticker-stop} will | 319 | @cindex Navigation |
| 187 | stop the periodic download, but will call | 320 | |
| 188 | @code{newsticker-stop-ticker} as well. | 321 | Navigating through the list of feeds and headlines is rather |
| 322 | straightforward. You may do this either with the mouse or with the | ||
| 323 | keyboard. The following key bindings are provided in both, the | ||
| 324 | Treeview as well as the Plainview. | ||
| 325 | |||
| 326 | @table @kbd | ||
| 327 | @item f | ||
| 328 | @findex newsticker-next-feed | ||
| 329 | @findex newsticker-treeview-next-feed | ||
| 330 | Move 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 | ||
| 335 | Move 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 | ||
| 340 | Move 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 | ||
| 345 | Move 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 | ||
| 351 | Move 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 | ||
| 356 | Move 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 | ||
| 365 | Enter 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 | |||
| 374 | The following key bindings are provided in both, the Treeview as well | ||
| 375 | as 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 | ||
| 381 | Mark 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 | ||
| 387 | Mark 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 | ||
| 403 | Open the link to the full article (as contained in the current | ||
| 404 | headline) in your web browser @code{newsticker-treeview-browse-url}). | ||
| 405 | @end table | ||
| 406 | |||
| 407 | @subheading Get News | ||
| 408 | @cindex Get News | ||
| 409 | |||
| 410 | You can force immediate download of news with the following commands. | ||
| 411 | |||
| 412 | @table @kbd | ||
| 413 | @item g | ||
| 414 | @findex newsticker-treeview-get-news | ||
| 415 | Get news for currently shown feed (@code{newsticker-treeview-get-news}). | ||
| 416 | @item G | ||
| 417 | @findex newsticker-get-all-news | ||
| 418 | Get 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 | ||
| 427 | The command @code{newsticker-add-url} prompts for an URL and a name of | ||
| 428 | a new feed. It then prepares a customization buffer where the details | ||
| 429 | of the new feed can be set. | ||
| 430 | @end table | ||
| 431 | |||
| 432 | |||
| 433 | @node Automatic Processing | ||
| 434 | @chapter Automatic Processing | ||
| 435 | @cindex Automatic Processing | ||
| 436 | |||
| 437 | Apart from automatic marking of headlines (by means of filters) | ||
| 438 | Newsticker provides the possibility to fully process newly arrived | ||
| 439 | headlines. Instead of reading headlines yourself you can tell | ||
| 440 | Newsticker to do that for you. | ||
| 441 | |||
| 442 | @vindex newsticker-new-item-functions | ||
| 443 | In order to do so write a function which takes three arguments | ||
| 444 | |||
| 445 | @table @var | ||
| 446 | @item FEED | ||
| 447 | the name of the corresponding news feed, | ||
| 448 | @item TITLE | ||
| 449 | the title of the headline, | ||
| 450 | @item DESC | ||
| 451 | the decoded description of the headline. | ||
| 452 | @end table | ||
| 453 | |||
| 454 | and add it to @code{newsticker-new-item-functions}. Each function | ||
| 455 | contained in this list is called once for each new headline. | ||
| 456 | Depending on the feed, the title and the description of a headline you | ||
| 457 | can | ||
| 458 | |||
| 459 | @itemize | ||
| 460 | @item | ||
| 461 | automatically download images referenced in HTML-formatted | ||
| 462 | descriptions (for which a function already exists, see | ||
| 463 | @code{newsticker-download-images}), | ||
| 464 | @item | ||
| 465 | automatically save enclosed audio and video files (for which another | ||
| 466 | function exists as well, see @code{newsticker-download-images}), | ||
| 467 | @item | ||
| 468 | flash the screen while playing some sound, | ||
| 469 | @item | ||
| 470 | whatever 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 |
| 196 | group. | 479 | group. |
| 197 | 480 | ||
| 198 | All Newsticker options have reasonable default values, so that in most | 481 | @noindent |
| 199 | cases it is not necessary to customize settings before starting Newsticker | 482 | The following list shows the available groups of Newsticker options |
| 200 | for the first time. | ||
| 201 | |||
| 202 | The following list shows the available groups of newsticker options | ||
| 203 | and some of the most important options. | 483 | and 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 | ||
| 299 | For the complete list of options please have a look at the | 580 | For the complete list of options please have a look at the |
| 300 | customization buffers. | 581 | customization buffers. |
| 301 | 582 | ||
| 302 | @node Remarks | 583 | @node Supported Formats |
| 303 | @chapter Remarks | 584 | @appendix Supported Formats |
| 585 | @cindex Supported Formats | ||
| 586 | |||
| 587 | Newsticker 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 | ||
| 305 | Byte-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 | ||
| 642 | Texinfo 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 | |||
| 640 | Publishing | 652 | Publishing |
| 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 |
| 2727 | empty with the empty string. | 2739 | empty 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 |
| 2729 | Sum of the first two columns. When at least one of the input fields is empty | 2741 | Sum of the first two columns. When at least one of the input fields is empty |
| 2730 | the Org table result field is set to empty. | 2742 | the Org table result field is set to empty. @samp{E} is required to not |
| 2743 | convert empty fields to 0. @samp{f-1} is an optional Calc format string | ||
| 2744 | similar 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 |
| 2732 | Mean value of a range unless there is any empty field. Every field in the | 2746 | Mean value of a range unless there is any empty field. Every field in the |
| 2733 | range that is empty is replaced by @samp{nan} which lets @samp{vmean} result | 2747 | range 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 |
| 4413 | you not only define global TODO keywords and fast access keys, but also | 4427 | You not only define global TODO keywords and fast access keys, but also |
| 4414 | request that a time is recorded when the entry is set to | 4428 | request that a time is recorded when the entry is set to |
| 4415 | DONE@footnote{It is possible that Org mode will record two timestamps | 4429 | DONE@footnote{It is possible that Org mode will record two timestamps |
| 4416 | when you are using both @code{org-log-done} and state change logging. | 4430 | when 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 |
| 9954 | The optional second and third parameter are the markup (e.g., @samp{quote}, | 9968 | The 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 | 9969 | or @samp{src}), and, if the markup is @samp{src}, the language for formatting |
| 9956 | language for formatting the contents. The markup is optional; if it is not | 9970 | the contents. The markup is optional; if it is not given, the text will be |
| 9957 | given, the text will be assumed to be in Org mode format and will be | 9971 | assumed to be in Org mode format and will be processed normally. |
| 9958 | processed normally. | ||
| 9959 | 9972 | ||
| 9960 | Contents of the included file will belong to the same structure (headline, | 9973 | Contents of the included file will belong to the same structure (headline, |
| 9961 | item) containing the @code{INCLUDE} keyword. In particular, headlines within | 9974 | item) 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 | |||
| 10690 | Toggle inclusion of tables (@code{org-export-with-tables}). | 10704 | Toggle inclusion of tables (@code{org-export-with-tables}). |
| 10691 | @end table | 10705 | @end table |
| 10692 | 10706 | ||
| 10693 | @cindex property, EXPORT_FILE_NAME | ||
| 10694 | When exporting only a subtree, each of the previous keywords@footnote{With | 10707 | When exporting only a subtree, each of the previous keywords@footnote{With |
| 10695 | the exception of @samp{SETUPFILE}.} can be overridden locally by special node | 10708 | the exception of @samp{SETUPFILE}.} can be overridden locally by special node |
| 10696 | properties. These begin with @samp{EXPORT_}, followed by the name of the | 10709 | properties. These begin with @samp{EXPORT_}, followed by the name of the |
| 10697 | keyword they supplant. For example, @samp{DATE} and @samp{OPTIONS} keywords | 10710 | keyword they supplant. For example, @samp{DATE} and @samp{OPTIONS} keywords |
| 10698 | become, respectively, @samp{EXPORT_DATE} and @samp{EXPORT_OPTIONS} | 10711 | become, respectively, @samp{EXPORT_DATE} and @samp{EXPORT_OPTIONS} |
| 10699 | properties. Subtree export also supports the self-explicit | 10712 | properties. |
| 10700 | @samp{EXPORT_FILE_NAME} property@footnote{There is no buffer-wide equivalent | ||
| 10701 | for this property. The file name in this case is derived from the file | ||
| 10702 | associated 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 | |||
| 10708 | is @samp{#+BIND: variable value}. This is particularly useful for in-buffer | 10718 | is @samp{#+BIND: variable value}. This is particularly useful for in-buffer |
| 10709 | settings that cannot be changed using specific keywords. | 10719 | settings that cannot be changed using specific keywords. |
| 10710 | 10720 | ||
| 10721 | @cindex property, EXPORT_FILE_NAME | ||
| 10722 | The name of the output file to be generated is taken from the file associated | ||
| 10723 | to the buffer, when possible, or asked to you otherwise. For subtree export, | ||
| 10724 | you can also set @samp{EXPORT_FILE_NAME} property. In all cases, only the | ||
| 10725 | base name of the file is retained, and a back-end specific extension is | ||
| 10726 | added. | ||
| 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. | |||
| 12834 | Export to an Org file, then open it. | 12851 | Export 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 | ||
| 12859 | an 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} | ||
| 12877 | Export as a Texinfo file. For an Org file, @file{myfile.org}, the resulting | ||
| 12878 | file will be @file{myfile.texi}. The file will be overwritten without | ||
| 12879 | warning. | ||
| 12880 | @orgcmd{C-c C-e i i,org-texinfo-export-to-info} | ||
| 12881 | Export 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, | ||
| 12883 | including DocBook.}. | ||
| 12884 | @end table | ||
| 12885 | |||
| 12886 | @node Document preamble, Headings and sectioning structure, Texinfo export commands, Texinfo export | ||
| 12887 | @subsection Document preamble | ||
| 12888 | |||
| 12889 | When processing a document, @samp{texinfo} back-end generates a minimal file | ||
| 12890 | header along with a title page, a copyright page, and a menu. You control | ||
| 12891 | the latter through the structure of the document (@pxref{Headings and | ||
| 12892 | sectioning structure}). Various keywords allow to tweak the other parts. It | ||
| 12893 | is also possible to give directions to install the document in the @samp{Top} | ||
| 12894 | node. | ||
| 12895 | |||
| 12896 | @subsubheading File header | ||
| 12897 | |||
| 12898 | @cindex #+TEXINFO_FILENAME | ||
| 12899 | Upon creating the header of a Texinfo file, the back-end guesses a name for | ||
| 12900 | the Info file to be compiled. This may not be a sensible choice, e.g., if | ||
| 12901 | you want to produce the final document in a different directory. Specify an | ||
| 12902 | alternate path with @code{#+TEXINFO_FILENAME} keyword to override the default | ||
| 12903 | destination. | ||
| 12904 | |||
| 12905 | @vindex org-texinfo-coding-system | ||
| 12906 | @vindex org-texinfo-classes | ||
| 12907 | @cindex #+TEXINFO_HEADER | ||
| 12908 | @cindex #+TEXINFO_CLASS | ||
| 12909 | Along with the output file name, the header contains information about the | ||
| 12910 | language (@pxref{Export settings}) and current encoding used@footnote{See | ||
| 12911 | @code{org-texinfo-coding-system} for more information.}. Insert | ||
| 12912 | a @code{#+TEXINFO_HEADER} keyword for each additional command needed, e.g., | ||
| 12913 | @@code@{@@synindex@}. | ||
| 12914 | |||
| 12915 | If you happen to regularly install the same set of commands, it may be easier | ||
| 12916 | to 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 | ||
| 12923 | The default template includes a title page for hard copy output. The title | ||
| 12924 | and author displayed on this page are extracted from, respectively, | ||
| 12925 | @code{#+TITLE} and @code{#+AUTHOR} keywords (@pxref{Export settings}). It is | ||
| 12926 | also 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 | ||
| 12931 | Likewise, information brought by @code{#+AUTHOR} may not be enough. You can | ||
| 12932 | include other authors with several @code{#+SUBAUTHOR} keywords. Values are | ||
| 12933 | also 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 | ||
| 12942 | Copying material is defined in a dedicated headline with a non-nil | ||
| 12943 | @code{:COPYING:} property. The contents are inserted within | ||
| 12944 | a @code{@@copying} command at the beginning of the document whereas the | ||
| 12945 | heading itself does not appear in the structure of the document. | ||
| 12946 | |||
| 12947 | Copyright 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 | ||
| 12965 | You may ultimately want to install your new Info file to your system. You | ||
| 12966 | can write an appropriate entry in the top level directory specifying its | ||
| 12967 | category and title with, respectively, @code{#+TEXINFO_DIR_CATEGORY} and | ||
| 12968 | @code{#+TEXINFO_DIR_TITLE}. Optionally, you can add a short description | ||
| 12969 | using @code{#+TEXINFO_DIR_DESC}. The following example would write an entry | ||
| 12970 | similar 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 | ||
| 12985 | Texinfo structuring commands. For example, a top level headline appears as | ||
| 12986 | @code{@@chapter} if it should be numbered or as @code{@@unnumbered} | ||
| 12987 | otherwise. If you need to use a different set of commands, e.g., to start | ||
| 12988 | with @code{@@part} instead of @code{@@chapter}, install a new class in | ||
| 12989 | @code{org-texinfo-classes}, then activate it with @code{#+TEXINFO_CLASS} | ||
| 12990 | keyword. Export process defaults to @code{org-texinfo-default-class} when | ||
| 12991 | there is no such keyword in the document. | ||
| 12992 | |||
| 12993 | If a headline's level has no associated structuring command, or is below | ||
| 12994 | a certain threshold @pxref{Export settings}, that headline becomes a list in | ||
| 12995 | Texinfo output. | ||
| 12996 | |||
| 12997 | @cindex property, APPENDIX | ||
| 12998 | As an exception, a headline with a non-nil @code{:APPENDIX:} property becomes | ||
| 12999 | an appendix, independently on its level and the class used. | ||
| 13000 | |||
| 13001 | @cindex property, DESCRIPTION | ||
| 13002 | Each regular sectioning structure creates a menu entry, named after the | ||
| 13003 | heading. You can provide a different, e.g., shorter, title in | ||
| 13004 | @code{:ALT_TITLE:} property (@pxref{Table of contents}). Optionally, you can | ||
| 13005 | specify 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 | ||
| 13024 | Index entries are created using dedicated keywords. @samp{texinfo} back-end | ||
| 13025 | provides one for each predefined type: @code{#+CINDEX}, @code{#+FINDEX}, | ||
| 13026 | @code{#+KINDEX}, @code{#+PINDEX}, @code{#+TINDEX} and @code{#+VINDEX}. For | ||
| 13027 | custom indices, you can write raw Texinfo code (@pxref{Quoting Texinfo | ||
| 13028 | code}). | ||
| 13029 | |||
| 13030 | @example | ||
| 13031 | #+CINDEX: Defining indexing entries | ||
| 13032 | @end example | ||
| 13033 | |||
| 13034 | @cindex property, INDEX | ||
| 13035 | To generate an index, you need to set the @code{:INDEX:} property of | ||
| 13036 | a headline to an appropriate abbreviation (e.g., @samp{cp} or @samp{vr}). | ||
| 13037 | The headline is then exported as an unnumbered chapter or section command and | ||
| 13038 | the 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 | |||
| 13050 | It is possible to insert raw Texinfo code using any of the following | ||
| 13051 | constructs | ||
| 13052 | |||
| 13053 | @cindex #+TEXINFO | ||
| 13054 | @cindex #+BEGIN_TEXINFO | ||
| 13055 | @example | ||
| 13056 | Richard @@@@texinfo:@@sc@{@@@@Stallman@@@@texinfo:@}@@@@ commence' GNU. | ||
| 13057 | |||
| 13058 | #+TEXINFO: @@need800 | ||
| 13059 | This 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 | ||
| 13072 | tables. They must be specified using an @code{#+ATTR_TEXINFO} keyword, | ||
| 13073 | written just above the list or table. | ||
| 13074 | |||
| 13075 | @subsubheading Plain lists | ||
| 13076 | |||
| 13077 | In Texinfo output, description lists appear as two-column tables, using the | ||
| 13078 | default command @code{@@table}. You can use @code{@@ftable} or | ||
| 13079 | @code{@@vtable}@footnote{For more information, @inforef{Two-column | ||
| 13080 | Tables,,texinfo}.} instead with @code{:table-type} attribute. | ||
| 13081 | |||
| 13082 | @vindex org-texinfo-def-table-markup | ||
| 13083 | In any case, these constructs require a highlighting command for entries in | ||
| 13084 | the list. You can provide one with @code{:indic} attribute. If you do not, | ||
| 13085 | it defaults to the value stored in @code{org-texinfo-def-table-markup}, which | ||
| 13086 | see. | ||
| 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 | |||
| 13095 | When exporting a table, column widths are deduced from the longest cell in | ||
| 13096 | each column. You can also define them explicitly as fractions of the line | ||
| 13097 | length, 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 | |||
| 13107 | Here 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 | ||
| 12918 | To activate these export back-end, customize @code{org-export-backends} or | 13251 | To activate these export back-end, customize @code{org-export-backends} or |
| 12919 | load them directly with e.g., @code{(require 'ox-texinfo)}. This will add | 13252 | load them directly with e.g., @code{(require 'ox-man)}. This will add new |
| 12920 | new keys in the export dispatcher (@pxref{The Export Dispatcher}). | 13253 | keys in the export dispatcher (@pxref{The Export Dispatcher}). |
| 12921 | 13254 | ||
| 12922 | See the comment section of these files for more information on how to use | 13255 | See the comment section of these files for more information on how to use |
| 12923 | them. | 13256 | them. |
| @@ -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 | ||
| 15482 | In an Org mode buffer, the following key bindings are active: | 15814 | In 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 |
| 214 | Syntactic component lists can contain more than one component, and | 214 | Syntactic component lists can contain more than one component, and |
| 215 | individual syntactic compenents need not have relative buffer positions. | 215 | individual syntactic components need not have relative buffer positions. |
| 216 | The most common example of this is a line that contains a @dfn{comment | 216 | The most common example of this is a line that contains a @dfn{comment |
| 217 | only line}. | 217 | only line}. |
| 218 | @example | 218 | @example |
| @@ -416,7 +416,7 @@ to: | |||
| 416 | @end group | 416 | @end group |
| 417 | @end example | 417 | @end example |
| 418 | 418 | ||
| 419 | In other words, we want to change the indentation of the statments | 419 | In other words, we want to change the indentation of the statements |
| 420 | inside the inverter process. Notice that the construct we want to | 420 | inside the inverter process. Notice that the construct we want to |
| 421 | change starts on line 3. To change the indentation of a line, we need | 421 | change starts on line 3. To change the indentation of a line, we need |
| 422 | to see which syntactic component affect the offset calculations for that | 422 | to 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-) |
| 631 | Another variable, @code{vhdl-file-offsets}, takes an association list | 631 | Another variable, @code{vhdl-file-offsets}, takes an association list |
| 632 | similar to what is allowed in @code{vhdl-offsets-alist}. When the file is | 632 | similar to what is allowed in @code{vhdl-offsets-alist}. When the file is |
| 633 | visited, VHDL Mode will automatically institute these offets using | 633 | visited, 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 | ||
| 636 | Note that file style settings (i.e. @code{vhdl-file-style}) are applied | 636 | Note 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}). | |||
| 648 | For most users, VHDL Mode will support their coding styles with | 648 | For most users, VHDL Mode will support their coding styles with |
| 649 | very little need for customizations. Usually, one of the standard | 649 | very little need for customizations. Usually, one of the standard |
| 650 | styles defined in @code{vhdl-style-alist} will do the trick. Sometimes, | 650 | styles defined in @code{vhdl-style-alist} will do the trick. Sometimes, |
| 651 | one of the syntactic symbol offsets will need to be tweeked slightly, or | 651 | one of the syntactic symbol offsets will need to be tweaked slightly, or |
| 652 | perhaps @code{vhdl-basic-offset} will need to be changed. However, some | 652 | perhaps @code{vhdl-basic-offset} will need to be changed. However, some |
| 653 | styles require a more advanced ability for customization, and one of the | 653 | styles require a more advanced ability for customization, and one of the |
| 654 | real strengths of VHDL Mode is that the syntactic analysis model | 654 | real 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 | ||
| 1563 | VIP uses a special local keymap to interpret key strokes you enter in vi | 1563 | VIP uses a special local keymap to interpret key strokes you enter in vi |
| 1564 | mode. The following keys are bound to @var{nil} in the keymap. Therefore, | 1564 | mode. The following keys are bound to @code{nil} in the keymap. Therefore, |
| 1565 | these keys are interpreted by the global keymap of Emacs. We give below a | 1565 | these keys are interpreted by the global keymap of Emacs. We give below a |
| 1566 | short description of the functions bound to these keys in the global | 1566 | short description of the functions bound to these keys in the global |
| 1567 | keymap. See GNU Emacs Manual for details. | 1567 | keymap. See GNU Emacs Manual for details. |