Blame xlockmore-5.40-fix_exitcode.patch
|
|
4698a17 |
--- xlock/xlock.c 2011-05-24 03:53:46.000000000 +0200
|
|
|
4698a17 |
+++ xlock/xlock.c 2012-11-19 12:47:42.592261929 +0100
|
|
|
4698a17 |
@@ -1052,6 +1052,7 @@ syslogStop(char *displayName)
|
|
|
4698a17 |
#endif
|
|
|
4698a17 |
|
|
|
4698a17 |
char error_buf[ERROR_BUF];
|
|
|
4698a17 |
+static int error_exitcode = 1;
|
|
|
4698a17 |
|
|
|
4698a17 |
void
|
|
|
4698a17 |
error(const char *buf)
|
|
|
4698a17 |
@@ -1068,7 +1069,14 @@ error(const char *buf)
|
|
|
4698a17 |
#else
|
|
|
4698a17 |
(void) fprintf(stderr, "%s", buf);
|
|
|
4698a17 |
#endif
|
|
|
4698a17 |
- exit(1);
|
|
|
4698a17 |
+ if (error_exitcode < 0) {
|
|
|
4698a17 |
+ int sig = -error_exitcode;
|
|
|
4698a17 |
+ signal(sig, SIG_DFL);
|
|
|
4698a17 |
+ raise(sig);
|
|
|
4698a17 |
+ /* We are still alive?? */
|
|
|
4698a17 |
+ error_exitcode = sig + 128;
|
|
|
4698a17 |
+ }
|
|
|
4698a17 |
+ exit(error_exitcode);
|
|
|
4698a17 |
}
|
|
|
4698a17 |
|
|
|
4698a17 |
/* Server access control support. */
|
|
|
4698a17 |
@@ -2946,6 +2954,7 @@ sigcatch(int signum)
|
|
|
4698a17 |
ProgramName: DEFAULT_NAME, signum,
|
|
|
4698a17 |
(strlen(ProgramName) + strlen(name) <
|
|
|
4698a17 |
ERROR_BUF - 2 * ERROR_LINE) ? name: "?", (long) getuid());
|
|
|
4698a17 |
+ error_exitcode = -signum;
|
|
|
4698a17 |
error(error_buf);
|
|
|
4698a17 |
#endif /* !WIN32 */
|
|
|
4698a17 |
}
|