unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#6100: c-beginning-of-defun doesn't push mark
@ 2010-05-04 16:01 Juri Linkov
  2010-05-05 13:16 ` Stefan Monnier
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Juri Linkov @ 2010-05-04 16:01 UTC (permalink / raw)
  To: 6100

There is one annoying difference between `beginning-of-defun'
and `c-beginning-of-defun':

`beginning-of-defun' and `end-of-defun' pushes the mark for the
old point location to the mark ring with this code:

  (or (not (eq this-command 'beginning-of-defun))
      (eq last-command 'beginning-of-defun)
      (and transient-mark-mode mark-active)
      (push-mark))

but `c-beginning-of-defun' doesn't do that.

This patch add the same code to `c-beginning-of-defun' and `c-end-of-defun':

=== modified file 'lisp/progmodes/cc-cmds.el'
--- lisp/progmodes/cc-cmds.el	2010-04-19 15:07:52 +0000
+++ lisp/progmodes/cc-cmds.el	2010-05-04 16:01:05 +0000
@@ -1501,6 +1501,11 @@ (defun c-beginning-of-defun (&optional a
   (interactive "p")
   (or arg (setq arg 1))
 
+  (or (not (eq this-command 'c-beginning-of-defun))
+      (eq last-command 'c-beginning-of-defun)
+      (and transient-mark-mode mark-active)
+      (push-mark))
+
   (c-save-buffer-state
       (beginning-of-defun-function end-of-defun-function
        (start (point))
@@ -1604,6 +1609,11 @@ (defun c-end-of-defun (&optional arg)
   (interactive "p")
   (or arg (setq arg 1))
 
+  (or (not (eq this-command 'c-end-of-defun))
+      (eq last-command 'c-end-of-defun)
+      (and transient-mark-mode mark-active)
+      (push-mark))
+
   (c-save-buffer-state
       (beginning-of-defun-function end-of-defun-function
        (start (point))

-- 
Juri Linkov
http://www.jurta.org/emacs/







^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-05-12 13:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-04 16:01 bug#6100: c-beginning-of-defun doesn't push mark Juri Linkov
2010-05-05 13:16 ` Stefan Monnier
     [not found] ` <jwvk4ripk1d.fsf-monnier+emacs@gnu.org>
2010-05-05 18:28   ` Juri Linkov
2010-05-05 20:29     ` Stefan Monnier
2010-05-06 10:54     ` Alan Mackenzie
     [not found]     ` <20100506105433.GA1366@muc.de>
2010-05-11 19:22       ` Stefan Monnier
2010-05-12 11:21         ` Alan Mackenzie
2010-05-12 13:26 ` bug#6100: Fix Alan Mackenzie

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).