Mercurial > hg > early-roguelike
comparison rogue3/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 | ba9930a7f99d |
children | 12e070d1a780 |
comparison
equal
deleted
inserted
replaced
161:78ca6502d2a6 | 162:600873555ec0 |
---|---|
594 myquit = signal(SIGQUIT, SIG_IGN); | 594 myquit = signal(SIGQUIT, SIG_IGN); |
595 #endif | 595 #endif |
596 while (wait(&ret_status) != pid) | 596 while (wait(&ret_status) != pid) |
597 continue; | 597 continue; |
598 | 598 |
599 signal(SIGINT, myquit); | 599 signal(SIGINT, myend); |
600 #ifdef SIGQUIT | 600 #ifdef SIGQUIT |
601 signal(SIGQUIT, myend); | 601 signal(SIGQUIT, myquit); |
602 #endif | 602 #endif |
603 } | 603 } |
604 return(ret_status); | 604 return(ret_status); |
605 #elif defined(HAVE__SPAWNL) | 605 #elif defined(HAVE__SPAWNL) |
606 return((int)_spawnl(_P_WAIT,md_getshell(),"shell",NULL,0)); | 606 return((int)_spawnl(_P_WAIT,md_getshell(),"shell",NULL,0)); |