changeset 44384:3626a12fe452

* pcvs.el (cvs-mode-previous-line, cvs-mode-next-line): Move to spot indicated by text property `cvs-goal-column', if present. * pcvs-info.el (cvs-fileinfo-pp): Use text property `cvs-goal-column' to indicate position of file name (if present).
author Kai Großjohann <kgrossjo@eu.uu.net>
date Wed, 03 Apr 2002 16:56:36 +0000
parents e44eec58a815
children d5cf9afe17d6
files lisp/ChangeLog lisp/pcvs-info.el lisp/pcvs.el
diffstat 3 files changed, 38 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Apr 03 16:46:47 2002 +0000
+++ b/lisp/ChangeLog	Wed Apr 03 16:56:36 2002 +0000
@@ -1,3 +1,11 @@
+2002-04-03  Kai Gro,A_(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+	* pcvs.el (cvs-mode-previous-line, cvs-mode-next-line): Move to
+	spot indicated by text property `cvs-goal-column', if present.
+
+	* pcvs-info.el (cvs-fileinfo-pp): Use text property
+	`cvs-goal-column' to indicate position of file name (if present).
+
 2002-04-03  Richard M. Stallman  <rms@gnu.org>
 
 	* mail/mailabbrev.el (mail-abbrev-complete-alias):
--- a/lisp/pcvs-info.el	Wed Apr 03 16:46:47 2002 +0000
+++ b/lisp/pcvs-info.el	Wed Apr 03 16:56:36 2002 +0000
@@ -4,7 +4,7 @@
 
 ;; Author: Stefan Monnier <monnier@cs.yale.edu>
 ;; Keywords: pcl-cvs
-;; Revision: $Id: pcvs-info.el,v 1.7 2001/07/16 07:46:48 pj Exp $
+;; Revision: $Id: pcvs-info.el,v 1.8 2001/12/31 20:28:40 rms Exp $
 
 ;; This file is part of GNU Emacs.
 
@@ -318,14 +318,17 @@
     (and (not (eq type 'MESSAGE))
 	 (eq (car (memq func (cdr (assq type cvs-states)))) func))))
 
-(defun cvs-add-face (str face &optional keymap)
-  (when cvs-highlight
+(defun cvs-add-face (str face &optional keymap &rest properties)
+  (when (or cvs-highlight properties)
     (add-text-properties 0 (length str)
-			 (list* 'face face
-				(when keymap
-				  (list* 'mouse-face 'highlight
-					 (when (keymapp keymap)
-					   (list 'keymap keymap)))))
+			 (append
+			  (when cvs-highlight
+			    (list* 'face face
+				   (when keymap
+				     (list* 'mouse-face 'highlight
+					    (when (keymapp keymap)
+					      (list 'keymap keymap))))))
+			  properties)
 			 str))
   str)
 
@@ -349,7 +352,8 @@
 			   (cvs-add-face "*" 'cvs-marked-face)
 			 " "))
 	       (file (cvs-add-face (cvs-fileinfo->pp-name fileinfo)
-				   'cvs-filename-face t))
+				   'cvs-filename-face t
+				   'cvs-goal-column t))
 	       (base (or (cvs-fileinfo->base-rev fileinfo) ""))
 	       (head (cvs-fileinfo->head-rev fileinfo))
 	       (type
@@ -371,8 +375,8 @@
 		      (when (and head (not (string= head base))) head)
 		      ;; or nothing
 		      "")))
-	  (format "%-11s %s %-11s %-11s %s"
-	  	  side status type base file)))))))
+	   (format "%-11s %s %-11s %-11s %s"
+		   side status type base file)))))))
 
 
 (defun cvs-fileinfo-update (fi fi-new)
--- a/lisp/pcvs.el	Wed Apr 03 16:46:47 2002 +0000
+++ b/lisp/pcvs.el	Wed Apr 03 16:56:36 2002 +0000
@@ -13,7 +13,7 @@
 ;;	(Jari Aalto+mail.emacs) jari.aalto@poboxes.com
 ;; Maintainer: (Stefan Monnier) monnier+lists/cvs/pcl@flint.cs.yale.edu
 ;; Keywords: CVS, version control, release management
-;; Revision: $Id: pcvs.el,v 1.32 2001/12/20 18:43:35 pj Exp $
+;; Revision: $Id: pcvs.el,v 1.33 2002/01/25 22:41:28 monnier Exp $
 
 ;; This file is part of GNU Emacs.
 
@@ -1089,13 +1089,25 @@
   "Go to the previous line.
 If a prefix argument is given, move by that many lines."
   (interactive "p")
-  (ewoc-goto-prev cvs-cookies arg))
+  (ewoc-goto-prev cvs-cookies arg)
+  (let ((fpos (next-single-property-change
+	       (point) 'cvs-goal-column
+	       (current-buffer) (line-end-position)))
+	(eol (line-end-position)))
+    (when (< fpos eol)
+      (goto-char fpos))))
 
 (defun-cvs-mode cvs-mode-next-line (arg)
   "Go to the next line.
 If a prefix argument is given, move by that many lines."
   (interactive "p")
-  (ewoc-goto-next cvs-cookies arg))
+  (ewoc-goto-next cvs-cookies arg)
+  (let ((fpos (next-single-property-change
+	       (point) 'cvs-goal-column
+	       (current-buffer) (line-end-position)))
+	(eol (line-end-position)))
+    (when (< fpos eol)
+      (goto-char fpos))))
 
 ;;;;
 ;;;; Mark handling