From b707973a228a7f7d7399b6113b7f78d6248a432d Mon Sep 17 00:00:00 2001 From: ben Date: Sat, 17 Feb 2007 22:33:11 +0000 Subject: [PATCH] Use preprocessor trickery to make the signal translation mechanism a little less hideous. The output of the preprocessor should be basically unchanged. git-svn-id: svn://svn.tartarus.org/sgt/putty@7294 cda61777-01e9-0310-a592-d414129be87e --- ssh.c | 56 +++++++++++++++++--------------------------------------- 1 file changed, 17 insertions(+), 39 deletions(-) diff --git a/ssh.c b/ssh.c index 1d17882e..bcc1dd1b 100644 --- a/ssh.c +++ b/ssh.c @@ -6398,71 +6398,49 @@ static void ssh2_msg_channel_request(Ssh ssh, struct Packet *pktin) if (0) ; +#define TRANSLATE_SIGNAL(s) \ + else if (siglen == lenof(#s)-1 && !memcmp(sig, #s, siglen)) \ + ssh->exitcode = 128 + SIG ## s #ifdef SIGABRT - else if (siglen == lenof("ABRT")-1 && - !memcmp(sig, "ABRT", siglen)) - ssh->exitcode = 128 + SIGABRT; + TRANSLATE_SIGNAL(ABRT); #endif #ifdef SIGALRM - else if (siglen == lenof("ALRM")-1 && - !memcmp(sig, "ALRM", siglen)) - ssh->exitcode = 128 + SIGALRM; + TRANSLATE_SIGNAL(ALRM); #endif #ifdef SIGFPE - else if (siglen == lenof("FPE")-1 && - !memcmp(sig, "FPE", siglen)) - ssh->exitcode = 128 + SIGFPE; + TRANSLATE_SIGNAL(FPE); #endif #ifdef SIGHUP - else if (siglen == lenof("HUP")-1 && - !memcmp(sig, "HUP", siglen)) - ssh->exitcode = 128 + SIGHUP; + TRANSLATE_SIGNAL(HUP); #endif #ifdef SIGILL - else if (siglen == lenof("ILL")-1 && - !memcmp(sig, "ILL", siglen)) - ssh->exitcode = 128 + SIGILL; + TRANSLATE_SIGNAL(ILL); #endif #ifdef SIGINT - else if (siglen == lenof("INT")-1 && - !memcmp(sig, "INT", siglen)) - ssh->exitcode = 128 + SIGINT; + TRANSLATE_SIGNAL(INT); #endif #ifdef SIGKILL - else if (siglen == lenof("KILL")-1 && - !memcmp(sig, "KILL", siglen)) - ssh->exitcode = 128 + SIGKILL; + TRANSLATE_SIGNAL(KILL); #endif #ifdef SIGPIPE - else if (siglen == lenof("PIPE")-1 && - !memcmp(sig, "PIPE", siglen)) - ssh->exitcode = 128 + SIGPIPE; + TRANSLATE_SIGNAL(PIPE); #endif #ifdef SIGQUIT - else if (siglen == lenof("QUIT")-1 && - !memcmp(sig, "QUIT", siglen)) - ssh->exitcode = 128 + SIGQUIT; + TRANSLATE_SIGNAL(QUIT); #endif #ifdef SIGSEGV - else if (siglen == lenof("SEGV")-1 && - !memcmp(sig, "SEGV", siglen)) - ssh->exitcode = 128 + SIGSEGV; + TRANSLATE_SIGNAL(SEGV); #endif #ifdef SIGTERM - else if (siglen == lenof("TERM")-1 && - !memcmp(sig, "TERM", siglen)) - ssh->exitcode = 128 + SIGTERM; + TRANSLATE_SIGNAL(TERM); #endif #ifdef SIGUSR1 - else if (siglen == lenof("USR1")-1 && - !memcmp(sig, "USR1", siglen)) - ssh->exitcode = 128 + SIGUSR1; + TRANSLATE_SIGNAL(USR1); #endif #ifdef SIGUSR2 - else if (siglen == lenof("USR2")-1 && - !memcmp(sig, "USR2", siglen)) - ssh->exitcode = 128 + SIGUSR2; + TRANSLATE_SIGNAL(USR2); #endif +#undef TRANSLATE_SIGNAL else ssh->exitcode = 128; } -- 2.11.0