changeset 5288:c32c5d1aa89d

(shadow-noquery): Use it. (shadow-copy-file): Use abbreviate-file-name to avoid incorrect warnings. Lucid support commented out (didn't work and caused compiler warnings).
author Richard M. Stallman <rms@gnu.org>
date Thu, 23 Dec 1993 03:45:09 +0000
parents 6811f9d90b62
children 4e000b7b285a
files lisp/shadowfile.el
diffstat 1 files changed, 27 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/shadowfile.el	Thu Dec 23 03:43:13 1993 +0000
+++ b/lisp/shadowfile.el	Thu Dec 23 03:45:09 1993 +0000
@@ -22,7 +22,7 @@
 ;;; LCD Archive Entry:
 ;;; shadowfile|Boris Goldowsky|boris@cs.rochester.edu|
 ;;; Helps you keep identical copies of files in multiple places.|
-;;; $Date: 93/11/17 08:46:07 $ |$Revision: 2.8 $|~/misc/shadowfile.el.Z|
+;;; $Date: 1993/11/23 06:17:27 $ |$Revision: 1.1 $|~/misc/shadowfile.el.Z|
 
 ;;; Commentary:
 ;;;
@@ -85,7 +85,9 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defvar shadow-noquery nil
-  "*If nonnil, always copy shadow files without asking.")
+  "*If t, always copy shadow files without asking.
+If nil \(the default), always ask.  If not nil and not t, ask only if there
+is no buffer currently visiting the file.")
 
 (defvar shadow-inhibit-message nil
   "*If nonnil, do not display a message when a file needs copying.")
@@ -510,7 +512,7 @@
     (save-excursion
       (map-y-or-n-p (function
 		     (lambda (pair)
-		       (or arg 
+		       (or arg shadow-noquery
 			   (format "Copy shadow file %s? " (cdr pair)))))
 		    (function shadow-copy-file)
 		    shadow-files-to-copy
@@ -552,16 +554,18 @@
 (defun shadow-copy-file (s)
   "Copy one shadow file."
   (let* ((buffer 
-	  (cond ((get-file-buffer (car s)))
+	  (cond ((get-file-buffer 
+		  (abbreviate-file-name (shadow-expand-file-name (car s)))))
 		((not (file-readable-p (car s)))
 		 (if (y-or-n-p
 		      (format "Cannot find file %s--cancel copy request?"
 			      (car s)))
 		     (shadow-remove-from-todo s))
 		 nil)
-		((y-or-n-p 
-		  (format "No buffer for %s -- update shadow anyway?"
-			  (car s)))
+		((or (eq t shadow-noquery)
+		     (y-or-n-p 
+		      (format "No buffer for %s -- update shadow anyway?"
+			      (car s))))
 		 (find-file-noselect (car s)))))
 	 (to (shadow-expand-cluster-in-file-name (cdr s))))
     (shadow-when buffer
@@ -642,8 +646,9 @@
 thus restoring shadowfile's state from your last emacs session.
 Returns t unless files were locked; then returns nil."
   (interactive)
-  (if (or (stringp (file-locked-p shadow-info-file))
-	  (stringp (file-locked-p shadow-todo-file)))
+  (if (and (fboundp 'file-locked-p)
+	   (or (stringp (file-locked-p shadow-info-file))
+	       (stringp (file-locked-p shadow-todo-file))))
       (progn
 	(message "Shadowfile is running in another emacs; can't have two.")
 	(beep)
@@ -772,20 +777,22 @@
        (kill-emacs)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Lucid Emacs compatibility (may not be complete)
+;;; Lucid Emacs compatibility 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(shadow-when (not (fboundp 'file-truename))
-  (require 'symlink-fix)
-  (defun shadow-expand-file-name (file &optional default)
-    (symlink-expand-file-name file default)))
+;; This is on hold until someone tells me about a working version of
+;; map-ynp for Lucid Emacs.
 
-(shadow-when (not (fboundp 'ange-ftp-ftp-name))
-  (require 'ange-ftp)
-  (defun shadow-parse-fullpath (fullpath)
-    (if (listp fullpath)
-	fullpath
-      (ange-ftp-ftp-path fullpath))))
+;(shadow-when (string-match "Lucid" emacs-version)
+;  (require 'symlink-fix)
+;  (require 'ange-ftp)
+;  (require 'map-ynp)
+;  (if (not (fboundp 'file-truename))
+;      (fset 'shadow-expand-file-name 
+;	    (symbol-function 'symlink-expand-file-name)))
+;  (if (not (fboundp 'ange-ftp-ftp-name))
+;      (fset 'ange-ftp-ftp-name
+;	    (symbol-function 'ange-ftp-ftp-path))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Hook us up