Hi, I'm not sure I can follow you here:
> Alternatively, you can call bye_bye() with the > dont_care_sig parameter, but be aware that there are a few functions > that take the dont_care_sig parameter, but throw that value away. The other installed signal-handlers suspend() and wins_resize_sighandler() are throwing it away because their action doesn't depend on the exact signal delivered - but end_pgm() should certainly base the exit code that it's going to pass on to bye_bye() on the incoming parameter. Patch attached. Regards, Jan
#! /bin/sh /usr/share/dpatch/dpatch-run
## 45_top_exitcode.dpatch by <[EMAIL PROTECTED]>
##
## DP: Make top exit with return code 0 if the program was closed
## DP: cleanly ('q' or end of iteration loop).
@DPATCH@
--- procps-3.2.7/top.cO 2007-08-06 15:57:04.000000000 +0200
+++ procps-3.2.7/top.c 2007-08-06 16:04:07.000000000 +0200
@@ -402,14 +402,13 @@
/*
- * Normal end of execution.
+ * Normal end of execution. Exit with 1 if signaled, else 0.
* catches:
* SIGALRM, SIGHUP, SIGINT, SIGPIPE, SIGQUIT and SIGTERM */
-static void end_pgm (int dont_care_sig) NORETURN;
-static void end_pgm (int dont_care_sig)
+static void end_pgm (int sig) NORETURN;
+static void end_pgm (int sig)
{
- (void)dont_care_sig;
- bye_bye(stdout, 1, NULL);
+ bye_bye(stdout, !!sig, NULL);
}
signature.asc
Description: Digital signature

