mirror of https://github.com/xzeldon/htop.git
warning fixes
This commit is contained in:
parent
5cc8998688
commit
02a30bfecd
|
@ -28,7 +28,7 @@ int BatteryMeter_attributes[] = {
|
||||||
BATTERY
|
BATTERY
|
||||||
};
|
};
|
||||||
|
|
||||||
static unsigned long int parseUevent(FILE * file, char *key) {
|
static unsigned long int parseUevent(FILE * file, const char *key) {
|
||||||
char line[100];
|
char line[100];
|
||||||
unsigned long int dValue = 0;
|
unsigned long int dValue = 0;
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ static ACPresence chkIsOnline() {
|
||||||
|
|
||||||
if (access(PROCDIR "/acpi/ac_adapter", F_OK) == 0) {
|
if (access(PROCDIR "/acpi/ac_adapter", F_OK) == 0) {
|
||||||
const struct dirent *dirEntries;
|
const struct dirent *dirEntries;
|
||||||
char *power_supplyPath = PROCDIR "/acpi/ac_adapter";
|
const char *power_supplyPath = PROCDIR "/acpi/ac_adapter";
|
||||||
DIR *power_supplyDir = opendir(power_supplyPath);
|
DIR *power_supplyDir = opendir(power_supplyPath);
|
||||||
char *entryName;
|
char *entryName;
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ static ACPresence chkIsOnline() {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
char *power_supplyPath = "/sys/class/power_supply";
|
const char *power_supplyPath = "/sys/class/power_supply";
|
||||||
|
|
||||||
if (access("/sys/class/power_supply", F_OK) == 0) {
|
if (access("/sys/class/power_supply", F_OK) == 0) {
|
||||||
const struct dirent *dirEntries;
|
const struct dirent *dirEntries;
|
||||||
|
@ -240,7 +240,7 @@ static double getProcBatData() {
|
||||||
|
|
||||||
static double getSysBatData() {
|
static double getSysBatData() {
|
||||||
const struct dirent *dirEntries;
|
const struct dirent *dirEntries;
|
||||||
char *power_supplyPath = "/sys/class/power_supply/";
|
const char *power_supplyPath = "/sys/class/power_supply/";
|
||||||
DIR *power_supplyDir = opendir(power_supplyPath);
|
DIR *power_supplyDir = opendir(power_supplyPath);
|
||||||
|
|
||||||
|
|
||||||
|
@ -292,7 +292,7 @@ static void BatteryMeter_setValues(Meter * this, char *buffer, int len) {
|
||||||
|
|
||||||
this->values[0] = percent;
|
this->values[0] = percent;
|
||||||
|
|
||||||
char *onAcText, *onBatteryText, *unknownText;
|
const char *onAcText, *onBatteryText, *unknownText;
|
||||||
|
|
||||||
unknownText = "%.1f%%";
|
unknownText = "%.1f%%";
|
||||||
if (this->mode == TEXT_METERMODE) {
|
if (this->mode == TEXT_METERMODE) {
|
||||||
|
|
|
@ -23,17 +23,17 @@ typedef struct CategoriesPanel_ {
|
||||||
|
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
static char* MetersFunctions[] = {" ", " ", " ", "Type ", " ", " ", "MoveUp", "MoveDn", "Remove", "Done ", NULL};
|
static const char* MetersFunctions[] = {" ", " ", " ", "Type ", " ", " ", "MoveUp", "MoveDn", "Remove", "Done ", NULL};
|
||||||
|
|
||||||
static char* AvailableMetersFunctions[] = {" ", " ", " ", " ", "Add L ", "Add R ", " ", " ", " ", "Done ", NULL};
|
static const char* AvailableMetersFunctions[] = {" ", " ", " ", " ", "Add L ", "Add R ", " ", " ", " ", "Done ", NULL};
|
||||||
|
|
||||||
static char* DisplayOptionsFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL};
|
static const char* DisplayOptionsFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL};
|
||||||
|
|
||||||
static char* ColumnsFunctions[] = {" ", " ", " ", " ", " ", " ", "MoveUp", "MoveDn", "Remove", "Done ", NULL};
|
static const char* ColumnsFunctions[] = {" ", " ", " ", " ", " ", " ", "MoveUp", "MoveDn", "Remove", "Done ", NULL};
|
||||||
|
|
||||||
static char* ColorsFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL};
|
static const char* ColorsFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL};
|
||||||
|
|
||||||
static char* AvailableColumnsFunctions[] = {" ", " ", " ", " ", "Add ", " ", " ", " ", " ", "Done ", NULL};
|
static const char* AvailableColumnsFunctions[] = {" ", " ", " ", " ", "Add ", " ", " ", " ", " ", "Done ", NULL};
|
||||||
|
|
||||||
static void CategoriesPanel_delete(Object* object) {
|
static void CategoriesPanel_delete(Object* object) {
|
||||||
Panel* super = (Panel*) object;
|
Panel* super = (Panel*) object;
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
|
|
||||||
What's new in version 0.8.4
|
What's new in version 0.8.4
|
||||||
|
|
||||||
|
* Show custom thread names
|
||||||
|
(thanks to Anders Torger)
|
||||||
|
* Fix license terms with regard to PLPA
|
||||||
|
(thanks to Tom Callaway)
|
||||||
|
|
||||||
What's new in version 0.8.3
|
What's new in version 0.8.3
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ typedef struct ColorsPanel_ {
|
||||||
|
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
static char* ColorSchemes[] = {
|
static const char* ColorSchemes[] = {
|
||||||
"Default",
|
"Default",
|
||||||
"Monochromatic",
|
"Monochromatic",
|
||||||
"Black on White",
|
"Black on White",
|
||||||
|
|
|
@ -36,17 +36,17 @@ char* FUNCTIONBAR_CLASS = "FunctionBar";
|
||||||
#define FUNCTIONBAR_CLASS NULL
|
#define FUNCTIONBAR_CLASS NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static char* FunctionBar_FKeys[] = {"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", NULL};
|
static const char* FunctionBar_FKeys[] = {"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", NULL};
|
||||||
|
|
||||||
static char* FunctionBar_FLabels[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", NULL};
|
static const char* FunctionBar_FLabels[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", NULL};
|
||||||
|
|
||||||
static int FunctionBar_FEvents[] = {KEY_F(1), KEY_F(2), KEY_F(3), KEY_F(4), KEY_F(5), KEY_F(6), KEY_F(7), KEY_F(8), KEY_F(9), KEY_F(10)};
|
static int FunctionBar_FEvents[] = {KEY_F(1), KEY_F(2), KEY_F(3), KEY_F(4), KEY_F(5), KEY_F(6), KEY_F(7), KEY_F(8), KEY_F(9), KEY_F(10)};
|
||||||
|
|
||||||
FunctionBar* FunctionBar_new(char** functions, char** keys, int* events) {
|
FunctionBar* FunctionBar_new(const char** functions, const char** keys, int* events) {
|
||||||
FunctionBar* this = malloc(sizeof(FunctionBar));
|
FunctionBar* this = malloc(sizeof(FunctionBar));
|
||||||
Object_setClass(this, FUNCTIONBAR_CLASS);
|
Object_setClass(this, FUNCTIONBAR_CLASS);
|
||||||
((Object*) this)->delete = FunctionBar_delete;
|
((Object*) this)->delete = FunctionBar_delete;
|
||||||
this->functions = functions;
|
this->functions = (char**) functions;
|
||||||
if (keys && events) {
|
if (keys && events) {
|
||||||
this->staticData = false;
|
this->staticData = false;
|
||||||
this->functions = malloc(sizeof(char*) * 15);
|
this->functions = malloc(sizeof(char*) * 15);
|
||||||
|
@ -60,8 +60,8 @@ FunctionBar* FunctionBar_new(char** functions, char** keys, int* events) {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this->staticData = true;
|
this->staticData = true;
|
||||||
this->functions = functions ? functions : FunctionBar_FLabels;
|
this->functions = (char**)( functions ? functions : FunctionBar_FLabels );
|
||||||
this->keys = FunctionBar_FKeys;
|
this->keys = (char**) FunctionBar_FKeys;
|
||||||
this->events = FunctionBar_FEvents;
|
this->events = FunctionBar_FEvents;
|
||||||
this->size = 10;
|
this->size = 10;
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ void FunctionBar_delete(Object* cast) {
|
||||||
free(this);
|
free(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FunctionBar_setLabel(FunctionBar* this, int event, char* text) {
|
void FunctionBar_setLabel(FunctionBar* this, int event, const char* text) {
|
||||||
assert(!this->staticData);
|
assert(!this->staticData);
|
||||||
for (int i = 0; i < this->size; i++) {
|
for (int i = 0; i < this->size; i++) {
|
||||||
if (this->events[i] == event) {
|
if (this->events[i] == event) {
|
||||||
|
|
|
@ -37,11 +37,11 @@ extern char* FUNCTIONBAR_CLASS;
|
||||||
#define FUNCTIONBAR_CLASS NULL
|
#define FUNCTIONBAR_CLASS NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
FunctionBar* FunctionBar_new(char** functions, char** keys, int* events);
|
FunctionBar* FunctionBar_new(const char** functions, const char** keys, int* events);
|
||||||
|
|
||||||
void FunctionBar_delete(Object* cast);
|
void FunctionBar_delete(Object* cast);
|
||||||
|
|
||||||
void FunctionBar_setLabel(FunctionBar* this, int event, char* text);
|
void FunctionBar_setLabel(FunctionBar* this, int event, const char* text);
|
||||||
|
|
||||||
void FunctionBar_draw(FunctionBar* this, char* buffer);
|
void FunctionBar_draw(FunctionBar* this, char* buffer);
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ int HostnameMeter_attributes[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static void HostnameMeter_setValues(Meter* this, char* buffer, int size) {
|
static void HostnameMeter_setValues(Meter* this, char* buffer, int size) {
|
||||||
|
(void) this;
|
||||||
gethostname(buffer, size-1);
|
gethostname(buffer, size-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ static void ListItem_display(Object* cast, RichString* out) {
|
||||||
RichString_write(out, CRT_colors[DEFAULT_COLOR], buffer);
|
RichString_write(out, CRT_colors[DEFAULT_COLOR], buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
ListItem* ListItem_new(char* value, int key) {
|
ListItem* ListItem_new(const char* value, int key) {
|
||||||
ListItem* this = malloc(sizeof(ListItem));
|
ListItem* this = malloc(sizeof(ListItem));
|
||||||
Object_setClass(this, LISTITEM_CLASS);
|
Object_setClass(this, LISTITEM_CLASS);
|
||||||
((Object*)this)->display = ListItem_display;
|
((Object*)this)->display = ListItem_display;
|
||||||
|
|
|
@ -30,7 +30,7 @@ extern char* LISTITEM_CLASS;
|
||||||
#define LISTITEM_CLASS NULL
|
#define LISTITEM_CLASS NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ListItem* ListItem_new(char* value, int key);
|
ListItem* ListItem_new(const char* value, int key);
|
||||||
|
|
||||||
void ListItem_append(ListItem* this, char* text);
|
void ListItem_append(ListItem* this, char* text);
|
||||||
|
|
||||||
|
|
|
@ -21,10 +21,10 @@ int LoadMeter_attributes[] = { LOAD };
|
||||||
static inline void LoadAverageMeter_scan(double* one, double* five, double* fifteen) {
|
static inline void LoadAverageMeter_scan(double* one, double* five, double* fifteen) {
|
||||||
int activeProcs, totalProcs, lastProc;
|
int activeProcs, totalProcs, lastProc;
|
||||||
FILE *fd = fopen(PROCDIR "/loadavg", "r");
|
FILE *fd = fopen(PROCDIR "/loadavg", "r");
|
||||||
int read = fscanf(fd, "%lf %lf %lf %d/%d %d", one, five, fifteen,
|
int total = fscanf(fd, "%lf %lf %lf %d/%d %d", one, five, fifteen,
|
||||||
&activeProcs, &totalProcs, &lastProc);
|
&activeProcs, &totalProcs, &lastProc);
|
||||||
(void) read;
|
(void) total;
|
||||||
assert(read == 6);
|
assert(total == 6);
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,11 +38,11 @@ static void MemoryMeter_setValues(Meter* this, char* buffer, int size) {
|
||||||
static void MemoryMeter_display(Object* cast, RichString* out) {
|
static void MemoryMeter_display(Object* cast, RichString* out) {
|
||||||
char buffer[50];
|
char buffer[50];
|
||||||
Meter* this = (Meter*)cast;
|
Meter* this = (Meter*)cast;
|
||||||
int div = 1024; char* format = "%ldM ";
|
int k = 1024; const char* format = "%ldM ";
|
||||||
long int totalMem = this->total / div;
|
long int totalMem = this->total / k;
|
||||||
long int usedMem = this->values[0] / div;
|
long int usedMem = this->values[0] / k;
|
||||||
long int buffersMem = this->values[1] / div;
|
long int buffersMem = this->values[1] / k;
|
||||||
long int cachedMem = this->values[2] / div;
|
long int cachedMem = this->values[2] / k;
|
||||||
RichString_init(out);
|
RichString_init(out);
|
||||||
RichString_append(out, CRT_colors[METER_TEXT], ":");
|
RichString_append(out, CRT_colors[METER_TEXT], ":");
|
||||||
sprintf(buffer, format, totalMem);
|
sprintf(buffer, format, totalMem);
|
||||||
|
|
21
Meter.c
21
Meter.c
|
@ -42,7 +42,7 @@ typedef void(*Meter_Draw)(Meter*, int, int, int);
|
||||||
|
|
||||||
struct MeterMode_ {
|
struct MeterMode_ {
|
||||||
Meter_Draw draw;
|
Meter_Draw draw;
|
||||||
char* uiName;
|
const char* uiName;
|
||||||
int h;
|
int h;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -53,9 +53,9 @@ struct MeterType_ {
|
||||||
int items;
|
int items;
|
||||||
double total;
|
double total;
|
||||||
int* attributes;
|
int* attributes;
|
||||||
char* name;
|
const char* name;
|
||||||
char* uiName;
|
const char* uiName;
|
||||||
char* caption;
|
const char* caption;
|
||||||
MeterType_Init init;
|
MeterType_Init init;
|
||||||
MeterType_Done done;
|
MeterType_Done done;
|
||||||
MeterType_SetMode setMode;
|
MeterType_SetMode setMode;
|
||||||
|
@ -161,7 +161,7 @@ void Meter_delete(Object* cast) {
|
||||||
free(this);
|
free(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Meter_setCaption(Meter* this, char* caption) {
|
void Meter_setCaption(Meter* this, const char* caption) {
|
||||||
free(this->caption);
|
free(this->caption);
|
||||||
this->caption = strdup(caption);
|
this->caption = strdup(caption);
|
||||||
}
|
}
|
||||||
|
@ -325,7 +325,7 @@ static int GraphMeterMode_colors[21] = {
|
||||||
GRAPH_8, GRAPH_8, GRAPH_9
|
GRAPH_8, GRAPH_8, GRAPH_9
|
||||||
};
|
};
|
||||||
|
|
||||||
static char* GraphMeterMode_characters = "^`'-.,_~'`-.,_~'`-.,_";
|
static const char* GraphMeterMode_characters = "^`'-.,_~'`-.,_~'`-.,_";
|
||||||
|
|
||||||
static void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
|
static void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
|
||||||
|
|
||||||
|
@ -345,15 +345,15 @@ static void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
|
||||||
value /= this->total;
|
value /= this->total;
|
||||||
drawBuffer[METER_BUFFER_LEN - 1] = value;
|
drawBuffer[METER_BUFFER_LEN - 1] = value;
|
||||||
for (int i = METER_BUFFER_LEN - w, k = 0; i < METER_BUFFER_LEN; i++, k++) {
|
for (int i = METER_BUFFER_LEN - w, k = 0; i < METER_BUFFER_LEN; i++, k++) {
|
||||||
double value = drawBuffer[i];
|
value = drawBuffer[i];
|
||||||
DrawDot( CRT_colors[DEFAULT_COLOR], y, ' ' );
|
DrawDot( CRT_colors[DEFAULT_COLOR], y, ' ' );
|
||||||
DrawDot( CRT_colors[DEFAULT_COLOR], y+1, ' ' );
|
DrawDot( CRT_colors[DEFAULT_COLOR], y+1, ' ' );
|
||||||
DrawDot( CRT_colors[DEFAULT_COLOR], y+2, ' ' );
|
DrawDot( CRT_colors[DEFAULT_COLOR], y+2, ' ' );
|
||||||
|
|
||||||
double threshold = 1.00;
|
double threshold = 1.00;
|
||||||
for (int i = 0; i < 21; i++, threshold -= 0.05)
|
for (int j = 0; j < 21; j++, threshold -= 0.05)
|
||||||
if (value >= threshold) {
|
if (value >= threshold) {
|
||||||
DrawDot(CRT_colors[GraphMeterMode_colors[i]], y+(i/7.0), GraphMeterMode_characters[i]);
|
DrawDot(CRT_colors[GraphMeterMode_colors[j]], y+(j/7.0), GraphMeterMode_characters[j]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -362,7 +362,7 @@ static void GraphMeterMode_draw(Meter* this, int x, int y, int w) {
|
||||||
|
|
||||||
/* ---------- LEDMeterMode ---------- */
|
/* ---------- LEDMeterMode ---------- */
|
||||||
|
|
||||||
static char* LEDMeterMode_digits[3][10] = {
|
static const char* LEDMeterMode_digits[3][10] = {
|
||||||
{ " __ "," "," __ "," __ "," "," __ "," __ "," __ "," __ "," __ "},
|
{ " __ "," "," __ "," __ "," "," __ "," __ "," __ "," __ "," __ "},
|
||||||
{ "| |"," |"," __|"," __|","|__|","|__ ","|__ "," |","|__|","|__|"},
|
{ "| |"," |"," __|"," __|","|__|","|__ ","|__ "," |","|__|","|__|"},
|
||||||
{ "|__|"," |","|__ "," __|"," |"," __|","|__|"," |","|__|"," __|"},
|
{ "|__|"," |","|__ "," __|"," |"," __|","|__|"," |","|__|"," __|"},
|
||||||
|
@ -374,6 +374,7 @@ static void LEDMeterMode_drawDigit(int x, int y, int n) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LEDMeterMode_draw(Meter* this, int x, int y, int w) {
|
static void LEDMeterMode_draw(Meter* this, int x, int y, int w) {
|
||||||
|
(void) w;
|
||||||
MeterType* type = this->type;
|
MeterType* type = this->type;
|
||||||
char buffer[METER_BUFFER_LEN];
|
char buffer[METER_BUFFER_LEN];
|
||||||
type->setValues(this, buffer, METER_BUFFER_LEN - 1);
|
type->setValues(this, buffer, METER_BUFFER_LEN - 1);
|
||||||
|
|
10
Meter.h
10
Meter.h
|
@ -44,7 +44,7 @@ typedef void(*Meter_Draw)(Meter*, int, int, int);
|
||||||
|
|
||||||
struct MeterMode_ {
|
struct MeterMode_ {
|
||||||
Meter_Draw draw;
|
Meter_Draw draw;
|
||||||
char* uiName;
|
const char* uiName;
|
||||||
int h;
|
int h;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -55,9 +55,9 @@ struct MeterType_ {
|
||||||
int items;
|
int items;
|
||||||
double total;
|
double total;
|
||||||
int* attributes;
|
int* attributes;
|
||||||
char* name;
|
const char* name;
|
||||||
char* uiName;
|
const char* uiName;
|
||||||
char* caption;
|
const char* caption;
|
||||||
MeterType_Init init;
|
MeterType_Init init;
|
||||||
MeterType_Done done;
|
MeterType_Done done;
|
||||||
MeterType_SetMode setMode;
|
MeterType_SetMode setMode;
|
||||||
|
@ -120,7 +120,7 @@ Meter* Meter_new(ProcessList* pl, int param, MeterType* type);
|
||||||
|
|
||||||
void Meter_delete(Object* cast);
|
void Meter_delete(Object* cast);
|
||||||
|
|
||||||
void Meter_setCaption(Meter* this, char* caption);
|
void Meter_setCaption(Meter* this, const char* caption);
|
||||||
|
|
||||||
void Meter_setMode(Meter* this, int modeIndex);
|
void Meter_setMode(Meter* this, int modeIndex);
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ static HandlerResult MetersPanel_EventHandler(Panel* super, int ch) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
MetersPanel* MetersPanel_new(Settings* settings, char* header, Vector* meters, ScreenManager* scr) {
|
MetersPanel* MetersPanel_new(Settings* settings, const char* header, Vector* meters, ScreenManager* scr) {
|
||||||
MetersPanel* this = (MetersPanel*) malloc(sizeof(MetersPanel));
|
MetersPanel* this = (MetersPanel*) malloc(sizeof(MetersPanel));
|
||||||
Panel* super = (Panel*) this;
|
Panel* super = (Panel*) this;
|
||||||
Panel_init(super, 1, 1, 1, 1, LISTITEM_CLASS, true);
|
Panel_init(super, 1, 1, 1, 1, LISTITEM_CLASS, true);
|
||||||
|
|
|
@ -21,6 +21,6 @@ typedef struct MetersPanel_ {
|
||||||
} MetersPanel;
|
} MetersPanel;
|
||||||
|
|
||||||
|
|
||||||
MetersPanel* MetersPanel_new(Settings* settings, char* header, Vector* meters, ScreenManager* scr);
|
MetersPanel* MetersPanel_new(Settings* settings, const char* header, Vector* meters, ScreenManager* scr);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -43,9 +43,9 @@ typedef struct OpenFilesScreen_ {
|
||||||
|
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
static char* tbFunctions[] = {"Refresh", "Done ", NULL};
|
static const char* tbFunctions[] = {"Refresh", "Done ", NULL};
|
||||||
|
|
||||||
static char* tbKeys[] = {"F5", "Esc"};
|
static const char* tbKeys[] = {"F5", "Esc"};
|
||||||
|
|
||||||
static int tbEvents[] = {KEY_F(5), 27};
|
static int tbEvents[] = {KEY_F(5), 27};
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@ static OpenFiles_ProcessData* OpenFilesScreen_getProcessData(int pid) {
|
||||||
|
|
||||||
static void OpenFilesScreen_scan(OpenFilesScreen* this) {
|
static void OpenFilesScreen_scan(OpenFilesScreen* this) {
|
||||||
Panel* panel = this->display;
|
Panel* panel = this->display;
|
||||||
int index = MAX(Panel_getSelectedIndex(panel), 0);
|
int idx = MAX(Panel_getSelectedIndex(panel), 0);
|
||||||
Panel_prune(panel);
|
Panel_prune(panel);
|
||||||
OpenFiles_ProcessData* process = OpenFilesScreen_getProcessData(this->process->pid);
|
OpenFiles_ProcessData* process = OpenFilesScreen_getProcessData(this->process->pid);
|
||||||
if (process->error == 127) {
|
if (process->error == 127) {
|
||||||
|
@ -144,7 +144,7 @@ static void OpenFilesScreen_scan(OpenFilesScreen* this) {
|
||||||
}
|
}
|
||||||
free(process);
|
free(process);
|
||||||
Vector_sort(panel->items);
|
Vector_sort(panel->items);
|
||||||
Panel_setSelected(panel, index);
|
Panel_setSelected(panel, idx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OpenFilesScreen_run(OpenFilesScreen* this) {
|
void OpenFilesScreen_run(OpenFilesScreen* this) {
|
||||||
|
|
2
Panel.c
2
Panel.c
|
@ -113,7 +113,7 @@ inline void Panel_setRichHeader(Panel* this, RichString header) {
|
||||||
this->needsRedraw = true;
|
this->needsRedraw = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void Panel_setHeader(Panel* this, char* header) {
|
inline void Panel_setHeader(Panel* this, const char* header) {
|
||||||
Panel_setRichHeader(this, RichString_quickString(CRT_colors[PANEL_HEADER_FOCUS], header));
|
Panel_setRichHeader(this, RichString_quickString(CRT_colors[PANEL_HEADER_FOCUS], header));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
Panel.h
2
Panel.h
|
@ -76,7 +76,7 @@ void Panel_done(Panel* this);
|
||||||
|
|
||||||
extern void Panel_setRichHeader(Panel* this, RichString header);
|
extern void Panel_setRichHeader(Panel* this, RichString header);
|
||||||
|
|
||||||
extern void Panel_setHeader(Panel* this, char* header);
|
extern void Panel_setHeader(Panel* this, const char* header);
|
||||||
|
|
||||||
void Panel_setEventHandler(Panel* this, Panel_EventHandler eh);
|
void Panel_setEventHandler(Panel* this, Panel_EventHandler eh);
|
||||||
|
|
||||||
|
|
26
Process.c
26
Process.c
|
@ -73,16 +73,16 @@ typedef struct Process_ {
|
||||||
struct ProcessList_ *pl;
|
struct ProcessList_ *pl;
|
||||||
bool updated;
|
bool updated;
|
||||||
|
|
||||||
unsigned int pid;
|
pid_t pid;
|
||||||
char* comm;
|
char* comm;
|
||||||
int indent;
|
int indent;
|
||||||
char state;
|
char state;
|
||||||
bool tag;
|
bool tag;
|
||||||
unsigned int ppid;
|
pid_t ppid;
|
||||||
unsigned int pgrp;
|
unsigned int pgrp;
|
||||||
unsigned int session;
|
unsigned int session;
|
||||||
unsigned int tty_nr;
|
unsigned int tty_nr;
|
||||||
unsigned int tgid;
|
pid_t tgid;
|
||||||
int tpgid;
|
int tpgid;
|
||||||
unsigned long int flags;
|
unsigned long int flags;
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -160,7 +160,7 @@ char* PROCESS_CLASS = "Process";
|
||||||
#define PROCESS_CLASS NULL
|
#define PROCESS_CLASS NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
char *Process_fieldNames[] = {
|
const char *Process_fieldNames[] = {
|
||||||
"", "PID", "Command", "STATE", "PPID", "PGRP", "SESSION",
|
"", "PID", "Command", "STATE", "PPID", "PGRP", "SESSION",
|
||||||
"TTY_NR", "TPGID", "FLAGS", "MINFLT", "CMINFLT", "MAJFLT", "CMAJFLT",
|
"TTY_NR", "TPGID", "FLAGS", "MINFLT", "CMINFLT", "MAJFLT", "CMAJFLT",
|
||||||
"UTIME", "STIME", "CUTIME", "CSTIME", "PRIORITY", "NICE", "ITREALVALUE",
|
"UTIME", "STIME", "CUTIME", "CSTIME", "PRIORITY", "NICE", "ITREALVALUE",
|
||||||
|
@ -182,7 +182,7 @@ char *Process_fieldNames[] = {
|
||||||
"*** report bug! ***"
|
"*** report bug! ***"
|
||||||
};
|
};
|
||||||
|
|
||||||
char *Process_fieldTitles[] = {
|
const char *Process_fieldTitles[] = {
|
||||||
"", " PID ", "Command ", "S ", " PPID ", " PGRP ", " SESN ",
|
"", " PID ", "Command ", "S ", " PPID ", " PGRP ", " SESN ",
|
||||||
" TTY ", "TPGID ", "- ", "- ", "- ", "- ", "- ",
|
" TTY ", "TPGID ", "- ", "- ", "- ", "- ", "- ",
|
||||||
" UTIME+ ", " STIME+ ", "- ", "- ", "PRI ", " NI ", "- ",
|
" UTIME+ ", " STIME+ ", "- ", "- ", "PRI ", " NI ", "- ",
|
||||||
|
@ -198,7 +198,7 @@ char *Process_fieldTitles[] = {
|
||||||
" VXID ",
|
" VXID ",
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_TASKSTATS
|
#ifdef HAVE_TASKSTATS
|
||||||
" RD_CHAR ", " WR_CHAR ", " RD_SYSC ", " WR_SYSC ", " IO_RD ", " IO_WR ", " IO_CANCEL ",
|
" RD_CHAR ", " WR_CHAR ", " RD_SYSC ", " WR_SYSC ", " IO_RBYTES ", " IO_WBYTES ", " IO_CANCEL ",
|
||||||
" IORR ", " IOWR ", " IO ",
|
" IORR ", " IOWR ", " IO ",
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -367,7 +367,7 @@ static void Process_writeField(Process* this, RichString* str, ProcessField fiel
|
||||||
case M_SHARE: Process_printLargeNumber(this, str, this->m_share * PAGE_SIZE_KB); return;
|
case M_SHARE: Process_printLargeNumber(this, str, this->m_share * PAGE_SIZE_KB); return;
|
||||||
case ST_UID: snprintf(buffer, n, "%4d ", this->st_uid); break;
|
case ST_UID: snprintf(buffer, n, "%4d ", this->st_uid); break;
|
||||||
case USER: {
|
case USER: {
|
||||||
if (Process_getuid != this->st_uid)
|
if (Process_getuid != (int) this->st_uid)
|
||||||
attr = CRT_colors[PROCESS_SHADOW];
|
attr = CRT_colors[PROCESS_SHADOW];
|
||||||
if (this->user) {
|
if (this->user) {
|
||||||
snprintf(buffer, n, "%-8s ", this->user);
|
snprintf(buffer, n, "%-8s ", this->user);
|
||||||
|
@ -435,7 +435,7 @@ static void Process_display(Object* cast, RichString* out) {
|
||||||
RichString_init(out);
|
RichString_init(out);
|
||||||
for (int i = 0; fields[i]; i++)
|
for (int i = 0; fields[i]; i++)
|
||||||
Process_writeField(this, out, fields[i]);
|
Process_writeField(this, out, fields[i]);
|
||||||
if (this->pl->shadowOtherUsers && this->st_uid != Process_getuid)
|
if (this->pl->shadowOtherUsers && (int)this->st_uid != Process_getuid)
|
||||||
RichString_setAttr(out, CRT_colors[PROCESS_SHADOW]);
|
RichString_setAttr(out, CRT_colors[PROCESS_SHADOW]);
|
||||||
if (this->tag == true)
|
if (this->tag == true)
|
||||||
RichString_setAttr(out, CRT_colors[PROCESS_TAG]);
|
RichString_setAttr(out, CRT_colors[PROCESS_TAG]);
|
||||||
|
@ -467,7 +467,7 @@ Process* Process_new(struct ProcessList_ *pl) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Process* Process_clone(Process* this) {
|
Process* Process_clone(Process* this) {
|
||||||
Process* clone = malloc(sizeof(Process));
|
Process* copy = malloc(sizeof(Process));
|
||||||
#if HAVE_TASKSTATS
|
#if HAVE_TASKSTATS
|
||||||
this->io_rchar = 0;
|
this->io_rchar = 0;
|
||||||
this->io_wchar = 0;
|
this->io_wchar = 0;
|
||||||
|
@ -481,10 +481,10 @@ Process* Process_clone(Process* this) {
|
||||||
this->io_rate_write_time = 0;
|
this->io_rate_write_time = 0;
|
||||||
this->io_cancelled_write_bytes = 0;
|
this->io_cancelled_write_bytes = 0;
|
||||||
#endif
|
#endif
|
||||||
memcpy(clone, this, sizeof(Process));
|
memcpy(copy, this, sizeof(Process));
|
||||||
this->comm = NULL;
|
this->comm = NULL;
|
||||||
this->pid = 0;
|
this->pid = 0;
|
||||||
return clone;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Process_toggleTag(Process* this) {
|
void Process_toggleTag(Process* this) {
|
||||||
|
@ -512,8 +512,8 @@ bool Process_setAffinity(Process* this, unsigned long mask) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void Process_sendSignal(Process* this, int signal) {
|
void Process_sendSignal(Process* this, int sgn) {
|
||||||
kill(this->pid, signal);
|
kill(this->pid, sgn);
|
||||||
}
|
}
|
||||||
|
|
||||||
int Process_pidCompare(const void* v1, const void* v2) {
|
int Process_pidCompare(const void* v1, const void* v2) {
|
||||||
|
|
14
Process.h
14
Process.h
|
@ -46,7 +46,7 @@ in the source distribution for its full text.
|
||||||
|
|
||||||
|
|
||||||
#ifndef Process_isThread
|
#ifndef Process_isThread
|
||||||
#define Process_isThread(process) (process->pid != process->tgid || process->m_size == 0)
|
#define Process_isThread(_process) (_process->pid != _process->tgid || _process->m_size == 0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef enum ProcessField_ {
|
typedef enum ProcessField_ {
|
||||||
|
@ -75,16 +75,16 @@ typedef struct Process_ {
|
||||||
struct ProcessList_ *pl;
|
struct ProcessList_ *pl;
|
||||||
bool updated;
|
bool updated;
|
||||||
|
|
||||||
unsigned int pid;
|
pid_t pid;
|
||||||
char* comm;
|
char* comm;
|
||||||
int indent;
|
int indent;
|
||||||
char state;
|
char state;
|
||||||
bool tag;
|
bool tag;
|
||||||
unsigned int ppid;
|
pid_t ppid;
|
||||||
unsigned int pgrp;
|
unsigned int pgrp;
|
||||||
unsigned int session;
|
unsigned int session;
|
||||||
unsigned int tty_nr;
|
unsigned int tty_nr;
|
||||||
unsigned int tgid;
|
pid_t tgid;
|
||||||
int tpgid;
|
int tpgid;
|
||||||
unsigned long int flags;
|
unsigned long int flags;
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -161,9 +161,9 @@ extern char* PROCESS_CLASS;
|
||||||
#define PROCESS_CLASS NULL
|
#define PROCESS_CLASS NULL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern char *Process_fieldNames[];
|
extern const char *Process_fieldNames[];
|
||||||
|
|
||||||
extern char *Process_fieldTitles[];
|
extern const char *Process_fieldTitles[];
|
||||||
|
|
||||||
#define ONE_K 1024
|
#define ONE_K 1024
|
||||||
#define ONE_M (ONE_K * ONE_K)
|
#define ONE_M (ONE_K * ONE_K)
|
||||||
|
@ -185,7 +185,7 @@ unsigned long Process_getAffinity(Process* this);
|
||||||
bool Process_setAffinity(Process* this, unsigned long mask);
|
bool Process_setAffinity(Process* this, unsigned long mask);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void Process_sendSignal(Process* this, int signal);
|
void Process_sendSignal(Process* this, int sgn);
|
||||||
|
|
||||||
int Process_pidCompare(const void* v1, const void* v2);
|
int Process_pidCompare(const void* v1, const void* v2);
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ in the source distribution for its full text.
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
@ -699,6 +700,7 @@ static bool ProcessList_processEntries(ProcessList* this, const char* dirname, P
|
||||||
int percent_cpu = (process->utime + process->stime - lasttimes) /
|
int percent_cpu = (process->utime + process->stime - lasttimes) /
|
||||||
period * 100.0;
|
period * 100.0;
|
||||||
process->percent_cpu = MAX(MIN(percent_cpu, processors*100.0), 0.0);
|
process->percent_cpu = MAX(MIN(percent_cpu, processors*100.0), 0.0);
|
||||||
|
if (isnan(process->percent_cpu)) process->percent_cpu = 0.0;
|
||||||
|
|
||||||
process->percent_mem = (process->m_resident * PAGE_SIZE_KB) /
|
process->percent_mem = (process->m_resident * PAGE_SIZE_KB) /
|
||||||
(float)(this->totalMem) *
|
(float)(this->totalMem) *
|
||||||
|
|
|
@ -30,6 +30,7 @@ in the source distribution for its full text.
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
12
RichString.c
12
RichString.c
|
@ -52,7 +52,7 @@ typedef struct RichString_ {
|
||||||
|
|
||||||
#ifdef HAVE_LIBNCURSESW
|
#ifdef HAVE_LIBNCURSESW
|
||||||
|
|
||||||
inline void RichString_appendn(RichString* this, int attrs, char* data_c, int len) {
|
inline void RichString_appendn(RichString* this, int attrs, const char* data_c, int len) {
|
||||||
wchar_t data[RICHSTRING_MAXLEN];
|
wchar_t data[RICHSTRING_MAXLEN];
|
||||||
len = mbstowcs(data, data_c, RICHSTRING_MAXLEN);
|
len = mbstowcs(data, data_c, RICHSTRING_MAXLEN);
|
||||||
if (len<0)
|
if (len<0)
|
||||||
|
@ -88,7 +88,7 @@ int RichString_findChar(RichString *this, char c, int start) {
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
inline void RichString_appendn(RichString* this, int attrs, char* data_c, int len) {
|
inline void RichString_appendn(RichString* this, int attrs, const char* data_c, int len) {
|
||||||
int last = MIN(RICHSTRING_MAXLEN - 1, len + this->len);
|
int last = MIN(RICHSTRING_MAXLEN - 1, len + this->len);
|
||||||
for (int i = this->len, j = 0; i < last; i++, j++)
|
for (int i = this->len, j = 0; i < last; i++, j++)
|
||||||
this->chstr[i] = (isprint(data_c[j]) ? data_c[j] : '?') | attrs;
|
this->chstr[i] = (isprint(data_c[j]) ? data_c[j] : '?') | attrs;
|
||||||
|
@ -108,7 +108,7 @@ void RichString_setAttrn(RichString *this, int attrs, int start, int finish) {
|
||||||
int RichString_findChar(RichString *this, char c, int start) {
|
int RichString_findChar(RichString *this, char c, int start) {
|
||||||
chtype* ch = this->chstr + start;
|
chtype* ch = this->chstr + start;
|
||||||
for (int i = start; i < this->len; i++) {
|
for (int i = start; i < this->len; i++) {
|
||||||
if ((*ch & 0xff) == c)
|
if ((*ch & 0xff) == (chtype) c)
|
||||||
return i;
|
return i;
|
||||||
ch++;
|
ch++;
|
||||||
}
|
}
|
||||||
|
@ -125,16 +125,16 @@ void RichString_setAttr(RichString *this, int attrs) {
|
||||||
RichString_setAttrn(this, attrs, 0, this->len - 1);
|
RichString_setAttrn(this, attrs, 0, this->len - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void RichString_append(RichString* this, int attrs, char* data) {
|
inline void RichString_append(RichString* this, int attrs, const char* data) {
|
||||||
RichString_appendn(this, attrs, data, strlen(data));
|
RichString_appendn(this, attrs, data, strlen(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
void RichString_write(RichString* this, int attrs, char* data) {
|
void RichString_write(RichString* this, int attrs, const char* data) {
|
||||||
RichString_init(this);
|
RichString_init(this);
|
||||||
RichString_append(this, attrs, data);
|
RichString_append(this, attrs, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
RichString RichString_quickString(int attrs, char* data) {
|
RichString RichString_quickString(int attrs, const char* data) {
|
||||||
RichString str;
|
RichString str;
|
||||||
RichString_initVal(str);
|
RichString_initVal(str);
|
||||||
RichString_write(&str, attrs, data);
|
RichString_write(&str, attrs, data);
|
||||||
|
|
10
RichString.h
10
RichString.h
|
@ -53,7 +53,7 @@ typedef struct RichString_ {
|
||||||
|
|
||||||
#ifdef HAVE_LIBNCURSESW
|
#ifdef HAVE_LIBNCURSESW
|
||||||
|
|
||||||
extern void RichString_appendn(RichString* this, int attrs, char* data_c, int len);
|
extern void RichString_appendn(RichString* this, int attrs, const char* data_c, int len);
|
||||||
|
|
||||||
extern void RichString_setAttrn(RichString *this, int attrs, int start, int finish);
|
extern void RichString_setAttrn(RichString *this, int attrs, int start, int finish);
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ int RichString_findChar(RichString *this, char c, int start);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
extern void RichString_appendn(RichString* this, int attrs, char* data_c, int len);
|
extern void RichString_appendn(RichString* this, int attrs, const char* data_c, int len);
|
||||||
|
|
||||||
void RichString_setAttrn(RichString *this, int attrs, int start, int finish);
|
void RichString_setAttrn(RichString *this, int attrs, int start, int finish);
|
||||||
|
|
||||||
|
@ -73,10 +73,10 @@ void RichString_prune(RichString* this);
|
||||||
|
|
||||||
void RichString_setAttr(RichString *this, int attrs);
|
void RichString_setAttr(RichString *this, int attrs);
|
||||||
|
|
||||||
extern void RichString_append(RichString* this, int attrs, char* data);
|
extern void RichString_append(RichString* this, int attrs, const char* data);
|
||||||
|
|
||||||
void RichString_write(RichString* this, int attrs, char* data);
|
void RichString_write(RichString* this, int attrs, const char* data);
|
||||||
|
|
||||||
RichString RichString_quickString(int attrs, char* data);
|
RichString RichString_quickString(int attrs, const char* data);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -89,10 +89,10 @@ void ScreenManager_add(ScreenManager* this, Panel* item, FunctionBar* fuBar, int
|
||||||
this->itemCount++;
|
this->itemCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
Panel* ScreenManager_remove(ScreenManager* this, int index) {
|
Panel* ScreenManager_remove(ScreenManager* this, int idx) {
|
||||||
assert(this->itemCount > index);
|
assert(this->itemCount > idx);
|
||||||
Panel* panel = (Panel*) Vector_remove(this->items, index);
|
Panel* panel = (Panel*) Vector_remove(this->items, idx);
|
||||||
Vector_remove(this->fuBars, index);
|
Vector_remove(this->fuBars, idx);
|
||||||
this->fuBar = NULL;
|
this->fuBar = NULL;
|
||||||
this->itemCount--;
|
this->itemCount--;
|
||||||
return panel;
|
return panel;
|
||||||
|
|
|
@ -47,7 +47,7 @@ extern int ScreenManager_size(ScreenManager* this);
|
||||||
|
|
||||||
void ScreenManager_add(ScreenManager* this, Panel* item, FunctionBar* fuBar, int size);
|
void ScreenManager_add(ScreenManager* this, Panel* item, FunctionBar* fuBar, int size);
|
||||||
|
|
||||||
Panel* ScreenManager_remove(ScreenManager* this, int index);
|
Panel* ScreenManager_remove(ScreenManager* this, int idx);
|
||||||
|
|
||||||
void ScreenManager_resize(ScreenManager* this, int x1, int y1, int x2, int y2);
|
void ScreenManager_resize(ScreenManager* this, int x1, int y1, int x2, int y2);
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ in the source distribution for its full text.
|
||||||
|
|
||||||
typedef struct Signal_ {
|
typedef struct Signal_ {
|
||||||
Object super;
|
Object super;
|
||||||
char* name;
|
const char* name;
|
||||||
int number;
|
int number;
|
||||||
} Signal;
|
} Signal;
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ static void Signal_display(Object* cast, RichString* out) {
|
||||||
RichString_write(out, CRT_colors[DEFAULT_COLOR], buffer);
|
RichString_write(out, CRT_colors[DEFAULT_COLOR], buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Signal* Signal_new(char* name, int number) {
|
static Signal* Signal_new(const char* name, int number) {
|
||||||
Signal* this = malloc(sizeof(Signal));
|
Signal* this = malloc(sizeof(Signal));
|
||||||
Object_setClass(this, SIGNAL_CLASS);
|
Object_setClass(this, SIGNAL_CLASS);
|
||||||
((Object*)this)->display = Signal_display;
|
((Object*)this)->display = Signal_display;
|
||||||
|
|
|
@ -21,7 +21,7 @@ in the source distribution for its full text.
|
||||||
|
|
||||||
typedef struct Signal_ {
|
typedef struct Signal_ {
|
||||||
Object super;
|
Object super;
|
||||||
char* name;
|
const char* name;
|
||||||
int number;
|
int number;
|
||||||
} Signal;
|
} Signal;
|
||||||
|
|
||||||
|
|
|
@ -26,13 +26,13 @@ static HandlerResult SignalsPanel_eventHandler(Panel* super, int ch) {
|
||||||
int size = Panel_size(super);
|
int size = Panel_size(super);
|
||||||
|
|
||||||
if (ch <= 255 && isdigit(ch)) {
|
if (ch <= 255 && isdigit(ch)) {
|
||||||
int signal = ch-48 + this->state;
|
int sgn = ch-48 + this->state;
|
||||||
for (int i = 0; i < size; i++)
|
for (int i = 0; i < size; i++)
|
||||||
if (((Signal*) Panel_get(super, i))->number == signal) {
|
if (((Signal*) Panel_get(super, i))->number == sgn) {
|
||||||
Panel_setSelected(super, i);
|
Panel_setSelected(super, i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this->state = signal * 10;
|
this->state = sgn * 10;
|
||||||
if (this->state > 100)
|
if (this->state > 100)
|
||||||
this->state = 0;
|
this->state = 0;
|
||||||
return HANDLED;
|
return HANDLED;
|
||||||
|
|
10
String.c
10
String.c
|
@ -18,11 +18,11 @@ in the source distribution for its full text.
|
||||||
#define String_startsWith(s, match) (strstr((s), (match)) == (s))
|
#define String_startsWith(s, match) (strstr((s), (match)) == (s))
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
inline char* String_copy(char* orig) {
|
inline char* String_copy(const char* orig) {
|
||||||
return strdup(orig);
|
return strdup(orig);
|
||||||
}
|
}
|
||||||
|
|
||||||
char* String_cat(char* s1, char* s2) {
|
char* String_cat(const char* s1, const char* s2) {
|
||||||
int l1 = strlen(s1);
|
int l1 = strlen(s1);
|
||||||
int l2 = strlen(s2);
|
int l2 = strlen(s2);
|
||||||
char* out = malloc(l1 + l2 + 1);
|
char* out = malloc(l1 + l2 + 1);
|
||||||
|
@ -31,7 +31,7 @@ char* String_cat(char* s1, char* s2) {
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
char* String_trim(char* in) {
|
char* String_trim(const char* in) {
|
||||||
while (in[0] == ' ' || in[0] == '\t' || in[0] == '\n') {
|
while (in[0] == ' ' || in[0] == '\t' || in[0] == '\n') {
|
||||||
in++;
|
in++;
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,7 @@ inline int String_eq(const char* s1, const char* s2) {
|
||||||
return (strcmp(s1, s2) == 0);
|
return (strcmp(s1, s2) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
char** String_split(char* s, char sep) {
|
char** String_split(const char* s, char sep) {
|
||||||
const int rate = 10;
|
const int rate = 10;
|
||||||
char** out = (char**) malloc(sizeof(char*) * rate);
|
char** out = (char**) malloc(sizeof(char*) * rate);
|
||||||
int ctr = 0;
|
int ctr = 0;
|
||||||
|
@ -93,7 +93,7 @@ void String_freeArray(char** s) {
|
||||||
free(s);
|
free(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
int String_contains_i(char* s, char* match) {
|
int String_contains_i(const char* s, const char* match) {
|
||||||
int lens = strlen(s);
|
int lens = strlen(s);
|
||||||
int lenmatch = strlen(match);
|
int lenmatch = strlen(match);
|
||||||
for (int i = 0; i < lens-lenmatch; i++) {
|
for (int i = 0; i < lens-lenmatch; i++) {
|
||||||
|
|
10
String.h
10
String.h
|
@ -19,19 +19,19 @@ in the source distribution for its full text.
|
||||||
|
|
||||||
#define String_startsWith(s, match) (strstr((s), (match)) == (s))
|
#define String_startsWith(s, match) (strstr((s), (match)) == (s))
|
||||||
|
|
||||||
extern char* String_copy(char* orig);
|
extern char* String_copy(const char* orig);
|
||||||
|
|
||||||
char* String_cat(char* s1, char* s2);
|
char* String_cat(const char* s1, const char* s2);
|
||||||
|
|
||||||
char* String_trim(char* in);
|
char* String_trim(const char* in);
|
||||||
|
|
||||||
extern int String_eq(const char* s1, const char* s2);
|
extern int String_eq(const char* s1, const char* s2);
|
||||||
|
|
||||||
char** String_split(char* s, char sep);
|
char** String_split(const char* s, char sep);
|
||||||
|
|
||||||
void String_freeArray(char** s);
|
void String_freeArray(char** s);
|
||||||
|
|
||||||
int String_contains_i(char* s, char* match);
|
int String_contains_i(const char* s, const char* match);
|
||||||
|
|
||||||
char* String_getToken(const char* line, const unsigned short int numMatch);
|
char* String_getToken(const char* line, const unsigned short int numMatch);
|
||||||
|
|
||||||
|
|
|
@ -32,9 +32,9 @@ typedef struct TraceScreen_ {
|
||||||
|
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
static char* tbFunctions[] = {"AutoScroll ", "Stop Tracing ", "Done ", NULL};
|
static const char* tbFunctions[] = {"AutoScroll ", "Stop Tracing ", "Done ", NULL};
|
||||||
|
|
||||||
static char* tbKeys[] = {"F4", "F5", "Esc"};
|
static const char* tbKeys[] = {"F4", "F5", "Esc"};
|
||||||
|
|
||||||
static int tbEvents[] = {KEY_F(4), KEY_F(5), 27};
|
static int tbEvents[] = {KEY_F(4), KEY_F(5), 27};
|
||||||
|
|
||||||
|
|
62
Vector.c
62
Vector.c
|
@ -127,37 +127,37 @@ static void Vector_checkArraySize(Vector* this) {
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vector_insert(Vector* this, int index, void* data_) {
|
void Vector_insert(Vector* this, int idx, void* data_) {
|
||||||
assert(index >= 0);
|
assert(idx >= 0);
|
||||||
assert(((Object*)data_)->class == this->vectorType);
|
assert(((Object*)data_)->class == this->vectorType);
|
||||||
Object* data = data_;
|
Object* data = data_;
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
|
|
||||||
Vector_checkArraySize(this);
|
Vector_checkArraySize(this);
|
||||||
assert(this->array[this->items] == NULL);
|
assert(this->array[this->items] == NULL);
|
||||||
for (int i = this->items; i >= index; i--) {
|
for (int i = this->items; i >= idx; i--) {
|
||||||
this->array[i+1] = this->array[i];
|
this->array[i+1] = this->array[i];
|
||||||
}
|
}
|
||||||
this->array[index] = data;
|
this->array[idx] = data;
|
||||||
this->items++;
|
this->items++;
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
Object* Vector_take(Vector* this, int index) {
|
Object* Vector_take(Vector* this, int idx) {
|
||||||
assert(index >= 0 && index < this->items);
|
assert(idx >= 0 && idx < this->items);
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
Object* removed = this->array[index];
|
Object* removed = this->array[idx];
|
||||||
assert (removed != NULL);
|
assert (removed != NULL);
|
||||||
this->items--;
|
this->items--;
|
||||||
for (int i = index; i < this->items; i++)
|
for (int i = idx; i < this->items; i++)
|
||||||
this->array[i] = this->array[i+1];
|
this->array[i] = this->array[i+1];
|
||||||
this->array[this->items] = NULL;
|
this->array[this->items] = NULL;
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
return removed;
|
return removed;
|
||||||
}
|
}
|
||||||
|
|
||||||
Object* Vector_remove(Vector* this, int index) {
|
Object* Vector_remove(Vector* this, int idx) {
|
||||||
Object* removed = Vector_take(this, index);
|
Object* removed = Vector_take(this, idx);
|
||||||
if (this->owner) {
|
if (this->owner) {
|
||||||
removed->delete(removed);
|
removed->delete(removed);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -165,52 +165,52 @@ Object* Vector_remove(Vector* this, int index) {
|
||||||
return removed;
|
return removed;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vector_moveUp(Vector* this, int index) {
|
void Vector_moveUp(Vector* this, int idx) {
|
||||||
assert(index >= 0 && index < this->items);
|
assert(idx >= 0 && idx < this->items);
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
if (index == 0)
|
if (idx == 0)
|
||||||
return;
|
return;
|
||||||
Object* temp = this->array[index];
|
Object* temp = this->array[idx];
|
||||||
this->array[index] = this->array[index - 1];
|
this->array[idx] = this->array[idx - 1];
|
||||||
this->array[index - 1] = temp;
|
this->array[idx - 1] = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vector_moveDown(Vector* this, int index) {
|
void Vector_moveDown(Vector* this, int idx) {
|
||||||
assert(index >= 0 && index < this->items);
|
assert(idx >= 0 && idx < this->items);
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
if (index == this->items - 1)
|
if (idx == this->items - 1)
|
||||||
return;
|
return;
|
||||||
Object* temp = this->array[index];
|
Object* temp = this->array[idx];
|
||||||
this->array[index] = this->array[index + 1];
|
this->array[idx] = this->array[idx + 1];
|
||||||
this->array[index + 1] = temp;
|
this->array[idx + 1] = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Vector_set(Vector* this, int index, void* data_) {
|
void Vector_set(Vector* this, int idx, void* data_) {
|
||||||
assert(index >= 0);
|
assert(idx >= 0);
|
||||||
assert(((Object*)data_)->class == this->vectorType);
|
assert(((Object*)data_)->class == this->vectorType);
|
||||||
Object* data = data_;
|
Object* data = data_;
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
|
|
||||||
Vector_checkArraySize(this);
|
Vector_checkArraySize(this);
|
||||||
if (index >= this->items) {
|
if (idx >= this->items) {
|
||||||
this->items = index+1;
|
this->items = idx+1;
|
||||||
} else {
|
} else {
|
||||||
if (this->owner) {
|
if (this->owner) {
|
||||||
Object* removed = this->array[index];
|
Object* removed = this->array[idx];
|
||||||
assert (removed != NULL);
|
assert (removed != NULL);
|
||||||
if (this->owner) {
|
if (this->owner) {
|
||||||
removed->delete(removed);
|
removed->delete(removed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->array[index] = data;
|
this->array[idx] = data;
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
inline Object* Vector_get(Vector* this, int index) {
|
inline Object* Vector_get(Vector* this, int idx) {
|
||||||
assert(index < this->items);
|
assert(idx < this->items);
|
||||||
assert(Vector_isConsistent(this));
|
assert(Vector_isConsistent(this));
|
||||||
return this->array[index];
|
return this->array[idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int Vector_size(Vector* this) {
|
inline int Vector_size(Vector* this) {
|
||||||
|
|
14
Vector.h
14
Vector.h
|
@ -49,19 +49,19 @@ void Vector_prune(Vector* this);
|
||||||
|
|
||||||
void Vector_sort(Vector* this);
|
void Vector_sort(Vector* this);
|
||||||
|
|
||||||
void Vector_insert(Vector* this, int index, void* data_);
|
void Vector_insert(Vector* this, int idx, void* data_);
|
||||||
|
|
||||||
Object* Vector_take(Vector* this, int index);
|
Object* Vector_take(Vector* this, int idx);
|
||||||
|
|
||||||
Object* Vector_remove(Vector* this, int index);
|
Object* Vector_remove(Vector* this, int idx);
|
||||||
|
|
||||||
void Vector_moveUp(Vector* this, int index);
|
void Vector_moveUp(Vector* this, int idx);
|
||||||
|
|
||||||
void Vector_moveDown(Vector* this, int index);
|
void Vector_moveDown(Vector* this, int idx);
|
||||||
|
|
||||||
void Vector_set(Vector* this, int index, void* data_);
|
void Vector_set(Vector* this, int idx, void* data_);
|
||||||
|
|
||||||
extern Object* Vector_get(Vector* this, int index);
|
extern Object* Vector_get(Vector* this, int idx);
|
||||||
|
|
||||||
extern int Vector_size(Vector* this);
|
extern int Vector_size(Vector* this);
|
||||||
|
|
||||||
|
|
48
htop.c
48
htop.c
|
@ -151,7 +151,7 @@ static void showHelp(ProcessList* pl) {
|
||||||
clear();
|
clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
static char* CategoriesFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL};
|
static const char* CategoriesFunctions[] = {" ", " ", " ", " ", " ", " ", " ", " ", " ", "Done ", NULL};
|
||||||
|
|
||||||
static void Setup_run(Settings* settings, int headerHeight) {
|
static void Setup_run(Settings* settings, int headerHeight) {
|
||||||
ScreenManager* scr = ScreenManager_new(0, headerHeight, 0, -1, HORIZONTAL, true);
|
ScreenManager* scr = ScreenManager_new(0, headerHeight, 0, -1, HORIZONTAL, true);
|
||||||
|
@ -184,13 +184,14 @@ static bool changePriority(Panel* panel, int delta) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static HandlerResult pickWithEnter(Panel* panel, int ch) {
|
static HandlerResult pickWithEnter(Panel* panel, int ch) {
|
||||||
|
(void) panel;
|
||||||
if (ch == 13)
|
if (ch == 13)
|
||||||
return BREAK_LOOP;
|
return BREAK_LOOP;
|
||||||
return IGNORED;
|
return IGNORED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Object* pickFromVector(Panel* panel, Panel* list, int x, int y, char** keyLabels, FunctionBar* prevBar) {
|
static Object* pickFromVector(Panel* panel, Panel* list, int x, int y, const char** keyLabels, FunctionBar* prevBar) {
|
||||||
char* fuKeys[] = {"Enter", "Esc", NULL};
|
const char* fuKeys[] = {"Enter", "Esc", NULL};
|
||||||
int fuEvents[] = {13, 27};
|
int fuEvents[] = {13, 27};
|
||||||
if (!list->eventHandler)
|
if (!list->eventHandler)
|
||||||
Panel_setEventHandler(list, pickWithEnter);
|
Panel_setEventHandler(list, pickWithEnter);
|
||||||
|
@ -325,12 +326,12 @@ int main(int argc, char** argv) {
|
||||||
}
|
}
|
||||||
Panel_setRichHeader(panel, ProcessList_printHeader(pl));
|
Panel_setRichHeader(panel, ProcessList_printHeader(pl));
|
||||||
|
|
||||||
char* searchFunctions[] = {"Next ", "Exit ", " Search: ", NULL};
|
const char* searchFunctions[] = {"Next ", "Exit ", " Search: ", NULL};
|
||||||
char* searchKeys[] = {"F3", "Esc", " "};
|
const char* searchKeys[] = {"F3", "Esc", " "};
|
||||||
int searchEvents[] = {KEY_F(3), 27, ERR};
|
int searchEvents[] = {KEY_F(3), 27, ERR};
|
||||||
FunctionBar* searchBar = FunctionBar_new(searchFunctions, searchKeys, searchEvents);
|
FunctionBar* searchBar = FunctionBar_new(searchFunctions, searchKeys, searchEvents);
|
||||||
|
|
||||||
char* defaultFunctions[] = {"Help ", "Setup ", "Search", "Invert", "Tree ",
|
const char* defaultFunctions[] = {"Help ", "Setup ", "Search", "Invert", "Tree ",
|
||||||
"SortBy", "Nice -", "Nice +", "Kill ", "Quit ", NULL};
|
"SortBy", "Nice -", "Nice +", "Kill ", "Quit ", NULL};
|
||||||
FunctionBar* defaultBar = FunctionBar_new(defaultFunctions, NULL, NULL);
|
FunctionBar* defaultBar = FunctionBar_new(defaultFunctions, NULL, NULL);
|
||||||
|
|
||||||
|
@ -358,7 +359,7 @@ int main(int argc, char** argv) {
|
||||||
oldTime = newTime;
|
oldTime = newTime;
|
||||||
if (doRefresh) {
|
if (doRefresh) {
|
||||||
int currPos = Panel_getSelectedIndex(panel);
|
int currPos = Panel_getSelectedIndex(panel);
|
||||||
unsigned int currPid = 0;
|
pid_t currPid = 0;
|
||||||
int currScrollV = panel->scrollV;
|
int currScrollV = panel->scrollV;
|
||||||
if (follow)
|
if (follow)
|
||||||
currPid = ProcessList_get(pl, currPos)->pid;
|
currPid = ProcessList_get(pl, currPos)->pid;
|
||||||
|
@ -372,16 +373,16 @@ int main(int argc, char** argv) {
|
||||||
}
|
}
|
||||||
Panel_prune(panel);
|
Panel_prune(panel);
|
||||||
int size = ProcessList_size(pl);
|
int size = ProcessList_size(pl);
|
||||||
int index = 0;
|
int idx = 0;
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
Process* p = ProcessList_get(pl, i);
|
Process* p = ProcessList_get(pl, i);
|
||||||
if (!userOnly || (p->st_uid == userId)) {
|
if (!userOnly || (p->st_uid == userId)) {
|
||||||
Panel_set(panel, index, (Object*)p);
|
Panel_set(panel, idx, (Object*)p);
|
||||||
if ((!follow && index == currPos) || (follow && p->pid == currPid)) {
|
if ((!follow && idx == currPos) || (follow && p->pid == currPid)) {
|
||||||
Panel_setSelected(panel, index);
|
Panel_setSelected(panel, idx);
|
||||||
panel->scrollV = currScrollV;
|
panel->scrollV = currScrollV;
|
||||||
}
|
}
|
||||||
index++;
|
idx++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -452,7 +453,7 @@ int main(int argc, char** argv) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (isdigit((char)ch)) {
|
if (isdigit((char)ch)) {
|
||||||
unsigned int pid = ch-48 + acc;
|
pid_t pid = ch-48 + acc;
|
||||||
for (int i = 0; i < ProcessList_size(pl) && ((Process*) Panel_getSelected(panel))->pid != pid; i++)
|
for (int i = 0; i < ProcessList_size(pl) && ((Process*) Panel_getSelected(panel))->pid != pid; i++)
|
||||||
Panel_setSelected(panel, i);
|
Panel_setSelected(panel, i);
|
||||||
acc = pid * 10;
|
acc = pid * 10;
|
||||||
|
@ -600,7 +601,7 @@ int main(int argc, char** argv) {
|
||||||
Vector_sort(usersPanel->items);
|
Vector_sort(usersPanel->items);
|
||||||
ListItem* allUsers = ListItem_new("All users", -1);
|
ListItem* allUsers = ListItem_new("All users", -1);
|
||||||
Panel_insert(usersPanel, 0, (Object*) allUsers);
|
Panel_insert(usersPanel, 0, (Object*) allUsers);
|
||||||
char* fuFunctions[] = {"Show ", "Cancel ", NULL};
|
const char* fuFunctions[] = {"Show ", "Cancel ", NULL};
|
||||||
ListItem* picked = (ListItem*) pickFromVector(panel, usersPanel, 20, headerHeight, fuFunctions, defaultBar);
|
ListItem* picked = (ListItem*) pickFromVector(panel, usersPanel, 20, headerHeight, fuFunctions, defaultBar);
|
||||||
if (picked) {
|
if (picked) {
|
||||||
if (picked == allUsers) {
|
if (picked == allUsers) {
|
||||||
|
@ -619,10 +620,10 @@ int main(int argc, char** argv) {
|
||||||
killPanel = (Panel*) SignalsPanel_new(0, 0, 0, 0);
|
killPanel = (Panel*) SignalsPanel_new(0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
SignalsPanel_reset((SignalsPanel*) killPanel);
|
SignalsPanel_reset((SignalsPanel*) killPanel);
|
||||||
char* fuFunctions[] = {"Send ", "Cancel ", NULL};
|
const char* fuFunctions[] = {"Send ", "Cancel ", NULL};
|
||||||
Signal* signal = (Signal*) pickFromVector(panel, killPanel, 15, headerHeight, fuFunctions, defaultBar);
|
Signal* sgn = (Signal*) pickFromVector(panel, killPanel, 15, headerHeight, fuFunctions, defaultBar);
|
||||||
if (signal) {
|
if (sgn) {
|
||||||
if (signal->number != 0) {
|
if (sgn->number != 0) {
|
||||||
Panel_setHeader(panel, "Sending...");
|
Panel_setHeader(panel, "Sending...");
|
||||||
Panel_draw(panel, true);
|
Panel_draw(panel, true);
|
||||||
refresh();
|
refresh();
|
||||||
|
@ -630,13 +631,13 @@ int main(int argc, char** argv) {
|
||||||
for (int i = 0; i < Panel_size(panel); i++) {
|
for (int i = 0; i < Panel_size(panel); i++) {
|
||||||
Process* p = (Process*) Panel_get(panel, i);
|
Process* p = (Process*) Panel_get(panel, i);
|
||||||
if (p->tag) {
|
if (p->tag) {
|
||||||
Process_sendSignal(p, signal->number);
|
Process_sendSignal(p, sgn->number);
|
||||||
anyTagged = true;
|
anyTagged = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!anyTagged) {
|
if (!anyTagged) {
|
||||||
Process* p = (Process*) Panel_getSelected(panel);
|
Process* p = (Process*) Panel_getSelected(panel);
|
||||||
Process_sendSignal(p, signal->number);
|
Process_sendSignal(p, sgn->number);
|
||||||
}
|
}
|
||||||
napms(500);
|
napms(500);
|
||||||
}
|
}
|
||||||
|
@ -651,12 +652,11 @@ int main(int argc, char** argv) {
|
||||||
if (pl->processorCount == 1)
|
if (pl->processorCount == 1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
Process* p = (Process*) Panel_getSelected(panel);
|
unsigned long curr = Process_getAffinity((Process*) Panel_getSelected(panel));
|
||||||
unsigned long curr = Process_getAffinity(p);
|
|
||||||
|
|
||||||
Panel* affinityPanel = AffinityPanel_new(pl->processorCount, curr);
|
Panel* affinityPanel = AffinityPanel_new(pl->processorCount, curr);
|
||||||
|
|
||||||
char* fuFunctions[] = {"Set ", "Cancel ", NULL};
|
const char* fuFunctions[] = {"Set ", "Cancel ", NULL};
|
||||||
void* set = pickFromVector(panel, affinityPanel, 15, headerHeight, fuFunctions, defaultBar);
|
void* set = pickFromVector(panel, affinityPanel, 15, headerHeight, fuFunctions, defaultBar);
|
||||||
if (set) {
|
if (set) {
|
||||||
unsigned long new = AffinityPanel_getAffinity(affinityPanel);
|
unsigned long new = AffinityPanel_getAffinity(affinityPanel);
|
||||||
|
@ -695,7 +695,7 @@ int main(int argc, char** argv) {
|
||||||
{
|
{
|
||||||
Panel* sortPanel = Panel_new(0, 0, 0, 0, LISTITEM_CLASS, true, ListItem_compare);
|
Panel* sortPanel = Panel_new(0, 0, 0, 0, LISTITEM_CLASS, true, ListItem_compare);
|
||||||
Panel_setHeader(sortPanel, "Sort by");
|
Panel_setHeader(sortPanel, "Sort by");
|
||||||
char* fuFunctions[] = {"Sort ", "Cancel ", NULL};
|
const char* fuFunctions[] = {"Sort ", "Cancel ", NULL};
|
||||||
ProcessField* fields = pl->fields;
|
ProcessField* fields = pl->fields;
|
||||||
for (int i = 0; fields[i]; i++) {
|
for (int i = 0; fields[i]; i++) {
|
||||||
char* name = String_trim(Process_fieldTitles[fields[i]]);
|
char* name = String_trim(Process_fieldTitles[fields[i]]);
|
||||||
|
|
Loading…
Reference in New Issue