From 6efa25a1d5491e2018d4cc7611c90caf0197dc25 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kai=20Gro=C3=9Fjohann?= Date: Wed, 3 Apr 2002 16:56:36 +0000 Subject: [PATCH] * 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). --- lisp/ChangeLog | 8 ++++++++ lisp/pcvs-info.el | 26 +++++++++++++++----------- lisp/pcvs.el | 18 +++++++++++++++--- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 283d8a8ce85..15cfd98cac0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2002-04-03 Kai Gro,A_(Bjohann + + * 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 * mail/mailabbrev.el (mail-abbrev-complete-alias): diff --git a/lisp/pcvs-info.el b/lisp/pcvs-info.el index 0074e77b2b2..1b1ea95f975 100644 --- a/lisp/pcvs-info.el +++ b/lisp/pcvs-info.el @@ -4,7 +4,7 @@ ;; Author: Stefan Monnier ;; 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 @@ FI-OR-TYPE can either be a symbol (a fileinfo-type) or a fileinfo." (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 @@ For use by the cookie package." (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 @@ For use by the cookie package." (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) diff --git a/lisp/pcvs.el b/lisp/pcvs.el index 3b20b2ff506..725332809e1 100644 --- a/lisp/pcvs.el +++ b/lisp/pcvs.el @@ -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 @@ Full documentation is in the Texinfo file." "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 -- 2.11.4.GIT