Fix build in FreeBSD, and make sure SIGTERM is always the default.

This commit is contained in:
Hisham Muhammad 2015-10-06 12:50:31 -03:00
parent 3fe2f3e28e
commit 125c23ef23
2 changed files with 11 additions and 3 deletions

View File

@ -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;
}

View File

@ -37,7 +37,7 @@ ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_R
int Platform_numberOfFields = LAST_PROCESSFIELD;
static SignalItem Platform_signals[] = {
SignalItem Platform_signals[] = {
{ .name = " 0 Cancel", .number = 0 },
{ .name = " 1 SIGHUP", .number = 1 },
{ .name = " 2 SIGINT", .number = 2 },