summaryrefslogtreecommitdiffstats
path: root/SignalsPanel.c
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2015-10-06 12:50:31 -0300
committerHisham Muhammad <hisham@gobolinux.org>2015-10-06 12:50:31 -0300
commit125c23ef23cabb1cd7aee25f01fb27061dd3864c (patch)
treea768532d4147527fc4e7ed7aa7e169911123b845 /SignalsPanel.c
parent3fe2f3e28ec183c4cbab112aaf3689ba843a5c5c (diff)
Fix build in FreeBSD, and make sure SIGTERM is always the default.
Diffstat (limited to 'SignalsPanel.c')
-rw-r--r--SignalsPanel.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/SignalsPanel.c b/SignalsPanel.c
index 6a3b89de..9816a848 100644
--- a/SignalsPanel.c
+++ b/SignalsPanel.c
@@ -14,6 +14,7 @@ in the source distribution for its full text.
#include <stdlib.h>
#include <assert.h>
+#include <signal.h>
#include <ctype.h>
@@ -28,9 +29,16 @@ typedef struct SignalItem_ {
Panel* SignalsPanel_new() {
Panel* this = Panel_new(1, 1, 1, 1, true, Class(ListItem), FunctionBar_newEnterEsc("Send ", "Cancel "));
- for(unsigned int i = 0; i < Platform_numberOfSignals; i++)
+ const int defaultSignal = SIGTERM;
+ int defaultPosition = 15;
+ for(unsigned int i = 0; i < Platform_numberOfSignals; i++) {
Panel_set(this, i, (Object*) ListItem_new(Platform_signals[i].name, Platform_signals[i].number));
+ // signal 15 is not always the 15th signal in the table
+ if (Platform_signals[i].number == defaultSignal) {
+ defaultPosition = i;
+ }
+ }
Panel_setHeader(this, "Send signal:");
- Panel_setSelected(this, 16); // 16th item is SIGTERM
+ Panel_setSelected(this, defaultPosition);
return this;
}

© 2014-2024 Faster IT GmbH | imprint | privacy policy