aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Nicolaescu2007-08-24 17:28:00 +0000
committerDan Nicolaescu2007-08-24 17:28:00 +0000
commit83db937cdac37b1f9ff796226807dcbe10549190 (patch)
treea0c2d866232c0b120d0b5498d7b160386d3d9fd2
parent9538e9ca9169c06238f1405842a1c26ab057bd67 (diff)
downloademacs-83db937cdac37b1f9ff796226807dcbe10549190.tar.gz
emacs-83db937cdac37b1f9ff796226807dcbe10549190.zip
(log-view-toggle-mark-entry): New function.
(log-view-mode-map): Bind it. (log-view-marked-list): New variable. (log-view-mode): Make it local.
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/log-view.el42
2 files changed, 48 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 808e99af21f..ccf7d130c52 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
12007-08-24 Dan Nicolaescu <dann@ics.uci.edu>
2
3 * log-view.el (log-view-toggle-mark-entry): New function.
4 (log-view-mode-map): Bind it.
5 (log-view-marked-list): New variable.
6 (log-view-mode): Make it local.
7
12007-08-24 Thien-Thi Nguyen <ttn@gnuvola.org> 82007-08-24 Thien-Thi Nguyen <ttn@gnuvola.org>
2 9
3 * play/zone.el (zone-pgm-rat-race): New func. 10 * play/zone.el (zone-pgm-rat-race): New func.
diff --git a/lisp/log-view.el b/lisp/log-view.el
index 51861da2ae6..4ff80ff21a5 100644
--- a/lisp/log-view.el
+++ b/lisp/log-view.el
@@ -89,7 +89,7 @@
89(easy-mmode-defmap log-view-mode-map 89(easy-mmode-defmap log-view-mode-map
90 '(("q" . quit-window) 90 '(("q" . quit-window)
91 ("z" . kill-this-buffer) 91 ("z" . kill-this-buffer)
92 ("m" . set-mark-command) 92 ("m" . log-view-toggle-mark-entry)
93 ;; ("e" . cvs-mode-edit-log) 93 ;; ("e" . cvs-mode-edit-log)
94 ("d" . log-view-diff) 94 ("d" . log-view-diff)
95 ("f" . log-view-find-version) 95 ("f" . log-view-find-version)
@@ -178,6 +178,8 @@ The match group number 1 should match the revision number itself.")
178(defconst log-view-font-lock-defaults 178(defconst log-view-font-lock-defaults
179 '(log-view-font-lock-keywords t nil nil nil)) 179 '(log-view-font-lock-keywords t nil nil nil))
180 180
181(defvar log-view-marked-list nil)
182
181;;;; 183;;;;
182;;;; Actual code 184;;;; Actual code
183;;;; 185;;;;
@@ -186,6 +188,7 @@ The match group number 1 should match the revision number itself.")
186(define-derived-mode log-view-mode fundamental-mode "Log-View" 188(define-derived-mode log-view-mode fundamental-mode "Log-View"
187 "Major mode for browsing CVS log output." 189 "Major mode for browsing CVS log output."
188 (setq buffer-read-only t) 190 (setq buffer-read-only t)
191 (make-local-variable 'log-view-marked-list)
189 (set (make-local-variable 'font-lock-defaults) log-view-font-lock-defaults) 192 (set (make-local-variable 'font-lock-defaults) log-view-font-lock-defaults)
190 (set (make-local-variable 'cvs-minor-wrap-function) 'log-view-minor-wrap)) 193 (set (make-local-variable 'cvs-minor-wrap-function) 'log-view-minor-wrap))
191 194
@@ -237,6 +240,43 @@ The match group number 1 should match the revision number itself.")
237 (unless (re-search-forward log-view-file-re pt t) 240 (unless (re-search-forward log-view-file-re pt t)
238 rev)))))) 241 rev))))))
239 242
243(defun log-view-toggle-mark-entry ()
244 "Toggle marking for on log entry."
245 (interactive)
246 (save-excursion
247 (forward-line 1)
248 (let ((pt (point)))
249 (when (re-search-backward log-view-message-re nil t)
250 (let ((beg (match-beginning 0))
251 end ov ovlist found tag)
252 (unless (re-search-forward log-view-file-re pt t)
253 ;; Look to see if the current entry is marked by looking
254 ;; at the overlays at point.
255 (setq ovlist (overlays-at (point)))
256 (dolist (ovl ovlist)
257 (when (overlay-get ovl 'log-view-marked)
258 (setq found ovl)))
259 (if found
260 (progn
261 ;; Remove this entry from the marked list and remove
262 ;; the overlay.
263 (setq log-view-marked-list
264 (delq (overlay-get found 'log-view-marked)
265 log-view-marked-list))
266 (delete-overlay found))
267 ;; Add this entry to the marked list and create an
268 ;; overlay that covers it.
269 (setq tag (log-view-current-tag (point)))
270 (push tag log-view-marked-list)
271 (forward-line 1)
272 (setq end
273 (if (re-search-forward log-view-message-re nil t)
274 (match-beginning 0)
275 (point-max)))
276 (setq ov (make-overlay beg end))
277 (overlay-put ov 'face 'log-view-file)
278 (overlay-put ov 'log-view-marked tag))))))))
279
240(defvar cvs-minor-current-files) 280(defvar cvs-minor-current-files)
241(defvar cvs-branch-prefix) 281(defvar cvs-branch-prefix)
242(defvar cvs-secondary-branch-prefix) 282(defvar cvs-secondary-branch-prefix)