]> code.delx.au - gnu-emacs/blobdiff - lisp/vc-hooks.el
(auto-insert-alist): Add `provide' to elisp skeleton.
[gnu-emacs] / lisp / vc-hooks.el
index b93c3198c259ac917dbe891ded1e6a3c9e31a0e5..9f7bab9c1d22e7ab71ab1268aa8f20093dc61eab 100644 (file)
@@ -5,7 +5,7 @@
 ;; Author:     FSF (see vc.el for full credits)
 ;; Maintainer: Andre Spiegel <spiegel@gnu.org>
 
-;; $Id: vc-hooks.el,v 1.123 2000/10/05 22:47:21 monnier Exp $
+;; $Id: vc-hooks.el,v 1.128 2000/11/06 13:19:38 monnier Exp $
 
 ;; This file is part of GNU Emacs.
 
@@ -208,26 +208,21 @@ It is usually called via the `vc-call' macro."
 
 Optional argument LIMIT is a regexp.  If present, the file is inserted
 in chunks of size BLOCKSIZE (default 8 kByte), until the first
-occurrence of LIMIT is found.  The function returns nil if FILE doesn't
-exist."
+occurrence of LIMIT is found.  The function returns non-nil if FILE 
+exists and its contents were successfully inserted."
   (erase-buffer)
-  (cond ((file-exists-p file)
-        (cond (limit
-               (if (not blocksize) (setq blocksize 8192))
-               (let (found s)
-                 (while (not found)
-                   (setq s (buffer-size))
-                   (goto-char (1+ s))
-                   (setq found
-                         (or (zerop (cadr (insert-file-contents
-                                           file nil s (+ s blocksize))))
-                             (progn (beginning-of-line)
-                                    (re-search-forward limit nil t)))))))
-              (t (insert-file-contents file)))
-        (set-buffer-modified-p nil)
-        (auto-save-mode nil)
-        t)
-       (t nil)))
+  (when (file-exists-p file)
+    (if (not limit)
+        (insert-file-contents file)
+      (if (not blocksize) (setq blocksize 8192))
+      (let ((filepos 0))
+        (while
+           (and (< 0 (cadr (insert-file-contents
+                            file nil filepos (incf filepos blocksize))))
+                (progn (beginning-of-line)
+                       (not (re-search-forward limit nil 'move)))))))
+    (set-buffer-modified-p nil)
+    t))
 
 ;;; Access functions to file properties
 ;;; (Properties should be _set_ using vc-file-setprop, but
@@ -469,15 +464,13 @@ be backed up locally.  The default is to switch off this feature."
 If MANUAL is non-nil it means that a name for backups created by
 the user should be returned; if REGEXP is non-nil that means to return
 a regexp for matching all such backup files, regardless of the version."
-  (let ((delim (if manual "~" "#")))
-    (if regexp
-        (concat (regexp-quote (file-name-nondirectory file))
-                "." delim "[0-9.]+" delim)
-      (expand-file-name (concat (file-name-nondirectory file) 
-                                "." delim 
-                                (or rev (vc-workfile-version file))
-                                delim)
-                        (file-name-directory file)))))
+  (if regexp
+      (concat (regexp-quote (file-name-nondirectory file))
+              "\\.~[0-9.]+" (unless manual "\\.") "~")
+    (expand-file-name (concat (file-name-nondirectory file) 
+                              ".~" (or rev (vc-workfile-version file)) 
+                              (unless manual ".") "~")
+                      (file-name-directory file))))
 
 (defun vc-delete-automatic-version-backups (file)
   "Delete all existing automatic version backups for FILE."
@@ -490,9 +483,11 @@ a regexp for matching all such backup files, regardless of the version."
 (defun vc-make-version-backup (file)
   "Make a backup copy of FILE, which is assumed in sync with the repository.
 Before doing that, check if there are any old backups and get rid of them."
-  (vc-delete-automatic-version-backups file)
-  (copy-file file (vc-version-backup-file-name file)
-             nil 'keep-date))
+  (unless (and (fboundp 'msdos-long-file-names)
+               (not (msdos-long-file-names)))
+    (vc-delete-automatic-version-backups file)
+    (copy-file file (vc-version-backup-file-name file)
+               nil 'keep-date)))
 
 (defun vc-before-save ()
   "Function to be called by `basic-save-buffer' (in files.el)."