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
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.
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