]> code.delx.au - gnu-emacs/blobdiff - lisp/pcvs.el
* jit-lock.el (jit-lock-stealth-chunk-start): Fix typo in docstring.
[gnu-emacs] / lisp / pcvs.el
index a0bac0b287133307626c737c07297d53621c2fb5..dc01c45ad3f5783755bb382e4676492c7ba2d525 100644 (file)
@@ -1,7 +1,7 @@
 ;;; pcvs.el --- a front-end to CVS
 
 ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
 ;; Author: (The PCL-CVS Trust) pcl-cvs@cyclic.com
 ;;     (Per Cederqvist) ceder@lysator.liu.se
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -28,9 +28,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -759,7 +757,8 @@ clear what alternative to use.
 - NOARGS will get all the arguments from the *cvs* buffer and will
   always behave as if called interactively.
 - DOUBLE is the generic case."
-  (declare (debug (&define sexp lambda-list stringp ("interactive" interactive) def-body)))
+  (declare (debug (&define sexp lambda-list stringp ("interactive" interactive) def-body))
+          (doc-string 3))
   (let ((style (cvs-cdr fun))
        (fun (cvs-car fun)))
     (cond
@@ -1457,7 +1456,9 @@ The POSTPROC specified there (typically `log-edit') is then called,
   (let ((buf (cvs-temp-buffer "message" 'normal 'nosetup))
        (setupfun (or (nth 2 (cdr (assoc "message" cvs-buffer-name-alist)))
                      'log-edit)))
-    (funcall setupfun 'cvs-do-commit setup 'cvs-commit-filelist buf)
+    (funcall setupfun 'cvs-do-commit setup 
+            '((log-edit-listfun . cvs-commit-filelist)
+              (log-edit-diff-function . cvs-mode-diff)) buf)
     (set (make-local-variable 'cvs-minor-wrap-function) 'cvs-commit-minor-wrap)
     (run-hooks 'cvs-mode-commit-hook)))
 
@@ -1520,7 +1521,10 @@ This is best called from a `log-view-mode' buffer."
       ;; Set the filename before, so log-edit can correctly setup its
       ;; log-edit-initial-files variable.
       (set (make-local-variable 'cvs-edit-log-files) (list file)))
-    (funcall setupfun 'cvs-do-edit-log nil 'cvs-edit-log-filelist buf)
+    (funcall setupfun 'cvs-do-edit-log nil 
+            '((log-edit-listfun . cvs-edit-log-filelist)
+              (log-edit-diff-function . cvs-mode-diff))
+            buf)
     (when text (erase-buffer) (insert text))
     (set (make-local-variable 'cvs-edit-log-revision) rev)
     (set (make-local-variable 'cvs-minor-wrap-function)
@@ -1960,6 +1964,8 @@ This command ignores files that are not flagged as `Unknown'."
     (setf (cvs-fileinfo->type fi) 'DEAD))
   (cvs-cleanup-collection cvs-cookies nil nil nil))
 
+(declare-function vc-editable-p "vc" (file))
+(declare-function vc-checkout "vc" (file &optional writable rev))
 
 (defun cvs-append-to-ignore (dir str &optional old-dir)
   "Add STR to the .cvsignore file in DIR.
@@ -2291,7 +2297,7 @@ this file, or a list of arguments to send to the program."
           (buffer (find-buffer-visiting file)))
       ;; For a revert to happen the user must be editing the file...
       (unless (or (null buffer)
-                 (eq (cvs-fileinfo->type fileinfo) 'MESSAGE)
+                 (memq (cvs-fileinfo->type fileinfo) '(MESSAGE UNKNOWN))
                  ;; FIXME: check whether revert is really needed.
                  ;; `(verify-visited-file-modtime buffer)' doesn't cut it
                  ;; because it only looks at the time stamp (it ignores
@@ -2304,7 +2310,7 @@ this file, or a list of arguments to send to the program."
            ;; do want to reset the mode for VC, so we do it explicitly.
            (vc-find-file-hook)
            (when (eq (cvs-fileinfo->type fileinfo) 'CONFLICT)
-             (smerge-mode 1))))))))
+             (smerge-start-session))))))))
 
 \f
 (defun cvs-change-cvsroot (newroot)
@@ -2319,9 +2325,6 @@ this file, or a list of arguments to send to the program."
 ;;;; useful global settings
 ;;;;
 
-;;;###autoload
-(add-to-list 'completion-ignored-extensions "CVS/")
-
 ;;
 ;; Hook to allow calling PCL-CVS by visiting the /CVS subdirectory
 ;;