Bjorn Winckler wrote:
> >> It was attached to the post I replied to in the original thread (I did
> >> not include it inline since last time I did so the text got mangled).
> >> Here it is again.
> >
> > This looks wrong. fast_breakcheck() reads input to see if a CTRL-C was
> > typed. But the loop above has ui_inchar() that does this already. It
> > sends a SIGINT to the child process group then.
> >
> > So what's the problem you are trying to solve?
>
> The original problem was this: go to e.g. the vim src/ directory and
> enter ":grep a *.c". During this operation it is impossible to halt
> Vim using ctrl-c. (I've tested on Mac OS X, and sc confirmed the
> problem on Linux).
OK, I see the problem on FreeBSD as well.
> When using a gui it seems ctrl-c is never handled but it does work
> without the gui so I figured that particular loop (where I added the
> breakcheck) only checked for SIGINT (since it is sent in console mode
> when ctrl-c is pressed, but not in the GUI). Adding the breakcheck
> fixed the problem so I guessed that this loop had only been tested
> properly without a gui.
>
> I had a look at ui_inchar() but I can't see where it handles ctrl-c
> when the gui is in use?
I'm not sure how it is supposed to work. A brief look shows that it
may have been intended that:
the loop in os_unix.c calls ui_inchar()
ui_inchar()
-> read_from_input_buf()
-> fill_input_buf()
checks for CTRL-C and sets got_int
So something in between stops this from happening.
If I do ":!cat" then typing CTRL-C does appear to work. Perhaps it's
the flood of output to the screen that stops the CTRL-C check? No time
to investigate further right now.
--
hundred-and-one symptoms of being an internet addict:
47. You are so familiar with the WWW that you find the search engines useless.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---