From 95588f91ba16f4f74902cf2a95980770d181f7f9 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 12 Jun 2007 18:52:05 +0000 Subject: [PATCH] (log-view-file-re, log-view-message-re): Use \(?1:...\). (log-view-font-lock-keywords): Simplify. (log-view-current-file, log-view-current-tag): Simplify. --- lisp/ChangeLog | 6 ++++++ lisp/log-view.el | 23 ++++++++++------------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index db8fca98edc..11397368f6d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2007-06-12 Stefan Monnier + + * log-view.el (log-view-file-re, log-view-message-re): Use \(?1:...\). + (log-view-font-lock-keywords): Simplify. + (log-view-current-file, log-view-current-tag): Simplify. + 2007-06-12 Sam Steingold * vc-arch.el (vc-arch-command): Also try "baz" and "bzr". diff --git a/lisp/log-view.el b/lisp/log-view.el index e4f50c15351..bf029045a8c 100644 --- a/lisp/log-view.el +++ b/lisp/log-view.el @@ -129,14 +129,15 @@ (defvar log-view-message-face 'log-view-message) (defconst log-view-file-re - (concat "^\\(?:Working file: \\(.+\\)" ;RCS and CVS. - "\\|\\(?:SCCS/s\\.\\|Changes to \\)\\(.+\\):" ;SCCS and Darcs. + (concat "^\\(?:Working file: \\(?1:.+\\)" ;RCS and CVS. + ;; Subversion has no such thing?? + "\\|\\(?:SCCS/s\\.\\|Changes to \\)\\(?1:.+\\):" ;SCCS and Darcs. "\\)\n")) ;Include the \n for font-lock reasons. (defconst log-view-message-re - (concat "^\\(?:revision \\([.0-9]+\\)\\(?:\t.*\\)?" ; RCS and CVS. - "\\|r\\([0-9]+\\) | .* | .*" ; Subversion. - "\\|D \\([.0-9]+\\) .*" ; SCCS. + (concat "^\\(?:revision \\(?1:[.0-9]+\\)\\(?:\t.*\\)?" ; RCS and CVS. + "\\|r\\(?1:[0-9]+\\) | .* | .*" ; Subversion. + "\\|D \\(?1:[.0-9]+\\) .*" ; SCCS. ;; Darcs doesn't have revision names. VC-darcs uses patch names ;; instead. Darcs patch names are hashcodes, which do not appear ;; in the log output :-(, but darcs accepts any prefix of the log @@ -145,13 +146,12 @@ ;; First loosely match the date format. (concat "\\|[^ \n].*[^0-9\n][0-9][0-9]:[0-9][0-9][^0-9\n].*[^ \n]" ;;Email of user and finally Msg, used as revision name. - " .*@.*\n\\(?: \\* \\(.*\\)\\)?") + " .*@.*\n\\(?: \\* \\(?1:.*\\)\\)?") "\\)$")) (defconst log-view-font-lock-keywords `((,log-view-file-re - (1 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t) - (2 (if (boundp 'cvs-filename-face) cvs-filename-face) nil t) + (1 (if (boundp 'cvs-filename-face) cvs-filename-face)) (0 log-view-file-face append)) (,log-view-message-re . log-view-message-face))) (defconst log-view-font-lock-defaults @@ -194,7 +194,7 @@ (forward-line 1) (or (re-search-backward log-view-file-re nil t) (re-search-forward log-view-file-re)) - (let* ((file (or (match-string 1) (match-string 2))) + (let* ((file (match-string 1)) (cvsdir (and (re-search-backward log-view-dir-re nil t) (match-string 1))) (pcldir (and (boundp 'cvs-pcl-cvs-dirchange-re) @@ -212,10 +212,7 @@ (forward-line 1) (let ((pt (point))) (when (re-search-backward log-view-message-re nil t) - (let (rev) - ;; Find the subgroup that matched. - (dotimes (i (/ (length (match-data 'integers)) 2)) - (setq rev (or rev (match-string (1+ i))))) + (let ((rev (match-string 1))) (unless (re-search-forward log-view-file-re pt t) rev)))))) -- 2.39.2