]> code.delx.au - gnu-emacs/blobdiff - lisp/dired.el
Shorten and clarify usual mode line mouse help string.
[gnu-emacs] / lisp / dired.el
index 1679c6ca3c6d039b258b4fdc34f802b1d2fbee3f..491ef261c116bea18aff76a64d559b09af7171bd 100644 (file)
@@ -1,7 +1,7 @@
 ;;; dired.el --- directory-browsing commands
 
 ;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1997, 2000,
-;;   2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+;;   2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
 ;; Maintainer: FSF
@@ -206,7 +206,8 @@ with the buffer narrowed to the listing."
     ("^file:"    . dired-dnd-handle-local-file))
   "The functions to call when a drop in `dired-mode' is made.
 See `dnd-protocol-alist' for more information.  When nil, behave
-as in other buffers."
+as in other buffers.  Changing this option is effective only for
+new dired buffers."
   :type '(choice (repeat (cons (regexp) (function)))
                 (const :tag "Behave as in other buffers" nil))
   :version "22.1"
@@ -1211,9 +1212,9 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
     (define-key map "f" 'dired-find-file)
     (define-key map "\C-m" 'dired-advertised-find-file)
     (define-key map "g" 'revert-buffer)
-    (define-key map "\M-g" 'dired-goto-file)
     (define-key map "h" 'describe-mode)
     (define-key map "i" 'dired-maybe-insert-subdir)
+    (define-key map "j" 'dired-goto-file)
     (define-key map "k" 'dired-do-kill-lines)
     (define-key map "l" 'dired-do-redisplay)
     (define-key map "m" 'dired-mark)
@@ -1247,6 +1248,19 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
     (define-key map "\177" 'dired-unmark-backward)
     (define-key map [remap undo] 'dired-undo)
     (define-key map [remap advertised-undo] 'dired-undo)
+    ;; thumbnail manipulation (tumme)
+    (define-key map "\C-td" 'tumme-display-thumbs)
+    (define-key map "\C-tt" 'tumme-tag-files)
+    (define-key map "\C-tr" 'tumme-delete-tag)
+    (define-key map "\C-tj" 'tumme-jump-thumbnail-buffer)
+    (define-key map "\C-ti" 'tumme-dired-display-image)
+    (define-key map "\C-tx" 'tumme-dired-display-external)
+    (define-key map "\C-ta" 'tumme-display-thumbs-append)
+    (define-key map "\C-t." 'tumme-display-thumb)
+    (define-key map "\C-tc" 'tumme-dired-comment-files)
+    (define-key map "\C-tf" 'tumme-mark-tagged-files)
+    (define-key map "\C-t\C-t" 'tumme-dired-insert-marked-thumbs)
+    (define-key map "\C-te" 'tumme-dired-edit-comment-and-tags)
 
     ;; Make menu bar items.
 
@@ -1292,6 +1306,18 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
     (define-key map [menu-bar immediate]
       (cons "Immediate" (make-sparse-keymap "Immediate")))
 
+    (define-key map
+      [menu-bar immediate tumme-dired-display-external]
+      '(menu-item "Display Image Externally" tumme-dired-display-external
+                  :help "Display image in external viewer"))
+    (define-key map
+      [menu-bar immediate tumme-dired-display-image]
+      '(menu-item "Display Image" tumme-dired-display-image
+                  :help "Display sized image in a separate window"))
+
+    (define-key map [menu-bar immediate dashes-4]
+      '("--"))
+
     (define-key map [menu-bar immediate revert-buffer]
       '(menu-item "Refresh" revert-buffer
                  :help "Update contents of shown directories"))
@@ -1300,7 +1326,7 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
       '("--"))
 
     (define-key map [menu-bar immediate compare-directories]
-      '(menu-item "Compare directories..." dired-compare-directories
+      '(menu-item "Compare Directories..." dired-compare-directories
                  :help "Mark files with different attributes in two dired buffers"))
     (define-key map [menu-bar immediate backup-diff]
       '(menu-item "Compare with Backup" dired-backup-diff
@@ -1328,6 +1354,14 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
     (define-key map [menu-bar regexp]
       (cons "Regexp" (make-sparse-keymap "Regexp")))
 
+    (define-key map
+      [menu-bar regexp tumme-mark-tagged-files]
+      '(menu-item "Mark From Image Tag..." tumme-mark-tagged-files
+                  :help "Mark files whose image tags matches regexp"))    
+    
+    (define-key map [menu-bar regexp dashes-1]
+      '("--"))    
+
     (define-key map [menu-bar regexp downcase]
       '(menu-item "Downcase" dired-downcase
                  ;; When running on plain MS-DOS, there's only one
@@ -1415,6 +1449,29 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
     (define-key map [menu-bar operate]
       (cons "Operate" (make-sparse-keymap "Operate")))
 
+    (define-key map [menu-bar operate dashes-2]
+      '("--"))
+
+    (define-key map
+      [menu-bar operate tumme-delete-tag]
+      '(menu-item "Delete Image Tag..." tumme-delete-tag
+                  :help "Delete image tag from current or marked files"))
+    (define-key map
+      [menu-bar operate tumme-tag-files]
+      '(menu-item "Add Image Tags..." tumme-tag-files
+                  :help "Add image tags to current or marked files"))
+    (define-key map
+      [menu-bar operate tumme-dired-comment-files]
+      '(menu-item "Add Image Comment..." tumme-dired-comment-files
+                  :help "Add image comment to current or marked files"))
+    (define-key map
+      [menu-bar operate tumme-display-thumbs]
+      '(menu-item "Display Thumbnails" tumme-display-thumbs
+                  :help "Display thumbnails for current or marked image files"))
+    
+    (define-key map [menu-bar operate dashes-3]
+      '("--"))    
+
     (define-key map [menu-bar operate query-replace]
       '(menu-item "Query Replace in Files..." dired-do-query-replace-regexp
                  :help "Replace regexp in marked files"))
@@ -2147,40 +2204,40 @@ instead of `dired-actual-switches'."
                 (concat "\\`" (match-string 1 default-directory)))))
       (goto-char (point-min))
       (setq dired-subdir-alist nil)
-      (while (and (re-search-forward dired-subdir-regexp nil t)
-                 ;; Avoid taking a file name ending in a colon
-                 ;; as a subdir name.
-                 (not (save-excursion
-                        (goto-char (match-beginning 0))
-                        (beginning-of-line)
-                        (forward-char 2)
-                        (save-match-data (looking-at dired-re-perms)))))
-       (save-excursion
-         (goto-char (match-beginning 1))
-         (setq new-dir-name
-               (buffer-substring-no-properties (point) (match-end 1))
-               new-dir-name
-               (save-match-data
-                 (if (and R-ftp-base-dir-regex
-                          (not (string= new-dir-name default-directory))
-                          (string-match R-ftp-base-dir-regex new-dir-name))
-                     (concat default-directory
-                             (substring new-dir-name (match-end 0)))
-                   (expand-file-name new-dir-name))))
-         (delete-region (point) (match-end 1))
-         (insert new-dir-name))
-       (setq count (1+ count))
-       (dired-alist-add-1 new-dir-name
-                          ;; Place a sub directory boundary between lines.
-                          (save-excursion
-                            (goto-char (match-beginning 0))
-                            (beginning-of-line)
-                            (point-marker))))
+      (while (re-search-forward dired-subdir-regexp nil t)
+       ;; Avoid taking a file name ending in a colon
+       ;; as a subdir name.
+       (unless (save-excursion
+                 (goto-char (match-beginning 0))
+                 (beginning-of-line)
+                 (forward-char 2)
+                 (save-match-data (looking-at dired-re-perms)))
+         (save-excursion
+           (goto-char (match-beginning 1))
+           (setq new-dir-name
+                 (buffer-substring-no-properties (point) (match-end 1))
+                 new-dir-name
+                 (save-match-data
+                   (if (and R-ftp-base-dir-regex
+                            (not (string= new-dir-name default-directory))
+                            (string-match R-ftp-base-dir-regex new-dir-name))
+                       (concat default-directory
+                               (substring new-dir-name (match-end 0)))
+                     (expand-file-name new-dir-name))))
+           (delete-region (point) (match-end 1))
+           (insert new-dir-name))
+         (setq count (1+ count))
+         (dired-alist-add-1 new-dir-name
+                            ;; Place a sub directory boundary between lines.
+                            (save-excursion
+                              (goto-char (match-beginning 0))
+                              (beginning-of-line)
+                              (point-marker)))))
       (if (and (> count 1) (interactive-p))
-         (message "Buffer includes %d directories" count))
-      ;; We don't need to sort it because it is in buffer order per
-      ;; constructionem.  Return new alist:
-      dired-subdir-alist)))
+         (message "Buffer includes %d directories" count)))
+    ;; We don't need to sort it because it is in buffer order per
+    ;; constructionem.  Return new alist:
+    dired-subdir-alist))
 
 (defun dired-alist-add-1 (dir new-marker)
   ;; Add new DIR at NEW-MARKER.  Don't sort.
@@ -2205,7 +2262,7 @@ instead of `dired-actual-switches'."
       (forward-line 1))))
 
 (defun dired-goto-file (file)
-  "Go to file line of FILE in this dired buffer."
+  "Go to line describing file FILE in this dired buffer."
   ;; Return value of point on success, else nil.
   ;; FILE must be an absolute file name.
   ;; Loses if FILE contains control chars like "\007" for which ls
@@ -2523,12 +2580,12 @@ Command symbols are `byte-compile', `chgrp', `chmod', `chown', `compress',
 `copy', `delete', `hardlink', `load', `move', `print', `shell', `symlink',
 `touch' and `uncompress'."
   :group 'dired
-  :type (set (const byte-compile) (const chgrp)
-            (const chmod) (const chown) (const compress)
-            (const copy) (const delete) (const hardlink)
-            (const load) (const move) (const print)
-            (const shell) (const symlink) (const touch)
-            (const uncompress)))
+  :type '(set (const byte-compile) (const chgrp)
+             (const chmod) (const chown) (const compress)
+             (const copy) (const delete) (const hardlink)
+             (const load) (const move) (const print)
+             (const shell) (const symlink) (const touch)
+             (const uncompress)))
 
 (defun dired-mark-pop-up (bufname op-symbol files function &rest args)
   "Return FUNCTION's result on ARGS after showing which files are marked.
@@ -2986,6 +3043,10 @@ Thus, use \\[backward-page] to find the beginning of a group of errors."
               (insert "\f\n")))))))
 
 (defun dired-log-summary (string failures)
+  "State a summary of a command's failures, in echo area and log buffer.
+STRING is an overall summary of the failures.
+FAILURES is a list of file names that we failed to operate on,
+or nil if file names are not applicable."
   (if (= (length failures) 1)
       (message "%s"
               (with-current-buffer dired-log-buffer
@@ -3103,7 +3164,7 @@ With optional second arg NO-REVERT, don't refresh the listing afterwards."
 
 (defvar dired-subdir-alist-pre-R nil
   "Value of `dired-subdir-alist' before -R switch added.")
-(make-variable-buffer-local dired-subdir-alist-pre-R))
+(make-variable-buffer-local 'dired-subdir-alist-pre-R)
 
 (defun dired-sort-R-check (switches)
   "Additional processing of -R in ls option string SWITCHES.