diff options
| author | Miles Bader | 2006-04-02 01:10:03 +0000 |
|---|---|---|
| committer | Miles Bader | 2006-04-02 01:10:03 +0000 |
| commit | e6335dc16c9c8fad7dc630e9a8261e4178d8e2fa (patch) | |
| tree | 176c338a29f14341f266ef50f2a211fa13082575 | |
| parent | 91b7e4a6fdd600278a3dd3fd5a7962ef0c2a9b72 (diff) | |
| parent | 5af68e282f359dbe09565f690d3f6920a593fb0e (diff) | |
| download | emacs-e6335dc16c9c8fad7dc630e9a8261e4178d8e2fa.tar.gz emacs-e6335dc16c9c8fad7dc630e9a8261e4178d8e2fa.zip | |
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-51
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 188-189)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 73)
- Update from CVS
| -rw-r--r-- | ChangeLog | 15 | ||||
| -rw-r--r-- | INSTALL | 2 | ||||
| -rwxr-xr-x | configure | 3 | ||||
| -rw-r--r-- | configure.in | 5 | ||||
| -rw-r--r-- | etc/NEWS | 9 | ||||
| -rw-r--r-- | etc/images/README | 92 | ||||
| -rw-r--r-- | etc/images/redo.xpm | 69 | ||||
| -rw-r--r-- | lib-src/README | 2 | ||||
| -rw-r--r-- | lisp/ChangeLog | 44 | ||||
| -rw-r--r-- | lisp/erc/ChangeLog | 2 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/gnus/gnus-group.el | 7 | ||||
| -rw-r--r-- | lisp/ido.el | 85 | ||||
| -rw-r--r-- | lisp/mh-e/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/mh-e/mh-e.el | 134 | ||||
| -rw-r--r-- | lisp/pcomplete.el | 4 | ||||
| -rw-r--r-- | lisp/pcvs-util.el | 12 | ||||
| -rw-r--r-- | lisp/shell.el | 6 | ||||
| -rw-r--r-- | lisp/speedbar.el | 2 | ||||
| -rw-r--r-- | man/ChangeLog | 37 | ||||
| -rw-r--r-- | man/custom.texi | 327 | ||||
| -rw-r--r-- | man/dired.texi | 410 | ||||
| -rw-r--r-- | man/emacs.texi | 1 | ||||
| -rw-r--r-- | man/gnus.texi | 24 | ||||
| -rw-r--r-- | man/help.texi | 8 | ||||
| -rw-r--r-- | man/message.texi | 2 | ||||
| -rw-r--r-- | man/misc.texi | 202 | ||||
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/config.in | 4 |
29 files changed, 908 insertions, 616 deletions
| @@ -1,3 +1,18 @@ | |||
| 1 | 2006-04-01 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * configure: Regenerated. | ||
| 4 | |||
| 5 | 2006-04-01 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change) | ||
| 6 | |||
| 7 | * configure.in (HAVE_XAW3D): Disable Xaw3d check if | ||
| 8 | --without-toolkit-scroll-bars was specified. | ||
| 9 | |||
| 10 | 2006-04-01 Christoph Bauer <Christoph.Bauer@lms-gmbh.de> (tiny change) | ||
| 11 | |||
| 12 | * configure.in (hppa*-hp-hpux1[1-9]*): Add | ||
| 13 | -D_INCLUDE__STDC_A1_SOURCE to CFLAGS. Update Copyright years | ||
| 14 | written to src/config.in. | ||
| 15 | |||
| 1 | 2006-03-18 Claudio Fontana <claudio@gnu.org> | 16 | 2006-03-18 Claudio Fontana <claudio@gnu.org> |
| 2 | 17 | ||
| 3 | * Makefile.in (INFO_FILES): New variable, contains all Info file names. | 18 | * Makefile.in (INFO_FILES): New variable, contains all Info file names. |
| @@ -260,7 +260,7 @@ availability). | |||
| 260 | 260 | ||
| 261 | If `--with-x-toolkit=gtk' is specified, you can tell configure where | 261 | If `--with-x-toolkit=gtk' is specified, you can tell configure where |
| 262 | to search for GTK by specifying `--with-pkg-config-prog=PATH' where | 262 | to search for GTK by specifying `--with-pkg-config-prog=PATH' where |
| 263 | PATH is the pathname to pkg-config. Note that GTK version 2.0 or | 263 | PATH is the pathname to pkg-config. Note that GTK version 2.4 or |
| 264 | newer is required for Emacs. | 264 | newer is required for Emacs. |
| 265 | 265 | ||
| 266 | The `--with-gcc' option specifies that the build process should | 266 | The `--with-gcc' option specifies that the build process should |
| @@ -2093,6 +2093,7 @@ _ACEOF | |||
| 2093 | ;; | 2093 | ;; |
| 2094 | hppa*-hp-hpux1[1-9]* ) | 2094 | hppa*-hp-hpux1[1-9]* ) |
| 2095 | machine=hp800 opsys=hpux11 | 2095 | machine=hp800 opsys=hpux11 |
| 2096 | CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS" | ||
| 2096 | ;; | 2097 | ;; |
| 2097 | 2098 | ||
| 2098 | hppa*-*-linux-gnu* ) | 2099 | hppa*-*-linux-gnu* ) |
| @@ -11412,7 +11413,7 @@ fi | |||
| 11412 | ### Is -lXaw3d available? | 11413 | ### Is -lXaw3d available? |
| 11413 | HAVE_XAW3D=no | 11414 | HAVE_XAW3D=no |
| 11414 | if test "${HAVE_X11}" = "yes"; then | 11415 | if test "${HAVE_X11}" = "yes"; then |
| 11415 | if test "${USE_X_TOOLKIT}" != "none"; then | 11416 | if test "${USE_X_TOOLKIT}" != "none" && test "${with_toolkit_scroll_bars}" != "no"; then |
| 11416 | echo "$as_me:$LINENO: checking for X11/Xaw3d/Scrollbar.h" >&5 | 11417 | echo "$as_me:$LINENO: checking for X11/Xaw3d/Scrollbar.h" >&5 |
| 11417 | echo $ECHO_N "checking for X11/Xaw3d/Scrollbar.h... $ECHO_C" >&6 | 11418 | echo $ECHO_N "checking for X11/Xaw3d/Scrollbar.h... $ECHO_C" >&6 |
| 11418 | if test "${ac_cv_header_X11_Xaw3d_Scrollbar_h+set}" = set; then | 11419 | if test "${ac_cv_header_X11_Xaw3d_Scrollbar_h+set}" = set; then |
diff --git a/configure.in b/configure.in index 1e1c2e93a09..86a8de19843 100644 --- a/configure.in +++ b/configure.in | |||
| @@ -611,6 +611,7 @@ dnl see the `changequote' comment above. | |||
| 611 | ;; | 611 | ;; |
| 612 | hppa*-hp-hpux1[1-9]* ) | 612 | hppa*-hp-hpux1[1-9]* ) |
| 613 | machine=hp800 opsys=hpux11 | 613 | machine=hp800 opsys=hpux11 |
| 614 | CFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CFLAGS" | ||
| 614 | ;; | 615 | ;; |
| 615 | 616 | ||
| 616 | hppa*-*-linux-gnu* ) | 617 | hppa*-*-linux-gnu* ) |
| @@ -2179,7 +2180,7 @@ fi | |||
| 2179 | ### Is -lXaw3d available? | 2180 | ### Is -lXaw3d available? |
| 2180 | HAVE_XAW3D=no | 2181 | HAVE_XAW3D=no |
| 2181 | if test "${HAVE_X11}" = "yes"; then | 2182 | if test "${HAVE_X11}" = "yes"; then |
| 2182 | if test "${USE_X_TOOLKIT}" != "none"; then | 2183 | if test "${USE_X_TOOLKIT}" != "none" && test "${with_toolkit_scroll_bars}" != "no"; then |
| 2183 | dnl Fixme: determine what Scrollbar.h needs to avoid compilation | 2184 | dnl Fixme: determine what Scrollbar.h needs to avoid compilation |
| 2184 | dnl errors from the test without the `-'. | 2185 | dnl errors from the test without the `-'. |
| 2185 | AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h, | 2186 | AC_CHECK_HEADER(X11/Xaw3d/Scrollbar.h, |
| @@ -2840,7 +2841,7 @@ if test "${REL_ALLOC}" = "yes" ; then | |||
| 2840 | fi | 2841 | fi |
| 2841 | 2842 | ||
| 2842 | AH_TOP([/* GNU Emacs site configuration template file. | 2843 | AH_TOP([/* GNU Emacs site configuration template file. |
| 2843 | Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004 | 2844 | Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004, 2005, 2006 |
| 2844 | Free Software Foundation, Inc. | 2845 | Free Software Foundation, Inc. |
| 2845 | 2846 | ||
| 2846 | This file is part of GNU Emacs. | 2847 | This file is part of GNU Emacs. |
| @@ -3545,6 +3545,15 @@ the command `undefined'. (In earlier Emacs versions, it used | |||
| 3545 | `risky-local-variable' property is nil. | 3545 | `risky-local-variable' property is nil. |
| 3546 | 3546 | ||
| 3547 | --- | 3547 | --- |
| 3548 | The function `comint-send-input' now accepts 3 optional arguments: | ||
| 3549 | |||
| 3550 | (comint-send-input &optional no-newline artificial) | ||
| 3551 | |||
| 3552 | Callers sending input not from the user should use bind the 3rd | ||
| 3553 | argument `artificial' to a non-nil value, to prevent Emacs from | ||
| 3554 | deleting the part of subprocess output that matches the input. | ||
| 3555 | |||
| 3556 | --- | ||
| 3548 | ** Support for Mocklisp has been removed. | 3557 | ** Support for Mocklisp has been removed. |
| 3549 | 3558 | ||
| 3550 | +++ | 3559 | +++ |
diff --git a/etc/images/README b/etc/images/README index 0f74a900109..57450d7f92f 100644 --- a/etc/images/README +++ b/etc/images/README | |||
| @@ -1,43 +1,71 @@ | |||
| 1 | All of the following icons are not part of Emacs, but distributed and | 1 | The following icons are from GNOME 2.6: |
| 2 | used by Emacs. | ||
| 3 | 2 | ||
| 4 | * The following icons are from GTK+ 2.x: | 3 | attach.xpm (stock_attach) |
| 4 | connect.xpm (stock_connect) | ||
| 5 | contact.xpm (stock_contact) | ||
| 6 | delete.xpm (stock_delete) | ||
| 7 | describe.xpm (stock_properties) | ||
| 8 | disconnect.xpm (stock_disconnect) | ||
| 9 | exit.xpm (stock_exit) | ||
| 10 | lock-broken.xpm (stock_lock_broken) | ||
| 11 | lock-ok.xpm (stock_lock_ok) | ||
| 12 | lock.xpm (stock_lock) | ||
| 13 | next-page.xpm (stock_next-page) | ||
| 14 | refresh.xpm (stock_refresh) | ||
| 15 | sort-ascending.xpm (stock_sort-ascending) | ||
| 16 | sort-column-ascending.xpm (stock_sort-column-ascending) | ||
| 17 | sort-criteria.xpm (stock_sort-criteria) | ||
| 18 | sort-descending.xpm (stock_sort-descending) | ||
| 19 | sort-row-ascending.xpm (stock_sort-row-ascending) | ||
| 5 | 20 | ||
| 6 | close.xpm copy.xpm cut.xpm find-replace.xpm help.xpm home.xpm | 21 | gnus/toggle-subscription.xpm (stock_task-recurring) |
| 7 | index.xpm jump-to.xpm left-arrow.xpm new.xpm open.xpm paste.xpm | ||
| 8 | preferences.xpm print.xpm refresh.xpm right-arrow.xpm save.xpm | ||
| 9 | saveas.xpm search.xpm sort-ascending.xpm sort-descending.xpm | ||
| 10 | spell.xpm undo.xpm up-arrow.xpm | ||
| 11 | 22 | ||
| 12 | back-arrow.xpm and fwd-arrow.xpm are slightly modified undo and redo. | 23 | mail/compose.xpm (stock_mail-compose) |
| 24 | mail/copy.xpm (stock_mail-copy) | ||
| 25 | mail/forward.xpm (stock_mail-forward) | ||
| 26 | mail/inbox.xpm (stock_inbox) | ||
| 27 | mail/move.xpm (stock_mail-move) | ||
| 28 | mail/not-spam.xpm (stock_not-spam) | ||
| 29 | mail/outbox.xpm (stock_outbox) | ||
| 30 | mail/reply-all.xpm (stock_mail-reply-to-all) | ||
| 31 | mail/reply.xpm (stock_mail-reply) | ||
| 32 | mail/save-draft.xpm (stock_mail-handling) | ||
| 33 | mail/send.xpm (stock_mail-send) | ||
| 34 | mail/spam.xpm (stock_spam) | ||
| 13 | 35 | ||
| 14 | diropen.xpm is file-manager.png from Gnome hicolor theme. | ||
| 15 | 36 | ||
| 16 | * The following icons are from GNOME 2.x: | 37 | The following icons were contributed by Adam Sjøgren <asjo@koldfront.dk>: |
| 17 | 38 | ||
| 18 | attach.xpm connect.xpm contact.xpm data-save.xpm delete.xpm | 39 | mail/preview.xpm (combining stock_mail and stock_zoom) |
| 19 | describe.xpm disconnect.xpm exit.xpm gnus/toggle-subscription.xpm | 40 | mail/save.xpm (combining stock_mail, stock_save and stock_convert) |
| 20 | lock-broken.xpm lock-ok.xpm lock.xpm mail/compose.xpm | ||
| 21 | mail/copy.xpm mail/flag-for-followup.xpm mail/forward.xpm | ||
| 22 | mail/inbox.xpm mail/move.xpm mail/not-spam.xpm mail/outbox.xpm | ||
| 23 | mail/preview.xpm mail/reply-all.xpm mail/reply.xpm | ||
| 24 | mail/save-draft.xpm mail/save.xpm mail/send.xpm mail/spam.xpm | ||
| 25 | next-page.xpm refresh.xpm separator.xpm sort-ascending.xpm | ||
| 26 | sort-column-ascending.xpm sort-criteria.xpm sort-descending.xpm | ||
| 27 | sort-row-ascending.xpm zoom-in.xpm zoom-out.xpm | ||
| 28 | 41 | ||
| 29 | * Note that the default GTK icons were not overridden by the GNOME theme | ||
| 30 | due to a bug which was fixed in GNOME 2.15. Once GNOME 2.16 is in wide | ||
| 31 | circulation, then the GTK icons should be replaced with the equivalent | ||
| 32 | GNOME icons. | ||
| 33 | 42 | ||
| 34 | * Recipe for Creating PBM Versions | 43 | The folling icon are duplicated from Emacs 22. They are either not present in |
| 44 | Emacs 21 or look different there. | ||
| 35 | 45 | ||
| 36 | 1. Edit .xpm image in GIMP. | 46 | cancel.xpm |
| 37 | 2. Image > Mode > Indexed. Check Use Black/White Palette and No | 47 | copy.xpm |
| 38 | Color Dithering. | 48 | diropen.xpm |
| 39 | 3. File > Save As file.xbm. | 49 | help.xpm |
| 40 | 4. Run xbmtopbm < file.xbm > file.pbm. | 50 | left-arrow.xpm |
| 51 | paste.xpm | ||
| 52 | print.xpm | ||
| 53 | redo.xpm | ||
| 54 | right-arrow.xpm | ||
| 55 | save.xpm | ||
| 56 | search.xpm | ||
| 57 | separator.xpm | ||
| 41 | 58 | ||
| 42 | Thanks to jan.h.d@swipnet.se for the help. | 59 | The GNOME's stock_*.png files were converted to XPM using the following GIMP |
| 60 | script: | ||
| 43 | 61 | ||
| 62 | ;; -*- scheme -*- | ||
| 63 | ;; Put this file in ~/.gimp-*/scripts/ | ||
| 64 | ;; gimp -i -b '(rs-save-as-xpm "foo.png" "foo.xpm" 127)' '(gimp-quit 0)' | ||
| 65 | (define (rs-save-as-xpm filename filename2 threshold) | ||
| 66 | (let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename filename))) | ||
| 67 | (drawable (car (gimp-image-get-active-layer image)))) | ||
| 68 | (file-xpm-save RUN-NONINTERACTIVE image drawable | ||
| 69 | filename2 filename2 threshold) | ||
| 70 | (gimp-image-delete image))) | ||
| 71 | ;; end | ||
diff --git a/etc/images/redo.xpm b/etc/images/redo.xpm new file mode 100644 index 00000000000..273aec58572 --- /dev/null +++ b/etc/images/redo.xpm | |||
| @@ -0,0 +1,69 @@ | |||
| 1 | /* XPM */ | ||
| 2 | static char * stock_redo_xpm[] = { | ||
| 3 | "24 24 42 1", | ||
| 4 | " c None", | ||
| 5 | ". c #000000", | ||
| 6 | "+ c #939A8D", | ||
| 7 | "@ c #BAD09D", | ||
| 8 | "# c #92998C", | ||
| 9 | "$ c #818F71", | ||
| 10 | "% c #ADBDA0", | ||
| 11 | "& c #C2D5AA", | ||
| 12 | "* c #D1DFBE", | ||
| 13 | "= c #BED2A3", | ||
| 14 | "- c #99A28F", | ||
| 15 | "; c #A8BCA6", | ||
| 16 | "> c #D5E1C6", | ||
| 17 | ", c #CDDCBC", | ||
| 18 | "' c #D2E0BF", | ||
| 19 | ") c #C5D7AE", | ||
| 20 | "! c #919889", | ||
| 21 | "~ c #8C9A7F", | ||
| 22 | "{ c #D4E0C5", | ||
| 23 | "] c #D3E0C1", | ||
| 24 | "^ c #BFD3A6", | ||
| 25 | "/ c #9BAA87", | ||
| 26 | "( c #B5C3A9", | ||
| 27 | "_ c #92AD62", | ||
| 28 | ": c #7C9B40", | ||
| 29 | "< c #59702D", | ||
| 30 | "[ c #7F8E6B", | ||
| 31 | "} c #C8D9B2", | ||
| 32 | "| c #85A24D", | ||
| 33 | "1 c #53692A", | ||
| 34 | "2 c #A4B690", | ||
| 35 | "3 c #9BB572", | ||
| 36 | "4 c #6D8839", | ||
| 37 | "5 c #95A77E", | ||
| 38 | "6 c #8BA859", | ||
| 39 | "7 c #657255", | ||
| 40 | "8 c #98AF74", | ||
| 41 | "9 c #AFC394", | ||
| 42 | "0 c #6D7A5B", | ||
| 43 | "a c #9CAF84", | ||
| 44 | "b c #748261", | ||
| 45 | "c c #879772", | ||
| 46 | " ", | ||
| 47 | " ", | ||
| 48 | " ", | ||
| 49 | " . ", | ||
| 50 | " .. ", | ||
| 51 | " .+. ", | ||
| 52 | " ....@#. ", | ||
| 53 | " .$%&*=@-. ", | ||
| 54 | " .;>,')@@@!. ", | ||
| 55 | " .~{]*^@@@@@/. ", | ||
| 56 | " .(>_::::::<. ", | ||
| 57 | " .[}|::::::1. ", | ||
| 58 | " .23:<...:1. ", | ||
| 59 | " .@:4. .<. ", | ||
| 60 | " .@:.. .. ", | ||
| 61 | " .56. . ", | ||
| 62 | " .78. ", | ||
| 63 | " .9. ", | ||
| 64 | " .0a. ", | ||
| 65 | " .bc. ", | ||
| 66 | " ... ", | ||
| 67 | " ", | ||
| 68 | " ", | ||
| 69 | " "}; | ||
diff --git a/lib-src/README b/lib-src/README index 4d29931a6e9..693b5be74cb 100644 --- a/lib-src/README +++ b/lib-src/README | |||
| @@ -1,3 +1,3 @@ | |||
| 1 | This directory contains the source code for the architecture-dependent | 1 | This directory contains the source code for the architecture-dependent |
| 2 | files that go in ${archlibdir}. At present, these are mostly utility | 2 | files that go in ${archlibdir}. At present, these are mostly utility |
| 3 | programs used by Emacs. | 3 | programs used by GNU Emacs. |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 48ead8f51ff..52486191495 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,40 @@ | |||
| 1 | 2006-04-02 Drew Adams <drew.adams@oracle.com> (tiny change) | ||
| 2 | |||
| 3 | * speedbar.el (speedbar-after-create-hook): Doc fix. | ||
| 4 | |||
| 5 | 2006-04-02 Michael Ernst <mernst@alum.mit.edu> | ||
| 6 | |||
| 7 | * shell.el (shell-directory-tracker) | ||
| 8 | (shell-dynamic-complete-command): Doc fixes. | ||
| 9 | |||
| 10 | 2006-04-01 Matt Hodges <MPHodges@member.fsf.org> | ||
| 11 | |||
| 12 | * pcomplete.el (pcomplete-show-completions): Recognize TAB on text | ||
| 13 | terminals. | ||
| 14 | |||
| 15 | 2006-04-01 Kim F. Storm <storm@cua.dk> | ||
| 16 | |||
| 17 | * ido.el (ido-unc-hosts-cache): New defvar. | ||
| 18 | (ido-unc-hosts): If value of defcustom is a function, call it to | ||
| 19 | get list of UNC hosts. Add function-item choices to specify | ||
| 20 | ido-unc-hosts-net-view or user function. | ||
| 21 | (ido-ignore-unc-host-regexps): New defcustom. | ||
| 22 | (ido-unc-hosts-net-view, ido-unc-hosts): New functions. | ||
| 23 | (ido-is-unc-root, ido-is-unc-host, ido-file-name-all-completions) | ||
| 24 | (ido-exhibit): Call ido-unc-hosts to get list of UNC hosts. | ||
| 25 | |||
| 26 | 2006-03-13 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 27 | |||
| 28 | * pcvs-util.el (cvs-insert-strings): Fix bug with strings longer than | ||
| 29 | wwidth. | ||
| 30 | |||
| 31 | 2006-03-31 Juanma Barranquero <lekktu@gmail.com> | ||
| 32 | |||
| 33 | * ido.el (ido-cache-unc-host-shares-time, ido-report-no-match) | ||
| 34 | (ido-max-work-file-list, ido-switch-buffer) | ||
| 35 | (ido-read-file-name-as-directory-commands): | ||
| 36 | Fix typos in docstrings. | ||
| 37 | |||
| 1 | 2006-03-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 38 | 2006-03-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
| 2 | 39 | ||
| 3 | * term/mac-win.el (mac-system-coding-system): Define and use after | 40 | * term/mac-win.el (mac-system-coding-system): Define and use after |
| @@ -433,11 +470,6 @@ | |||
| 433 | * tree-widget.el (tree-widget-themes-load-path) | 470 | * tree-widget.el (tree-widget-themes-load-path) |
| 434 | (tree-widget-themes-directory, tree-widget-theme): Doc fix. | 471 | (tree-widget-themes-directory, tree-widget-theme): Doc fix. |
| 435 | 472 | ||
| 436 | 2006-03-13 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 437 | |||
| 438 | * pcvs-util.el (cvs-insert-strings): Fix bug with strings longer than | ||
| 439 | wwidth. | ||
| 440 | |||
| 441 | 2006-03-13 Ryan Yeske <rcyeske@gmail.com> | 473 | 2006-03-13 Ryan Yeske <rcyeske@gmail.com> |
| 442 | 474 | ||
| 443 | * net/rcirc.el (rcirc) <defgroup>: Add link to manual. | 475 | * net/rcirc.el (rcirc) <defgroup>: Add link to manual. |
| @@ -15172,7 +15204,7 @@ | |||
| 15172 | * add-log.el (change-log-font-lock-keywords): Make the regexp for | 15204 | * add-log.el (change-log-font-lock-keywords): Make the regexp for |
| 15173 | date lines stricter. | 15205 | date lines stricter. |
| 15174 | 15206 | ||
| 15175 | 2005-06-10 Zhang Wei <id.brep@gmail.com> (tiny change) | 15207 | 2005-06-10 Zhang Wei <id.brep@gmail.com> |
| 15176 | 15208 | ||
| 15177 | * term/x-win.el (x-clipboard-yank): Use x-selection-value instead | 15209 | * term/x-win.el (x-clipboard-yank): Use x-selection-value instead |
| 15178 | of x-get-selection. | 15210 | of x-get-selection. |
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index 5781a442c08..67799d73049 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog | |||
| @@ -197,7 +197,7 @@ | |||
| 197 | 197 | ||
| 198 | * erc.el (erc-version-string): Release ERC 5.1.1. | 198 | * erc.el (erc-version-string): Release ERC 5.1.1. |
| 199 | 199 | ||
| 200 | 2006-02-03 Zhang Wei <id.brep@gmail.com> (tiny change) | 200 | 2006-02-03 Zhang Wei <id.brep@gmail.com> |
| 201 | 201 | ||
| 202 | * erc.el (erc-version-string): Don't hard-code Emacs version. | 202 | * erc.el (erc-version-string): Don't hard-code Emacs version. |
| 203 | (erc-version): Use emacs-version. | 203 | (erc-version): Use emacs-version. |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 71940cac0db..d39ab0a1455 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2006-03-31 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 2 | |||
| 3 | * gnus-group.el (gnus-group-update-tool-bar): Add :initialize and | ||
| 4 | :set. | ||
| 5 | |||
| 1 | 2006-03-23 Katsumi Yamaoka <yamaoka@jpl.org> | 6 | 2006-03-23 Katsumi Yamaoka <yamaoka@jpl.org> |
| 2 | 7 | ||
| 3 | * mml.el (mml-insert-mime): Ignore cached contents of | 8 | * mml.el (mml-insert-mime): Ignore cached contents of |
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el index 0ed72433115..24e4df14712 100644 --- a/lisp/gnus/gnus-group.el +++ b/lisp/gnus/gnus-group.el | |||
| @@ -1389,6 +1389,13 @@ if it is a string, only list groups matching REGEXP." | |||
| 1389 | "Force updating the group buffer tool bar." | 1389 | "Force updating the group buffer tool bar." |
| 1390 | :group 'gnus-group | 1390 | :group 'gnus-group |
| 1391 | :version "22.1" | 1391 | :version "22.1" |
| 1392 | :initialize 'custom-initialize-default | ||
| 1393 | :set (lambda (symbol value) | ||
| 1394 | (set-default symbol value) | ||
| 1395 | (when (gnus-alive-p) | ||
| 1396 | (with-current-buffer gnus-group-buffer | ||
| 1397 | ;; FIXME: Is there a better way to redraw the group buffer? | ||
| 1398 | (gnus-group-get-new-news 0)))) | ||
| 1392 | :type 'boolean) | 1399 | :type 'boolean) |
| 1393 | 1400 | ||
| 1394 | (defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level | 1401 | (defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level |
diff --git a/lisp/ido.el b/lisp/ido.el index 6bc2f45709f..e4ec2be700d 100644 --- a/lisp/ido.el +++ b/lisp/ido.el | |||
| @@ -630,22 +630,41 @@ equivalent function, e.g. `find-file' rather than `ido-find-file'." | |||
| 630 | :type '(repeat regexp) | 630 | :type '(repeat regexp) |
| 631 | :group 'ido) | 631 | :group 'ido) |
| 632 | 632 | ||
| 633 | (defvar ido-unc-hosts-cache t | ||
| 634 | "Cached value from ido-unc-hosts function.") | ||
| 635 | |||
| 633 | (defcustom ido-unc-hosts nil | 636 | (defcustom ido-unc-hosts nil |
| 634 | "*List of known UNC host names to complete after initial //." | 637 | "*List of known UNC host names to complete after initial //. |
| 635 | :type '(repeat string) | 638 | If value is a function, that function is called to search network for |
| 639 | hosts on first use of UNC path." | ||
| 640 | :type '(choice (repeat :tag "List of UNC host names" string) | ||
| 641 | (function-item :tag "Use `NET VIEW'" | ||
| 642 | :value ido-unc-hosts-net-view) | ||
| 643 | (function :tag "Your own function")) | ||
| 644 | :set #'(lambda (symbol value) | ||
| 645 | (set symbol value) | ||
| 646 | (setq ido-unc-hosts-cache t)) | ||
| 647 | :group 'ido) | ||
| 648 | |||
| 649 | (defcustom ido-ignore-unc-host-regexps nil | ||
| 650 | "*List of regexps matching UNC hosts to ignore." | ||
| 651 | :type '(repeat regexp) | ||
| 652 | :set #'(lambda (symbol value) | ||
| 653 | (set symbol value) | ||
| 654 | (setq ido-unc-hosts-cache t)) | ||
| 636 | :group 'ido) | 655 | :group 'ido) |
| 637 | 656 | ||
| 638 | (defcustom ido-cache-unc-host-shares-time 8.0 | 657 | (defcustom ido-cache-unc-host-shares-time 8.0 |
| 639 | "*Maximum time to cache shares of an UNC host (in hours). | 658 | "*Maximum time to cache shares of an UNC host (in hours). |
| 640 | Use C-l in prompt to refresh list. | 659 | Use C-l in prompt to refresh list. |
| 641 | If zero, unc host shares are not cached." | 660 | If zero, UNC host shares are not cached." |
| 642 | :type 'number | 661 | :type 'number |
| 643 | :group 'ido) | 662 | :group 'ido) |
| 644 | 663 | ||
| 645 | (defcustom ido-max-work-file-list 10 | 664 | (defcustom ido-max-work-file-list 10 |
| 646 | "*Maximum number of names of recently opened files to record. | 665 | "*Maximum number of names of recently opened files to record. |
| 647 | This is the list the file names (sans directory) which have most recently | 666 | This is the list the file names (sans directory) which have most recently |
| 648 | been opened. See `ido-work-file-list' and `ido-save-directory-list-file'." | 667 | been opened. See `ido-work-file-list' and `ido-save-directory-list-file'." |
| 649 | :type 'integer | 668 | :type 'integer |
| 650 | :group 'ido) | 669 | :group 'ido) |
| 651 | 670 | ||
| @@ -891,7 +910,7 @@ Must be set before enabling ido mode." | |||
| 891 | :group 'ido) | 910 | :group 'ido) |
| 892 | 911 | ||
| 893 | (defcustom ido-read-file-name-as-directory-commands '() | 912 | (defcustom ido-read-file-name-as-directory-commands '() |
| 894 | "List of commands which uses read-file-name to read a directory name. | 913 | "List of commands which uses `read-file-name' to read a directory name. |
| 895 | When `ido-everywhere' is non-nil, the commands in this list will read | 914 | When `ido-everywhere' is non-nil, the commands in this list will read |
| 896 | the directory using `ido-read-directory-name'." | 915 | the directory using `ido-read-directory-name'." |
| 897 | :type '(repeat symbol) | 916 | :type '(repeat symbol) |
| @@ -988,7 +1007,7 @@ Copied from `icomplete-eoinput'.") | |||
| 988 | "List of files currently matching `ido-text'.") | 1007 | "List of files currently matching `ido-text'.") |
| 989 | 1008 | ||
| 990 | (defvar ido-report-no-match t | 1009 | (defvar ido-report-no-match t |
| 991 | "Report [No Match] when no completions matches ido-text.") | 1010 | "Report [No Match] when no completions matches `ido-text'.") |
| 992 | 1011 | ||
| 993 | (defvar ido-exit nil | 1012 | (defvar ido-exit nil |
| 994 | "Flag to monitor how `ido-find-file' exits. | 1013 | "Flag to monitor how `ido-find-file' exits. |
| @@ -1111,18 +1130,58 @@ it doesn't interfere with other minibuffer usage.") | |||
| 1111 | (pop-to-buffer b t t) | 1130 | (pop-to-buffer b t t) |
| 1112 | (setq truncate-lines t))))) | 1131 | (setq truncate-lines t))))) |
| 1113 | 1132 | ||
| 1133 | (defun ido-unc-hosts (&optional query) | ||
| 1134 | "Return list of UNC host names." | ||
| 1135 | (cond | ||
| 1136 | ((listp ido-unc-hosts) | ||
| 1137 | ido-unc-hosts) ;; static list or nil | ||
| 1138 | ((listp ido-unc-hosts-cache) | ||
| 1139 | ido-unc-hosts-cache) ;; result of net search | ||
| 1140 | ((and query (fboundp ido-unc-hosts)) | ||
| 1141 | (message "Searching for UNC hosts...") | ||
| 1142 | (let ((hosts (funcall ido-unc-hosts)) host re-list re) | ||
| 1143 | (setq ido-unc-hosts-cache nil) | ||
| 1144 | (while hosts | ||
| 1145 | (setq host (downcase (car hosts)) | ||
| 1146 | hosts (cdr hosts) | ||
| 1147 | re-list ido-ignore-unc-host-regexps) | ||
| 1148 | (while re-list | ||
| 1149 | (setq re (car re-list) | ||
| 1150 | re-list (cdr re-list)) | ||
| 1151 | (if (string-match re host) | ||
| 1152 | (setq re-list nil | ||
| 1153 | host nil))) | ||
| 1154 | (if host | ||
| 1155 | (setq ido-unc-hosts-cache (cons host ido-unc-hosts-cache))))) | ||
| 1156 | (message nil) | ||
| 1157 | (setq ido-unc-hosts-cache | ||
| 1158 | (sort ido-unc-hosts-cache #'string<))) | ||
| 1159 | (query | ||
| 1160 | (setq ido-unc-hosts-cache nil)) | ||
| 1161 | (t (fboundp ido-unc-hosts)))) | ||
| 1162 | |||
| 1163 | (defun ido-unc-hosts-net-view () | ||
| 1164 | "Query network for list of UNC host names using `NET VIEW'." | ||
| 1165 | (let (hosts) | ||
| 1166 | (with-temp-buffer | ||
| 1167 | (shell-command "net view" t) | ||
| 1168 | (goto-char (point-min)) | ||
| 1169 | (while (re-search-forward "^\\\\\\\\\\([[:graph:]]+\\)" nil t) | ||
| 1170 | (setq hosts (cons (match-string 1) hosts)))) | ||
| 1171 | hosts)) | ||
| 1172 | |||
| 1114 | (defun ido-is-tramp-root (&optional dir) | 1173 | (defun ido-is-tramp-root (&optional dir) |
| 1115 | (and ido-enable-tramp-completion | 1174 | (and ido-enable-tramp-completion |
| 1116 | (string-match "\\`/[^/]+[@:]\\'" | 1175 | (string-match "\\`/[^/]+[@:]\\'" |
| 1117 | (or dir ido-current-directory)))) | 1176 | (or dir ido-current-directory)))) |
| 1118 | 1177 | ||
| 1119 | (defun ido-is-unc-root (&optional dir) | 1178 | (defun ido-is-unc-root (&optional dir) |
| 1120 | (and ido-unc-hosts | 1179 | (and (ido-unc-hosts) |
| 1121 | (string-equal "//" | 1180 | (string-equal "//" |
| 1122 | (or dir ido-current-directory)))) | 1181 | (or dir ido-current-directory)))) |
| 1123 | 1182 | ||
| 1124 | (defun ido-is-unc-host (&optional dir) | 1183 | (defun ido-is-unc-host (&optional dir) |
| 1125 | (and ido-unc-hosts | 1184 | (and (ido-unc-hosts) |
| 1126 | (string-match "\\`//[^/]+/\\'" | 1185 | (string-match "\\`//[^/]+/\\'" |
| 1127 | (or dir ido-current-directory)))) | 1186 | (or dir ido-current-directory)))) |
| 1128 | 1187 | ||
| @@ -1699,7 +1758,7 @@ With ARG, turn ido speed-up on if arg is positive, off otherwise." | |||
| 1699 | ;; the relevant function is called (find-file, write-file, etc). | 1758 | ;; the relevant function is called (find-file, write-file, etc). |
| 1700 | 1759 | ||
| 1701 | (defun ido-read-internal (item prompt history &optional default require-match initial) | 1760 | (defun ido-read-internal (item prompt history &optional default require-match initial) |
| 1702 | "Perform the ido-read-buffer and ido-read-file-name functions. | 1761 | "Perform the `ido-read-buffer' and `ido-read-file-name' functions. |
| 1703 | Return the name of a buffer or file selected. | 1762 | Return the name of a buffer or file selected. |
| 1704 | PROMPT is the prompt to give to the user. | 1763 | PROMPT is the prompt to give to the user. |
| 1705 | DEFAULT if given is the default directory to start with. | 1764 | DEFAULT if given is the default directory to start with. |
| @@ -3238,7 +3297,7 @@ for first matching file." | |||
| 3238 | (mapcar | 3297 | (mapcar |
| 3239 | (lambda (host) | 3298 | (lambda (host) |
| 3240 | (if (string-match "/\\'" host) host (concat host "/"))) | 3299 | (if (string-match "/\\'" host) host (concat host "/"))) |
| 3241 | ido-unc-hosts)) | 3300 | (ido-unc-hosts t))) |
| 3242 | ((and (numberp ido-max-dir-file-cache) (> ido-max-dir-file-cache 0) | 3301 | ((and (numberp ido-max-dir-file-cache) (> ido-max-dir-file-cache 0) |
| 3243 | (stringp dir) (> (length dir) 0) | 3302 | (stringp dir) (> (length dir) 0) |
| 3244 | (ido-may-cache-directory dir)) | 3303 | (ido-may-cache-directory dir)) |
| @@ -3734,7 +3793,7 @@ default is to show it in the same window, unless it is already visible | |||
| 3734 | in another frame. | 3793 | in another frame. |
| 3735 | 3794 | ||
| 3736 | As you type in a string, all of the buffers matching the string are | 3795 | As you type in a string, all of the buffers matching the string are |
| 3737 | displayed if substring-matching is used \(default). Look at | 3796 | displayed if substring-matching is used \(default). Look at |
| 3738 | `ido-enable-prefix' and `ido-toggle-prefix'. When you have found the | 3797 | `ido-enable-prefix' and `ido-toggle-prefix'. When you have found the |
| 3739 | buffer you want, it can then be selected. As you type, most keys have | 3798 | buffer you want, it can then be selected. As you type, most keys have |
| 3740 | their normal keybindings, except for the following: \\<ido-buffer-completion-map> | 3799 | their normal keybindings, except for the following: \\<ido-buffer-completion-map> |
| @@ -3757,7 +3816,7 @@ in a separate window. | |||
| 3757 | \\[ido-toggle-prefix] Toggle between substring and prefix matching. | 3816 | \\[ido-toggle-prefix] Toggle between substring and prefix matching. |
| 3758 | \\[ido-toggle-case] Toggle case-sensitive searching of buffer names. | 3817 | \\[ido-toggle-case] Toggle case-sensitive searching of buffer names. |
| 3759 | \\[ido-completion-help] Show list of matching buffers in separate window. | 3818 | \\[ido-completion-help] Show list of matching buffers in separate window. |
| 3760 | \\[ido-enter-find-file] Drop into ido-find-file. | 3819 | \\[ido-enter-find-file] Drop into `ido-find-file'. |
| 3761 | \\[ido-kill-buffer-at-head] Kill buffer at head of buffer list. | 3820 | \\[ido-kill-buffer-at-head] Kill buffer at head of buffer list. |
| 3762 | \\[ido-toggle-ignore] Toggle ignoring buffers listed in `ido-ignore-buffers'." | 3821 | \\[ido-toggle-ignore] Toggle ignoring buffers listed in `ido-ignore-buffers'." |
| 3763 | (interactive) | 3822 | (interactive) |
| @@ -4026,7 +4085,7 @@ For details of keybindings, do `\\[describe-function] ido-find-file'." | |||
| 4026 | ((and (ido-is-tramp-root) (string-equal contents "/")) | 4085 | ((and (ido-is-tramp-root) (string-equal contents "/")) |
| 4027 | (ido-set-current-directory ido-current-directory contents) | 4086 | (ido-set-current-directory ido-current-directory contents) |
| 4028 | (setq refresh t)) | 4087 | (setq refresh t)) |
| 4029 | ((and ido-unc-hosts (string-equal contents "/") | 4088 | ((and (ido-unc-hosts) (string-equal contents "/") |
| 4030 | (let ((ido-enable-tramp-completion nil)) | 4089 | (let ((ido-enable-tramp-completion nil)) |
| 4031 | (ido-is-root-directory))) | 4090 | (ido-is-root-directory))) |
| 4032 | (ido-set-current-directory "//") | 4091 | (ido-set-current-directory "//") |
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog index 64876717392..fa66eaca664 100644 --- a/lisp/mh-e/ChangeLog +++ b/lisp/mh-e/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2006-03-31 Bill Wohler <wohler@newt.com> | ||
| 2 | |||
| 3 | * mh-e.el (mh-strip-package-version): Move before use to avoid | ||
| 4 | compiler error. Make macro, also to avoid compiler error. | ||
| 5 | (mh-defface-compat): Incorporate body into mh-face-data and | ||
| 6 | delete. | ||
| 7 | |||
| 1 | 2006-03-30 Bill Wohler <wohler@newt.com> | 8 | 2006-03-30 Bill Wohler <wohler@newt.com> |
| 2 | 9 | ||
| 3 | * mh-e.el (mh-defcustom, mh-defface, mh-defgroup): Macros to | 10 | * mh-e.el (mh-defcustom, mh-defface, mh-defgroup): Macros to |
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el index ce2db4fb66e..5f1c66e58d8 100644 --- a/lisp/mh-e/mh-e.el +++ b/lisp/mh-e/mh-e.el | |||
| @@ -895,6 +895,19 @@ necessary and can actually cause problems." | |||
| 895 | 895 | ||
| 896 | ;; Temporary function and data structure used customization. | 896 | ;; Temporary function and data structure used customization. |
| 897 | ;; These will be unbound after the options are defined. | 897 | ;; These will be unbound after the options are defined. |
| 898 | (defmacro mh-strip-package-version (args) | ||
| 899 | "Strip :package-version keyword and its value from ARGS. | ||
| 900 | In Emacs versions that support the :package-version keyword, | ||
| 901 | ARGS is returned unchanged." | ||
| 902 | `(if (boundp 'customize-package-emacs-version-alist) | ||
| 903 | ,args | ||
| 904 | (let (seen) | ||
| 905 | (loop for keyword in ,args | ||
| 906 | if (cond ((eq keyword ':package-version) (setq seen t) nil) | ||
| 907 | (seen (setq seen nil) nil) | ||
| 908 | (t t)) | ||
| 909 | collect keyword)))) | ||
| 910 | |||
| 898 | (defmacro mh-defgroup (symbol members doc &rest args) | 911 | (defmacro mh-defgroup (symbol members doc &rest args) |
| 899 | "Declare SYMBOL as a customization group containing MEMBERS. | 912 | "Declare SYMBOL as a customization group containing MEMBERS. |
| 900 | See documentation for `defgroup' for a description of the arguments | 913 | See documentation for `defgroup' for a description of the arguments |
| @@ -925,19 +938,6 @@ keyword, introduced in Emacs 22." | |||
| 925 | `(defface ,face ,spec ,doc ,@(mh-strip-package-version args))) | 938 | `(defface ,face ,spec ,doc ,@(mh-strip-package-version args))) |
| 926 | (put 'mh-defface 'lisp-indent-function 'defun) | 939 | (put 'mh-defface 'lisp-indent-function 'defun) |
| 927 | 940 | ||
| 928 | (defun mh-strip-package-version (args) | ||
| 929 | "Strip :package-version keyword and its value from ARGS. | ||
| 930 | In Emacs versions that support the :package-version keyword, | ||
| 931 | ARGS is returned unchanged." | ||
| 932 | (if (boundp 'customize-package-emacs-version-alist) | ||
| 933 | args | ||
| 934 | (let (seen) | ||
| 935 | (loop for keyword in args | ||
| 936 | if (cond ((eq keyword ':package-version) (setq seen t) nil) | ||
| 937 | (seen (setq seen nil) nil) | ||
| 938 | (t t)) | ||
| 939 | collect keyword)))) | ||
| 940 | |||
| 941 | 941 | ||
| 942 | 942 | ||
| 943 | ;;; MH-E Customization | 943 | ;;; MH-E Customization |
| @@ -3115,46 +3115,12 @@ sequence." | |||
| 3115 | (if (boundp 'facemenu-unlisted-faces) | 3115 | (if (boundp 'facemenu-unlisted-faces) |
| 3116 | (add-to-list 'facemenu-unlisted-faces "^mh-")) | 3116 | (add-to-list 'facemenu-unlisted-faces "^mh-")) |
| 3117 | 3117 | ||
| 3118 | ;; Temporary function and data structure used for defining faces. | 3118 | ;; To add a new face: |
| 3119 | ;; These will be unbound after the faces are defined. | 3119 | ;; 1. Add entry to variable mh-face-data. |
| 3120 | (defvar mh-min-colors-defined-flag (and (not mh-xemacs-flag) | 3120 | ;; 2. Create face using mh-defface (which removes min-color spec and |
| 3121 | (>= emacs-major-version 22)) | 3121 | ;; :package-version keyword where these are not supported), |
| 3122 | "Non-nil means `defface' supports min-colors display requirement.") | 3122 | ;; accessing face data with function mh-face-data. |
| 3123 | 3123 | ;; 3. Add inherit argument to function mh-face-data if applicable. | |
| 3124 | (defun mh-defface-compat (spec) | ||
| 3125 | "Convert SPEC for defface if necessary to run on older platforms. | ||
| 3126 | Modifies SPEC in place and returns it. See `defface' for the spec definition. | ||
| 3127 | |||
| 3128 | When `mh-min-colors-defined-flag' is nil, this function finds | ||
| 3129 | display entries with \"min-colors\" requirements and either | ||
| 3130 | removes the \"min-colors\" requirement or strips the display | ||
| 3131 | entirely if the display does not support the number of specified | ||
| 3132 | colors." | ||
| 3133 | (if mh-min-colors-defined-flag | ||
| 3134 | spec | ||
| 3135 | (let ((cells (mh-display-color-cells)) | ||
| 3136 | new-spec) | ||
| 3137 | ;; Remove entries with min-colors, or delete them if we have fewer colors | ||
| 3138 | ;; than they specify. | ||
| 3139 | (loop for entry in (reverse spec) do | ||
| 3140 | (let ((requirement (if (eq (car entry) t) | ||
| 3141 | nil | ||
| 3142 | (assoc 'min-colors (car entry))))) | ||
| 3143 | (if requirement | ||
| 3144 | (when (>= cells (nth 1 requirement)) | ||
| 3145 | (setq new-spec (cons (cons (delq requirement (car entry)) | ||
| 3146 | (cdr entry)) | ||
| 3147 | new-spec))) | ||
| 3148 | (setq new-spec (cons entry new-spec))))) | ||
| 3149 | new-spec))) | ||
| 3150 | |||
| 3151 | (require 'cus-face) | ||
| 3152 | |||
| 3153 | (defvar mh-inherit-face-flag (assq :inherit custom-face-attributes) | ||
| 3154 | "Non-nil means that the `defface' :inherit keyword is available. | ||
| 3155 | The :inherit keyword is available on all supported versions of | ||
| 3156 | GNU Emacs and XEmacs from at least 21.5.23 on.") | ||
| 3157 | |||
| 3158 | (defvar mh-face-data | 3124 | (defvar mh-face-data |
| 3159 | '((mh-folder-followup | 3125 | '((mh-folder-followup |
| 3160 | ((((class color) (background light)) | 3126 | ((((class color) (background light)) |
| @@ -3297,19 +3263,61 @@ GNU Emacs and XEmacs from at least 21.5.23 on.") | |||
| 3297 | (((class color) (background dark)) | 3263 | (((class color) (background dark)) |
| 3298 | (:foreground "red1" :underline t)) | 3264 | (:foreground "red1" :underline t)) |
| 3299 | (t | 3265 | (t |
| 3300 | (:underline t)))))) | 3266 | (:underline t))))) |
| 3267 | "MH-E face data. | ||
| 3268 | Used by function `mh-face-data' which returns spec that is | ||
| 3269 | consumed by `mh-defface'.") | ||
| 3270 | |||
| 3271 | (require 'cus-face) | ||
| 3272 | |||
| 3273 | (defvar mh-inherit-face-flag (assq :inherit custom-face-attributes) | ||
| 3274 | "Non-nil means that the `defface' :inherit keyword is available. | ||
| 3275 | The :inherit keyword is available on all supported versions of | ||
| 3276 | GNU Emacs and XEmacs from at least 21.5.23 on.") | ||
| 3277 | |||
| 3278 | (defvar mh-min-colors-defined-flag (and (not mh-xemacs-flag) | ||
| 3279 | (>= emacs-major-version 22)) | ||
| 3280 | "Non-nil means `defface' supports min-colors display requirement.") | ||
| 3301 | 3281 | ||
| 3302 | (defun mh-face-data (face &optional inherit) | 3282 | (defun mh-face-data (face &optional inherit) |
| 3303 | "Return spec for FACE. | 3283 | "Return spec for FACE. |
| 3304 | If INHERIT is non-nil and `defface' supports the :inherit | 3284 | See `defface' for the spec definition. |
| 3305 | keyword, return INHERIT literally; otherwise, return spec for FACE. | ||
| 3306 | 3285 | ||
| 3307 | This isn't a perfect implementation. In the case that | 3286 | If INHERIT is non-nil and `defface' supports the :inherit |
| 3308 | the :inherit keyword is not supported, any additional attributes | 3287 | keyword, return INHERIT literally; otherwise, return spec for |
| 3309 | in the inherit parameter are not added to the returned spec." | 3288 | FACE from the variable `mh-face-data'. This isn't a perfect |
| 3310 | (if (and inherit mh-inherit-face-flag) | 3289 | implementation. In the case that the :inherit keyword is not |
| 3311 | inherit | 3290 | supported, any additional attributes in the inherit parameter are |
| 3312 | (mh-defface-compat (cadr (assoc face mh-face-data))))) | 3291 | not added to the returned spec. |
| 3292 | |||
| 3293 | Furthermore, when `mh-min-colors-defined-flag' is nil, this | ||
| 3294 | function finds display entries with \"min-colors\" requirements | ||
| 3295 | and either removes the \"min-colors\" requirement or strips the | ||
| 3296 | display entirely if the display does not support the number of | ||
| 3297 | specified colors." | ||
| 3298 | (let ((spec | ||
| 3299 | (if (and inherit mh-inherit-face-flag) | ||
| 3300 | inherit | ||
| 3301 | (or (cadr (assq face mh-face-data)) | ||
| 3302 | (error "Could not find %s in mh-face-data" face))))) | ||
| 3303 | |||
| 3304 | (if mh-min-colors-defined-flag | ||
| 3305 | spec | ||
| 3306 | (let ((cells (mh-display-color-cells)) | ||
| 3307 | new-spec) | ||
| 3308 | ;; Remove entries with min-colors, or delete them if we have | ||
| 3309 | ;; fewer colors than they specify. | ||
| 3310 | (loop for entry in (reverse spec) do | ||
| 3311 | (let ((requirement (if (eq (car entry) t) | ||
| 3312 | nil | ||
| 3313 | (assq 'min-colors (car entry))))) | ||
| 3314 | (if requirement | ||
| 3315 | (when (>= cells (nth 1 requirement)) | ||
| 3316 | (setq new-spec (cons (cons (delq requirement (car entry)) | ||
| 3317 | (cdr entry)) | ||
| 3318 | new-spec))) | ||
| 3319 | (setq new-spec (cons entry new-spec))))) | ||
| 3320 | new-spec)))) | ||
| 3313 | 3321 | ||
| 3314 | (mh-defface mh-folder-address | 3322 | (mh-defface mh-folder-address |
| 3315 | (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject)))) | 3323 | (mh-face-data 'mh-folder-subject '((t (:inherit mh-folder-subject)))) |
| @@ -3520,9 +3528,9 @@ The background and foreground are used in the image." | |||
| 3520 | ;; Get rid of temporary functions and data structures. | 3528 | ;; Get rid of temporary functions and data structures. |
| 3521 | (fmakunbound 'mh-defcustom) | 3529 | (fmakunbound 'mh-defcustom) |
| 3522 | (fmakunbound 'mh-defface) | 3530 | (fmakunbound 'mh-defface) |
| 3523 | (fmakunbound 'mh-defface-compat) | ||
| 3524 | (fmakunbound 'mh-defgroup) | 3531 | (fmakunbound 'mh-defgroup) |
| 3525 | (fmakunbound 'mh-face-data) | 3532 | (fmakunbound 'mh-face-data) |
| 3533 | (fmakunbound 'mh-strip-package-version) | ||
| 3526 | (makunbound 'mh-face-data) | 3534 | (makunbound 'mh-face-data) |
| 3527 | (makunbound 'mh-inherit-face-flag) | 3535 | (makunbound 'mh-inherit-face-flag) |
| 3528 | (makunbound 'mh-min-colors-defined-flag) | 3536 | (makunbound 'mh-min-colors-defined-flag) |
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el index 36878d2dff9..0f970c5191a 100644 --- a/lisp/pcomplete.el +++ b/lisp/pcomplete.el | |||
| @@ -978,7 +978,9 @@ Typing SPC flushes the help buffer." | |||
| 978 | (set-window-configuration pcomplete-last-window-config) | 978 | (set-window-configuration pcomplete-last-window-config) |
| 979 | (setq pcomplete-last-window-config nil) | 979 | (setq pcomplete-last-window-config nil) |
| 980 | (throw 'done nil)) | 980 | (throw 'done nil)) |
| 981 | ((event-matches-key-specifier-p event 'tab) | 981 | ((or (event-matches-key-specifier-p event 'tab) |
| 982 | ;; Needed on a terminal | ||
| 983 | (event-matches-key-specifier-p event 9)) | ||
| 982 | (save-selected-window | 984 | (save-selected-window |
| 983 | (select-window (get-buffer-window "*Completions*")) | 985 | (select-window (get-buffer-window "*Completions*")) |
| 984 | (if (pos-visible-in-window-p (point-max)) | 986 | (if (pos-visible-in-window-p (point-max)) |
diff --git a/lisp/pcvs-util.el b/lisp/pcvs-util.el index 9ff40d09494..b04f3c121a1 100644 --- a/lisp/pcvs-util.el +++ b/lisp/pcvs-util.el | |||
| @@ -157,10 +157,11 @@ Uses columns to keep the listing readable but compact." | |||
| 157 | (setq tab-width colwidth) | 157 | (setq tab-width colwidth) |
| 158 | ;; The insertion should be "sensible" no matter what choices were made. | 158 | ;; The insertion should be "sensible" no matter what choices were made. |
| 159 | (dolist (str strings) | 159 | (dolist (str strings) |
| 160 | (unless (bolp) (insert " \t")) | 160 | (unless (bolp) |
| 161 | (when (< wwidth (+ (max colwidth (length str)) (current-column))) | 161 | (insert " \t") |
| 162 | (delete-char -2) (insert "\n")) | 162 | (when (< wwidth (+ (max colwidth (length str)) (current-column))) |
| 163 | (insert str))))) | 163 | (delete-char -2) (insert "\n"))) |
| 164 | (insert str))))) | ||
| 164 | 165 | ||
| 165 | 166 | ||
| 166 | (defun cvs-file-to-string (file &optional oneline args) | 167 | (defun cvs-file-to-string (file &optional oneline args) |
| @@ -357,7 +358,8 @@ If ARG is nil toggle the PREFIX's value between its 0th default and nil | |||
| 357 | and reset the persistence." | 358 | and reset the persistence." |
| 358 | (let* ((prefix (symbol-value (cvs-prefix-sym sym))) | 359 | (let* ((prefix (symbol-value (cvs-prefix-sym sym))) |
| 359 | (numarg (if (integerp arg) arg 0)) | 360 | (numarg (if (integerp arg) arg 0)) |
| 360 | (defs (cvs-flags-defaults prefix))) | 361 | ;; (defs (cvs-flags-defaults prefix)) |
| 362 | ) | ||
| 361 | 363 | ||
| 362 | ;; set persistence if requested | 364 | ;; set persistence if requested |
| 363 | (when (> (prefix-numeric-value arg) 9) | 365 | (when (> (prefix-numeric-value arg) 9) |
diff --git a/lisp/shell.el b/lisp/shell.el index f7eaeb84341..71b5862feb6 100644 --- a/lisp/shell.el +++ b/lisp/shell.el | |||
| @@ -574,7 +574,7 @@ Otherwise, one argument `-i' is passed to the shell. | |||
| 574 | ;;; 2. It cannot infallibly deal with command sequences, though it does well | 574 | ;;; 2. It cannot infallibly deal with command sequences, though it does well |
| 575 | ;;; with these and with ignoring commands forked in another shell with ()s. | 575 | ;;; with these and with ignoring commands forked in another shell with ()s. |
| 576 | ;;; 3. More generally, any complex command is going to throw it. Otherwise, | 576 | ;;; 3. More generally, any complex command is going to throw it. Otherwise, |
| 577 | ;;; you'd have to build an entire shell interpreter in emacs lisp. Failing | 577 | ;;; you'd have to build an entire shell interpreter in Emacs Lisp. Failing |
| 578 | ;;; that, there's no way to catch shell commands where cd's are buried | 578 | ;;; that, there's no way to catch shell commands where cd's are buried |
| 579 | ;;; inside conditional expressions, aliases, and so forth. | 579 | ;;; inside conditional expressions, aliases, and so forth. |
| 580 | ;;; | 580 | ;;; |
| @@ -608,7 +608,7 @@ It watches for cd, pushd and popd commands and sets the buffer's | |||
| 608 | default directory to track these commands. | 608 | default directory to track these commands. |
| 609 | 609 | ||
| 610 | You may toggle this tracking on and off with M-x dirtrack-mode. | 610 | You may toggle this tracking on and off with M-x dirtrack-mode. |
| 611 | If emacs gets confused, you can resync with the shell with M-x dirs. | 611 | If Emacs gets confused, you can resync with the shell with M-x dirs. |
| 612 | 612 | ||
| 613 | See variables `shell-cd-regexp', `shell-chdrive-regexp', `shell-pushd-regexp', | 613 | See variables `shell-cd-regexp', `shell-chdrive-regexp', `shell-pushd-regexp', |
| 614 | and `shell-popd-regexp', while `shell-pushd-tohome', `shell-pushd-dextract', | 614 | and `shell-popd-regexp', while `shell-pushd-tohome', `shell-pushd-dextract', |
| @@ -929,7 +929,7 @@ See `shell-command-regexp'." | |||
| 929 | (defun shell-dynamic-complete-command () | 929 | (defun shell-dynamic-complete-command () |
| 930 | "Dynamically complete the command at point. | 930 | "Dynamically complete the command at point. |
| 931 | This function is similar to `comint-dynamic-complete-filename', except that it | 931 | This function is similar to `comint-dynamic-complete-filename', except that it |
| 932 | searches `exec-path' (minus the trailing emacs library path) for completion | 932 | searches `exec-path' (minus the trailing Emacs library path) for completion |
| 933 | candidates. Note that this may not be the same as the shell's idea of the | 933 | candidates. Note that this may not be the same as the shell's idea of the |
| 934 | path. | 934 | path. |
| 935 | 935 | ||
diff --git a/lisp/speedbar.el b/lisp/speedbar.el index 2e55c4929d5..4b83f08d89d 100644 --- a/lisp/speedbar.el +++ b/lisp/speedbar.el | |||
| @@ -503,7 +503,7 @@ hierarchy would be replaced with the new directory." | |||
| 503 | :type 'hook) | 503 | :type 'hook) |
| 504 | 504 | ||
| 505 | (defcustom speedbar-after-create-hook '(speedbar-frame-reposition-smartly) | 505 | (defcustom speedbar-after-create-hook '(speedbar-frame-reposition-smartly) |
| 506 | "*Hooks called before popping up the speedbar frame." | 506 | "*Hooks called after popping up the speedbar frame." |
| 507 | :group 'speedbar | 507 | :group 'speedbar |
| 508 | :type 'hook) | 508 | :type 'hook) |
| 509 | 509 | ||
diff --git a/man/ChangeLog b/man/ChangeLog index e192728c43c..aec9693d1f9 100644 --- a/man/ChangeLog +++ b/man/ChangeLog | |||
| @@ -1,3 +1,36 @@ | |||
| 1 | 2006-03-31 Romain Francoise <romain@orebokech.com> | ||
| 2 | |||
| 3 | * gnus.texi (Virtual Groups): `nnvirtual-always-rescan' defaults | ||
| 4 | to t, not nil (and has for the past eight years). | ||
| 5 | |||
| 6 | 2006-03-31 Richard Stallman <rms@gnu.org> | ||
| 7 | |||
| 8 | * emacs.texi (Top): Update subnode menu. | ||
| 9 | |||
| 10 | * help.texi (Help Mode): Cleanup. | ||
| 11 | |||
| 12 | * dired.texi: Many cleanups. | ||
| 13 | (Dired Deletion): Describe dired-recursive-deletes. | ||
| 14 | (Operating on Files): dired-create-directory moved. | ||
| 15 | (Misc Dired Features): Moved to here. | ||
| 16 | (Tumme): Node moved to misc.texi. | ||
| 17 | |||
| 18 | * custom.texi: Many cleanups. | ||
| 19 | (Minor Modes): Don't mention ISO Accents Mode. | ||
| 20 | (Examining): Update C-h v output example. | ||
| 21 | (Hooks): Add index and xref for add-hook. | ||
| 22 | (Locals): Delete list of vars that are always per-buffer. Rearrange. | ||
| 23 | (Local Keymaps): Don't mention lisp-mode-map, c-mode-map. | ||
| 24 | |||
| 25 | * misc.texi: Many cleanups. | ||
| 26 | (beginning): Add to summary of topics. | ||
| 27 | (Shell): Put eshell xref at the end. Remove eshell from table. | ||
| 28 | (Thumbnails): New node. | ||
| 29 | |||
| 30 | 2006-03-31 Reiner Steib <Reiner.Steib@gmx.de> | ||
| 31 | |||
| 32 | * message.texi, gnus.texi: Bump version to 5.11. | ||
| 33 | |||
| 1 | 2006-03-29 Reiner Steib <Reiner.Steib@gmx.de> | 34 | 2006-03-29 Reiner Steib <Reiner.Steib@gmx.de> |
| 2 | 35 | ||
| 3 | * gnus.texi (Top): Add comment about version line. | 36 | * gnus.texi (Top): Add comment about version line. |
| @@ -131,6 +164,10 @@ | |||
| 131 | 164 | ||
| 132 | * org.texi (Clean view): Document new startup options. | 165 | * org.texi (Clean view): Document new startup options. |
| 133 | 166 | ||
| 167 | 2006-03-12 Richard Stallman <rms@gnu.org> | ||
| 168 | |||
| 169 | * calendar.texi: Various cleanups. | ||
| 170 | |||
| 134 | 2006-03-11 Bill Wohler <wohler@newt.com> | 171 | 2006-03-11 Bill Wohler <wohler@newt.com> |
| 135 | 172 | ||
| 136 | * mh-e.texi (Preface, More About MH-E, Options, HTML, Folders) | 173 | * mh-e.texi (Preface, More About MH-E, Options, HTML, Folders) |
diff --git a/man/custom.texi b/man/custom.texi index db88f64f839..8429ddaae74 100644 --- a/man/custom.texi +++ b/man/custom.texi | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | @cindex customization | 7 | @cindex customization |
| 8 | 8 | ||
| 9 | This chapter talks about various topics relevant to adapting the | 9 | This chapter talks about various topics relevant to adapting the |
| 10 | behavior of Emacs in minor ways. | 10 | behavior of Emacs in ways we have anticipated. |
| 11 | @iftex | 11 | @iftex |
| 12 | See @cite{The Emacs Lisp Reference Manual} | 12 | See @cite{The Emacs Lisp Reference Manual} |
| 13 | @end iftex | 13 | @end iftex |
| @@ -15,14 +15,14 @@ See @cite{The Emacs Lisp Reference Manual} | |||
| 15 | @xref{Top, Emacs Lisp, Emacs Lisp, elisp, The Emacs Lisp | 15 | @xref{Top, Emacs Lisp, Emacs Lisp, elisp, The Emacs Lisp |
| 16 | Reference Manual}, | 16 | Reference Manual}, |
| 17 | @end ifnottex | 17 | @end ifnottex |
| 18 | for how to make more far-reaching changes. @xref{X Resources}, | 18 | for how to make more far-reaching and open-ended changes. @xref{X |
| 19 | for information on using X resources to customize Emacs. | 19 | Resources}, for information on using X resources to customize Emacs. |
| 20 | 20 | ||
| 21 | Customization that you do within Emacs normally affects only the | 21 | Customization that you do within Emacs normally affects only the |
| 22 | particular Emacs session that you do it in---it does not persist | 22 | particular Emacs session that you do it in---it does not persist |
| 23 | between sessions unless you save the customization in a file such as | 23 | between sessions unless you save the customization in a file such as |
| 24 | @file{.emacs} or @file{.Xdefaults} that will affect future sessions. | 24 | your init file (@file{.emacs}) that will affect future sessions. |
| 25 | @xref{Init File}. In the customization buffer, when you save | 25 | (@xref{Init File}.) When you tell the customization buffer to save |
| 26 | customizations for future sessions, this actually works by editing | 26 | customizations for future sessions, this actually works by editing |
| 27 | @file{.emacs} for you. | 27 | @file{.emacs} for you. |
| 28 | 28 | ||
| @@ -55,17 +55,19 @@ replay sequences of keys. | |||
| 55 | example, Auto Fill mode is a minor mode in which @key{SPC} breaks lines | 55 | example, Auto Fill mode is a minor mode in which @key{SPC} breaks lines |
| 56 | between words as you type. All the minor modes are independent of each | 56 | between words as you type. All the minor modes are independent of each |
| 57 | other and of the selected major mode. Most minor modes say in the mode | 57 | other and of the selected major mode. Most minor modes say in the mode |
| 58 | line when they are on; for example, @samp{Fill} in the mode line means | 58 | line when they are enabled; for example, @samp{Fill} in the mode line means |
| 59 | that Auto Fill mode is on. | 59 | that Auto Fill mode is enabled. |
| 60 | 60 | ||
| 61 | Append @code{-mode} to the name of a minor mode to get the name of a | 61 | You should append @code{-mode} to the name of a minor mode to |
| 62 | command that turns the mode on or off. Thus, the command to | 62 | produce the name of the command that turns the mode on or off. Thus, |
| 63 | enable or disable Auto Fill mode is called @code{auto-fill-mode}. These | 63 | the command to enable or disable Auto Fill mode is called |
| 64 | commands are usually invoked with @kbd{M-x}, but you can bind keys to them | 64 | @code{auto-fill-mode}. These commands are usually invoked with |
| 65 | if you wish. With no argument, the function turns the mode on if it was | 65 | @kbd{M-x}, but you can bind keys to them if you wish. |
| 66 | off and off if it was on. This is known as @dfn{toggling}. A positive | 66 | |
| 67 | argument always turns the mode on, and an explicit zero argument or a | 67 | With no argument, the minor mode function turns the mode on if it |
| 68 | negative argument always turns it off. | 68 | was off, and off if it was on. This is known as @dfn{toggling}. A |
| 69 | positive argument always turns the mode on, and an explicit zero | ||
| 70 | argument or a negative argument always turns it off. | ||
| 69 | 71 | ||
| 70 | Some minor modes are global: while enabled, they affect everything | 72 | Some minor modes are global: while enabled, they affect everything |
| 71 | you do in the Emacs session, in all buffers. Other minor modes are | 73 | you do in the Emacs session, in all buffers. Other minor modes are |
| @@ -94,8 +96,8 @@ a matter of user preference---other users editing the same file might | |||
| 94 | not want the same minor modes you prefer. | 96 | not want the same minor modes you prefer. |
| 95 | 97 | ||
| 96 | The most useful buffer-local minor modes include Abbrev mode, Auto | 98 | The most useful buffer-local minor modes include Abbrev mode, Auto |
| 97 | Fill mode, Auto Save mode, Font-Lock mode, Glasses mode, ISO Accents | 99 | Fill mode, Auto Save mode, Font-Lock mode, Glasses mode, Outline minor |
| 98 | mode, Outline minor mode, Overwrite mode, and Binary Overwrite mode. | 100 | mode, Overwrite mode, and Binary Overwrite mode. |
| 99 | 101 | ||
| 100 | Abbrev mode allows you to define abbreviations that automatically expand | 102 | Abbrev mode allows you to define abbreviations that automatically expand |
| 101 | as you type them. For example, @samp{amd} might expand to @samp{abbrev | 103 | as you type them. For example, @samp{amd} might expand to @samp{abbrev |
| @@ -105,9 +107,8 @@ mode}. @xref{Abbrevs}, for full information. | |||
| 105 | explicitly. Emacs inserts newlines as necessary to prevent lines from | 107 | explicitly. Emacs inserts newlines as necessary to prevent lines from |
| 106 | becoming too long. @xref{Filling}. | 108 | becoming too long. @xref{Filling}. |
| 107 | 109 | ||
| 108 | Auto Save mode causes the contents of a buffer to be saved | 110 | Auto Save mode saves the buffer contents periodically to reduce the |
| 109 | periodically to reduce the amount of work you can lose in case of a | 111 | amount of work you can lose in case of a crash. @xref{Auto Save}. |
| 110 | system crash. @xref{Auto Save}. | ||
| 111 | 112 | ||
| 112 | Enriched mode enables editing and saving of formatted text. | 113 | Enriched mode enables editing and saving of formatted text. |
| 113 | @xref{Formatted Text}. | 114 | @xref{Formatted Text}. |
| @@ -115,16 +116,18 @@ system crash. @xref{Auto Save}. | |||
| 115 | Flyspell mode automatically highlights misspelled words. | 116 | Flyspell mode automatically highlights misspelled words. |
| 116 | @xref{Spelling}. | 117 | @xref{Spelling}. |
| 117 | 118 | ||
| 118 | Font-Lock mode automatically highlights certain textual units found in | 119 | Font-Lock mode automatically highlights certain textual units found |
| 119 | programs, such as comments, strings, and function names being defined. | 120 | in programs, such as comments, strings, and function names being |
| 120 | This requires a graphical display that can show multiple fonts. | 121 | defined. This requires a display that can show multiple fonts or |
| 121 | @xref{Faces}. | 122 | colors. @xref{Faces}. |
| 122 | 123 | ||
| 124 | @ignore | ||
| 123 | ISO Accents mode makes the characters @samp{`}, @samp{'}, @samp{"}, | 125 | ISO Accents mode makes the characters @samp{`}, @samp{'}, @samp{"}, |
| 124 | @samp{^}, @samp{/} and @samp{~} combine with the following letter, to | 126 | @samp{^}, @samp{/} and @samp{~} combine with the following letter, to |
| 125 | produce an accented letter in the ISO Latin-1 character set. The | 127 | produce an accented letter in the ISO Latin-1 character set. The |
| 126 | newer and more general feature of input methods more or less | 128 | newer and more general feature of input methods more or less |
| 127 | supersedes ISO Accents mode. @xref{Unibyte Mode}. | 129 | supersedes ISO Accents mode. @xref{Unibyte Mode}. |
| 130 | @end ignore | ||
| 128 | 131 | ||
| 129 | Outline minor mode provides the same facilities as the major mode | 132 | Outline minor mode provides the same facilities as the major mode |
| 130 | called Outline mode; but since it is a minor mode instead, you can | 133 | called Outline mode; but since it is a minor mode instead, you can |
| @@ -286,15 +289,15 @@ settings. This command creates a special customization buffer which | |||
| 286 | shows only the names of groups and settings, and puts them in a | 289 | shows only the names of groups and settings, and puts them in a |
| 287 | structure. | 290 | structure. |
| 288 | 291 | ||
| 289 | In this buffer, you can show the contents of a group by invoking | 292 | In this buffer, you can show the contents of a group by invoking the |
| 290 | @samp{[+]}. When the group contents are visible, this button changes to | 293 | @samp{[+]} button. When the group contents are visible, this button |
| 291 | @samp{[-]}; invoking that hides the group contents. | 294 | changes to @samp{[-]}; invoking that hides the group contents again. |
| 292 | 295 | ||
| 293 | Each setting in this buffer has a link which says @samp{[Group]}, | 296 | Each group or setting in this buffer has a link which says |
| 294 | @samp{[Option]} or @samp{[Face]}. Invoking this link creates an | 297 | @samp{[Group]}, @samp{[Option]} or @samp{[Face]}. Invoking this link |
| 295 | ordinary customization buffer showing just that group and its | 298 | creates an ordinary customization buffer showing just that group and |
| 296 | contents, just that user option, or just that face. This is the way | 299 | its contents, just that user option, or just that face. This is the |
| 297 | to change settings that you find with @kbd{M-x customize-browse}. | 300 | way to change settings that you find with @kbd{M-x customize-browse}. |
| 298 | 301 | ||
| 299 | If you can guess part of the name of the settings you are interested | 302 | If you can guess part of the name of the settings you are interested |
| 300 | in, @kbd{M-x customize-apropos} is another way to search for settings. | 303 | in, @kbd{M-x customize-apropos} is another way to search for settings. |
| @@ -343,6 +346,8 @@ value: | |||
| 343 | save it. | 346 | save it. |
| 344 | @end smallexample | 347 | @end smallexample |
| 345 | 348 | ||
| 349 | @cindex user options, how to set | ||
| 350 | @cindex variables, how to set | ||
| 346 | @cindex settings, how to set | 351 | @cindex settings, how to set |
| 347 | Editing the value does not actually set the variable. To do that, | 352 | Editing the value does not actually set the variable. To do that, |
| 348 | you must @dfn{set} the variable. To do this, invoke the | 353 | you must @dfn{set} the variable. To do this, invoke the |
| @@ -415,8 +420,8 @@ instance, to specify a function instead of a pair of coding systems. | |||
| 415 | To delete an association from the list, invoke the @samp{[DEL]} button | 420 | To delete an association from the list, invoke the @samp{[DEL]} button |
| 416 | for that item. To add an association, invoke @samp{[INS]} at the | 421 | for that item. To add an association, invoke @samp{[INS]} at the |
| 417 | position where you want to add it. There is an @samp{[INS]} button | 422 | position where you want to add it. There is an @samp{[INS]} button |
| 418 | between each pair of association, another at the beginning and another | 423 | between each pair of associations, another at the beginning and another |
| 419 | at the end, so you can add the new association at any position in the | 424 | at the end, so you can add a new association at any position in the |
| 420 | list. | 425 | list. |
| 421 | 426 | ||
| 422 | @kindex TAB @r{(customization buffer)} | 427 | @kindex TAB @r{(customization buffer)} |
| @@ -469,7 +474,7 @@ and then reset it, which discards the customized value, | |||
| 469 | you can get the customized value back again with this operation. | 474 | you can get the customized value back again with this operation. |
| 470 | @end table | 475 | @end table |
| 471 | 476 | ||
| 472 | @cindex comments on customized options | 477 | @cindex comments on customized settings |
| 473 | Sometimes it is useful to record a comment about a specific | 478 | Sometimes it is useful to record a comment about a specific |
| 474 | customization. Use the @samp{Add Comment} item from the | 479 | customization. Use the @samp{Add Comment} item from the |
| 475 | @samp{[State]} menu to create a field for entering the comment. The | 480 | @samp{[State]} menu to create a field for entering the comment. The |
| @@ -494,13 +499,17 @@ buffer according to the setting of the option | |||
| 494 | Each of the other buttons performs an operation---set, save or | 499 | Each of the other buttons performs an operation---set, save or |
| 495 | reset---on each of the settings in the buffer that could meaningfully | 500 | reset---on each of the settings in the buffer that could meaningfully |
| 496 | be set, saved or reset. They do not operate on settings whose values | 501 | be set, saved or reset. They do not operate on settings whose values |
| 497 | are hidden, nor on subgroups not visible in the buffer. | 502 | are hidden, nor on subgroups which are hidden or not visible in the buffer. |
| 498 | 503 | ||
| 499 | @node Saving Customizations | 504 | @node Saving Customizations |
| 500 | @subsection Saving Customizations | 505 | @subsection Saving Customizations |
| 501 | 506 | ||
| 507 | Saving customizations from the customization buffer works by writing | ||
| 508 | code that future sessions will read, code to set up those | ||
| 509 | customizations again. | ||
| 510 | |||
| 502 | @vindex custom-file | 511 | @vindex custom-file |
| 503 | The customization buffer normally saves customizations in | 512 | Normally this saves customizations in your init file, |
| 504 | @file{~/.emacs}. If you wish, you can save customizations in another | 513 | @file{~/.emacs}. If you wish, you can save customizations in another |
| 505 | file instead. To make this work, your @file{~/.emacs} should set | 514 | file instead. To make this work, your @file{~/.emacs} should set |
| 506 | @code{custom-file} to the name of that file. Then you should load the | 515 | @code{custom-file} to the name of that file. Then you should load the |
| @@ -511,8 +520,8 @@ file by calling @code{load}. For example: | |||
| 511 | (load custom-file) | 520 | (load custom-file) |
| 512 | @end example | 521 | @end example |
| 513 | 522 | ||
| 514 | You can also use @code{custom-file} to specify different | 523 | You can use @code{custom-file} to specify different customization |
| 515 | customization files for different Emacs versions, like this: | 524 | files for different Emacs versions, like this: |
| 516 | 525 | ||
| 517 | @example | 526 | @example |
| 518 | (cond ((< emacs-major-version 21) | 527 | (cond ((< emacs-major-version 21) |
| @@ -650,9 +659,9 @@ on the character after point. | |||
| 650 | @findex customize-group | 659 | @findex customize-group |
| 651 | You can also set up the customization buffer with a specific group, | 660 | You can also set up the customization buffer with a specific group, |
| 652 | using @kbd{M-x customize-group}. The immediate contents of the chosen | 661 | using @kbd{M-x customize-group}. The immediate contents of the chosen |
| 653 | group, including variables, faces, and other groups, all appear | 662 | group, including settings (variables and faces), and other groups, all |
| 654 | as well (even if not already loaded). However, the subgroups' own | 663 | appear as well (even if not already loaded). However, the subgroups' |
| 655 | contents are not included. | 664 | own contents are not included. |
| 656 | 665 | ||
| 657 | @findex customize-apropos | 666 | @findex customize-apropos |
| 658 | To control more precisely what to customize, you can use @kbd{M-x | 667 | To control more precisely what to customize, you can use @kbd{M-x |
| @@ -663,13 +672,13 @@ specify an empty regular expression, this includes @emph{all} loaded | |||
| 663 | groups and settings---which takes a long time to set up. | 672 | groups and settings---which takes a long time to set up. |
| 664 | 673 | ||
| 665 | @findex customize-changed | 674 | @findex customize-changed |
| 666 | When you upgrade to a new Emacs version, you might want to customize | 675 | When you upgrade to a new Emacs version, you might want to consider |
| 667 | new settings and settings whose meanings or default values have | 676 | customizing new settings, and settings whose meanings or default |
| 668 | changed. To do this, use @kbd{M-x customize-changed} and | 677 | values have changed. To do this, use @kbd{M-x customize-changed} and |
| 669 | specify a previous Emacs version number using the minibuffer. It | 678 | specify a previous Emacs version number using the minibuffer. It |
| 670 | creates a customization buffer which shows all the settings and groups | 679 | creates a customization buffer which shows all the settings and groups |
| 671 | whose definitions have been changed since the specified version, loading | 680 | whose definitions have been changed since the specified version, |
| 672 | them if necessary. | 681 | loading them if necessary. |
| 673 | 682 | ||
| 674 | @findex customize-saved | 683 | @findex customize-saved |
| 675 | @findex customize-customized | 684 | @findex customize-customized |
| @@ -712,7 +721,7 @@ by visiting the ``special'' theme named @samp{user}. This theme, which | |||
| 712 | records all the options that you set in the ordinary customization | 721 | records all the options that you set in the ordinary customization |
| 713 | buffer, is always enabled, and always takes precedence over all other | 722 | buffer, is always enabled, and always takes precedence over all other |
| 714 | enabled Custom themes. Additionally, the @samp{user} theme is | 723 | enabled Custom themes. Additionally, the @samp{user} theme is |
| 715 | recorded in your @file{.emacs} file, rather than a | 724 | recorded with code in your @file{.emacs} file, rather than a |
| 716 | @file{user-theme.el} file. | 725 | @file{user-theme.el} file. |
| 717 | 726 | ||
| 718 | @vindex custom-enabled-themes | 727 | @vindex custom-enabled-themes |
| @@ -734,7 +743,7 @@ theme occurring earlier in @code{custom-enabled-themes} takes effect. | |||
| 734 | You can temporarily enable a Custom theme with @kbd{M-x | 743 | You can temporarily enable a Custom theme with @kbd{M-x |
| 735 | enable-theme}. This prompts for a theme name in the minibuffer, loads | 744 | enable-theme}. This prompts for a theme name in the minibuffer, loads |
| 736 | the theme from the theme file if necessary, and enables the theme. | 745 | the theme from the theme file if necessary, and enables the theme. |
| 737 | You can @dfn{disabled} any enabled theme with the command @kbd{M-x | 746 | You can @dfn{disable} any enabled theme with the command @kbd{M-x |
| 738 | disable-theme}; this returns the options specified in the theme to | 747 | disable-theme}; this returns the options specified in the theme to |
| 739 | their original values. To re-enable the theme, type @kbd{M-x | 748 | their original values. To re-enable the theme, type @kbd{M-x |
| 740 | enable-theme} again. If a theme file is changed during your Emacs | 749 | enable-theme} again. If a theme file is changed during your Emacs |
| @@ -755,7 +764,7 @@ have a documentation string which describes what kind of value it should | |||
| 755 | have and how the value will be used. | 764 | have and how the value will be used. |
| 756 | 765 | ||
| 757 | Emacs Lisp allows any variable (with a few exceptions) to have any | 766 | Emacs Lisp allows any variable (with a few exceptions) to have any |
| 758 | kind of value, but most variables that Emacs uses need a value of a | 767 | kind of value, but most variables that Emacs uses expect a value of a |
| 759 | certain type. Often the value should always be a string, or should | 768 | certain type. Often the value should always be a string, or should |
| 760 | always be a number. Sometimes we say that a certain feature is turned | 769 | always be a number. Sometimes we say that a certain feature is turned |
| 761 | on if a variable is ``non-@code{nil},'' meaning that if the variable's | 770 | on if a variable is ``non-@code{nil},'' meaning that if the variable's |
| @@ -766,11 +775,11 @@ variable---is @code{t}. | |||
| 766 | 775 | ||
| 767 | Emacs uses many Lisp variables for internal record keeping, but the | 776 | Emacs uses many Lisp variables for internal record keeping, but the |
| 768 | most interesting variables for a non-programmer user are those meant | 777 | most interesting variables for a non-programmer user are those meant |
| 769 | for users to change---the @dfn{user options}. | 778 | for users to change---these are called @dfn{user options}. |
| 770 | 779 | ||
| 771 | Each user option that you can set with the customization buffer is | 780 | Each user option that you can set with the customization buffer is |
| 772 | in fact a Lisp variable. Emacs does not (usually) change the values | 781 | in fact a Lisp variable. Emacs does not (usually) change the values |
| 773 | of these variables; instead, you set the values, and thereby alter and | 782 | of these variables on its own; instead, you set the values in order to |
| 774 | control the behavior of certain Emacs commands. Use of the | 783 | control the behavior of certain Emacs commands. Use of the |
| 775 | customization buffer is explained above (@pxref{Easy Customization}); | 784 | customization buffer is explained above (@pxref{Easy Customization}); |
| 776 | here we describe other aspects of Emacs variables. | 785 | here we describe other aspects of Emacs variables. |
| @@ -808,21 +817,27 @@ C-h v fill-column @key{RET} | |||
| 808 | displays something like this: | 817 | displays something like this: |
| 809 | 818 | ||
| 810 | @smallexample | 819 | @smallexample |
| 820 | fill-column is a variable defined in `C source code'. | ||
| 811 | fill-column's value is 70 | 821 | fill-column's value is 70 |
| 822 | Local in buffer custom.texi; global value is 70 | ||
| 823 | Automatically becomes buffer-local when set in any fashion. | ||
| 812 | 824 | ||
| 813 | Documentation: | 825 | Documentation: |
| 814 | *Column beyond which automatic line-wrapping should happen. | 826 | *Column beyond which automatic line-wrapping should happen. |
| 815 | Automatically becomes buffer-local when set in any fashion. | 827 | Interactively, you can set the buffer local value using C-x f. |
| 828 | |||
| 829 | You can customize this variable. | ||
| 816 | @end smallexample | 830 | @end smallexample |
| 817 | 831 | ||
| 818 | @noindent | 832 | @noindent |
| 819 | The star at the beginning of the documentation indicates that this | 833 | The line that says you can customize the variable indicates that this |
| 820 | variable is a user option. @kbd{C-h v} is not restricted to user | 834 | variable is a user option. (The star also indicates this, but it is |
| 821 | options; it allows any variable name. | 835 | an obsolete indicator that may eventually disappear.) @kbd{C-h v} is |
| 836 | not restricted to user options; it allows any variable name. | ||
| 822 | 837 | ||
| 823 | @findex set-variable | 838 | @findex set-variable |
| 824 | The most convenient way to set a specific user option variable is | 839 | The most convenient way to set a specific user option variable is with |
| 825 | with @kbd{M-x set-variable}. This reads the variable name with the | 840 | @kbd{M-x set-variable}. This reads the variable name with the |
| 826 | minibuffer (with completion), and then reads a Lisp expression for the | 841 | minibuffer (with completion), and then reads a Lisp expression for the |
| 827 | new value using the minibuffer a second time (you can insert the old | 842 | new value using the minibuffer a second time (you can insert the old |
| 828 | value into the minibuffer for editing via @kbd{M-n}). For example, | 843 | value into the minibuffer for editing via @kbd{M-n}). For example, |
| @@ -889,13 +904,11 @@ as soon as one hook function returns a non-@code{nil} value, the rest | |||
| 889 | are not called at all. The documentation of each abnormal hook variable | 904 | are not called at all. The documentation of each abnormal hook variable |
| 890 | explains in detail what is peculiar about it. | 905 | explains in detail what is peculiar about it. |
| 891 | 906 | ||
| 907 | @findex add-hook | ||
| 892 | You can set a hook variable with @code{setq} like any other Lisp | 908 | You can set a hook variable with @code{setq} like any other Lisp |
| 893 | variable, but the recommended way to add a hook function to a hook | 909 | variable, but the recommended way to add a hook function to a hook |
| 894 | (either normal or abnormal) is by calling @code{add-hook}. You can | 910 | (either normal or abnormal) is by calling @code{add-hook}. |
| 895 | specify any valid Lisp function as the hook function, provided it can | 911 | @xref{Hooks,,, elisp, The Emacs Lisp Reference Manual}. |
| 896 | handle the proper number of arguments (zero arguments, in the case of | ||
| 897 | a normal hook). Of course, not every Lisp function is @emph{useful} | ||
| 898 | in any particular hook. | ||
| 899 | 912 | ||
| 900 | For example, here's how to set up a hook to turn on Auto Fill mode | 913 | For example, here's how to set up a hook to turn on Auto Fill mode |
| 901 | when entering Text mode and other modes based on Text mode: | 914 | when entering Text mode and other modes based on Text mode: |
| @@ -936,11 +949,12 @@ they are executed does not matter. Any dependence on the order is | |||
| 936 | ``asking for trouble.'' However, the order is predictable: the most | 949 | ``asking for trouble.'' However, the order is predictable: the most |
| 937 | recently added hook functions are executed first. | 950 | recently added hook functions are executed first. |
| 938 | 951 | ||
| 952 | @findex remove-hook | ||
| 939 | If you play with adding various different versions of a hook | 953 | If you play with adding various different versions of a hook |
| 940 | function by calling @code{add-hook} over and over, remember that all | 954 | function by calling @code{add-hook} over and over, remember that all |
| 941 | the versions you added will remain in the hook variable together. You | 955 | the versions you added will remain in the hook variable together. You |
| 942 | can clear out individual functions with @code{remove-hook}, or do | 956 | can clear out individual functions by calling @code{remove-hook}, or |
| 943 | @code{(setq @var{hook-variable} nil)} to remove everything. | 957 | do @code{(setq @var{hook-variable} nil)} to remove everything. |
| 944 | 958 | ||
| 945 | @node Locals | 959 | @node Locals |
| 946 | @subsection Local Variables | 960 | @subsection Local Variables |
| @@ -963,46 +977,41 @@ buffer. Every other Emacs variable has a @dfn{global} value which is in | |||
| 963 | effect in all buffers that have not made the variable local. | 977 | effect in all buffers that have not made the variable local. |
| 964 | 978 | ||
| 965 | @findex make-local-variable | 979 | @findex make-local-variable |
| 966 | @kbd{M-x make-local-variable} reads the name of a variable and makes it | 980 | @kbd{M-x make-local-variable} reads the name of a variable and makes |
| 967 | local to the current buffer. Further changes in this buffer will not | 981 | it local to the current buffer. Changing its value subsequently in |
| 968 | affect others, and further changes in the global value will not affect this | 982 | this buffer will not affect others, and changes in its global value |
| 969 | buffer. | 983 | will not affect this buffer. |
| 970 | 984 | ||
| 971 | @findex make-variable-buffer-local | 985 | @findex make-variable-buffer-local |
| 972 | @cindex per-buffer variables | 986 | @cindex per-buffer variables |
| 973 | @kbd{M-x make-variable-buffer-local} reads the name of a variable and | 987 | @kbd{M-x make-variable-buffer-local} marks a variable so it will |
| 974 | changes the future behavior of the variable so that it will become local | 988 | become local automatically whenever it is set. More precisely, once a |
| 975 | automatically when it is set. More precisely, once a variable has been | 989 | variable has been marked in this way, the usual ways of setting the |
| 976 | marked in this way, the usual ways of setting the variable automatically | 990 | variable automatically do @code{make-local-variable} first. We call |
| 977 | do @code{make-local-variable} first. We call such variables | 991 | such variables @dfn{per-buffer} variables. Many variables in Emacs |
| 978 | @dfn{per-buffer} variables. | 992 | are normally per-buffer; the variable's document string tells you when |
| 993 | this is so. A per-buffer variable's global value is normally never | ||
| 994 | effective in any buffer, but it still has a meaning: it is the initial | ||
| 995 | value of the variable for each new buffer. | ||
| 979 | 996 | ||
| 980 | Major modes (@pxref{Major Modes}) always make variables local to the | 997 | Major modes (@pxref{Major Modes}) always make variables local to the |
| 981 | buffer before setting the variables. This is why changing major modes | 998 | buffer before setting the variables. This is why changing major modes |
| 982 | in one buffer has no effect on other buffers. Minor modes also work by | 999 | in one buffer has no effect on other buffers. Minor modes also work |
| 983 | setting variables---normally, each minor mode has one controlling | 1000 | by setting variables---normally, each minor mode has one controlling |
| 984 | variable which is non-@code{nil} when the mode is enabled (@pxref{Minor | 1001 | variable which is non-@code{nil} when the mode is enabled |
| 985 | Modes}). For most minor modes, the controlling variable is per buffer. | 1002 | (@pxref{Minor Modes}). For many minor modes, the controlling variable |
| 986 | 1003 | is per buffer, and thus always buffer-local. Otherwise, you can make | |
| 987 | Emacs contains a number of variables that are always per-buffer. | 1004 | it local in a specific buffer like any other variable. |
| 988 | These include @code{abbrev-mode}, @code{auto-fill-function}, | ||
| 989 | @code{case-fold-search}, @code{comment-column}, @code{ctl-arrow}, | ||
| 990 | @code{fill-column}, @code{fill-prefix}, @code{indent-tabs-mode}, | ||
| 991 | @code{left-margin}, @code{mode-line-format}, @code{overwrite-mode}, | ||
| 992 | @code{selective-display-ellipses}, @code{selective-display}, | ||
| 993 | @code{tab-width}, and @code{truncate-lines}. Some other variables are | ||
| 994 | always local in every buffer, but they are used for internal | ||
| 995 | purposes.@refill | ||
| 996 | 1005 | ||
| 997 | A few variables cannot be local to a buffer because they are always | 1006 | A few variables cannot be local to a buffer because they are always |
| 998 | local to each display instead (@pxref{Multiple Displays}). If you try to | 1007 | local to each display instead (@pxref{Multiple Displays}). If you try to |
| 999 | make one of these variables buffer-local, you'll get an error message. | 1008 | make one of these variables buffer-local, you'll get an error message. |
| 1000 | 1009 | ||
| 1001 | @findex kill-local-variable | 1010 | @findex kill-local-variable |
| 1002 | @kbd{M-x kill-local-variable} reads the name of a variable and makes | 1011 | @kbd{M-x kill-local-variable} makes a specified variable cease to be |
| 1003 | it cease to be local to the current buffer. The global value of the | 1012 | local to the current buffer. The global value of the variable |
| 1004 | variable henceforth is in effect in this buffer. Setting the major mode | 1013 | henceforth is in effect in this buffer. Setting the major mode kills |
| 1005 | kills all the local variables of the buffer except for a few variables | 1014 | all the local variables of the buffer except for a few variables |
| 1006 | specially marked as @dfn{permanent locals}. | 1015 | specially marked as @dfn{permanent locals}. |
| 1007 | 1016 | ||
| 1008 | @findex setq-default | 1017 | @findex setq-default |
| @@ -1082,9 +1091,9 @@ the first line as well. | |||
| 1082 | 1091 | ||
| 1083 | @cindex shell scripts, and local file variables | 1092 | @cindex shell scripts, and local file variables |
| 1084 | In shell scripts, the first line is used to identify the script | 1093 | In shell scripts, the first line is used to identify the script |
| 1085 | interpreter, so you cannot put any local variables there. To accommodate | 1094 | interpreter, so you cannot put any local variables there. To |
| 1086 | for this, when Emacs visits a shell script, it looks for local variable | 1095 | accommodate this, Emacs looks for local variable specifications in the |
| 1087 | specifications in the @emph{second} line. | 1096 | @emph{second} line when the first line specifies an interpreter. |
| 1088 | 1097 | ||
| 1089 | A @dfn{local variables list} goes near the end of the file, in the | 1098 | A @dfn{local variables list} goes near the end of the file, in the |
| 1090 | last page. (It is often best to put it on a page by itself.) The local | 1099 | last page. (It is often best to put it on a page by itself.) The local |
| @@ -1108,9 +1117,9 @@ variables list afterward. | |||
| 1108 | ;;; End: *** | 1117 | ;;; End: *** |
| 1109 | @end example | 1118 | @end example |
| 1110 | 1119 | ||
| 1111 | As you see, each line starts with the prefix @samp{;;; } and each line | 1120 | Each line starts with the prefix @samp{;;; } and each line ends with |
| 1112 | ends with the suffix @samp{ ***}. Emacs recognizes these as the prefix | 1121 | the suffix @samp{ ***}. Emacs recognizes these as the prefix and |
| 1113 | and suffix based on the first line of the list, by finding them | 1122 | suffix based on the first line of the list, by finding them |
| 1114 | surrounding the magic string @samp{Local Variables:}; then it | 1123 | surrounding the magic string @samp{Local Variables:}; then it |
| 1115 | automatically discards them from the other lines of the list. | 1124 | automatically discards them from the other lines of the list. |
| 1116 | 1125 | ||
| @@ -1155,8 +1164,7 @@ as part of their initialization. | |||
| 1155 | as the major modes; in fact, you can use it more than once, first to | 1164 | as the major modes; in fact, you can use it more than once, first to |
| 1156 | set the major mode and then to set minor modes which are specific to | 1165 | set the major mode and then to set minor modes which are specific to |
| 1157 | particular buffers. But most minor modes should not be specified in | 1166 | particular buffers. But most minor modes should not be specified in |
| 1158 | the file at all, regardless of how, because they represent user | 1167 | the file at all, because they represent user preferences. |
| 1159 | preferences. | ||
| 1160 | 1168 | ||
| 1161 | For example, you may be tempted to try to turn on Auto Fill mode with | 1169 | For example, you may be tempted to try to turn on Auto Fill mode with |
| 1162 | a local variable list. That is a mistake. The choice of Auto Fill mode | 1170 | a local variable list. That is a mistake. The choice of Auto Fill mode |
| @@ -1197,10 +1205,10 @@ answer @samp{n}. | |||
| 1197 | 1205 | ||
| 1198 | Emacs normally recognizes certain variables/value pairs as safe. | 1206 | Emacs normally recognizes certain variables/value pairs as safe. |
| 1199 | For instance, it is safe to give @code{comment-column} or | 1207 | For instance, it is safe to give @code{comment-column} or |
| 1200 | @code{fill-column} any integer value. If a file specifies only safe | 1208 | @code{fill-column} any integer value. If a file specifies only |
| 1201 | variable/value pairs, Emacs does not ask for confirmation before | 1209 | known-safe variable/value pairs, Emacs does not ask for confirmation |
| 1202 | setting them. Otherwise, you can tell Emacs to record that all the | 1210 | before setting them. Otherwise, you can tell Emacs to record all the |
| 1203 | variable/value pairs in the file are safe, by typing @kbd{!} at the | 1211 | variable/value pairs in this file as safe, by typing @kbd{!} at the |
| 1204 | confirmation prompt. When Emacs encounters these variable/value pairs | 1212 | confirmation prompt. When Emacs encounters these variable/value pairs |
| 1205 | subsequently, in the same file or others, it will assume they are | 1213 | subsequently, in the same file or others, it will assume they are |
| 1206 | safe. | 1214 | safe. |
| @@ -1232,9 +1240,10 @@ is neither @code{t} nor @code{nil}, so normally Emacs does ask for | |||
| 1232 | confirmation about processes @code{eval} variables. | 1240 | confirmation about processes @code{eval} variables. |
| 1233 | 1241 | ||
| 1234 | @vindex safe-local-eval-forms | 1242 | @vindex safe-local-eval-forms |
| 1235 | The @code{safe-local-eval-forms} is a customizable list of eval | 1243 | But there is an exception. The @code{safe-local-eval-forms} is a |
| 1236 | forms which are safe to eval, so Emacs should not ask for | 1244 | customizable list of eval forms which are safe. Emacs does not ask |
| 1237 | confirmation to evaluate these forms. | 1245 | for confirmation when it finds these forms for the @code{eval} |
| 1246 | variable. | ||
| 1238 | 1247 | ||
| 1239 | @node Key Bindings | 1248 | @node Key Bindings |
| 1240 | @section Customizing Key Bindings | 1249 | @section Customizing Key Bindings |
| @@ -1246,7 +1255,7 @@ to customize key bindings. | |||
| 1246 | 1255 | ||
| 1247 | Recall that a command is a Lisp function whose definition provides for | 1256 | Recall that a command is a Lisp function whose definition provides for |
| 1248 | interactive use. Like every Lisp function, a command has a function | 1257 | interactive use. Like every Lisp function, a command has a function |
| 1249 | name which usually consists of lower-case letters and hyphens. | 1258 | name, which usually consists of lower-case letters and hyphens. |
| 1250 | 1259 | ||
| 1251 | @menu | 1260 | @menu |
| 1252 | * Keymaps:: Generalities. The global keymap. | 1261 | * Keymaps:: Generalities. The global keymap. |
| @@ -1405,19 +1414,6 @@ mode. | |||
| 1405 | in effect, the definitions in its keymap override both the major | 1414 | in effect, the definitions in its keymap override both the major |
| 1406 | mode's local keymap and the global keymap. | 1415 | mode's local keymap and the global keymap. |
| 1407 | 1416 | ||
| 1408 | @vindex c-mode-map | ||
| 1409 | @vindex lisp-mode-map | ||
| 1410 | The local keymaps for Lisp mode and several other major modes always | ||
| 1411 | exist even when not in use. These are kept in variables named | ||
| 1412 | @code{lisp-mode-map} and so on. For major modes less often used, the | ||
| 1413 | local keymap is normally constructed only when the mode is used for the | ||
| 1414 | first time in a session. This is to save space. If you wish to change | ||
| 1415 | one of these keymaps, you must use the major mode's @dfn{mode | ||
| 1416 | hook}---see below. | ||
| 1417 | |||
| 1418 | All minor mode keymaps are created in advance. There is no way to | ||
| 1419 | defer their creation until the first time the minor mode is enabled. | ||
| 1420 | |||
| 1421 | A local keymap can locally redefine a key as a prefix key by defining | 1417 | A local keymap can locally redefine a key as a prefix key by defining |
| 1422 | it as a prefix keymap. If the key is also defined globally as a prefix, | 1418 | it as a prefix keymap. If the key is also defined globally as a prefix, |
| 1423 | then its local and global definitions (both keymaps) effectively | 1419 | then its local and global definitions (both keymaps) effectively |
| @@ -1433,17 +1429,16 @@ sequence by looking in several keymaps, one by one, for a binding of the | |||
| 1433 | whole key sequence. First it checks the minor mode keymaps for minor | 1429 | whole key sequence. First it checks the minor mode keymaps for minor |
| 1434 | modes that are enabled, then it checks the major mode's keymap, and then | 1430 | modes that are enabled, then it checks the major mode's keymap, and then |
| 1435 | it checks the global keymap. This is not precisely how key lookup | 1431 | it checks the global keymap. This is not precisely how key lookup |
| 1436 | works, but it's good enough for understanding ordinary circumstances. | 1432 | works, but it's good enough for understanding the results in ordinary |
| 1433 | circumstances. | ||
| 1437 | 1434 | ||
| 1438 | @cindex rebinding major mode keys | 1435 | @cindex rebinding major mode keys |
| 1439 | @findex define-key | 1436 | Most major modes construct their keymaps when the mode is used for |
| 1440 | To change the local bindings of a major mode, you must change the | 1437 | the first time in a session. If you wish to change one of these |
| 1441 | mode's local keymap. Normally you must wait until the first time the | 1438 | keymaps, you must use the major mode's @dfn{mode hook} |
| 1442 | mode is used, because most major modes don't create their keymaps until | 1439 | (@pxref{Hooks}). |
| 1443 | then. If you want to specify something in your @file{~/.emacs} file to | ||
| 1444 | change a major mode's bindings, you must use the mode's mode hook to | ||
| 1445 | delay the change until the mode is first used. | ||
| 1446 | 1440 | ||
| 1441 | @findex define-key | ||
| 1447 | For example, the command @code{texinfo-mode} to select Texinfo mode | 1442 | For example, the command @code{texinfo-mode} to select Texinfo mode |
| 1448 | runs the hook @code{texinfo-mode-hook}. Here's how you can use the hook | 1443 | runs the hook @code{texinfo-mode-hook}. Here's how you can use the hook |
| 1449 | to add local bindings (not very useful, we admit) for @kbd{C-c n} and | 1444 | to add local bindings (not very useful, we admit) for @kbd{C-c n} and |
| @@ -1458,8 +1453,6 @@ to add local bindings (not very useful, we admit) for @kbd{C-c n} and | |||
| 1458 | 'forward-paragraph))) | 1453 | 'forward-paragraph))) |
| 1459 | @end example | 1454 | @end example |
| 1460 | 1455 | ||
| 1461 | @xref{Hooks}. | ||
| 1462 | |||
| 1463 | @node Minibuffer Maps | 1456 | @node Minibuffer Maps |
| 1464 | @subsection Minibuffer Keymaps | 1457 | @subsection Minibuffer Keymaps |
| 1465 | 1458 | ||
| @@ -1545,10 +1538,10 @@ key to rebind. | |||
| 1545 | You can rebind a key that contains more than one event in the same | 1538 | You can rebind a key that contains more than one event in the same |
| 1546 | way. Emacs keeps reading the key to rebind until it is a complete key | 1539 | way. Emacs keeps reading the key to rebind until it is a complete key |
| 1547 | (that is, not a prefix key). Thus, if you type @kbd{C-f} for | 1540 | (that is, not a prefix key). Thus, if you type @kbd{C-f} for |
| 1548 | @var{key}, that's the end; the minibuffer is entered immediately to | 1541 | @var{key}, that's the end; it enters the minibuffer immediately to |
| 1549 | read @var{cmd}. But if you type @kbd{C-x}, another character is read; | 1542 | read @var{cmd}. But if you type @kbd{C-x}, since that's a prefix, it |
| 1550 | if that is @kbd{4}, another character is read, and so on. For | 1543 | reads another character; if that is @kbd{4}, another prefix character, |
| 1551 | example, | 1544 | it reads one more character, and so on. For example, |
| 1552 | 1545 | ||
| 1553 | @example | 1546 | @example |
| 1554 | M-x global-set-key @key{RET} C-x 4 $ spell-other-window @key{RET} | 1547 | M-x global-set-key @key{RET} C-x 4 $ spell-other-window @key{RET} |
| @@ -1572,9 +1565,9 @@ definition (or lack of one) come back into effect in that major mode. | |||
| 1572 | If you have redefined (or undefined) a key and you subsequently wish | 1565 | If you have redefined (or undefined) a key and you subsequently wish |
| 1573 | to retract the change, undefining the key will not do the job---you need | 1566 | to retract the change, undefining the key will not do the job---you need |
| 1574 | to redefine the key with its standard definition. To find the name of | 1567 | to redefine the key with its standard definition. To find the name of |
| 1575 | the standard definition of a key, go to a Fundamental mode buffer and | 1568 | the standard definition of a key, go to a Fundamental mode buffer in a |
| 1576 | use @kbd{C-h c}. The documentation of keys in this manual also lists | 1569 | fresh Emacs and use @kbd{C-h c}. The documentation of keys in this |
| 1577 | their command names. | 1570 | manual also lists their command names. |
| 1578 | 1571 | ||
| 1579 | If you want to prevent yourself from invoking a command by mistake, it | 1572 | If you want to prevent yourself from invoking a command by mistake, it |
| 1580 | is better to disable the command than to undefine the key. A disabled | 1573 | is better to disable the command than to undefine the key. A disabled |
| @@ -1669,8 +1662,8 @@ rewrite the first six examples above to use vectors: | |||
| 1669 | 1662 | ||
| 1670 | @noindent | 1663 | @noindent |
| 1671 | As you see, you represent a multi-character key sequence with a vector | 1664 | As you see, you represent a multi-character key sequence with a vector |
| 1672 | by listing all of the characters in order within the square brackets that | 1665 | by listing all of the characters, in order, within the square brackets |
| 1673 | delimit the vector. | 1666 | that delimit the vector. |
| 1674 | 1667 | ||
| 1675 | Language and coding systems can cause problems with key bindings | 1668 | Language and coding systems can cause problems with key bindings |
| 1676 | for non-@acronym{ASCII} characters. @xref{Non-ASCII Rebinding}. | 1669 | for non-@acronym{ASCII} characters. @xref{Non-ASCII Rebinding}. |
| @@ -1819,10 +1812,10 @@ because the terminal sends the same character in both cases. | |||
| 1819 | @cindex rebinding non-@acronym{ASCII} keys | 1812 | @cindex rebinding non-@acronym{ASCII} keys |
| 1820 | @cindex non-@acronym{ASCII} keys, binding | 1813 | @cindex non-@acronym{ASCII} keys, binding |
| 1821 | 1814 | ||
| 1822 | If your keyboard has keys that send non-@acronym{ASCII} | 1815 | If your keyboard has keys that send non-@acronym{ASCII} |
| 1823 | characters, such as accented letters, rebinding these keys | 1816 | characters, such as accented letters, rebinding these keys |
| 1824 | must be done by using a vector like this@footnote{Note that | 1817 | must be done by using a vector like this@footnote{You must |
| 1825 | you should avoid the string syntax for binding | 1818 | avoid the string syntax for binding |
| 1826 | non-@acronym{ASCII} characters, since they will be | 1819 | non-@acronym{ASCII} characters, since they will be |
| 1827 | interpreted as meta keys. @xref{Strings of Events,,,elisp, | 1820 | interpreted as meta keys. @xref{Strings of Events,,,elisp, |
| 1828 | The Emacs Lisp Reference Manual}.}: | 1821 | The Emacs Lisp Reference Manual}.}: |
| @@ -1834,11 +1827,11 @@ The Emacs Lisp Reference Manual}.}: | |||
| 1834 | @noindent | 1827 | @noindent |
| 1835 | Type @kbd{C-q} followed by the key you want to bind, to insert @var{char}. | 1828 | Type @kbd{C-q} followed by the key you want to bind, to insert @var{char}. |
| 1836 | 1829 | ||
| 1837 | Since this puts a non-@acronym{ASCII} character in the @file{.emacs}, | 1830 | Since this puts a non-@acronym{ASCII} character in the @file{.emacs}, |
| 1838 | you should specify a coding system for that file that supports the | 1831 | you should specify a coding system for that file that supports the |
| 1839 | character in question. @xref{Init Syntax}. | 1832 | character in question. @xref{Init Non-ASCII}. |
| 1840 | 1833 | ||
| 1841 | @strong{Warning:} if you change the keyboard encoding, or change | 1834 | @strong{Warning:} if you change the keyboard encoding, or change |
| 1842 | between multibyte and unibyte mode, or anything that would alter which | 1835 | between multibyte and unibyte mode, or anything that would alter which |
| 1843 | code @kbd{C-q} would insert for that character, you'll need to edit | 1836 | code @kbd{C-q} would insert for that character, you'll need to edit |
| 1844 | the Lisp expression accordingly, to use the character code generated | 1837 | the Lisp expression accordingly, to use the character code generated |
| @@ -1980,19 +1973,19 @@ usual to do so. | |||
| 1980 | @subsection Disabling Commands | 1973 | @subsection Disabling Commands |
| 1981 | @cindex disabled command | 1974 | @cindex disabled command |
| 1982 | 1975 | ||
| 1983 | Disabling a command marks the command as requiring confirmation before it | 1976 | Disabling a command menas it requires confirmation before it can be |
| 1984 | can be executed. The purpose of disabling a command is to prevent | 1977 | executed. The purpose of disabling a command is to prevent users from |
| 1985 | beginning users from executing it by accident and being confused. | 1978 | executing it by accident and being confused. |
| 1986 | 1979 | ||
| 1987 | An attempt to invoke a disabled command interactively in Emacs | 1980 | An attempt to invoke a disabled command interactively in Emacs |
| 1988 | displays a window containing the command's name, its documentation, and | 1981 | displays a window containing the command's name, its documentation, |
| 1989 | some instructions on what to do immediately; then Emacs asks for input | 1982 | and some instructions on what to do immediately; then Emacs asks for |
| 1990 | saying whether to execute the command as requested, enable it and | 1983 | input saying whether to execute the command as requested, enable it |
| 1991 | execute it, or cancel. If you decide to enable the command, you are | 1984 | and execute it, or cancel. If you decide to enable the command, you |
| 1992 | asked whether to do this permanently or just for the current session. | 1985 | must then answer another question---whether to do this permanently, or |
| 1993 | (Enabling permanently works by automatically editing your @file{.emacs} | 1986 | just for the current session. (Enabling permanently works by |
| 1994 | file.) You can also type @kbd{!} to enable @emph{all} commands, | 1987 | automatically editing your @file{.emacs} file.) You can also type |
| 1995 | for the current session only. | 1988 | @kbd{!} to enable @emph{all} commands, for the current session only. |
| 1996 | 1989 | ||
| 1997 | The direct mechanism for disabling a command is to put a | 1990 | The direct mechanism for disabling a command is to put a |
| 1998 | non-@code{nil} @code{disabled} property on the Lisp symbol for the | 1991 | non-@code{nil} @code{disabled} property on the Lisp symbol for the |
| @@ -2013,15 +2006,14 @@ is included in the message displayed when the command is used: | |||
| 2013 | @findex disable-command | 2006 | @findex disable-command |
| 2014 | @findex enable-command | 2007 | @findex enable-command |
| 2015 | You can make a command disabled either by editing the @file{.emacs} | 2008 | You can make a command disabled either by editing the @file{.emacs} |
| 2016 | file directly or with the command @kbd{M-x disable-command}, which edits | 2009 | file directly, or with the command @kbd{M-x disable-command}, which edits |
| 2017 | the @file{.emacs} file for you. Likewise, @kbd{M-x enable-command} | 2010 | the @file{.emacs} file for you. Likewise, @kbd{M-x enable-command} |
| 2018 | edits @file{.emacs} to enable a command permanently. @xref{Init File}. | 2011 | edits @file{.emacs} to enable a command permanently. @xref{Init File}. |
| 2019 | 2012 | ||
| 2020 | If Emacs was invoked with the @option{-q} or @option{--no-init-file} | 2013 | If Emacs was invoked with the @option{-q} or @option{--no-init-file} |
| 2021 | options (@pxref{Initial Options}), it will not edit your | 2014 | options (@pxref{Initial Options}), it will not edit your |
| 2022 | @file{~/.emacs} init file. This is because editing the init file from | 2015 | @file{~/.emacs} init file. Doing so could lose information |
| 2023 | such a session might overwrite the lines you might have on your init | 2016 | because Emacs has not read your init file. |
| 2024 | file which enable and disable commands. | ||
| 2025 | 2017 | ||
| 2026 | Whether a command is disabled is independent of what key is used to | 2018 | Whether a command is disabled is independent of what key is used to |
| 2027 | invoke it; disabling also applies if the command is invoked using | 2019 | invoke it; disabling also applies if the command is invoked using |
| @@ -2040,7 +2032,7 @@ one of fifteen-odd @dfn{syntax classes}. In some cases it specifies | |||
| 2040 | some additional information also. | 2032 | some additional information also. |
| 2041 | 2033 | ||
| 2042 | Each major mode has its own syntax table (though related major modes | 2034 | Each major mode has its own syntax table (though related major modes |
| 2043 | sometimes share one syntax table) which it installs in each buffer | 2035 | sometimes share one syntax table), which it installs in each buffer |
| 2044 | that uses the mode. The syntax table installed in the current buffer | 2036 | that uses the mode. The syntax table installed in the current buffer |
| 2045 | is the one that all commands use, so we call it ``the'' syntax table. | 2037 | is the one that all commands use, so we call it ``the'' syntax table. |
| 2046 | 2038 | ||
| @@ -2048,7 +2040,7 @@ is the one that all commands use, so we call it ``the'' syntax table. | |||
| 2048 | @findex describe-syntax | 2040 | @findex describe-syntax |
| 2049 | To display a description of the contents of the current syntax | 2041 | To display a description of the contents of the current syntax |
| 2050 | table, type @kbd{C-h s} (@code{describe-syntax}). The description of | 2042 | table, type @kbd{C-h s} (@code{describe-syntax}). The description of |
| 2051 | each character includes both the string you would have to give to | 2043 | each character includes the string you would have to give to |
| 2052 | @code{modify-syntax-entry} to set up that character's current syntax, | 2044 | @code{modify-syntax-entry} to set up that character's current syntax, |
| 2053 | starting with the character which designates its syntax class, plus | 2045 | starting with the character which designates its syntax class, plus |
| 2054 | some English text to explain its meaning. | 2046 | some English text to explain its meaning. |
| @@ -2176,7 +2168,8 @@ a Meta character, as in @samp{\M-a} for @kbd{Meta-A} or @samp{\M-\C-a} for | |||
| 2176 | 2168 | ||
| 2177 | @cindex international characters in @file{.emacs} | 2169 | @cindex international characters in @file{.emacs} |
| 2178 | @cindex non-@acronym{ASCII} characters in @file{.emacs} | 2170 | @cindex non-@acronym{ASCII} characters in @file{.emacs} |
| 2179 | If you want to include non-@acronym{ASCII} characters in strings in your init | 2171 | @anchor{Init Non-ASCII}If you want to include non-@acronym{ASCII} |
| 2172 | characters in strings in your init | ||
| 2180 | file, you should consider putting a @w{@samp{-*-coding: | 2173 | file, you should consider putting a @w{@samp{-*-coding: |
| 2181 | @var{coding-system}-*-}} tag on the first line which states the coding | 2174 | @var{coding-system}-*-}} tag on the first line which states the coding |
| 2182 | system used to save your @file{.emacs}, as explained in @ref{Recognize | 2175 | system used to save your @file{.emacs}, as explained in @ref{Recognize |
| @@ -2241,7 +2234,7 @@ is not what you probably want to do in an init file. | |||
| 2241 | Specify your own email address, if Emacs can't figure it out correctly. | 2234 | Specify your own email address, if Emacs can't figure it out correctly. |
| 2242 | 2235 | ||
| 2243 | @example | 2236 | @example |
| 2244 | (setq user-mail-address "coon@@yoyodyne.com") | 2237 | (setq user-mail-address "rumsfeld@@torture.gov") |
| 2245 | @end example | 2238 | @end example |
| 2246 | 2239 | ||
| 2247 | Various Emacs packages that need your own email address use the value of | 2240 | Various Emacs packages that need your own email address use the value of |
diff --git a/man/dired.texi b/man/dired.texi index 13bd5115f1f..5face67a7b3 100644 --- a/man/dired.texi +++ b/man/dired.texi | |||
| @@ -13,11 +13,12 @@ Emacs commands to move around in this buffer, and special Dired commands | |||
| 13 | to operate on the files listed. | 13 | to operate on the files listed. |
| 14 | 14 | ||
| 15 | The Dired buffer is ``read-only,'' and inserting text in it is not | 15 | The Dired buffer is ``read-only,'' and inserting text in it is not |
| 16 | useful, so ordinary printing characters such as @kbd{d} and @kbd{x} are | 16 | useful, so ordinary printing characters such as @kbd{d} and @kbd{x} |
| 17 | used for special Dired commands. Some Dired commands @dfn{mark} or | 17 | are redefined for special Dired commands. Some Dired commands |
| 18 | @dfn{flag} the @dfn{current file} (that is, the file on the current | 18 | @dfn{mark} or @dfn{flag} the @dfn{current file} (that is, the file on |
| 19 | line); other commands operate on the marked files or on the flagged | 19 | the current line); other commands operate on the marked files or on |
| 20 | files. | 20 | the flagged files. You first mark certain files in order to operate |
| 21 | on all of them with on command. | ||
| 21 | 22 | ||
| 22 | The Dired-X package provides various extra features for Dired mode. | 23 | The Dired-X package provides various extra features for Dired mode. |
| 23 | @xref{Top, Dired-X,,dired-x, Dired Extra Version 2 User's Manual}. | 24 | @xref{Top, Dired-X,,dired-x, Dired Extra Version 2 User's Manual}. |
| @@ -40,8 +41,6 @@ files. | |||
| 40 | * Updating: Dired Updating. Discarding lines for files of no interest. | 41 | * Updating: Dired Updating. Discarding lines for files of no interest. |
| 41 | * Find: Dired and Find. Using `find' to choose the files for Dired. | 42 | * Find: Dired and Find. Using `find' to choose the files for Dired. |
| 42 | * Wdired:: Operating on files by editing the Dired buffer. | 43 | * Wdired:: Operating on files by editing the Dired buffer. |
| 43 | * Tumme:: Image file and thumbnail viewing and | ||
| 44 | manipulation from the Dired buffer. | ||
| 45 | * Misc: Misc Dired Features. Various other features. | 44 | * Misc: Misc Dired Features. Various other features. |
| 46 | @end menu | 45 | @end menu |
| 47 | 46 | ||
| @@ -53,18 +52,20 @@ files. | |||
| 53 | @vindex dired-listing-switches | 52 | @vindex dired-listing-switches |
| 54 | To invoke Dired, do @kbd{C-x d} or @kbd{M-x dired}. The command | 53 | To invoke Dired, do @kbd{C-x d} or @kbd{M-x dired}. The command |
| 55 | reads a directory name or wildcard file name pattern as a minibuffer | 54 | reads a directory name or wildcard file name pattern as a minibuffer |
| 56 | argument to specify which files to list. @kbd{C-x C-f} given a | 55 | argument to specify the files to list. @kbd{C-x C-f} given a |
| 57 | directory name also invokes Dired. Where @code{dired} differs from | 56 | directory name also invokes Dired. Where @code{dired} differs from |
| 58 | @code{list-directory} is that it puts the buffer into Dired mode, so | 57 | @code{list-directory} is that it puts the buffer into Dired mode, so |
| 59 | that the special commands of Dired are available. | 58 | that the special commands of Dired are available. |
| 60 | 59 | ||
| 61 | The variable @code{dired-listing-switches} specifies the options to | 60 | The variable @code{dired-listing-switches} specifies the options to |
| 62 | give to @code{ls} for listing the directory; this string @emph{must} contain | 61 | give to @code{ls} for listing the directory; this string @emph{must} |
| 63 | @samp{-l}. If you use a numeric prefix argument with the @code{dired} | 62 | contain @samp{-l}. If you use a numeric prefix argument with the |
| 64 | command, you can specify the @code{ls} switches with the minibuffer | 63 | @code{dired} command, you can specify the @code{ls} switches with the |
| 65 | before you enter the directory specification. No matter how they are | 64 | minibuffer before you enter the directory specification. No matter |
| 66 | specified, the @code{ls} switches should all be short options (that | 65 | how they are specified, the @code{ls} switches can include short |
| 67 | is, single characters) requiring no arguments. | 66 | options (that is, single characters) requiring no arguments, and long |
| 67 | options (starting with @samp{--}) whose arguments are specified with | ||
| 68 | @samp{=}. | ||
| 68 | 69 | ||
| 69 | @findex dired-other-window | 70 | @findex dired-other-window |
| 70 | @kindex C-x 4 d | 71 | @kindex C-x 4 d |
| @@ -81,10 +82,9 @@ separate frame to display the Dired buffer. | |||
| 81 | @kindex C-n @r{(Dired)} | 82 | @kindex C-n @r{(Dired)} |
| 82 | @kindex C-p @r{(Dired)} | 83 | @kindex C-p @r{(Dired)} |
| 83 | All the usual Emacs cursor motion commands are available in Dired | 84 | All the usual Emacs cursor motion commands are available in Dired |
| 84 | buffers. Some special-purpose cursor motion commands are also | 85 | buffers. The keys @kbd{C-n} and @kbd{C-p} are redefined to put the |
| 85 | provided. The keys @kbd{C-n} and @kbd{C-p} are redefined to put the | 86 | cursor at the beginning of the file name on the line, rather than at |
| 86 | cursor at the beginning of the file name on the line, rather than at the | 87 | the beginning of the line. |
| 87 | beginning of the line. | ||
| 88 | 88 | ||
| 89 | @kindex SPC @r{(Dired)} | 89 | @kindex SPC @r{(Dired)} |
| 90 | For extra convenience, @key{SPC} and @kbd{n} in Dired are equivalent | 90 | For extra convenience, @key{SPC} and @kbd{n} in Dired are equivalent |
| @@ -121,42 +121,47 @@ Delete the files that are flagged for deletion. | |||
| 121 | 121 | ||
| 122 | @kindex d @r{(Dired)} | 122 | @kindex d @r{(Dired)} |
| 123 | @findex dired-flag-file-deletion | 123 | @findex dired-flag-file-deletion |
| 124 | You can flag a file for deletion by moving to the line describing the | 124 | You can flag a file for deletion by moving to the line describing |
| 125 | file and typing @kbd{d} (@code{dired-flag-file-deletion}). The deletion flag is visible as a @samp{D} at | 125 | the file and typing @kbd{d} (@code{dired-flag-file-deletion}). The |
| 126 | the beginning of the line. This command moves point to the next line, | 126 | deletion flag is visible as a @samp{D} at the beginning of the line. |
| 127 | so that repeated @kbd{d} commands flag successive files. A numeric | 127 | This command moves point to the next line, so that repeated @kbd{d} |
| 128 | argument serves as a repeat count. | 128 | commands flag successive files. A numeric argument serves as a repeat |
| 129 | 129 | count. | |
| 130 | @cindex recursive deletion | ||
| 131 | @vindex dired-recursive-deletes | ||
| 132 | The variable @code{dired-recursive-deletes} controls whether the | ||
| 133 | delete command will delete non-empty directories (including their | ||
| 134 | contents). The default is to delete only empty directories. | ||
| 135 | 130 | ||
| 136 | @kindex u @r{(Dired deletion)} | 131 | @kindex u @r{(Dired deletion)} |
| 137 | @kindex DEL @r{(Dired)} | 132 | @kindex DEL @r{(Dired)} |
| 138 | The files are flagged for deletion rather than deleted immediately to | 133 | The reason for flagging files for deletion, rather than deleting |
| 139 | reduce the danger of deleting a file accidentally. Until you direct | 134 | files immediately, is to reduce the danger of deleting a file |
| 140 | Dired to delete the flagged files, you can remove deletion flags using | 135 | accidentally. Until you direct Dired to delete the flagged files, you |
| 141 | the commands @kbd{u} and @key{DEL}. @kbd{u} (@code{dired-unmark}) works | 136 | can remove deletion flags using the commands @kbd{u} and @key{DEL}. |
| 142 | just like @kbd{d}, but removes flags rather than making flags. | 137 | @kbd{u} (@code{dired-unmark}) works just like @kbd{d}, but removes |
| 143 | @key{DEL} (@code{dired-unmark-backward}) moves upward, removing flags; | 138 | flags rather than making flags. @key{DEL} |
| 144 | it is like @kbd{u} with argument @minus{}1. | 139 | (@code{dired-unmark-backward}) moves upward, removing flags; it is |
| 140 | like @kbd{u} with argument @minus{}1. | ||
| 145 | 141 | ||
| 146 | @kindex x @r{(Dired)} | 142 | @kindex x @r{(Dired)} |
| 147 | @findex dired-do-flagged-delete | 143 | @findex dired-do-flagged-delete |
| 148 | @cindex expunging (Dired) | 144 | @cindex expunging (Dired) |
| 149 | To delete the flagged files, type @kbd{x} (@code{dired-do-flagged-delete}). | 145 | To delete the flagged files, type @kbd{x} |
| 150 | (This is also known as @dfn{expunging}.) | 146 | (@code{dired-do-flagged-delete}). (This is also known as |
| 151 | This command first displays a list of all the file names flagged for | 147 | @dfn{expunging}.) This command first displays a list of all the file |
| 152 | deletion, and requests confirmation with @kbd{yes}. If you confirm, | 148 | names flagged for deletion, and requests confirmation with @kbd{yes}. |
| 153 | Dired deletes the flagged files, then deletes their lines from the text | 149 | If you confirm, Dired deletes the flagged files, then deletes their |
| 154 | of the Dired buffer. The shortened Dired buffer remains selected. | 150 | lines from the text of the Dired buffer. The Dired buffer, with |
| 151 | somewhat fewer lines, remains selected. | ||
| 155 | 152 | ||
| 156 | If you answer @kbd{no} or quit with @kbd{C-g} when asked to confirm, you | 153 | If you answer @kbd{no} or quit with @kbd{C-g} when asked to confirm, you |
| 157 | return immediately to Dired, with the deletion flags still present in | 154 | return immediately to Dired, with the deletion flags still present in |
| 158 | the buffer, and no files actually deleted. | 155 | the buffer, and no files actually deleted. |
| 159 | 156 | ||
| 157 | @cindex recursive deletion | ||
| 158 | @vindex dired-recursive-deletes | ||
| 159 | You can delete empty directories just like other files, but normally | ||
| 160 | Dired cannot delete directories that are nonempty. If the variable | ||
| 161 | @code{dired-recursive-deletes} is non-@code{nil}, then Dired can | ||
| 162 | delete nonempty directories including all their contents. That can | ||
| 163 | be somewhat risky. | ||
| 164 | |||
| 160 | @node Flagging Many Files | 165 | @node Flagging Many Files |
| 161 | @section Flagging Many Files at Once | 166 | @section Flagging Many Files at Once |
| 162 | @cindex flagging many files for deletion (in Dired) | 167 | @cindex flagging many files for deletion (in Dired) |
| @@ -171,8 +176,8 @@ Flag all backup files (files whose names end with @samp{~}) for deletion | |||
| 171 | (@pxref{Backup}). | 176 | (@pxref{Backup}). |
| 172 | 177 | ||
| 173 | @item & | 178 | @item & |
| 174 | Flag for deletion all files with certain kinds of names, names that | 179 | Flag for deletion all files with certain kinds of names which suggest |
| 175 | suggest you could easily create the files again. | 180 | you could easily create those files again. |
| 176 | 181 | ||
| 177 | @item .@: @r{(Period)} | 182 | @item .@: @r{(Period)} |
| 178 | Flag excess numeric backup files for deletion. The oldest and newest | 183 | Flag excess numeric backup files for deletion. The oldest and newest |
| @@ -204,14 +209,14 @@ files produced by @TeX{}, @samp{.bak} files, and the @samp{.orig} and | |||
| 204 | @findex dired-flag-auto-save-files | 209 | @findex dired-flag-auto-save-files |
| 205 | @cindex deleting auto-save files | 210 | @cindex deleting auto-save files |
| 206 | @kbd{#} (@code{dired-flag-auto-save-files}) flags for deletion all | 211 | @kbd{#} (@code{dired-flag-auto-save-files}) flags for deletion all |
| 207 | files whose names look like auto-save files (@pxref{Auto Save})---that | 212 | files whose names look like auto-save files---that is, files whose |
| 208 | is, files whose names begin and end with @samp{#}. | 213 | names begin and end with @samp{#}. @xref{Auto Save}. |
| 209 | 214 | ||
| 210 | @kindex ~ @r{(Dired)} | 215 | @kindex ~ @r{(Dired)} |
| 211 | @findex dired-flag-backup-files | 216 | @findex dired-flag-backup-files |
| 212 | @kbd{~} (@code{dired-flag-backup-files}) flags for deletion all files | 217 | @kbd{~} (@code{dired-flag-backup-files}) flags for deletion all |
| 213 | whose names say they are backup files (@pxref{Backup})---that is, files | 218 | files whose names say they are backup files---that is, files whose |
| 214 | whose names end in @samp{~}. | 219 | names end in @samp{~}. @xref{Backup}. |
| 215 | 220 | ||
| 216 | @kindex . @r{(Dired)} | 221 | @kindex . @r{(Dired)} |
| 217 | @vindex dired-kept-versions | 222 | @vindex dired-kept-versions |
| @@ -235,8 +240,9 @@ specify the number of oldest versions of each file to keep. | |||
| 235 | The @kbd{% d} command flags all files whose names match a specified | 240 | The @kbd{% d} command flags all files whose names match a specified |
| 236 | regular expression (@code{dired-flag-files-regexp}). Only the | 241 | regular expression (@code{dired-flag-files-regexp}). Only the |
| 237 | non-directory part of the file name is used in matching. You can use | 242 | non-directory part of the file name is used in matching. You can use |
| 238 | @samp{^} and @samp{$} to anchor matches. You can exclude subdirectories | 243 | @samp{^} and @samp{$} to anchor matches. You can exclude certain |
| 239 | by hiding them (@pxref{Hiding Subdirectories}). | 244 | subdirectories from marking by hiding them while you use @kbd{% d}. |
| 245 | @xref{Hiding Subdirectories}. | ||
| 240 | 246 | ||
| 241 | @node Dired Visiting | 247 | @node Dired Visiting |
| 242 | @section Visiting Files in Dired | 248 | @section Visiting Files in Dired |
| @@ -301,8 +307,8 @@ Ops, View File, Miscellaneous File Operations}. | |||
| 301 | @kindex ^ @r{(Dired)} | 307 | @kindex ^ @r{(Dired)} |
| 302 | @findex dired-up-directory | 308 | @findex dired-up-directory |
| 303 | Visit the parent directory of the current directory | 309 | Visit the parent directory of the current directory |
| 304 | (@code{dired-up-directory}). This is more convenient than moving to | 310 | (@code{dired-up-directory}). This is equivalent to moving to the line |
| 305 | the parent directory's line and typing @kbd{f} there. | 311 | for @file{..} and typing @kbd{f} there. |
| 306 | @end table | 312 | @end table |
| 307 | 313 | ||
| 308 | @node Marks vs Flags | 314 | @node Marks vs Flags |
| @@ -311,12 +317,13 @@ the parent directory's line and typing @kbd{f} there. | |||
| 311 | @cindex marking many files (in Dired) | 317 | @cindex marking many files (in Dired) |
| 312 | Instead of flagging a file with @samp{D}, you can @dfn{mark} the | 318 | Instead of flagging a file with @samp{D}, you can @dfn{mark} the |
| 313 | file with some other character (usually @samp{*}). Most Dired | 319 | file with some other character (usually @samp{*}). Most Dired |
| 314 | commands to operate on files use the files marked with @samp{*}, the | 320 | commands to operate on files use the files marked with @samp{*}. The |
| 315 | exception being @kbd{x} which deletes the flagged files. | 321 | only command that operates on flagged flies is @kbd{x}, which expunges |
| 322 | them. | ||
| 316 | 323 | ||
| 317 | Here are some commands for marking with @samp{*}, or for unmarking or | 324 | Here are some commands for marking with @samp{*}, for unmarking, and |
| 318 | operating on marks. (@xref{Dired Deletion}, for commands to flag and | 325 | for operating on marks. (@xref{Dired Deletion}, for commands to flag |
| 319 | unflag files.) | 326 | and unflag files.) |
| 320 | 327 | ||
| 321 | @table @kbd | 328 | @table @kbd |
| 322 | @item m | 329 | @item m |
| @@ -348,7 +355,7 @@ With a numeric argument, unmark all those files. | |||
| 348 | @kindex * / @r{(Dired)} | 355 | @kindex * / @r{(Dired)} |
| 349 | @findex dired-mark-directories | 356 | @findex dired-mark-directories |
| 350 | @cindex marking subdirectories (in Dired) | 357 | @cindex marking subdirectories (in Dired) |
| 351 | Mark with @samp{*} all files which are actually directories, except for | 358 | Mark with @samp{*} all files which are directories, except for |
| 352 | @file{.} and @file{..} (@code{dired-mark-directories}). With a numeric | 359 | @file{.} and @file{..} (@code{dired-mark-directories}). With a numeric |
| 353 | argument, unmark all those files. | 360 | argument, unmark all those files. |
| 354 | 361 | ||
| @@ -455,11 +462,12 @@ This assumes that no files were already marked with @samp{t}. | |||
| 455 | Mark (with @samp{*}) all files whose names match the regular expression | 462 | Mark (with @samp{*}) all files whose names match the regular expression |
| 456 | @var{regexp} (@code{dired-mark-files-regexp}). This command is like | 463 | @var{regexp} (@code{dired-mark-files-regexp}). This command is like |
| 457 | @kbd{% d}, except that it marks files with @samp{*} instead of flagging | 464 | @kbd{% d}, except that it marks files with @samp{*} instead of flagging |
| 458 | with @samp{D}. @xref{Flagging Many Files}. | 465 | with @samp{D}. |
| 459 | 466 | ||
| 460 | Only the non-directory part of the file name is used in matching. Use | 467 | Only the non-directory part of the file name is used in matching. Use |
| 461 | @samp{^} and @samp{$} to anchor matches. Exclude subdirectories by | 468 | @samp{^} and @samp{$} to anchor matches. You can exclude |
| 462 | hiding them (@pxref{Hiding Subdirectories}). | 469 | subdirectories by temporarily hiding them (@pxref{Hiding |
| 470 | Subdirectories}). | ||
| 463 | 471 | ||
| 464 | @item % g @var{regexp} @key{RET} | 472 | @item % g @var{regexp} @key{RET} |
| 465 | @findex dired-mark-files-containing-regexp | 473 | @findex dired-mark-files-containing-regexp |
| @@ -471,16 +479,21 @@ the regular expression @var{regexp} | |||
| 471 | @kbd{% m}, except that it searches the file contents instead of the file | 479 | @kbd{% m}, except that it searches the file contents instead of the file |
| 472 | name. | 480 | name. |
| 473 | 481 | ||
| 474 | @item C-_ | 482 | @item C-x u |
| 483 | @itemx C-_ | ||
| 484 | @itemx C-/ | ||
| 475 | @kindex C-_ @r{(Dired)} | 485 | @kindex C-_ @r{(Dired)} |
| 476 | @findex dired-undo | 486 | @findex dired-undo |
| 477 | Undo changes in the Dired buffer, such as adding or removing | 487 | Undo changes in the Dired buffer, such as adding or removing |
| 478 | marks (@code{dired-undo}). @emph{This command does not revert the | 488 | marks (@code{dired-undo}). @emph{This command does not revert the |
| 479 | actual file operations, nor recover lost files!} It just undoes | 489 | actual file operations, nor recover lost files!} It just undoes |
| 480 | changes in the buffer itself. For example, if used after renaming one | 490 | changes in the buffer itself. |
| 481 | or more files, @code{dired-undo} restores the original names, which | 491 | |
| 482 | will get the Dired buffer out of sync with the actual contents of the | 492 | In some cases, using this after commands that operate on files can |
| 483 | directory. | 493 | cause trouble. For example, after renaming one or more files, |
| 494 | @code{dired-undo} restores the original names in the Dired buffer, | ||
| 495 | which gets the Dired buffer out of sync with the actual contents of | ||
| 496 | the directory. | ||
| 484 | @end table | 497 | @end table |
| 485 | 498 | ||
| 486 | @node Operating on Files | 499 | @node Operating on Files |
| @@ -490,8 +503,8 @@ directory. | |||
| 490 | This section describes the basic Dired commands to operate on one file | 503 | This section describes the basic Dired commands to operate on one file |
| 491 | or several files. All of these commands are capital letters; all of | 504 | or several files. All of these commands are capital letters; all of |
| 492 | them use the minibuffer, either to read an argument or to ask for | 505 | them use the minibuffer, either to read an argument or to ask for |
| 493 | confirmation, before they act. All of them give you several ways to | 506 | confirmation, before they act. All of them let you specify the |
| 494 | specify which files to manipulate: | 507 | files to manipulate in these ways: |
| 495 | 508 | ||
| 496 | @itemize @bullet | 509 | @itemize @bullet |
| 497 | @item | 510 | @item |
| @@ -508,6 +521,10 @@ on all those files. | |||
| 508 | Otherwise, the command operates on the current file only. | 521 | Otherwise, the command operates on the current file only. |
| 509 | @end itemize | 522 | @end itemize |
| 510 | 523 | ||
| 524 | @noindent | ||
| 525 | Certain other Dired commands, such as @kbd{!} and the @samp{%} | ||
| 526 | commands, use the same conventions to decide which files to work on. | ||
| 527 | |||
| 511 | @vindex dired-dwim-target | 528 | @vindex dired-dwim-target |
| 512 | @cindex two directories (in Dired) | 529 | @cindex two directories (in Dired) |
| 513 | Commands which ask for a destination directory, such as those which | 530 | Commands which ask for a destination directory, such as those which |
| @@ -517,9 +534,7 @@ buffer's default directory, but if the variable @code{dired-dwim-target} | |||
| 517 | is non-@code{nil}, and if there is another Dired buffer displayed in the | 534 | is non-@code{nil}, and if there is another Dired buffer displayed in the |
| 518 | next window, that other buffer's directory is suggested instead. | 535 | next window, that other buffer's directory is suggested instead. |
| 519 | 536 | ||
| 520 | Here are the file-manipulating commands that operate on files in this | 537 | Here are the file-manipulating Dired commands that operate on files. |
| 521 | way. (Some other Dired commands, such as @kbd{!} and the @samp{%} | ||
| 522 | commands, also use these conventions to decide which files to work on.) | ||
| 523 | 538 | ||
| 524 | @table @kbd | 539 | @table @kbd |
| 525 | @findex dired-do-copy | 540 | @findex dired-do-copy |
| @@ -531,15 +546,15 @@ is the directory to copy into, or (if copying a single file) the new | |||
| 531 | name. | 546 | name. |
| 532 | 547 | ||
| 533 | @vindex dired-copy-preserve-time | 548 | @vindex dired-copy-preserve-time |
| 534 | If @code{dired-copy-preserve-time} is non-@code{nil}, then copying with | 549 | If @code{dired-copy-preserve-time} is non-@code{nil}, then copying |
| 535 | this command sets the modification time of the new file to be the same | 550 | with this command preserves the modification time of the old file in |
| 536 | as that of the old file. | 551 | the copy. |
| 537 | 552 | ||
| 538 | @vindex dired-recursive-copies | 553 | @vindex dired-recursive-copies |
| 539 | @cindex recursive copying | 554 | @cindex recursive copying |
| 540 | The variable @code{dired-recursive-copies} controls whether | 555 | The variable @code{dired-recursive-copies} controls whether to copy |
| 541 | directories are copied recursively. The default is to not copy | 556 | directories recursively. The default is @code{nil}, which means that |
| 542 | recursively, which means that directories cannot be copied. | 557 | directories cannot be copied. |
| 543 | 558 | ||
| 544 | @item D | 559 | @item D |
| 545 | @findex dired-do-delete | 560 | @findex dired-do-delete |
| @@ -608,7 +623,8 @@ different places). | |||
| 608 | @kindex T @r{(Dired)} | 623 | @kindex T @r{(Dired)} |
| 609 | @cindex changing file time (in Dired) | 624 | @cindex changing file time (in Dired) |
| 610 | @item T @var{timestamp} @key{RET} | 625 | @item T @var{timestamp} @key{RET} |
| 611 | Change the time of the specified files (@code{dired-do-touch}). | 626 | Touch the specified files (@code{dired-do-touch}). This means |
| 627 | updating their modification times to the present time. | ||
| 612 | 628 | ||
| 613 | @findex dired-do-print | 629 | @findex dired-do-print |
| 614 | @kindex P @r{(Dired)} | 630 | @kindex P @r{(Dired)} |
| @@ -625,7 +641,7 @@ suitable guess made using the variables @code{lpr-command} and | |||
| 625 | @cindex compressing files (in Dired) | 641 | @cindex compressing files (in Dired) |
| 626 | @item Z | 642 | @item Z |
| 627 | Compress the specified files (@code{dired-do-compress}). If the file | 643 | Compress the specified files (@code{dired-do-compress}). If the file |
| 628 | appears to be a compressed file already, it is uncompressed instead. | 644 | appears to be a compressed file already, uncompress it instead. |
| 629 | 645 | ||
| 630 | @findex dired-do-load | 646 | @findex dired-do-load |
| 631 | @kindex L @r{(Dired)} | 647 | @kindex L @r{(Dired)} |
| @@ -666,12 +682,6 @@ query replace loop, you can use @kbd{M-,} to resume the scan and replace | |||
| 666 | more matches. @xref{Tags Search}. | 682 | more matches. @xref{Tags Search}. |
| 667 | @end table | 683 | @end table |
| 668 | 684 | ||
| 669 | @kindex + @r{(Dired)} | ||
| 670 | @findex dired-create-directory | ||
| 671 | One special file-operation command is @kbd{+} | ||
| 672 | (@code{dired-create-directory}). This command reads a directory name and | ||
| 673 | creates the directory if it does not already exist. | ||
| 674 | |||
| 675 | @node Shell Commands in Dired | 685 | @node Shell Commands in Dired |
| 676 | @section Shell Commands in Dired | 686 | @section Shell Commands in Dired |
| 677 | @cindex shell commands, Dired | 687 | @cindex shell commands, Dired |
| @@ -679,12 +689,16 @@ creates the directory if it does not already exist. | |||
| 679 | @findex dired-do-shell-command | 689 | @findex dired-do-shell-command |
| 680 | @kindex ! @r{(Dired)} | 690 | @kindex ! @r{(Dired)} |
| 681 | @kindex X @r{(Dired)} | 691 | @kindex X @r{(Dired)} |
| 682 | The Dired command @kbd{!} (@code{dired-do-shell-command}) reads a shell | 692 | The Dired command @kbd{!} (@code{dired-do-shell-command}) reads a |
| 683 | command string in the minibuffer and runs that shell command on all the | 693 | shell command string in the minibuffer and runs that shell command on |
| 684 | specified files. @kbd{X} is a synonym for @kbd{!}. You can specify the | 694 | all the specified files. (@kbd{X} is a synonym for @kbd{!}.) You can |
| 685 | files to operate on in the usual ways for Dired commands | 695 | specify the files to operate on in the usual ways for Dired commands |
| 686 | (@pxref{Operating on Files}). There are two ways of applying a shell | 696 | (@pxref{Operating on Files}). |
| 687 | command to multiple files: | 697 | |
| 698 | The working directory for the shell command is the top-level directory | ||
| 699 | of the Dired buffer. | ||
| 700 | |||
| 701 | There are two ways of applying a shell command to multiple files: | ||
| 688 | 702 | ||
| 689 | @itemize @bullet | 703 | @itemize @bullet |
| 690 | @item | 704 | @item |
| @@ -711,12 +725,12 @@ file. | |||
| 711 | 725 | ||
| 712 | @item | 726 | @item |
| 713 | However, if the command string contains @samp{?} surrounded by | 727 | However, if the command string contains @samp{?} surrounded by |
| 714 | whitespace, the current file name is substituted for @samp{?} (rather | 728 | whitespace, the current file name is substituted for @samp{?} (rather |
| 715 | than added at the end). You can use @samp{?} this way more than once | 729 | than added at the end). You can use @samp{?} this way more than once |
| 716 | in the command, and the same file name replaces each occurrence. | 730 | in the command, and the same file name replaces each occurrence. |
| 717 | @end itemize | 731 | @end itemize |
| 718 | 732 | ||
| 719 | To iterate over the file names in a more complicated fashion, use an | 733 | To iterate over the file names in a more complicated fashion, use an |
| 720 | explicit shell loop. For example, here is how to uuencode each file, | 734 | explicit shell loop. For example, here is how to uuencode each file, |
| 721 | making the output file name by appending @samp{.uu} to the input file | 735 | making the output file name by appending @samp{.uu} to the input file |
| 722 | name: | 736 | name: |
| @@ -725,11 +739,8 @@ name: | |||
| 725 | for file in * ; do uuencode "$file" "$file" >"$file".uu; done | 739 | for file in * ; do uuencode "$file" "$file" >"$file".uu; done |
| 726 | @end example | 740 | @end example |
| 727 | 741 | ||
| 728 | The working directory for the shell command is the top-level directory | 742 | The @kbd{!} command does not attempt to update the Dired buffer to |
| 729 | of the Dired buffer. | 743 | show new or modified files, because it doesn't understand shell |
| 730 | |||
| 731 | The @kbd{!} command does not attempt to update the Dired buffer to show | ||
| 732 | new or modified files, because it doesn't really understand shell | ||
| 733 | commands, and does not know what files the shell command changed. Use | 744 | commands, and does not know what files the shell command changed. Use |
| 734 | the @kbd{g} command to update the Dired buffer (@pxref{Dired | 745 | the @kbd{g} command to update the Dired buffer (@pxref{Dired |
| 735 | Updating}). | 746 | Updating}). |
| @@ -738,7 +749,8 @@ Updating}). | |||
| 738 | @section Transforming File Names in Dired | 749 | @section Transforming File Names in Dired |
| 739 | 750 | ||
| 740 | This section describes Dired commands which alter file names in a | 751 | This section describes Dired commands which alter file names in a |
| 741 | systematic way. | 752 | systematic way. Each command operates on some or all of the marked |
| 753 | files, using a new name made by transforming the existing name. | ||
| 742 | 754 | ||
| 743 | Like the basic Dired file-manipulation commands (@pxref{Operating on | 755 | Like the basic Dired file-manipulation commands (@pxref{Operating on |
| 744 | Files}), the commands described here operate either on the next | 756 | Files}), the commands described here operate either on the next |
| @@ -750,7 +762,7 @@ Flags}.) | |||
| 750 | @emph{interactively}: they ask you to confirm the operation for each | 762 | @emph{interactively}: they ask you to confirm the operation for each |
| 751 | candidate file. Thus, you can select more files than you actually | 763 | candidate file. Thus, you can select more files than you actually |
| 752 | need to operate on (e.g., with a regexp that matches many files), and | 764 | need to operate on (e.g., with a regexp that matches many files), and |
| 753 | then refine the selection by typing @kbd{y} or @kbd{n} when the | 765 | then filter the selected names by typing @kbd{y} or @kbd{n} when the |
| 754 | command prompts for confirmation. | 766 | command prompts for confirmation. |
| 755 | 767 | ||
| 756 | @table @kbd | 768 | @table @kbd |
| @@ -787,17 +799,16 @@ in each case computing the new name by regular-expression substitution | |||
| 787 | from the name of the old file. | 799 | from the name of the old file. |
| 788 | @end table | 800 | @end table |
| 789 | 801 | ||
| 790 | The four regular-expression substitution commands effectively perform | 802 | The four regular-expression substitution commands effectively |
| 791 | a search-and-replace on the selected file names in the Dired buffer. | 803 | perform a search-and-replace on the selected file names. They read |
| 792 | They read two arguments: a regular expression @var{from}, and a | 804 | two arguments: a regular expression @var{from}, and a substitution |
| 793 | substitution pattern @var{to}. | 805 | pattern @var{to}; they match each ``old'' file name against |
| 794 | 806 | @var{from}, and then replace the matching part with @var{to}. You can | |
| 795 | The commands match each ``old'' file name against the regular | 807 | use @samp{\&} and @samp{\@var{digit}} in @var{to} to refer to all or |
| 796 | expression @var{from}, and then replace the matching part with @var{to}. | 808 | part of what the pattern matched in the old file name, as in |
| 797 | You can use @samp{\&} and @samp{\@var{digit}} in @var{to} to refer to | 809 | @code{replace-regexp} (@pxref{Regexp Replace}). If the regular |
| 798 | all or part of what the pattern matched in the old file name, as in | 810 | expression matches more than once in a file name, only the first match |
| 799 | @code{replace-regexp} (@pxref{Regexp Replace}). If the regular expression | 811 | is replaced. |
| 800 | matches more than once in a file name, only the first match is replaced. | ||
| 801 | 812 | ||
| 802 | For example, @kbd{% R ^.*$ @key{RET} x-\& @key{RET}} renames each | 813 | For example, @kbd{% R ^.*$ @key{RET} x-\& @key{RET}} renames each |
| 803 | selected file by prepending @samp{x-} to its name. The inverse of this, | 814 | selected file by prepending @samp{x-} to its name. The inverse of this, |
| @@ -809,15 +820,16 @@ matches that should span the whole filename.) | |||
| 809 | Normally, the replacement process does not consider the files' | 820 | Normally, the replacement process does not consider the files' |
| 810 | directory names; it operates on the file name within the directory. If | 821 | directory names; it operates on the file name within the directory. If |
| 811 | you specify a numeric argument of zero, then replacement affects the | 822 | you specify a numeric argument of zero, then replacement affects the |
| 812 | entire absolute file name including directory name. (Non-zero | 823 | entire absolute file name including directory name. (A non-zero |
| 813 | argument specifies the number of files to operate on.) | 824 | argument specifies the number of files to operate on.) |
| 814 | 825 | ||
| 815 | Often you will want to select the set of files to operate on using the | 826 | You may want to select the set of files to operate on using the same |
| 816 | same @var{regexp} that you will use to operate on them. To do this, | 827 | regexp @var{from} that you will use to operate on them. To do this, |
| 817 | mark those files with @kbd{% m @var{regexp} @key{RET}}, then use the | 828 | mark those files with @kbd{% m @var{from} @key{RET}}, then use the |
| 818 | same regular expression in the command to operate on the files. To make | 829 | same regular expression in the command to operate on the files. To |
| 819 | this easier, the @kbd{%} commands to operate on files use the last | 830 | make this more convenient, the @kbd{%} commands to operate on files |
| 820 | regular expression specified in any @kbd{%} command as a default. | 831 | use the last regular expression specified in any @kbd{%} command as a |
| 832 | default. | ||
| 821 | 833 | ||
| 822 | @node Comparison in Dired | 834 | @node Comparison in Dired |
| 823 | @section File Comparison with Dired | 835 | @section File Comparison with Dired |
| @@ -825,19 +837,20 @@ regular expression specified in any @kbd{%} command as a default. | |||
| 825 | @cindex compare files (in Dired) | 837 | @cindex compare files (in Dired) |
| 826 | 838 | ||
| 827 | Here are two Dired commands that compare specified files using | 839 | Here are two Dired commands that compare specified files using |
| 828 | @code{diff}. | 840 | @code{diff}. They show the output in a buffer using Diff mode |
| 841 | (@pxref{Comparing Files}). | ||
| 829 | 842 | ||
| 830 | @table @kbd | 843 | @table @kbd |
| 831 | @item = | 844 | @item = |
| 832 | @findex dired-diff | 845 | @findex dired-diff |
| 833 | @kindex = @r{(Dired)} | 846 | @kindex = @r{(Dired)} |
| 834 | Compare the current file (the file at point) with another file (the file | 847 | Compare the current file (the file at point) with another file (the |
| 835 | at the mark) using the @code{diff} program (@code{dired-diff}). The | 848 | file at the mark) using the @code{diff} program (@code{dired-diff}). |
| 836 | file at the mark is the first argument of @code{diff}, and the file at | 849 | The file at the mark is the first argument of @code{diff}, and the |
| 837 | point is the second argument. Use @kbd{C-@key{SPC}} | 850 | file at point is the second argument. This refers to the ordinary |
| 851 | Emacs mark, not Dired marks; use @kbd{C-@key{SPC}} | ||
| 838 | (@code{set-mark-command}) to set the mark at the first file's line | 852 | (@code{set-mark-command}) to set the mark at the first file's line |
| 839 | (@pxref{Setting Mark}), since @code{dired-diff} ignores the files marked | 853 | (@pxref{Setting Mark}). |
| 840 | with the Dired's @kbd{m} command. | ||
| 841 | 854 | ||
| 842 | @findex dired-backup-diff | 855 | @findex dired-backup-diff |
| 843 | @kindex M-= @r{(Dired)} | 856 | @kindex M-= @r{(Dired)} |
| @@ -845,7 +858,7 @@ with the Dired's @kbd{m} command. | |||
| 845 | Compare the current file with its latest backup file | 858 | Compare the current file with its latest backup file |
| 846 | (@code{dired-backup-diff}). If the current file is itself a backup, | 859 | (@code{dired-backup-diff}). If the current file is itself a backup, |
| 847 | compare it with the file it is a backup of; this way, you can compare | 860 | compare it with the file it is a backup of; this way, you can compare |
| 848 | a file with any backup version of your choice. | 861 | a file with any one of its backups. |
| 849 | 862 | ||
| 850 | The backup file is the first file given to @code{diff}. | 863 | The backup file is the first file given to @code{diff}. |
| 851 | @end table | 864 | @end table |
| @@ -864,9 +877,8 @@ numeric argument when you run Dired, then you can specify these options | |||
| 864 | in the minibuffer.) That produces a recursive directory listing showing | 877 | in the minibuffer.) That produces a recursive directory listing showing |
| 865 | all subdirectories at all levels. | 878 | all subdirectories at all levels. |
| 866 | 879 | ||
| 867 | But usually all the subdirectories are too many; usually you will | 880 | More often, you will want to show only specific subdirectories. You |
| 868 | prefer to include specific subdirectories only. You can do this with | 881 | can do this with the @kbd{i} command: |
| 869 | the @kbd{i} command: | ||
| 870 | 882 | ||
| 871 | @table @kbd | 883 | @table @kbd |
| 872 | @findex dired-maybe-insert-subdir | 884 | @findex dired-maybe-insert-subdir |
| @@ -950,7 +962,7 @@ Move down to the next directory-file line (@code{dired-prev-dirline}). | |||
| 950 | 962 | ||
| 951 | @cindex hiding in Dired (Dired) | 963 | @cindex hiding in Dired (Dired) |
| 952 | @dfn{Hiding} a subdirectory means to make it invisible, except for its | 964 | @dfn{Hiding} a subdirectory means to make it invisible, except for its |
| 953 | header line, via selective display (@pxref{Selective Display}). | 965 | header line. |
| 954 | 966 | ||
| 955 | @table @kbd | 967 | @table @kbd |
| 956 | @item $ | 968 | @item $ |
| @@ -974,7 +986,8 @@ subdirectories far away. | |||
| 974 | subdirectory. For example, the commands to operate on marked files | 986 | subdirectory. For example, the commands to operate on marked files |
| 975 | ignore files in hidden directories even if they are marked. Thus you | 987 | ignore files in hidden directories even if they are marked. Thus you |
| 976 | can use hiding to temporarily exclude subdirectories from operations | 988 | can use hiding to temporarily exclude subdirectories from operations |
| 977 | without having to remove the markers. | 989 | without having to remove the Dired marks on files in those |
| 990 | subdirectories. | ||
| 978 | 991 | ||
| 979 | @node Dired Updating | 992 | @node Dired Updating |
| 980 | @section Updating the Dired Buffer | 993 | @section Updating the Dired Buffer |
| @@ -990,7 +1003,8 @@ part of the Dired buffer. | |||
| 990 | Update the entire contents of the Dired buffer (@code{revert-buffer}). | 1003 | Update the entire contents of the Dired buffer (@code{revert-buffer}). |
| 991 | 1004 | ||
| 992 | @item l | 1005 | @item l |
| 993 | Update the specified files (@code{dired-do-redisplay}). | 1006 | Update the specified files (@code{dired-do-redisplay}). You specify the |
| 1007 | files for @kbd{l} in the same way as for file operations. | ||
| 994 | 1008 | ||
| 995 | @item k | 1009 | @item k |
| 996 | Delete the specified @emph{file lines}---not the files, just the lines | 1010 | Delete the specified @emph{file lines}---not the files, just the lines |
| @@ -1034,9 +1048,9 @@ current file as a last resort. | |||
| 1034 | 1048 | ||
| 1035 | If you use @kbd{k} with a numeric prefix argument to kill the line | 1049 | If you use @kbd{k} with a numeric prefix argument to kill the line |
| 1036 | for a file that is a directory, which you have inserted in the Dired | 1050 | for a file that is a directory, which you have inserted in the Dired |
| 1037 | buffer as a subdirectory, then this deletes that subdirectory from the | 1051 | buffer as a subdirectory, it deletes that subdirectory from the buffer |
| 1038 | buffer as well. Typing @kbd{C-u k} on the header line for a subdirectory | 1052 | as well. Typing @kbd{C-u k} on the header line for a subdirectory |
| 1039 | is another way to delete a subdirectory from the Dired buffer. | 1053 | also deletes the subdirectory from the Dired buffer. |
| 1040 | 1054 | ||
| 1041 | The @kbd{g} command brings back any individual lines that you have | 1055 | The @kbd{g} command brings back any individual lines that you have |
| 1042 | killed in this way, but not subdirectories---you must use @kbd{i} to | 1056 | killed in this way, but not subdirectories---you must use @kbd{i} to |
| @@ -1068,7 +1082,7 @@ flexibly by using the @code{find} utility to choose the files. | |||
| 1068 | @var{pattern}, and chooses all the files in @var{directory} or its | 1082 | @var{pattern}, and chooses all the files in @var{directory} or its |
| 1069 | subdirectories whose individual names match @var{pattern}. | 1083 | subdirectories whose individual names match @var{pattern}. |
| 1070 | 1084 | ||
| 1071 | The files thus chosen are displayed in a Dired buffer in which the | 1085 | The files thus chosen are displayed in a Dired buffer, in which the |
| 1072 | ordinary Dired commands are available. | 1086 | ordinary Dired commands are available. |
| 1073 | 1087 | ||
| 1074 | @findex find-grep-dired | 1088 | @findex find-grep-dired |
| @@ -1101,10 +1115,10 @@ may need to change the value of this variable. | |||
| 1101 | @cindex file database (locate) | 1115 | @cindex file database (locate) |
| 1102 | @vindex locate-command | 1116 | @vindex locate-command |
| 1103 | @kbd{M-x locate} provides a similar interface to the @code{locate} | 1117 | @kbd{M-x locate} provides a similar interface to the @code{locate} |
| 1104 | program. @kbd{M-x locate-with-filter} is similar, but keeps only lines | 1118 | program. @kbd{M-x locate-with-filter} is similar, but keeps only files |
| 1105 | matching a given regular expression. | 1119 | whose names match a given regular expression. |
| 1106 | 1120 | ||
| 1107 | These buffers don't work entirely like ordinary Dired buffers. File | 1121 | These buffers don't work entirely like ordinary Dired buffers: file |
| 1108 | operations work, but do not always automatically update the buffer. | 1122 | operations work, but do not always automatically update the buffer. |
| 1109 | Reverting the buffer with @kbd{g} deletes all inserted subdirectories, | 1123 | Reverting the buffer with @kbd{g} deletes all inserted subdirectories, |
| 1110 | and erases all flags and marks. | 1124 | and erases all flags and marks. |
| @@ -1131,104 +1145,26 @@ back to ordinary Dired mode. | |||
| 1131 | Apart from simply renaming files, you can move a file to another | 1145 | Apart from simply renaming files, you can move a file to another |
| 1132 | directory by typing in the new file name (either absolute or | 1146 | directory by typing in the new file name (either absolute or |
| 1133 | relative). To mark a file for deletion, delete the entire filename. | 1147 | relative). To mark a file for deletion, delete the entire filename. |
| 1134 | To change the target of a symbolic link, just edit the target name | 1148 | To change the target of a symbolic link, edit the link target name |
| 1135 | displayed next to the link name. | 1149 | which appears next to the link name. |
| 1136 | 1150 | ||
| 1137 | The rest of the text in the buffer, such as the file sizes and | 1151 | The rest of the text in the buffer, such as the file sizes and |
| 1138 | modification dates, is marked read-only, so you can't edit it. | 1152 | modification dates, is marked read-only, so you can't edit it. |
| 1139 | However, if you set @code{wdired-allow-to-change-permissions} to | 1153 | However, if you set @code{wdired-allow-to-change-permissions} to |
| 1140 | @code{t}, the file permission bits can also be edited. For example, | 1154 | @code{t}, you can edit the file permissions. For example, you can |
| 1141 | you can change @samp{-rw-r--r--} to @samp{-rw-rw-rw-} to make a file | 1155 | change @samp{-rw-r--r--} to @samp{-rw-rw-rw-} to make a file |
| 1142 | world-writable. These changes also take effect when you type @kbd{C-c | 1156 | world-writable. These changes also take effect when you type @kbd{C-c |
| 1143 | C-c}. | 1157 | C-c}. |
| 1144 | 1158 | ||
| 1145 | @node Tumme | ||
| 1146 | @section Thumbnail and image file viewing and manipulation | ||
| 1147 | |||
| 1148 | @cindex tumme mode | ||
| 1149 | |||
| 1150 | Tumme provides for simple viewing of thumbnails of image files. It | ||
| 1151 | provides viewing of the original file, sized or in full size, inside | ||
| 1152 | Emacs or in an external viewer. | ||
| 1153 | |||
| 1154 | Tumme aims to be both easy to use for a beginner but also powerful | ||
| 1155 | and useful to an experienced user. | ||
| 1156 | |||
| 1157 | The quickest way to try out Tumme is to use the command | ||
| 1158 | @code{tumme}. It will prompt for a directory where there are images | ||
| 1159 | files. All images in that directory will get thumbnail files created | ||
| 1160 | for them, and the thumbnails will be displayed in the ``thumbnail | ||
| 1161 | buffer''. | ||
| 1162 | |||
| 1163 | If the directory contains many image files and becayse thumbnails | ||
| 1164 | are created on the fly before they can be displayed, the above command | ||
| 1165 | might take a long time, especially the first time (consecutive | ||
| 1166 | viewings will use the cached thumbnail files). Also, if the number of | ||
| 1167 | image files is higher than @code{tumme-show-all-from-dir-max-files}, | ||
| 1168 | the command will be aborted. To work around this you can instead mark | ||
| 1169 | the files you want to look at, using @kbd{m} as usual in Dired, and | ||
| 1170 | then type @kbd{C-t d} (@code{tumme-display-thumbs}). | ||
| 1171 | |||
| 1172 | Regardless of which command you chose to display the thumbnails, a | ||
| 1173 | new buffer will open up, displaying thumbnail images of the files that | ||
| 1174 | were marked in dired. The new buffer will be the active one. | ||
| 1175 | |||
| 1176 | With point in the thumbnail buffer, type @kbd{RET} | ||
| 1177 | (@code{tumme-display-thumbnail-original-image}) to display a sized | ||
| 1178 | version of it in another window. The image will be sized to fit the | ||
| 1179 | window. Use the arrow keys to move around in the buffer. For easy | ||
| 1180 | browing, type @kbd{SPC} (@code{tumme-display-next-thumbnail-original}) | ||
| 1181 | to advance and display the next image. Typing @kbd{DEL} | ||
| 1182 | (@code{tumme-display-previous-thumbnail-original}) backs up to the | ||
| 1183 | previous thumbnail and displays that instead. | ||
| 1184 | |||
| 1185 | If you want to see the image in its original size, either provide a | ||
| 1186 | prefix argument (@kbd{C-u}) before pressing @kbd{RET}, or type | ||
| 1187 | @kbd{C-return} (@code{tumme-thumbnail-display-external}) to display | ||
| 1188 | the image in an external viewer. To use the latter, | ||
| 1189 | @code{tumme-external-viewer} must be configured. | ||
| 1190 | |||
| 1191 | If you find in image that you want to delete, type @kbd{d} | ||
| 1192 | (@code{tumme-flag-thumb-original-file}) and the file will be flagged | ||
| 1193 | for deletion in the dired buffer. If you just want visually to delete | ||
| 1194 | the thumbnail image from the thumbnail buffer, type @kbd{C-d} | ||
| 1195 | (@code{tumme-delete-char}). | ||
| 1196 | |||
| 1197 | More advanced features include commands for using ``tags''. ``Tag'' | ||
| 1198 | is just another word for ``keyword'', ``label'' or ``category''. In | ||
| 1199 | short, it is meta data used to categorize an image file. Commands | ||
| 1200 | exist to add tags for one or many image files from dired, to mark | ||
| 1201 | files having a certain tag in Dired and to remove tags from files. | ||
| 1202 | The tags put on image files are stored in a database file (currently a | ||
| 1203 | plain text file). | ||
| 1204 | |||
| 1205 | To tag image files, mark them in the dired buffer and type @kbd{C-t | ||
| 1206 | t} (@code{tumme-tag-files}). You will be prompted for a tag. To mark | ||
| 1207 | files having a certain tag, type @kbd{C-t f} | ||
| 1208 | (@code{tumme-mark-tagged-files}). After marking image files with a | ||
| 1209 | certain tag, they can be viewed as explained earlier, by typing | ||
| 1210 | @key{C-t d}. | ||
| 1211 | |||
| 1212 | You can also tag a file from the thumbnail buffer by typing @kbd{t | ||
| 1213 | t} and remove it by typing @kbd{t r}. There is also a special ``tag'' | ||
| 1214 | called ``comment'' for each file (it is not a tag in the exact same | ||
| 1215 | sense as the other tags, it is handled slightly different). That is | ||
| 1216 | used to enter a comment or description about the image. You comment a | ||
| 1217 | file from the thumbnail buffer by typing @kbd{c}. You will be | ||
| 1218 | prompted for a comment. Comments can also be added from Dired, and | ||
| 1219 | then also to multiple files at once, by typing @kbd{C-t c} | ||
| 1220 | (@code{tumme-dired-comment-files}). | ||
| 1221 | |||
| 1222 | Tumme also provides simple image manipulation commands, like | ||
| 1223 | rotating thumbnails and original image files. In the thumbnail | ||
| 1224 | buffer, type @kbd{L} to rotate the original image 90 degrees anti | ||
| 1225 | clockwise, and @kbd{R} to rotate it 90 degrees clockwise. This | ||
| 1226 | rotation will be done lossless (the image quality will not be reduced) | ||
| 1227 | and needs an external utility called JpegTRAN to work. | ||
| 1228 | |||
| 1229 | @node Misc Dired Features | 1159 | @node Misc Dired Features |
| 1230 | @section Other Dired Features | 1160 | @section Other Dired Features |
| 1231 | 1161 | ||
| 1162 | @kindex + @r{(Dired)} | ||
| 1163 | @findex dired-create-directory | ||
| 1164 | An unusual Dired file-operation command is @kbd{+} | ||
| 1165 | (@code{dired-create-directory}). This command reads a directory name, | ||
| 1166 | and creates the directory if it does not already exist. | ||
| 1167 | |||
| 1232 | @cindex Adding to the kill ring in Dired. | 1168 | @cindex Adding to the kill ring in Dired. |
| 1233 | @kindex w @r{(Dired)} | 1169 | @kindex w @r{(Dired)} |
| 1234 | @findex dired-copy-filename-as-kill | 1170 | @findex dired-copy-filename-as-kill |
| @@ -1236,16 +1172,18 @@ and needs an external utility called JpegTRAN to work. | |||
| 1236 | names of the marked (or next @var{n}) files into the kill ring, as if | 1172 | names of the marked (or next @var{n}) files into the kill ring, as if |
| 1237 | you had killed them with @kbd{C-w}. The names are separated by a space. | 1173 | you had killed them with @kbd{C-w}. The names are separated by a space. |
| 1238 | 1174 | ||
| 1175 | With a zero prefix argument, this uses the absolute file name of | ||
| 1176 | each marked file. With just @kbd{C-u} as the prefix argument, it uses | ||
| 1177 | file names relative to the Dired buffer's default directory. (This | ||
| 1178 | can still contain slashes if in a subdirectory.) As a special case, | ||
| 1179 | if point is on a directory headerline, @kbd{w} gives you the absolute | ||
| 1180 | name of that directory. Any prefix argument or marked files are | ||
| 1181 | ignored in this case. | ||
| 1182 | |||
| 1239 | The main purpose of this command is so that you can yank the file | 1183 | The main purpose of this command is so that you can yank the file |
| 1240 | names into arguments for other Emacs commands. It also displays what | 1184 | names into arguments for other Emacs commands. It also displays what |
| 1241 | was pushed onto the kill ring, so you can use it to display the list | 1185 | it added to the kill ring, so you can use it to display the list of |
| 1242 | of currently marked files in the echo area. With a zero prefix | 1186 | currently marked files in the echo area. |
| 1243 | argument, this uses the absolute file name of each marked file. With | ||
| 1244 | just @kbd{C-u} as the prefix argument, it uses file names relative to | ||
| 1245 | the Dired buffer's default directory. (This can still contain slashes | ||
| 1246 | if in a subdirectory.) As a special case, if point is on a directory | ||
| 1247 | headerline, @kbd{w} gives you the absolute name of that directory. | ||
| 1248 | Any prefix argument or marked files are ignored in this case. | ||
| 1249 | 1187 | ||
| 1250 | @findex dired-compare-directories | 1188 | @findex dired-compare-directories |
| 1251 | The command @kbd{M-x dired-compare-directories} is used to compare | 1189 | The command @kbd{M-x dired-compare-directories} is used to compare |
diff --git a/man/emacs.texi b/man/emacs.texi index 306518765c8..4cde551bb00 100644 --- a/man/emacs.texi +++ b/man/emacs.texi | |||
| @@ -201,6 +201,7 @@ Advanced Features | |||
| 201 | "recursive editing level". | 201 | "recursive editing level". |
| 202 | * Emulation:: Emulating some other editors with Emacs. | 202 | * Emulation:: Emulating some other editors with Emacs. |
| 203 | * Hyperlinking:: Following links in buffers. | 203 | * Hyperlinking:: Following links in buffers. |
| 204 | * Thumbnails:: Browsing images using thumbnails. | ||
| 204 | * Dissociated Press:: Dissociating text for fun. | 205 | * Dissociated Press:: Dissociating text for fun. |
| 205 | * Amusements:: Various games and hacks. | 206 | * Amusements:: Various games and hacks. |
| 206 | * Customization:: Modifying the behavior of Emacs. | 207 | * Customization:: Modifying the behavior of Emacs. |
diff --git a/man/gnus.texi b/man/gnus.texi index 165f74ec499..203287b3a48 100644 --- a/man/gnus.texi +++ b/man/gnus.texi | |||
| @@ -50,7 +50,7 @@ license to the document, as described in section 6 of the license. | |||
| 50 | \begin{document} | 50 | \begin{document} |
| 51 | 51 | ||
| 52 | % Adjust ../Makefile.in if you change the following line: | 52 | % Adjust ../Makefile.in if you change the following line: |
| 53 | \newcommand{\gnusversionname}{Gnus v5.10.6} | 53 | \newcommand{\gnusversionname}{Gnus v5.11} |
| 54 | \newcommand{\gnuschaptername}{} | 54 | \newcommand{\gnuschaptername}{} |
| 55 | \newcommand{\gnussectionname}{} | 55 | \newcommand{\gnussectionname}{} |
| 56 | 56 | ||
| @@ -360,7 +360,7 @@ spool or your mbox file. All at the same time, if you want to push your | |||
| 360 | luck. | 360 | luck. |
| 361 | 361 | ||
| 362 | @c Adjust ../Makefile.in if you change the following line: | 362 | @c Adjust ../Makefile.in if you change the following line: |
| 363 | This manual corresponds to Gnus v5.10.6. | 363 | This manual corresponds to Gnus v5.11. |
| 364 | 364 | ||
| 365 | @end ifinfo | 365 | @end ifinfo |
| 366 | 366 | ||
| @@ -17540,16 +17540,16 @@ group have to be alive (i.e., subscribed or unsubscribed). Killed or | |||
| 17540 | zombie groups can't be component groups for @code{nnvirtual} groups. | 17540 | zombie groups can't be component groups for @code{nnvirtual} groups. |
| 17541 | 17541 | ||
| 17542 | @vindex nnvirtual-always-rescan | 17542 | @vindex nnvirtual-always-rescan |
| 17543 | If the @code{nnvirtual-always-rescan} is non-@code{nil}, | 17543 | If the @code{nnvirtual-always-rescan} variable is non-@code{nil} (which |
| 17544 | @code{nnvirtual} will always scan groups for unread articles when | 17544 | is the default), @code{nnvirtual} will always scan groups for unread |
| 17545 | entering a virtual group. If this variable is @code{nil} (which is the | 17545 | articles when entering a virtual group. If this variable is @code{nil} |
| 17546 | default) and you read articles in a component group after the virtual | 17546 | and you read articles in a component group after the virtual group has |
| 17547 | group has been activated, the read articles from the component group | 17547 | been activated, the read articles from the component group will show up |
| 17548 | will show up when you enter the virtual group. You'll also see this | 17548 | when you enter the virtual group. You'll also see this effect if you |
| 17549 | effect if you have two virtual groups that have a component group in | 17549 | have two virtual groups that have a component group in common. If |
| 17550 | common. If that's the case, you should set this variable to @code{t}. | 17550 | that's the case, you should set this variable to @code{t}. Or you can |
| 17551 | Or you can just tap @code{M-g} on the virtual group every time before | 17551 | just tap @code{M-g} on the virtual group every time before you enter |
| 17552 | you enter it---it'll have much the same effect. | 17552 | it---it'll have much the same effect. |
| 17553 | 17553 | ||
| 17554 | @code{nnvirtual} can have both mail and news groups as component groups. | 17554 | @code{nnvirtual} can have both mail and news groups as component groups. |
| 17555 | When responding to articles in @code{nnvirtual} groups, @code{nnvirtual} | 17555 | When responding to articles in @code{nnvirtual} groups, @code{nnvirtual} |
diff --git a/man/help.texi b/man/help.texi index 84a3656ad57..35470551862 100644 --- a/man/help.texi +++ b/man/help.texi | |||
| @@ -512,11 +512,11 @@ the help text. @key{TAB} (@code{help-next-ref}) moves point down to the | |||
| 512 | next cross reference. Use @kbd{S-@key{TAB}} to move point up to the | 512 | next cross reference. Use @kbd{S-@key{TAB}} to move point up to the |
| 513 | previous cross reference (@code{help-previous-ref}). | 513 | previous cross reference (@code{help-previous-ref}). |
| 514 | 514 | ||
| 515 | To view all documentation about a symbol, whether quoted or not, move | 515 | You can view all documentation about any symbol name that appears in |
| 516 | point over the symbol and type @kbd{C-c C-c} | 516 | the text, by moving point to the symbol name and typing @kbd{C-c C-c} |
| 517 | (@code{help-follow-symbol}). This shows all available documentation | 517 | (@code{help-follow-symbol}). This shows all available documentation |
| 518 | about the symbol as a variable, function or face. Just like for | 518 | about the symbol as a variable, function and/or face. @kbd{C-c C-b} |
| 519 | quoted cross references, you can use @kbd{C-c C-b} to retrace your steps. | 519 | works in this case also, to retrace your steps. |
| 520 | 520 | ||
| 521 | @node Misc Help | 521 | @node Misc Help |
| 522 | @section Other Help Commands | 522 | @section Other Help Commands |
diff --git a/man/message.texi b/man/message.texi index a099748f1c4..c282d5c1bdd 100644 --- a/man/message.texi +++ b/man/message.texi | |||
| @@ -70,7 +70,7 @@ Message mode buffers. | |||
| 70 | @c Adjust ../Makefile.in if you change the following lines: | 70 | @c Adjust ../Makefile.in if you change the following lines: |
| 71 | Message is distributed with Gnus. The Gnus distribution | 71 | Message is distributed with Gnus. The Gnus distribution |
| 72 | @c | 72 | @c |
| 73 | corresponding to this manual is Gnus v5.10.6. | 73 | corresponding to this manual is Gnus v5.11. |
| 74 | 74 | ||
| 75 | 75 | ||
| 76 | @node Interface | 76 | @node Interface |
diff --git a/man/misc.texi b/man/misc.texi index d5b69eebf26..ba760a0a361 100644 --- a/man/misc.texi +++ b/man/misc.texi | |||
| @@ -9,9 +9,10 @@ | |||
| 9 | else: reading netnews, running shell commands and shell subprocesses, | 9 | else: reading netnews, running shell commands and shell subprocesses, |
| 10 | using a single shared Emacs for utilities that expect to run an editor | 10 | using a single shared Emacs for utilities that expect to run an editor |
| 11 | as a subprocess, printing hardcopy, sorting text, narrowing display to | 11 | as a subprocess, printing hardcopy, sorting text, narrowing display to |
| 12 | part of the buffer, editing double-column files and binary files, saving | 12 | part of the buffer, editing double-column files and binary files, |
| 13 | an Emacs session for later resumption, emulating other editors, and | 13 | saving an Emacs session for later resumption, following hyperlinks, |
| 14 | various diversions and amusements. | 14 | browsing images, emulating other editors, and various diversions and |
| 15 | amusements. | ||
| 15 | 16 | ||
| 16 | @end iftex | 17 | @end iftex |
| 17 | 18 | ||
| @@ -49,15 +50,15 @@ To start Gnus, type @kbd{M-x gnus @key{RET}}. | |||
| 49 | @node Buffers of Gnus | 50 | @node Buffers of Gnus |
| 50 | @subsection Gnus Buffers | 51 | @subsection Gnus Buffers |
| 51 | 52 | ||
| 52 | As opposed to most normal Emacs packages, Gnus uses a number of | 53 | Unlike most Emacs packages, Gnus uses several buffers to display |
| 53 | different buffers to display information and to receive commands. The | 54 | information and to receive commands. The three Gnus buffers users use |
| 54 | three buffers users spend most of their time in are the @dfn{group | 55 | most are the @dfn{group buffer}, the @dfn{summary buffer} and the |
| 55 | buffer}, the @dfn{summary buffer} and the @dfn{article buffer}. | 56 | @dfn{article buffer}. |
| 56 | 57 | ||
| 57 | The @dfn{group buffer} contains a list of groups. This is the first | 58 | The @dfn{group buffer} contains a list of newsgroups. This is the |
| 58 | buffer Gnus displays when it starts up. It normally displays only the | 59 | first buffer Gnus displays when it starts up. It normally displays |
| 59 | groups to which you subscribe and that contain unread articles. Use | 60 | only the groups to which you subscribe and that contain unread |
| 60 | this buffer to select a specific group. | 61 | articles. Use this buffer to select a specific group. |
| 61 | 62 | ||
| 62 | The @dfn{summary buffer} lists one line for each article in a single | 63 | The @dfn{summary buffer} lists one line for each article in a single |
| 63 | group. By default, the author, the subject and the line number are | 64 | group. By default, the author, the subject and the line number are |
| @@ -67,9 +68,10 @@ in the group buffer, and is killed when you exit the group. Use this | |||
| 67 | buffer to select an article. | 68 | buffer to select an article. |
| 68 | 69 | ||
| 69 | The @dfn{article buffer} displays the article. In normal Gnus usage, | 70 | The @dfn{article buffer} displays the article. In normal Gnus usage, |
| 70 | you don't select this buffer---all useful article-oriented commands work | 71 | you see this buffer but you don't select it---all useful |
| 71 | in the summary buffer. But you can select the article buffer, and | 72 | article-oriented commands work in the summary buffer. But you can |
| 72 | execute all Gnus commands from that buffer, if you want to. | 73 | select the article buffer, and execute all Gnus commands from that |
| 74 | buffer, if you want to. | ||
| 73 | 75 | ||
| 74 | @node Gnus Startup | 76 | @node Gnus Startup |
| 75 | @subsection When Gnus Starts Up | 77 | @subsection When Gnus Starts Up |
| @@ -111,9 +113,9 @@ displayed in the article buffer in a large window, below the summary | |||
| 111 | buffer in its small window. | 113 | buffer in its small window. |
| 112 | @end enumerate | 114 | @end enumerate |
| 113 | 115 | ||
| 114 | Each Gnus buffer has its own special commands; however, the meanings | 116 | Each Gnus buffer has its own special commands; the meanings of any |
| 115 | of any given key in the various Gnus buffers are usually analogous, even | 117 | given key in the various Gnus buffers are usually analogous, even if |
| 116 | if not identical. Here are commands for the group and summary buffers: | 118 | not identical. Here are commands for the group and summary buffers: |
| 117 | 119 | ||
| 118 | @table @kbd | 120 | @table @kbd |
| 119 | @kindex q @r{(Gnus Group mode)} | 121 | @kindex q @r{(Gnus Group mode)} |
| @@ -315,9 +317,6 @@ processes; it can also run a shell interactively with input and output | |||
| 315 | to an Emacs buffer named @samp{*shell*} or run a shell inside a terminal | 317 | to an Emacs buffer named @samp{*shell*} or run a shell inside a terminal |
| 316 | emulator window. | 318 | emulator window. |
| 317 | 319 | ||
| 318 | There is a shell implemented entirely in Emacs, documented in a separate | ||
| 319 | manual. @xref{Top,Eshell,Eshell, eshell, Eshell: The Emacs Shell}. | ||
| 320 | |||
| 321 | @table @kbd | 320 | @table @kbd |
| 322 | @item M-! @var{cmd} @key{RET} | 321 | @item M-! @var{cmd} @key{RET} |
| 323 | Run the shell command line @var{cmd} and display the output | 322 | Run the shell command line @var{cmd} and display the output |
| @@ -333,11 +332,12 @@ You can then give commands interactively. | |||
| 333 | Run a subshell with input and output through an Emacs buffer. | 332 | Run a subshell with input and output through an Emacs buffer. |
| 334 | You can then give commands interactively. | 333 | You can then give commands interactively. |
| 335 | Full terminal emulation is available. | 334 | Full terminal emulation is available. |
| 336 | @item M-x eshell | ||
| 337 | @findex eshell | ||
| 338 | Start the Emacs shell. | ||
| 339 | @end table | 335 | @end table |
| 340 | 336 | ||
| 337 | @kbd{M-x eshell} invokes a shell implemented entirely in Emacs. It | ||
| 338 | is documented in a separate manual. @xref{Top,Eshell,Eshell, eshell, | ||
| 339 | Eshell: The Emacs Shell}. | ||
| 340 | |||
| 341 | @menu | 341 | @menu |
| 342 | * Single Shell:: How to run one shell command and return. | 342 | * Single Shell:: How to run one shell command and return. |
| 343 | * Interactive Shell:: Permanent shell taking input via Emacs. | 343 | * Interactive Shell:: Permanent shell taking input via Emacs. |
| @@ -379,37 +379,38 @@ uncompressed equivalent of @file{foo.gz} into the current buffer. | |||
| 379 | For a synchronous shell command, @code{shell-command} returns the | 379 | For a synchronous shell command, @code{shell-command} returns the |
| 380 | command's exit status (0 means success), when it is called from a Lisp | 380 | command's exit status (0 means success), when it is called from a Lisp |
| 381 | program. You do not get any status information for an asynchronous | 381 | program. You do not get any status information for an asynchronous |
| 382 | command, since it hasn't finished yet. | 382 | command, since it hasn't finished yet when @code{shell-command} returns. |
| 383 | 383 | ||
| 384 | @kindex M-| | 384 | @kindex M-| |
| 385 | @findex shell-command-on-region | 385 | @findex shell-command-on-region |
| 386 | @kbd{M-|} (@code{shell-command-on-region}) is like @kbd{M-!} but | 386 | @kbd{M-|} (@code{shell-command-on-region}) is like @kbd{M-!} but |
| 387 | passes the contents of the region as the standard input to the shell | 387 | passes the contents of the region as the standard input to the shell |
| 388 | command, instead of no input. If a numeric argument is used, meaning | 388 | command, instead of no input. With a numeric argument, meaning insert |
| 389 | insert the output in the current buffer, then the old region is deleted | 389 | the output in the current buffer, it deletes the old region and the |
| 390 | first and the output replaces it as the contents of the region. It | 390 | output replaces it as the contents of the region. It returns the |
| 391 | returns the command's exit status when it is called from a Lisp program. | 391 | command's exit status, like @kbd{M-!}. |
| 392 | 392 | ||
| 393 | One use for @kbd{M-|} is to run @code{gpg} to see what keys are in | 393 | One use for @kbd{M-|} is to run @code{gpg} to see what keys are in |
| 394 | the buffer. For instance, if the buffer contains a GPG key, type | 394 | the buffer. For instance, if the buffer contains a GPG key, type |
| 395 | @kbd{C-x h M-| gpg @key{RET}} to feed the entire buffer contents | 395 | @kbd{C-x h M-| gpg @key{RET}} to feed the entire buffer contents to |
| 396 | to the @code{gpg} program. That program will ignore everything except | 396 | the @code{gpg} program. That program will ignore everything except |
| 397 | the encoded keys, and will output a list of the keys it contains. | 397 | the encoded keys, and will output a list of the keys the buffer |
| 398 | contains. | ||
| 398 | 399 | ||
| 399 | @vindex shell-file-name | 400 | @vindex shell-file-name |
| 400 | Both @kbd{M-!} and @kbd{M-|} use @code{shell-file-name} to specify the | 401 | Both @kbd{M-!} and @kbd{M-|} use @code{shell-file-name} to specify |
| 401 | shell to use. This variable is initialized based on your @env{SHELL} | 402 | the shell to use. This variable is initialized based on your |
| 402 | environment variable when Emacs is started. If the file name does not | 403 | @env{SHELL} environment variable when Emacs is started. If the file |
| 403 | specify a directory, the directories in the list @code{exec-path} are | 404 | name is relative, Emacs searches the directories in the list |
| 404 | searched; this list is initialized based on the environment variable | 405 | @code{exec-path}; this list is initialized based on the environment |
| 405 | @env{PATH} when Emacs is started. Your @file{.emacs} file can override | 406 | variable @env{PATH} when Emacs is started. Your @file{.emacs} file |
| 406 | either or both of these default initializations.@refill | 407 | can override either or both of these default initializations. |
| 407 | 408 | ||
| 408 | Both @kbd{M-!} and @kbd{M-|} wait for the shell command to complete, | 409 | Both @kbd{M-!} and @kbd{M-|} wait for the shell command to complete, |
| 409 | unless you end the command with @samp{&} to make it asynchronous. To | 410 | unless you end the command with @samp{&} to make it asynchronous. To |
| 410 | stop waiting, type @kbd{C-g} to quit; that terminates the shell | 411 | stop waiting, type @kbd{C-g} to quit; that terminates the shell |
| 411 | command with the signal @code{SIGINT}---the same signal that @kbd{C-c} | 412 | command with the signal @code{SIGINT}---the same signal that @kbd{C-c} |
| 412 | normally generates in the shell. Emacs waits until the command | 413 | normally generates in the shell. Emacs then waits until the command |
| 413 | actually terminates. If the shell command doesn't stop (because it | 414 | actually terminates. If the shell command doesn't stop (because it |
| 414 | ignores the @code{SIGINT} signal), type @kbd{C-g} again; this sends | 415 | ignores the @code{SIGINT} signal), type @kbd{C-g} again; this sends |
| 415 | the command a @code{SIGKILL} signal which is impossible to ignore. | 416 | the command a @code{SIGKILL} signal which is impossible to ignore. |
| @@ -422,10 +423,11 @@ buffer regardless of whether it is visible in a window. | |||
| 422 | @kbd{C-x @key{RET} c} immediately beforehand. @xref{Communication Coding}. | 423 | @kbd{C-x @key{RET} c} immediately beforehand. @xref{Communication Coding}. |
| 423 | 424 | ||
| 424 | @vindex shell-command-default-error-buffer | 425 | @vindex shell-command-default-error-buffer |
| 425 | Error output from the command is normally intermixed with the regular | 426 | Error output from these commands is normally intermixed with the |
| 426 | output. If you set the variable | 427 | regular output. But if the variable |
| 427 | @code{shell-command-default-error-buffer} to a string, which is a buffer | 428 | @code{shell-command-default-error-buffer} has a string as value, and |
| 428 | name, error output is inserted before point in the buffer of that name. | 429 | it's the name of a buffer, @kbd{M-!} and @kbd{M-|} insert error output |
| 430 | before point in that buffer. | ||
| 429 | 431 | ||
| 430 | @node Interactive Shell | 432 | @node Interactive Shell |
| 431 | @subsection Interactive Inferior Shell | 433 | @subsection Interactive Inferior Shell |
| @@ -456,8 +458,8 @@ previous input lines in the buffer. @xref{Faces}. | |||
| 456 | prefix argument (e.g. @kbd{C-u M-x shell}), which will read a buffer | 458 | prefix argument (e.g. @kbd{C-u M-x shell}), which will read a buffer |
| 457 | name and create (or reuse) a subshell in that buffer. You can also | 459 | name and create (or reuse) a subshell in that buffer. You can also |
| 458 | rename the @samp{*shell*} buffer using @kbd{M-x rename-uniquely}, then | 460 | rename the @samp{*shell*} buffer using @kbd{M-x rename-uniquely}, then |
| 459 | create a new @samp{*shell*} buffer using plain @kbd{M-x shell}. All the | 461 | create a new @samp{*shell*} buffer using plain @kbd{M-x shell}. |
| 460 | subshells in different buffers run independently and in parallel. | 462 | Subshells in different buffers run independently and in parallel. |
| 461 | 463 | ||
| 462 | @vindex explicit-shell-file-name | 464 | @vindex explicit-shell-file-name |
| 463 | @cindex environment variables for subshells | 465 | @cindex environment variables for subshells |
| @@ -479,9 +481,10 @@ from. For example, if you use bash, the file sent to it is | |||
| 479 | @file{~/.emacs_bash}. | 481 | @file{~/.emacs_bash}. |
| 480 | 482 | ||
| 481 | To specify a coding system for the shell, you can use the command | 483 | To specify a coding system for the shell, you can use the command |
| 482 | @kbd{C-x @key{RET} c} immediately before @kbd{M-x shell}. You can also | 484 | @kbd{C-x @key{RET} c} immediately before @kbd{M-x shell}. You can |
| 483 | specify a coding system after starting the shell by using @kbd{C-x | 485 | also change the coding system for a running subshell by typing |
| 484 | @key{RET} p} in the shell buffer. @xref{Communication Coding}. | 486 | @kbd{C-x @key{RET} p} in the shell buffer. @xref{Communication |
| 487 | Coding}. | ||
| 485 | 488 | ||
| 486 | @cindex @env{EMACS} environment variable | 489 | @cindex @env{EMACS} environment variable |
| 487 | Unless the environment variable @env{EMACS} is already defined, | 490 | Unless the environment variable @env{EMACS} is already defined, |
| @@ -505,10 +508,10 @@ of the special key bindings of Shell mode: | |||
| 505 | @kindex RET @r{(Shell mode)} | 508 | @kindex RET @r{(Shell mode)} |
| 506 | @findex comint-send-input | 509 | @findex comint-send-input |
| 507 | At end of buffer send line as input; otherwise, copy current line to | 510 | At end of buffer send line as input; otherwise, copy current line to |
| 508 | end of buffer and send it (@code{comint-send-input}). When a line is | 511 | end of buffer and send it (@code{comint-send-input}). Copying a line |
| 509 | copied, any prompt at the beginning of the line (text output by | 512 | in this way omits any prompt at the beginning of the line (text output |
| 510 | programs preceding your input) is omitted. @xref{Shell Prompts}, for | 513 | by programs preceding your input). @xref{Shell Prompts}, for how |
| 511 | how Shell mode recognizes prompts. | 514 | Shell mode recognizes prompts. |
| 512 | 515 | ||
| 513 | @item @key{TAB} | 516 | @item @key{TAB} |
| 514 | @kindex TAB @r{(Shell mode)} | 517 | @kindex TAB @r{(Shell mode)} |
| @@ -2185,7 +2188,7 @@ not use it. | |||
| 2185 | key bindings. | 2188 | key bindings. |
| 2186 | @end table | 2189 | @end table |
| 2187 | 2190 | ||
| 2188 | @node Hyperlinking, Dissociated Press, Emulation, Top | 2191 | @node Hyperlinking, Thumbnails, Emulation, Top |
| 2189 | @section Hyperlinking and Navigation Features | 2192 | @section Hyperlinking and Navigation Features |
| 2190 | 2193 | ||
| 2191 | @cindex hyperlinking | 2194 | @cindex hyperlinking |
| @@ -2351,7 +2354,77 @@ Display a menu of files and URLs mentioned in current buffer, then | |||
| 2351 | find the one you select (@code{ffap-menu}). | 2354 | find the one you select (@code{ffap-menu}). |
| 2352 | @end table | 2355 | @end table |
| 2353 | 2356 | ||
| 2354 | @node Dissociated Press, Amusements, Hyperlinking, Top | 2357 | @node Thumbnails, Dissociated Press, Hyperlinking, Top |
| 2358 | @section Viewing Images as Thumbnails | ||
| 2359 | @cindex tumme mode | ||
| 2360 | @cindex thumbnails | ||
| 2361 | |||
| 2362 | Tumme is a facility for browsing image files. It provides viewing | ||
| 2363 | of the original file, either as a thumbnail or in full size, inside | ||
| 2364 | Emacs or in an external viewer. | ||
| 2365 | |||
| 2366 | To enter Tumme, type @kbd{M-x tumme}. It prompts for a directory; | ||
| 2367 | specify one that has images files. This creates thumbnails for all | ||
| 2368 | the images in that directory, and displays them all in the ``thumbnail | ||
| 2369 | buffer''. This takes a long time if the directory contains many image | ||
| 2370 | files, and it won't operate if the number of image files exceeds | ||
| 2371 | @code{tumme-show-all-from-dir-max-files}. | ||
| 2372 | |||
| 2373 | @kindex C-t d @r{(Tumme)} | ||
| 2374 | @findex tumme-display-thumbs | ||
| 2375 | You can also enter Tumme through Dired. Mark the image files you | ||
| 2376 | want to look at, using @kbd{m} as usual, then type @kbd{C-t d} | ||
| 2377 | (@code{tumme-display-thumbs}). This too creates and switches to | ||
| 2378 | a buffer containing thumbnails, corresponding to the marked files. | ||
| 2379 | |||
| 2380 | With point in the thumbnail buffer, type @kbd{RET} | ||
| 2381 | (@code{tumme-display-thumbnail-original-image}) to display a sized | ||
| 2382 | version of it in another window. This sizes the image to fit the | ||
| 2383 | window. Use the arrow keys to move around in the buffer. For easy | ||
| 2384 | browing, type @kbd{SPC} (@code{tumme-display-next-thumbnail-original}) | ||
| 2385 | to advance and display the next image. Typing @kbd{DEL} | ||
| 2386 | (@code{tumme-display-previous-thumbnail-original}) backs up to the | ||
| 2387 | previous thumbnail and displays that instead. | ||
| 2388 | |||
| 2389 | @vindex tumme-external-viewer | ||
| 2390 | To view and the image in its original size, either provide a prefix | ||
| 2391 | argument (@kbd{C-u}) before pressing @kbd{RET}, or type @kbd{C-@key{RET}} | ||
| 2392 | (@code{tumme-thumbnail-display-external}) to display the image in an | ||
| 2393 | external viewer. You must first configure | ||
| 2394 | @code{tumme-external-viewer}. | ||
| 2395 | |||
| 2396 | You can delete images through Tumme also. Type @kbd{d} | ||
| 2397 | (@code{tumme-flag-thumb-original-file}) to flag the image file for | ||
| 2398 | deletion in the Dired buffer. You can also delete the thumbnail image | ||
| 2399 | from the thumbnail buffer with @kbd{C-d} (@code{tumme-delete-char}). | ||
| 2400 | |||
| 2401 | More advanced features include @dfn{image tags}, which are metadata | ||
| 2402 | used to categorize image files. The tags are stored in a plain text | ||
| 2403 | file. | ||
| 2404 | @c ??? What is the file name? | ||
| 2405 | |||
| 2406 | To tag image files, mark them in the dired buffer and type @kbd{C-t | ||
| 2407 | t} (@code{tumme-tag-files}). You will be prompted for a tag. To mark | ||
| 2408 | files having a certain tag, type @kbd{C-t f} | ||
| 2409 | (@code{tumme-mark-tagged-files}). After marking image files with a | ||
| 2410 | certain tag, you can use @kbd{C-t d} to view them. | ||
| 2411 | |||
| 2412 | @c ??? Remove what? The tag? | ||
| 2413 | You can also tag a file from the thumbnail buffer by typing @kbd{t | ||
| 2414 | t} and remove it by typing @kbd{t r}. There is also a special ``tag'' | ||
| 2415 | called ``comment'' for each file (it is not a tag in the exact same | ||
| 2416 | sense as the other tags, it is handled slightly different). That is | ||
| 2417 | used to enter a comment or description about the image. You comment a | ||
| 2418 | file from the thumbnail buffer by typing @kbd{c}. You will be | ||
| 2419 | prompted for a comment. Type @kbd{C-t c} to add a comment from Dired | ||
| 2420 | (@code{tumme-dired-comment-files}). | ||
| 2421 | |||
| 2422 | Tumme also provides simple image manipulation. In the thumbnail | ||
| 2423 | buffer, type @kbd{L} to rotate the original image 90 degrees anti | ||
| 2424 | clockwise, and @kbd{R} to rotate it 90 degrees clockwise. This | ||
| 2425 | rotation is lossless, and uses an external utility called JpegTRAN. | ||
| 2426 | |||
| 2427 | @node Dissociated Press, Amusements, Thumbnails, Top | ||
| 2355 | @section Dissociated Press | 2428 | @section Dissociated Press |
| 2356 | 2429 | ||
| 2357 | @findex dissociated-press | 2430 | @findex dissociated-press |
| @@ -2376,12 +2449,13 @@ That is, if it has just output `president' and then decides to jump | |||
| 2376 | to a different point in the file, it might spot the `ent' in `pentagon' | 2449 | to a different point in the file, it might spot the `ent' in `pentagon' |
| 2377 | and continue from there, producing `presidentagon'.@footnote{This | 2450 | and continue from there, producing `presidentagon'.@footnote{This |
| 2378 | dissociword actually appeared during the Vietnam War, when it was very | 2451 | dissociword actually appeared during the Vietnam War, when it was very |
| 2379 | appropriate.} Long sample texts produce the best results. | 2452 | appropriate. Bush has made it appropriate again.} Long sample texts |
| 2453 | produce the best results. | ||
| 2380 | 2454 | ||
| 2381 | @cindex againformation | 2455 | @cindex againformation |
| 2382 | A positive argument to @kbd{M-x dissociated-press} tells it to operate | 2456 | A positive argument to @kbd{M-x dissociated-press} tells it to operate |
| 2383 | character by character, and specifies the number of overlap characters. A | 2457 | character by character, and specifies the number of overlap characters. A |
| 2384 | negative argument tells it to operate word by word and specifies the number | 2458 | negative argument tells it to operate word by word, and specifies the number |
| 2385 | of overlap words. In this mode, whole words are treated as the elements to | 2459 | of overlap words. In this mode, whole words are treated as the elements to |
| 2386 | be permuted, rather than characters. No argument is equivalent to an | 2460 | be permuted, rather than characters. No argument is equivalent to an |
| 2387 | argument of two. For your againformation, the output goes only into the | 2461 | argument of two. For your againformation, the output goes only into the |
| @@ -2390,13 +2464,13 @@ buffer @samp{*Dissociation*}. The buffer you start with is not changed. | |||
| 2390 | @cindex Markov chain | 2464 | @cindex Markov chain |
| 2391 | @cindex ignoriginal | 2465 | @cindex ignoriginal |
| 2392 | @cindex techniquitous | 2466 | @cindex techniquitous |
| 2393 | Dissociated Press produces nearly the same results as a Markov chain | 2467 | Dissociated Press produces results fairly like those of a Markov |
| 2394 | based on a frequency table constructed from the sample text. It is, | 2468 | chain based on a frequency table constructed from the sample text. It |
| 2395 | however, an independent, ignoriginal invention. Dissociated Press | 2469 | is, however, an independent, ignoriginal invention. Dissociated Press |
| 2396 | techniquitously copies several consecutive characters from the sample | 2470 | techniquitously copies several consecutive characters from the sample |
| 2397 | between random choices, whereas a Markov chain would choose randomly for | 2471 | between random choices, whereas a Markov chain would choose randomly |
| 2398 | each word or character. This makes for more plausible sounding results, | 2472 | for each word or character. This makes for more plausible sounding |
| 2399 | and runs faster. | 2473 | results, and runs faster. |
| 2400 | 2474 | ||
| 2401 | @cindex outragedy | 2475 | @cindex outragedy |
| 2402 | @cindex buggestion | 2476 | @cindex buggestion |
| @@ -2405,7 +2479,7 @@ and runs faster. | |||
| 2405 | @cindex developediment | 2479 | @cindex developediment |
| 2406 | @cindex userenced | 2480 | @cindex userenced |
| 2407 | It is a mustatement that too much use of Dissociated Press can be a | 2481 | It is a mustatement that too much use of Dissociated Press can be a |
| 2408 | developediment to your real work. Sometimes to the point of outragedy. | 2482 | developediment to your real work, sometimes to the point of outragedy. |
| 2409 | And keep dissociwords out of your documentation, if you want it to be well | 2483 | And keep dissociwords out of your documentation, if you want it to be well |
| 2410 | userenced and properbose. Have fun. Your buggestions are welcome. | 2484 | userenced and properbose. Have fun. Your buggestions are welcome. |
| 2411 | 2485 | ||
| @@ -2429,7 +2503,7 @@ which plays the game Go Moku with you. | |||
| 2429 | @findex mpuz | 2503 | @findex mpuz |
| 2430 | @findex 5x5 | 2504 | @findex 5x5 |
| 2431 | @cindex puzzles | 2505 | @cindex puzzles |
| 2432 | @kbd{M-x blackbox}, @kbd{M-x mpuz} and @kbd{M-x 5x5} are kinds of puzzles. | 2506 | @kbd{M-x blackbox}, @kbd{M-x mpuz} and @kbd{M-x 5x5} are puzzles. |
| 2433 | @code{blackbox} challenges you to determine the location of objects | 2507 | @code{blackbox} challenges you to determine the location of objects |
| 2434 | inside a box by tomography. @code{mpuz} displays a multiplication | 2508 | inside a box by tomography. @code{mpuz} displays a multiplication |
| 2435 | puzzle with letters standing for digits in a code that you must | 2509 | puzzle with letters standing for digits in a code that you must |
diff --git a/src/ChangeLog b/src/ChangeLog index 2c048043058..3c309679cdb 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2006-04-01 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * configure: Regenerated. | ||
| 4 | |||
| 1 | 2006-03-31 Kenichi Handa <handa@m17n.org> | 5 | 2006-03-31 Kenichi Handa <handa@m17n.org> |
| 2 | 6 | ||
| 3 | * xfns.c (xg_set_icon): Delete superfluous UNGCPRO. | 7 | * xfns.c (xg_set_icon): Delete superfluous UNGCPRO. |
diff --git a/src/config.in b/src/config.in index 11b842c3d00..2bc4ba56e79 100644 --- a/src/config.in +++ b/src/config.in | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | /* src/config.in. Generated from configure.in by autoheader. */ | 1 | /* src/config.in. Generated from configure.in by autoheader. */ |
| 2 | 2 | ||
| 3 | /* GNU Emacs site configuration template file. | 3 | /* GNU Emacs site configuration template file. |
| 4 | Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004, 2005, | 4 | Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004, 2005, 2006 |
| 5 | 2006 Free Software Foundation, Inc. | 5 | Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | This file is part of GNU Emacs. | 7 | This file is part of GNU Emacs. |
| 8 | 8 | ||