diff options
| author | Dan Nicolaescu | 2007-08-24 17:28:00 +0000 |
|---|---|---|
| committer | Dan Nicolaescu | 2007-08-24 17:28:00 +0000 |
| commit | 83db937cdac37b1f9ff796226807dcbe10549190 (patch) | |
| tree | a0c2d866232c0b120d0b5498d7b160386d3d9fd2 | |
| parent | 9538e9ca9169c06238f1405842a1c26ab057bd67 (diff) | |
| download | emacs-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/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/log-view.el | 42 |
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 @@ | |||
| 1 | 2007-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 | |||
| 1 | 2007-08-24 Thien-Thi Nguyen <ttn@gnuvola.org> | 8 | 2007-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) |