unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#2553: *vc-diff* buffers are read-only, but M-k works
@ 2009-03-03  4:18 David Reitter
  2012-04-26  3:33 ` Chong Yidong
  0 siblings, 1 reply; 7+ messages in thread
From: David Reitter @ 2009-03-03  4:18 UTC (permalink / raw)
  To: emacs-pretest-bug

[-- Attachment #1: Type: text/plain, Size: 323 bytes --]

M-k works just fine in read-only *vc-diff* buffers.

However, undoing an M-k command is impossible, as is cutting, pasting,  
or all the other things that I did all the time in *vc-diff* buffers  
in Emacs 22.

The M-k thing is a bug, the read-only (default?) setting is annoying.

(CVS Emacs, NS.  VC in this case: CVS)



[-- Attachment #2: smime.p7s --]
[-- Type: application/pkcs7-signature, Size: 2193 bytes --]

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

* bug#2553: *vc-diff* buffers are read-only, but M-k works
@ 2009-03-04 15:41 Chong Yidong
  0 siblings, 0 replies; 7+ messages in thread
From: Chong Yidong @ 2009-03-04 15:41 UTC (permalink / raw)
  To: emacs-devel; +Cc: David Reitter, 2553

David Reitter <david.reitter@gmail.com> wrote:

> M-k works just fine in read-only *vc-diff* buffers.
>
> However, undoing an M-k command is impossible, as is cutting, pasting,  
> or all the other things that I did all the time in *vc-diff* buffers  
> in Emacs 22.
>
> The M-k thing is a bug, the read-only (default?) setting is annoying.

The purpose of making the vc-diff buffer read-only (2007-11-10 change to
vc.el) was so that people can use the read-only diff-mode bindings like
"k" and "p".  However, it's counter-intuitive that undo does not work.
Probably the easiest fix is to define a diff-undo command that lifts the
read-only restriction temporarily.  Any thoughts?






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

* bug#2553: *vc-diff* buffers are read-only, but M-k works
       [not found] <87k575jnwl.fsf@cyd.mit.edu>
@ 2009-03-04 15:54 ` Juanma Barranquero
  2011-09-11 21:46 ` Lars Magne Ingebrigtsen
       [not found] ` <m3bouqhhvn.fsf@stories.gnus.org>
  2 siblings, 0 replies; 7+ messages in thread
From: Juanma Barranquero @ 2009-03-04 15:54 UTC (permalink / raw)
  To: Chong Yidong; +Cc: David Reitter, 2553, emacs-devel

On Wed, Mar 4, 2009 at 16:41, Chong Yidong <cyd@stupidchicken.com> wrote:

> However, it's counter-intuitive that undo does not work.
> Probably the easiest fix is to define a diff-undo command that lifts the
> read-only restriction temporarily.  Any thoughts?

Most operations on diff-mode buffers do not change the buffer or are
easily reversible (diff-reverse-direction, diff-unified->context,
etc.). Making the buffer read-write is a C-x C-q away, if the user
needs to use undo or normal editing commands.

What is a bit of a pain is that the user cannot easily setup vc-diff
to default to a read-write buffer, because there's no vc-diff-hook and
`(setq buffer-read-only t)' is done after calling diff-mode, so
diff-mode-hook isn't useful either. The only way right now (other than
modifying the source) is to advise vc-diff.

My 0.02€

    Juanma






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

* bug#2553: *vc-diff* buffers are read-only, but M-k works
       [not found] <87k575jnwl.fsf@cyd.mit.edu>
  2009-03-04 15:54 ` bug#2553: *vc-diff* buffers are read-only, but M-k works Juanma Barranquero
@ 2011-09-11 21:46 ` Lars Magne Ingebrigtsen
       [not found] ` <m3bouqhhvn.fsf@stories.gnus.org>
  2 siblings, 0 replies; 7+ messages in thread
From: Lars Magne Ingebrigtsen @ 2011-09-11 21:46 UTC (permalink / raw)
  To: Chong Yidong; +Cc: 2553, emacs-devel, David Reitter

Chong Yidong <cyd@stupidchicken.com> writes:

> The purpose of making the vc-diff buffer read-only (2007-11-10 change to
> vc.el) was so that people can use the read-only diff-mode bindings like
> "k" and "p".  However, it's counter-intuitive that undo does not work.
> Probably the easiest fix is to define a diff-undo command that lifts the
> read-only restriction temporarily.  Any thoughts?

Perhaps a more general solution would be possible here.  I think there
probably are other "mostly-read-only" modes where you have one or two
special commands that alter the buffer, anyway.  Like with `M-k'.
Perhaps there could be a buffer-local variable like
`undo-read-only-buffer' that if set, would allow `undo' to work in these
cases.

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/





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

* bug#2553: *vc-diff* buffers are read-only, but M-k works
       [not found] ` <m3bouqhhvn.fsf@stories.gnus.org>
@ 2011-09-13  1:26   ` Stefan Monnier
       [not found]   ` <jwvhb4hp72h.fsf-monnier+emacs@gnu.org>
  1 sibling, 0 replies; 7+ messages in thread
From: Stefan Monnier @ 2011-09-13  1:26 UTC (permalink / raw)
  To: Lars Magne Ingebrigtsen; +Cc: 2553, Chong Yidong, David Reitter, emacs-devel

>> The purpose of making the vc-diff buffer read-only (2007-11-10 change to
>> vc.el) was so that people can use the read-only diff-mode bindings like
>> "k" and "p".  However, it's counter-intuitive that undo does not work.
>> Probably the easiest fix is to define a diff-undo command that lifts the
>> read-only restriction temporarily.  Any thoughts?

> Perhaps a more general solution would be possible here.  I think there
> probably are other "mostly-read-only" modes where you have one or two
> special commands that alter the buffer, anyway.  Like with `M-k'.
> Perhaps there could be a buffer-local variable like
> `undo-read-only-buffer' that if set, would allow `undo' to work in these
> cases.

Or we could record in the buffer-undo-list the fact the the modification
was done with inhibit-read-only bound to non-nil, and bind it similarly
during the undo.


        Stefan





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

* bug#2553: *vc-diff* buffers are read-only, but M-k works
       [not found]   ` <jwvhb4hp72h.fsf-monnier+emacs@gnu.org>
@ 2011-10-06 21:59     ` Lars Magne Ingebrigtsen
  0 siblings, 0 replies; 7+ messages in thread
From: Lars Magne Ingebrigtsen @ 2011-10-06 21:59 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 2553, emacs-devel, David Reitter

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> Perhaps a more general solution would be possible here.  I think there
>> probably are other "mostly-read-only" modes where you have one or two
>> special commands that alter the buffer, anyway.  Like with `M-k'.
>> Perhaps there could be a buffer-local variable like
>> `undo-read-only-buffer' that if set, would allow `undo' to work in these
>> cases.
>
> Or we could record in the buffer-undo-list the fact the the modification
> was done with inhibit-read-only bound to non-nil, and bind it similarly
> during the undo.

That would be even better, and is even more general.

-- 
(domestic pets only, the antidote for overdose, milk.)
  bloggy blog http://lars.ingebrigtsen.no/





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

* bug#2553: *vc-diff* buffers are read-only, but M-k works
  2009-03-03  4:18 David Reitter
@ 2012-04-26  3:33 ` Chong Yidong
  0 siblings, 0 replies; 7+ messages in thread
From: Chong Yidong @ 2012-04-26  3:33 UTC (permalink / raw)
  To: David Reitter; +Cc: 2553

David Reitter <david.reitter@gmail.com> writes:

> M-k works just fine in read-only *vc-diff* buffers.
>
> However, undoing an M-k command is impossible, as is cutting, pasting,
> or all the other things that I did all the time in *vc-diff* buffers
> in Emacs 22.

Fixed in trunk.  Thanks for the report.






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

end of thread, other threads:[~2012-04-26  3:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <87k575jnwl.fsf@cyd.mit.edu>
2009-03-04 15:54 ` bug#2553: *vc-diff* buffers are read-only, but M-k works Juanma Barranquero
2011-09-11 21:46 ` Lars Magne Ingebrigtsen
     [not found] ` <m3bouqhhvn.fsf@stories.gnus.org>
2011-09-13  1:26   ` Stefan Monnier
     [not found]   ` <jwvhb4hp72h.fsf-monnier+emacs@gnu.org>
2011-10-06 21:59     ` Lars Magne Ingebrigtsen
2009-03-04 15:41 Chong Yidong
  -- strict thread matches above, loose matches on Subject: below --
2009-03-03  4:18 David Reitter
2012-04-26  3:33 ` Chong Yidong

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).