kalle olavi niemitalo wrote:
> Paul Fox <p...@foxharp.boston.ma.us> writes:
> > when i implemented the change, i wondered if some twisted emacs
> > workflow would be an issue. ;-) and i almost blocked SIGQUIT as
> > well -- the two programs i looked at for precedent (CVS and MH) both
> > block both SIGQUIT and SIGINT when spawning an editor.
> > but since emacs users must have dealt with CVS for a long time before
> > dealing with git, how might they have done so?
> I think I usually ran CVS via vc.el, which prompts for a commit
> message in Emacs before it runs cvs commit. So CVS did not need
> to run $EDITOR.
> I just tried emacsclient with CVS 1.12.13-MirDebian-9, and it
> behaves somewhat differently from Git with pf/editor-ignore-sigint.
> When I tell Emacs to send SIGINT to the *Shell* buffer, CVS prompts:
> cvs commit: warning: editor session failed
> Log message unchanged or not specified
> a)bort, c)ontinue, e)dit, !)reuse this message unchanged for remaining dirs
> Action: (continue)
you're sending SIGINT to the cvs commit command, and that causes the
editor to die right away? that's surprising. i can replicate your
described behavior by setting $VISUAL to a script that just sleeps, and
sending SIGTERM to the cvs commit process. but not by sending SIGINT.
well, i'm not sure what to say. there's a real problem when using the
current code and traditional editors. i thought that the patch in
pf/editor-ignore-sigint reflected standard practice, and indeed it
accomplishes exactly the right thing with those editors. you've shown
a particular work flow involving emacsclient that won't work anymore
with the change made, though there are workarounds. perhaps there's
something the other editors themselves should be doing differently,
but i don't know what that might be.
> and then I can choose to abort.
> With strace, it looks like CVS sets SIG_IGN as the handler of
> SIGINT and SIGQUIT only in the parent process after forking, not
> in the child process that executes the editor.
> CVS also temporarily blocks signals by calling sigprocmask, but
> it undoes that before it forks or waits for the child process.
paul fox, p...@foxharp.boston.ma.us (arlington, ma, where it's 45.5 degrees)
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html