[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: `save-excursion' defeated by `set-buffer'
From: |
Eli Zaretskii |
Subject: |
Re: `save-excursion' defeated by `set-buffer' |
Date: |
Sat, 12 Mar 2011 10:59:15 +0200 |
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Fri, 11 Mar 2011 10:52:14 -0500
>
> So (save-excursion (goto-char BAR)) is pretty much a no-op.
>
> But (save-excursion (set-buffer FOO) (goto-char BAR)) is either:
> - the same as (save-excursion (goto-char BAR)), in case FOO is already
> current.
> - an inefficient form of (with-current-buffer FOO (goto-char BAR)).
> I still haven't found any code out there where this behavior is what
> is actually wanted and expected by the programmer.
>
> In more than 90% of the cases, the intended meaning is
> (with-current-buffer FOO (goto-char BAR)) and the behavior if FOO is
> current (to additionally preserve point) is harmless, so the warning
> simply points out an inefficiency.
>
> In the remaining cases, FOO is almost always current, but when it's not
> the resulting behavior is a bug. I.e. the intended code is
> (with-current-buffer FOO (save-excursion (goto-char BAR))).
Then how about changing the text of the warning to something like
Warning: `save-excursion' will not preserve point in the other buffer
set by `set-buffer'
?
- Re: `save-excursion' defeated by `set-buffer', (continued)
- Re: `save-excursion' defeated by `set-buffer', Uday Reddy, 2011/03/02
- Re: `save-excursion' defeated by `set-buffer', Stefan Monnier, 2011/03/04
- Re: `save-excursion' defeated by `set-buffer', Andreas Röhler, 2011/03/10
- Re: `save-excursion' defeated by `set-buffer', Leo, 2011/03/10
- Re: `save-excursion' defeated by `set-buffer', Stefan Monnier, 2011/03/10
- Re: `save-excursion' defeated by `set-buffer', Andreas Röhler, 2011/03/11
- Message not available
- Re: `save-excursion' defeated by `set-buffer', David Kastrup, 2011/03/11
- Re: `save-excursion' defeated by `set-buffer', Andreas Röhler, 2011/03/11
- Message not available
- Re: `save-excursion' defeated by `set-buffer', David Kastrup, 2011/03/11
- Message not available
- Re: `save-excursion' defeated by `set-buffer', Stefan Monnier, 2011/03/11
- Re: `save-excursion' defeated by `set-buffer',
Eli Zaretskii <=
- Re: `save-excursion' defeated by `set-buffer', Andreas Röhler, 2011/03/12
- RE: `save-excursion' defeated by `set-buffer', Drew Adams, 2011/03/12
- Re: `save-excursion' defeated by `set-buffer', Eli Zaretskii, 2011/03/12
- RE: `save-excursion' defeated by `set-buffer', Drew Adams, 2011/03/12
- Re: `save-excursion' defeated by `set-buffer', Juanma Barranquero, 2011/03/14
- RE: `save-excursion' defeated by `set-buffer', Drew Adams, 2011/03/14
- Message not available
- Re: `save-excursion' defeated by `set-buffer', Uday Reddy, 2011/03/12
- RE: `save-excursion' defeated by `set-buffer', Drew Adams, 2011/03/13
- Message not available
- Re: `save-excursion' defeated by `set-buffer', Uday Reddy, 2011/03/13
- RE: `save-excursion' defeated by `set-buffer', Drew Adams, 2011/03/14