martin rudalics <[EMAIL PROTECTED]> writes:

> It's a problem with `save-restriction'.  Take:
>
> (with-current-buffer (get-buffer-create "*foo*")
>   (delete-region (point-min) (point-max))
>   (insert "foo\nbar\nfoo\n")
>   (save-restriction
>     (narrow-to-region (line-beginning-position -1) (line-end-position -1))
>     (error "????")))
>
> It will leave the buffer narrowed although the doc-string of
> `save-restriction' says:
>
> AFAICT Emacs 20 DTRT here, Emacs 21 and 22 don't.  Could you try to
> debug it?

I've tried.  From what I can tell `specpdl' isn't being wound back
afterwards, so `save_restriction_restore' is never called.

In fact, this apparently is the case after any error (unless caught by
`condition-case'), so `specpdl' grows bigger and bigger.  Is that
supposed to happen??

The functions called by `error' are
* signal
** find_handler_clause
*** call_debuger
**** debug
***** recursive-edit
****** command_loop
******* internal_catch
******** command_loop_2
from which it never returns.


regards,
Nikolaj Schumacher


_______________________________________________
emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to