1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-04-22 05:25:03 -05:00

Use preprocessor trickery to make the signal translation mechanism a little

less hideous.  The output of the preprocessor should be basically unchanged.

[originally from svn r7294]
This commit is contained in:
Ben Harris 2007-02-17 22:33:11 +00:00
parent f69a0cf005
commit 3ffd1fbe38

56
ssh.c
View File

@ -6398,71 +6398,49 @@ static void ssh2_msg_channel_request(Ssh ssh, struct Packet *pktin)
if (0) if (0)
; ;
#define TRANSLATE_SIGNAL(s) \
else if (siglen == lenof(#s)-1 && !memcmp(sig, #s, siglen)) \
ssh->exitcode = 128 + SIG ## s
#ifdef SIGABRT #ifdef SIGABRT
else if (siglen == lenof("ABRT")-1 && TRANSLATE_SIGNAL(ABRT);
!memcmp(sig, "ABRT", siglen))
ssh->exitcode = 128 + SIGABRT;
#endif #endif
#ifdef SIGALRM #ifdef SIGALRM
else if (siglen == lenof("ALRM")-1 && TRANSLATE_SIGNAL(ALRM);
!memcmp(sig, "ALRM", siglen))
ssh->exitcode = 128 + SIGALRM;
#endif #endif
#ifdef SIGFPE #ifdef SIGFPE
else if (siglen == lenof("FPE")-1 && TRANSLATE_SIGNAL(FPE);
!memcmp(sig, "FPE", siglen))
ssh->exitcode = 128 + SIGFPE;
#endif #endif
#ifdef SIGHUP #ifdef SIGHUP
else if (siglen == lenof("HUP")-1 && TRANSLATE_SIGNAL(HUP);
!memcmp(sig, "HUP", siglen))
ssh->exitcode = 128 + SIGHUP;
#endif #endif
#ifdef SIGILL #ifdef SIGILL
else if (siglen == lenof("ILL")-1 && TRANSLATE_SIGNAL(ILL);
!memcmp(sig, "ILL", siglen))
ssh->exitcode = 128 + SIGILL;
#endif #endif
#ifdef SIGINT #ifdef SIGINT
else if (siglen == lenof("INT")-1 && TRANSLATE_SIGNAL(INT);
!memcmp(sig, "INT", siglen))
ssh->exitcode = 128 + SIGINT;
#endif #endif
#ifdef SIGKILL #ifdef SIGKILL
else if (siglen == lenof("KILL")-1 && TRANSLATE_SIGNAL(KILL);
!memcmp(sig, "KILL", siglen))
ssh->exitcode = 128 + SIGKILL;
#endif #endif
#ifdef SIGPIPE #ifdef SIGPIPE
else if (siglen == lenof("PIPE")-1 && TRANSLATE_SIGNAL(PIPE);
!memcmp(sig, "PIPE", siglen))
ssh->exitcode = 128 + SIGPIPE;
#endif #endif
#ifdef SIGQUIT #ifdef SIGQUIT
else if (siglen == lenof("QUIT")-1 && TRANSLATE_SIGNAL(QUIT);
!memcmp(sig, "QUIT", siglen))
ssh->exitcode = 128 + SIGQUIT;
#endif #endif
#ifdef SIGSEGV #ifdef SIGSEGV
else if (siglen == lenof("SEGV")-1 && TRANSLATE_SIGNAL(SEGV);
!memcmp(sig, "SEGV", siglen))
ssh->exitcode = 128 + SIGSEGV;
#endif #endif
#ifdef SIGTERM #ifdef SIGTERM
else if (siglen == lenof("TERM")-1 && TRANSLATE_SIGNAL(TERM);
!memcmp(sig, "TERM", siglen))
ssh->exitcode = 128 + SIGTERM;
#endif #endif
#ifdef SIGUSR1 #ifdef SIGUSR1
else if (siglen == lenof("USR1")-1 && TRANSLATE_SIGNAL(USR1);
!memcmp(sig, "USR1", siglen))
ssh->exitcode = 128 + SIGUSR1;
#endif #endif
#ifdef SIGUSR2 #ifdef SIGUSR2
else if (siglen == lenof("USR2")-1 && TRANSLATE_SIGNAL(USR2);
!memcmp(sig, "USR2", siglen))
ssh->exitcode = 128 + SIGUSR2;
#endif #endif
#undef TRANSLATE_SIGNAL
else else
ssh->exitcode = 128; ssh->exitcode = 128;
} }