[[[ Let user immediately exit svn client by hitting control-c three times. * subversion/svn/main.c (handled_cancel_times): New variable. (signal_handler): If we see the signal three times, exit with an error. ]]] Index: subversion/svn/main.c =================================================================== --- subversion/svn/main.c (revision 18847) +++ subversion/svn/main.c (working copy) @@ -768,11 +768,18 @@ check_lib_versions(void) /* A flag to see if we've been cancelled by the client or not. */ static volatile sig_atomic_t cancelled = FALSE; +/* See how many times we have been sent a signal to cancel. */ +static volatile sig_atomic_t handled_cancel_times = 0; + /* A signal handler to support cancellation. */ static void signal_handler(int signum) { - apr_signal(signum, SIG_IGN); + handled_cancel_times++; + + /* If the user is adamant about exiting now, exit now. */ + if (handled_cancel_times == 3) + exit(1); cancelled = TRUE; }