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
+#define TRANSLATE_SIGNAL(s) \
+ else if (siglen == lenof(#s)-1 && !memcmp(sig, #s, siglen)) \
+ ssh->exitcode = 128 + SIG ## s
- else if (siglen == lenof("ABRT")-1 &&
- !memcmp(sig, "ABRT", siglen))
- ssh->exitcode = 128 + SIGABRT;
+ TRANSLATE_SIGNAL(ABRT);
- else if (siglen == lenof("ALRM")-1 &&
- !memcmp(sig, "ALRM", siglen))
- ssh->exitcode = 128 + SIGALRM;
+ TRANSLATE_SIGNAL(ALRM);
- else if (siglen == lenof("FPE")-1 &&
- !memcmp(sig, "FPE", siglen))
- ssh->exitcode = 128 + SIGFPE;
- else if (siglen == lenof("HUP")-1 &&
- !memcmp(sig, "HUP", siglen))
- ssh->exitcode = 128 + SIGHUP;
- else if (siglen == lenof("ILL")-1 &&
- !memcmp(sig, "ILL", siglen))
- ssh->exitcode = 128 + SIGILL;
- else if (siglen == lenof("INT")-1 &&
- !memcmp(sig, "INT", siglen))
- ssh->exitcode = 128 + SIGINT;
- else if (siglen == lenof("KILL")-1 &&
- !memcmp(sig, "KILL", siglen))
- ssh->exitcode = 128 + SIGKILL;
+ TRANSLATE_SIGNAL(KILL);
- else if (siglen == lenof("PIPE")-1 &&
- !memcmp(sig, "PIPE", siglen))
- ssh->exitcode = 128 + SIGPIPE;
+ TRANSLATE_SIGNAL(PIPE);
- else if (siglen == lenof("QUIT")-1 &&
- !memcmp(sig, "QUIT", siglen))
- ssh->exitcode = 128 + SIGQUIT;
+ TRANSLATE_SIGNAL(QUIT);
- else if (siglen == lenof("SEGV")-1 &&
- !memcmp(sig, "SEGV", siglen))
- ssh->exitcode = 128 + SIGSEGV;
+ TRANSLATE_SIGNAL(SEGV);
- else if (siglen == lenof("TERM")-1 &&
- !memcmp(sig, "TERM", siglen))
- ssh->exitcode = 128 + SIGTERM;
+ TRANSLATE_SIGNAL(TERM);
- else if (siglen == lenof("USR1")-1 &&
- !memcmp(sig, "USR1", siglen))
- ssh->exitcode = 128 + SIGUSR1;
+ TRANSLATE_SIGNAL(USR1);
- else if (siglen == lenof("USR2")-1 &&
- !memcmp(sig, "USR2", siglen))
- ssh->exitcode = 128 + SIGUSR2;
+ TRANSLATE_SIGNAL(USR2);
else
ssh->exitcode = 128;
}
else
ssh->exitcode = 128;
}