[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Emacs-trunk-diffs] Changes to emacs/src/sysdep.c
From: |
Richard Stallman |
Subject: |
Re: [Emacs-trunk-diffs] Changes to emacs/src/sysdep.c |
Date: |
Sun, 05 Dec 2004 20:40:36 -0500 |
I don't quite understand why it is assumed that everything run by
a post-command-hook or a timer is a critical code not allowed to be
interrupted with C-g?
When code runs asynchronously, the user could interrupt it without
knowing he's interrupting anything. That gives a lot of potential
for confusion.
One of the timers where such assumption has
a negative effect is the isearch lazy highlighting timer which often
enters into a very deep loop (several minutes and more) trying to
fontify regexps with nested repetition constructs, and which is not
interruptible with C-g.
If that loop has the potential to run along time, it should check for
arrival of input, and stop when input arrives.
We were just recently talking about how to implement a construct to
interrupt some code if input arrives. I suggested code to implement
it; then someone reported a problem in it, but I think I found a fix
for that. Would use of that code solve this problem?
Is it a bug that regex.c can't detect long or infinite loops?
It would be nice if it could do so, but I hesitate to say this is a
bug, because that might be tantamount to demanding the impossible.
However, maybe it isn't impossible. Do you think it is doable? Would
you like to try?