Merge branch 'master' into wip

Conflicts:
	Process.c
	Process.h
	linux/LinuxProcess.c
	linux/LinuxProcess.h
	linux/LinuxProcessList.c
	unsupported/Platform.c
	unsupported/Platform.h
This commit is contained in:
Hisham Muhammad 2015-03-16 03:22:33 -03:00
commit 5c8b83405b
4 changed files with 21 additions and 13 deletions

View File

@ -13,6 +13,7 @@ This meter written by Ian P. Hands (iphands@gmail.com, ihands@redhat.com).
#include "ProcessList.h" #include "ProcessList.h"
#include "CRT.h" #include "CRT.h"
#include "String.h" #include "String.h"
#include "Platform.h"
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -361,22 +361,27 @@ static void LinuxProcessList_readCGroupFile(LinuxProcess* process, const char* d
process->cgroup = strdup(""); process->cgroup = strdup("");
return; return;
} }
char output[256];
output[0] = '\0';
char* at = output;
int left = 255;
while (!feof(file) && left > 0) {
char buffer[256]; char buffer[256];
char *ok = fgets(buffer, 255, file); char *ok = fgets(buffer, 255, file);
if (ok) { if (!ok) break;
char* trimmed = String_trim(buffer); char* group = strchr(buffer, ':');
int nFields; if (!group) break;
char** fields = String_split(trimmed, ':', &nFields); if (at != output) {
free(trimmed); *at = ';';
free(process->cgroup); at++;
if (nFields >= 3) { left--;
process->cgroup = strndup(fields[2] + 1, 10);
} else {
process->cgroup = strdup("");
} }
String_freeArray(fields); int wrote = snprintf(at, left, "%s", group);
left -= wrote;
} }
fclose(file); fclose(file);
free(process->cgroup);
process->cgroup = strdup(output);
} }
#endif #endif

View File

@ -30,6 +30,7 @@ in the source distribution for its full text.
#include "Action.h" #include "Action.h"
#include "MainPanel.h" #include "MainPanel.h"
#include "BatteryMeter.h" #include "BatteryMeter.h"
#include "LinuxProcess.h"
}*/ }*/
ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, M_SHARE, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 }; ProcessField Platform_defaultFields[] = { PID, USER, PRIORITY, NICE, M_SIZE, M_RESIDENT, M_SHARE, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 };

View File

@ -12,6 +12,7 @@ in the source distribution for its full text.
#include "Action.h" #include "Action.h"
#include "MainPanel.h" #include "MainPanel.h"
#include "BatteryMeter.h" #include "BatteryMeter.h"
#include "LinuxProcess.h"
extern ProcessField Platform_defaultFields[]; extern ProcessField Platform_defaultFields[];