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