Mercurial > hg > early-roguelike
comparison srogue/mdport.c @ 162:600873555ec0
Don't swap signal handlers in md_shellescape().
md_shellescape() sets SIGINT and SIGQUIT to be ignored, storing the
previous handlers, and restores them after the shell exits. But it
mixed up the two handlers.
Since the signals were usually handled by the same function, this fix
doesn't have much effect, but anything that makes signal code less
confusing is a good thing.
author | John "Elwin" Edwards |
---|---|
date | Mon, 08 Jun 2015 10:01:25 -0400 |
parents | e6c8652473fe |
children | 10c273a62228 |
comparison
equal
deleted
inserted
replaced
161:78ca6502d2a6 | 162:600873555ec0 |
---|---|
608 myquit = signal(SIGQUIT, SIG_IGN); | 608 myquit = signal(SIGQUIT, SIG_IGN); |
609 #endif | 609 #endif |
610 while (wait(&ret_status) != pid) | 610 while (wait(&ret_status) != pid) |
611 continue; | 611 continue; |
612 | 612 |
613 signal(SIGINT, myquit); | 613 signal(SIGINT, myend); |
614 #ifdef SIGQUIT | 614 #ifdef SIGQUIT |
615 signal(SIGQUIT, myend); | 615 signal(SIGQUIT, myquit); |
616 #endif | 616 #endif |
617 } | 617 } |
618 return(ret_status); | 618 return(ret_status); |
619 #elif defined(HAVE__SPAWNL) | 619 #elif defined(HAVE__SPAWNL) |
620 return((int)_spawnl(_P_WAIT,md_getshell(),"shell",NULL,0)); | 620 return((int)_spawnl(_P_WAIT,md_getshell(),"shell",NULL,0)); |