unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer]
@ 2006-07-05 14:51 Richard Stallman
  2006-07-05 16:07 ` Chong Yidong
  2006-07-06 15:22 ` Mathias Dahl
  0 siblings, 2 replies; 7+ messages in thread
From: Richard Stallman @ 2006-07-05 14:51 UTC (permalink / raw)


The failure to ask the user whether to update the buffer
is certainly a bug.  Would someone please fix it and ack?


The behavior of find-alternate-file is also surely not good, but I am
not sure what it should do instead.  The ideal would be to substitute
the new file in the base buffer and its indirect buffers, without
otherwise altering the differences between them.  But that is probably
quite hard, so it would be better to do something else that's at least
sensible.

------- Start of forwarded message -------
To: emacs-pretest-bug@gnu.org
From: Joe Edmonds <joe-emacs-bugs@elem.com>
Date: Mon, 03 Jul 2006 11:35:05 -0700
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Subject: change to file on disk not noticed by indirect buffer
X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=failed 
	version=3.0.4


Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the emacs-pretest-bug@gnu.org mailing list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

I really like using indirect buffers to edit different parts of the
same file with different buffer settings (mode, point, mark, position
in buffer stack, etc).

But I've noticed that an indirect buffer doesn't behave the way a
normal buffer does with regard to a file that is changed from outside
emacs.  Here's how to reproduce the problem:

  echo foo >>/tmp/foo   # in a shell outside emacs

  C-x C-f /tmp/foo
  M-x clone-indirect-buffer

  echo bar >>/tmp/foo   # in a shell outside emacs

  Now, insert some text in the indirect buffer.

You don't get the nice "foo changed on disk; really edit the buffer?"
prompt emacs normally gives you if you try to edit the base buffer.

Also, find-alternate-file destroys the correspondence of indirect
buffers and base buffers.  If you do it in a base buffer, all indirect
buffers are killed.  If you do it in an indirect buffer, you're
not an indirect buffer anymore.  If there were a "refresh base buffer
and all its indirect buffers from disk" function, that would make
working with indirect buffers easier for me.

Cheers,

Joe


If emacs crashed, and you have the emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/usr/share/emacs/22.0.50/etc/DEBUG for instructions.


In GNU Emacs 22.0.50.1 (i486-pc-linux-gnu, GTK+ Version 2.8.10)
 of 2006-01-16 on vernadsky, modified by Debian
X server distributor `The X.Org Foundation', version 11.0.60802000
configured using `configure '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/22.0.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/22.0.50/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/22.0.50/leim' '--with-x=yes' '--with-x-toolkit=gtk' 'CFLAGS=-DDEBIAN -g -Wno-pointer-sign -O2' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8
  default-enable-multibyte-characters: t

Major mode: Mason[HTML]

Minor modes in effect:
  auto-insert-mode: t
  erc-autojoin-mode: t
  erc-button-mode: t
  erc-ring-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-fill-mode: t
  erc-netsplit-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  show-paren-mode: t
  tooltip-mode: t
  auto-compression-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  unify-8859-on-encoding-mode: t
  utf-translate-cjk-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-x C-s M-x c l o n <tab> i <tab> <return> t g v C-x 
C-s n o <return> C-x o M-> <return> x y z C-x C-s n 
o <return> <help-echo> <help-echo> <help-echo> C-x 
C-s y e s <return> y C-x o C-x C-v f o <tab> o <tab> 
<return> C-h k C-x C-v <help-echo> <help-echo> C-x 
o C-x k <return> C-x o M-x a p r o p o <tab> <return> 
i n d i r e c t <return> <help-echo> <help-echo> <help-echo> 
C-x o C-x k <return> <help-echo> M-x r e p o <tab> 
r <tab> <return>

Recent messages:
Mark set
basic-save-buffer: Save not confirmed
Auto-saving...
foo.txt changed on disk; really edit the buffer? (y, n, r or C-h) 
File on disk now will become a backup file if you save these changes.
Wrote /tmp/foo.txt
Making completion list...
Type C-x 4 b RET to restore the other window.  
Making completion list...
Loading emacsbug...done


_______________________________________________
emacs-pretest-bug mailing list
emacs-pretest-bug@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug
------- End of forwarded message -------

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

* Re: [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer]
  2006-07-05 14:51 [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer] Richard Stallman
@ 2006-07-05 16:07 ` Chong Yidong
  2006-07-06 13:32   ` Richard Stallman
  2006-07-06 15:22 ` Mathias Dahl
  1 sibling, 1 reply; 7+ messages in thread
From: Chong Yidong @ 2006-07-05 16:07 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> The failure to ask the user whether to update the buffer
> is certainly a bug.  Would someone please fix it and ack?

I fixed the clash detection bug.  (I didn't do anything about the
other issue with find-alternate file.)

> The behavior of find-alternate-file is also surely not good, but I am
> not sure what it should do instead.  The ideal would be to substitute
> the new file in the base buffer and its indirect buffers, without
> otherwise altering the differences between them.  But that is probably
> quite hard, so it would be better to do something else that's at least
> sensible.
>
> From: Joe Edmonds <joe-emacs-bugs@elem.com>
> Subject: change to file on disk not noticed by indirect buffer
> To: emacs-pretest-bug@gnu.org
>
> I really like using indirect buffers to edit different parts of the
> same file with different buffer settings (mode, point, mark, position
> in buffer stack, etc).
>
> But I've noticed that an indirect buffer doesn't behave the way a
> normal buffer does with regard to a file that is changed from outside
> emacs.  Here's how to reproduce the problem:
>
>   echo foo >>/tmp/foo   # in a shell outside emacs
>
>   C-x C-f /tmp/foo
>   M-x clone-indirect-buffer
>
>   echo bar >>/tmp/foo   # in a shell outside emacs
>
>   Now, insert some text in the indirect buffer.
>
> You don't get the nice "foo changed on disk; really edit the buffer?"
> prompt emacs normally gives you if you try to edit the base buffer.
>
> Also, find-alternate-file destroys the correspondence of indirect
> buffers and base buffers.  If you do it in a base buffer, all indirect
> buffers are killed.  If you do it in an indirect buffer, you're
> not an indirect buffer anymore.  If there were a "refresh base buffer
> and all its indirect buffers from disk" function, that would make
> working with indirect buffers easier for me.

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

* Re: [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer]
  2006-07-05 16:07 ` Chong Yidong
@ 2006-07-06 13:32   ` Richard Stallman
  2006-07-06 13:56     ` Chong Yidong
  0 siblings, 1 reply; 7+ messages in thread
From: Richard Stallman @ 2006-07-06 13:32 UTC (permalink / raw)
  Cc: emacs-devel

    I fixed the clash detection bug.  (I didn't do anything about the
    other issue with find-alternate file.)

It would be good to at least do something about that other issue.
Even a doc fix would be better than nothing; but you can probably
think of some other behavior that makes more sense than this one.

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

* Re: [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer]
  2006-07-06 13:32   ` Richard Stallman
@ 2006-07-06 13:56     ` Chong Yidong
  0 siblings, 0 replies; 7+ messages in thread
From: Chong Yidong @ 2006-07-06 13:56 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     I fixed the clash detection bug.  (I didn't do anything about the
>     other issue with find-alternate file.)
>
> It would be good to at least do something about that other issue.
> Even a doc fix would be better than nothing; but you can probably
> think of some other behavior that makes more sense than this one.

I fixed the docstring to point out the effect on indirect buffers.

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

* Re: [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer]
  2006-07-05 14:51 [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer] Richard Stallman
  2006-07-05 16:07 ` Chong Yidong
@ 2006-07-06 15:22 ` Mathias Dahl
  2006-07-07 19:30   ` Richard Stallman
  1 sibling, 1 reply; 7+ messages in thread
From: Mathias Dahl @ 2006-07-06 15:22 UTC (permalink / raw)
  Cc: emacs-devel

> The behavior of find-alternate-file is also surely not good, but I am
> not sure what it should do instead.  The ideal would be to substitute
> the new file in the base buffer and its indirect buffers, without
> otherwise altering the differences between them.  But that is probably
> quite hard, so it would be better to do something else that's at least
> sensible.

Would it be that hard? Just change the base buffer's file as if it was
a buffer without any indirect ones and for the indirect buffers, keep
track of what mode they were in (would saving more information be
useful?) and read the data from the new base buffer into them.

On the other hand, what if I do want to find an alternative file in
the indirect buffer I am currently in? Maybe I am done with this
indirect buffer and don't need it anymore.

Maybe there should be a new command such as the one the Joe suggested
and keep the current functionality as it is?

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

* Re: [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer]
  2006-07-06 15:22 ` Mathias Dahl
@ 2006-07-07 19:30   ` Richard Stallman
  2006-07-07 22:25     ` Mathias Dahl
  0 siblings, 1 reply; 7+ messages in thread
From: Richard Stallman @ 2006-07-07 19:30 UTC (permalink / raw)
  Cc: emacs-devel

    Would it be that hard? Just change the base buffer's file as if it was
    a buffer without any indirect ones and for the indirect buffers, keep
    track of what mode they were in (would saving more information be
    useful?) and read the data from the new base buffer into them.

Adjusting the indirect buffers correctly would be quite hard, I think.

    On the other hand, what if I do want to find an alternative file in
    the indirect buffer I am currently in? Maybe I am done with this
    indirect buffer and don't need it anymore.

Maybe it is correct for C-x C-v in an indirect buffer to replace
only that indirect buffer.

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

* Re: [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer]
  2006-07-07 19:30   ` Richard Stallman
@ 2006-07-07 22:25     ` Mathias Dahl
  0 siblings, 0 replies; 7+ messages in thread
From: Mathias Dahl @ 2006-07-07 22:25 UTC (permalink / raw)
  Cc: emacs-devel

> Maybe it is correct for C-x C-v in an indirect buffer to replace
> only that indirect buffer.

I think so, but I use the indirect buffer feature very seldom, if ever.

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

end of thread, other threads:[~2006-07-07 22:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-05 14:51 [joe-emacs-bugs@elem.com: change to file on disk not noticed by indirect buffer] Richard Stallman
2006-07-05 16:07 ` Chong Yidong
2006-07-06 13:32   ` Richard Stallman
2006-07-06 13:56     ` Chong Yidong
2006-07-06 15:22 ` Mathias Dahl
2006-07-07 19:30   ` Richard Stallman
2006-07-07 22:25     ` Mathias Dahl

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