X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/36317f13f88ac56f0fac612d28e89f4da01e94ac..ae48944514a529eb78caff789171393fa6c82287:/lisp/pcvs-parse.el diff --git a/lisp/pcvs-parse.el b/lisp/pcvs-parse.el index 9ba3814c91..66c791db51 100644 --- a/lisp/pcvs-parse.el +++ b/lisp/pcvs-parse.el @@ -1,7 +1,7 @@ ;;; pcvs-parse.el --- the CVS output parser -;; Copyright (C) 1991,92,93,94,95,96,97,98,99,2000,02,2003 -;; Free Software Foundation, Inc. +;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Author: Stefan Monnier ;; Keywords: pcl-cvs @@ -20,8 +20,8 @@ ;; 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., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +;; Boston, MA 02110-1301, USA. ;;; Commentary: @@ -370,7 +370,7 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'." ;; File you removed still exists. Ignore (will be noted as removed). (cvs-match ".* should be removed and is still there$") ;; just a note - (cvs-match "use '.+ commit' to \\sw+ th\\sw+ files? permanently$") + (cvs-match "use ['`].+ commit' to \\sw+ th\\sw+ files? permanently$") ;; [add,status] followed by a more complete status description anyway (and (cvs-match "nothing known about \\(.*\\)$" (path 1)) (cvs-parsed-fileinfo 'DEAD path 'trust)) @@ -492,12 +492,14 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'." :head-rev head-rev)))) (defun cvs-parse-commit () - (let (path base-rev subtype) + (let (path file base-rev subtype) (cvs-or (and - (cvs-match "\\(Checking in\\|Removing\\) \\(.*\\);$" (path 2)) - (cvs-match ".*,v <-- .*$") + (cvs-or + (cvs-match "\\(Checking in\\|Removing\\) \\(.*\\);$" (path 2)) + t) + (cvs-match ".*,v <-- \\(.*\\)$" (file 1)) (cvs-or ;; deletion (cvs-match "new revision: delete; previous revision: \\([0-9.]*\\)$" @@ -508,15 +510,20 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'." ;; update (cvs-match "new revision: \\([0-9.]*\\); previous revision: .*$" (subtype 'COMMITTED) (base-rev 1))) - (cvs-match "done$") + (cvs-or (cvs-match "done$") t) + ;; In cvs-1.12.9 commit messages have been changed and became + ;; ambiguous. More specifically, the `path' above is not given. + ;; We assume here that in future releases the corresponding info will + ;; be put into `file'. (progn ;; Try to remove the temp files used by VC. - (vc-delete-automatic-version-backups (expand-file-name path)) + (vc-delete-automatic-version-backups (expand-file-name (or path file))) ;; it's important here not to rely on the default directory management ;; because `cvs commit' might begin by a series of Examining messages ;; so the processing of the actual checkin messages might begin with ;; a `current-dir' set to something different from "" - (cvs-parsed-fileinfo (cons 'UP-TO-DATE subtype) path 'trust + (cvs-parsed-fileinfo (cons 'UP-TO-DATE subtype) + (or path file) 'trust :base-rev base-rev))) ;; useless message added before the actual addition: ignored @@ -525,4 +532,5 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'." (provide 'pcvs-parse) +;; arch-tag: 35418375-1a23-40a0-957d-96b0262f91d6 ;;; pcvs-parse.el ends here