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));