changeset 4481:c40febdb9967

(dired-compress-file): For .z file, run gunzip. When running gzip, see if it made .gz or .z. (dired-compress): Delete old entry for new-file, if any.
author Richard M. Stallman <rms@gnu.org>
date Sun, 08 Aug 1993 05:00:25 +0000
parents 208145c77950
children 09d0f4b26641
files lisp/dired-aux.el
diffstat 1 files changed, 19 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/dired-aux.el	Sun Aug 08 00:44:26 1993 +0000
+++ b/lisp/dired-aux.el	Sun Aug 08 05:00:25 1993 +0000
@@ -480,7 +480,14 @@
 	 (from-file (dired-get-filename))
 	 (new-file (dired-compress-file from-file)))
     (if new-file
-	(progn (dired-update-file-line new-file) nil)
+	(let ((start (point)))
+	  ;; Remove any preexisting entry for the name NEW-FILE.
+	  (condition-case nil
+	      (dired-remove-entry new-file)
+	    (error nil))
+	  (goto-char start)
+	  ;; Now replace the current line with an entry for NEW-FILE.
+	  (dired-update-file-line new-file) nil)
       (dired-log (concat "Failed to compress" from-file))
       from-file)))
 
@@ -503,12 +510,22 @@
 	   (if (not (dired-check-process (concat "Uncompressing " file)
 					 "gunzip" file))
 	       (substring file 0 -3)))
+	  ;; For .z, try gunzip.  It might be an old gzip file,
+	  ;; or it might be from compact? pack? (which?) but gunzip handles
+	  ;; both.
+	  ((let (case-fold-search)
+	     (string-match "\\.z$" file))
+	   (if (not (dired-check-process (concat "Uncompressing " file)
+					 "gunzip" file))
+	       (substring file 0 -3)))
 	  (t
 	   ;;; Try gzip; if we don't have that, use compress.
 	   (condition-case nil
 	       (if (not (dired-check-process (concat "Compressing " file)
 					     "gzip" "-f" file))
-		   (concat file ".gz"))
+		   (cond ((file-exists-p (concat file ".gz"))
+			  (concat file ".gz"))
+			 (t (concat file ".z"))))
 	     (file-error
 	      (if (not (dired-check-process (concat "Compressing " file)
 					    "compress" "-f" file))