Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,29 @@ jobs:
- name: Build
run: make
- name: Distcheck
run: make distcheck
run: make distcheck DISTCHECK_CONFIGURE_FLAGS=--enable-werror

build-ubuntu-clang-latest:
runs-on: ubuntu-latest
env:
CC: clang-10
steps:
- uses: actions/checkout@v2
- name: install clang repo
run: |
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key 2>/dev/null | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main' -y
sudo apt-get update -q
- name: Install Dependencies
run: sudo apt-get install clang-10 libncursesw5-dev
- name: Bootstrap
run: ./autogen.sh
- name: Configure
run: ./configure --enable-werror
- name: Build
run: make
- name: Distcheck
run: make distcheck DISTCHECK_CONFIGURE_FLAGS=--enable-werror

whitespace_check:
runs-on: ubuntu-latest
Expand Down
14 changes: 7 additions & 7 deletions Action.c
Original file line number Diff line number Diff line change
Expand Up @@ -316,17 +316,17 @@ static Htop_Reaction actionSetAffinity(State* st) {

Process* p = (Process*) Panel_getSelected(panel);
if (!p) return HTOP_OK;
Affinity* affinity = Affinity_get(p, st->pl);
if (!affinity) return HTOP_OK;
Panel* affinityPanel = AffinityPanel_new(st->pl, affinity);
Affinity_delete(affinity);
Affinity* affinity1 = Affinity_get(p, st->pl);
if (!affinity1) return HTOP_OK;
Panel* affinityPanel = AffinityPanel_new(st->pl, affinity1);
Affinity_delete(affinity1);

void* set = Action_pickFromVector(st, affinityPanel, 15, true);
if (set) {
Affinity* affinity = AffinityPanel_getAffinity(affinityPanel, st->pl);
bool ok = MainPanel_foreachProcess((MainPanel*)panel, (MainPanel_ForeachProcessFn) Affinity_set, (Arg){ .v = affinity }, NULL);
Affinity* affinity2 = AffinityPanel_getAffinity(affinityPanel, st->pl);
bool ok = MainPanel_foreachProcess((MainPanel*)panel, (MainPanel_ForeachProcessFn) Affinity_set, (Arg){ .v = affinity2 }, NULL);
if (!ok) beep();
Affinity_delete(affinity);
Affinity_delete(affinity2);
}
Panel_delete((Object*)affinityPanel);
#endif
Expand Down
2 changes: 1 addition & 1 deletion Header.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ char* Header_readMeterName(Header* this, int i, int column) {
int nameLen = strlen(Meter_name(meter));
int len = nameLen + 100;
char* name = xMalloc(len);
strncpy(name, Meter_name(meter), nameLen);
memcpy(name, Meter_name(meter), nameLen);
name[nameLen] = '\0';
if (meter->param)
xSnprintf(name + nameLen, len - nameLen, "(%d)", meter->param);
Expand Down
4 changes: 2 additions & 2 deletions InfoScreen.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ static const char* const InfoScreenKeys[] = {"F3", "F4", "F5", "Esc"};

static int InfoScreenEvents[] = {KEY_F(3), KEY_F(4), KEY_F(5), 27};

InfoScreen* InfoScreen_init(InfoScreen* this, Process* process, FunctionBar* bar, int height, char* panelHeader) {
InfoScreen* InfoScreen_init(InfoScreen* this, Process* process, FunctionBar* bar, int height, const char* panelHeader) {
this->process = process;
if (!bar) {
bar = FunctionBar_new(InfoScreenFunctions, InfoScreenKeys, InfoScreenEvents);
Expand All @@ -75,7 +75,7 @@ InfoScreen* InfoScreen_done(InfoScreen* this) {
return this;
}

void InfoScreen_drawTitled(InfoScreen* this, char* fmt, ...) {
void InfoScreen_drawTitled(InfoScreen* this, const char* fmt, ...) {
va_list ap;
va_start(ap, fmt);
attrset(CRT_colors[METER_TEXT]);
Expand Down
4 changes: 2 additions & 2 deletions InfoScreen.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ struct InfoScreen_ {
Vector* lines;
};

extern InfoScreen* InfoScreen_init(InfoScreen* this, Process* process, FunctionBar* bar, int height, char* panelHeader);
extern InfoScreen* InfoScreen_init(InfoScreen* this, Process* process, FunctionBar* bar, int height, const char* panelHeader);

extern InfoScreen* InfoScreen_done(InfoScreen* this);

extern void InfoScreen_drawTitled(InfoScreen* this, char* fmt, ...);
extern void InfoScreen_drawTitled(InfoScreen* this, const char* fmt, ...);

extern void InfoScreen_addLine(InfoScreen* this, const char* line);

Expand Down
2 changes: 1 addition & 1 deletion Process.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ typedef enum ProcessFields {

typedef struct ProcessPidColumn_ {
int id;
char* label;
const char* label;
} ProcessPidColumn;

typedef struct Process_ {
Expand Down
2 changes: 1 addition & 1 deletion Process.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ typedef enum ProcessFields {

typedef struct ProcessPidColumn_ {
int id;
char* label;
const char* label;
} ProcessPidColumn;

typedef struct Process_ {
Expand Down
5 changes: 1 addition & 4 deletions StringUtils.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,7 @@ char** String_split(const char* s, char sep, int* n) {
s += size + 1;
}
if (s[0] != '\0') {
int size = strlen(s);
char* token = xMalloc(size + 1);
strncpy(token, s, size + 1);
out[ctr] = token;
out[ctr] = xStrdup(s);
ctr++;
}
out = xRealloc(out, sizeof(char*) * (ctr + 1));
Expand Down
26 changes: 13 additions & 13 deletions linux/Battery.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ static unsigned long int parseBatInfo(const char *fileName, const unsigned short
}

char* line = NULL;
for (unsigned short int i = 0; i < lineNum; i++) {
for (unsigned short int j = 0; j < lineNum; j++) {
free(line);
line = String_readLine(file);
if (!line) break;
Expand Down Expand Up @@ -194,26 +194,26 @@ static void Battery_getSysData(double* level, ACPresence* isOnAC) {
const char filePath[50];

xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/type", entryName);
int fd = open(filePath, O_RDONLY);
if (fd == -1)
int fd1 = open(filePath, O_RDONLY);
if (fd1 == -1)
continue;

char type[8];
ssize_t typelen = xread(fd, type, 7);
close(fd);
ssize_t typelen = xread(fd1, type, 7);
close(fd1);
if (typelen < 1)
continue;

if (type[0] == 'B' && type[1] == 'a' && type[2] == 't') {
xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/uevent", entryName);
int fd = open(filePath, O_RDONLY);
if (fd == -1) {
int fd2 = open(filePath, O_RDONLY);
if (fd2 == -1) {
closedir(dir);
return;
}
char buffer[1024];
ssize_t buflen = xread(fd, buffer, 1023);
close(fd);
ssize_t buflen = xread(fd2, buffer, 1023);
close(fd2);
if (buflen < 1) {
closedir(dir);
return;
Expand Down Expand Up @@ -259,18 +259,18 @@ static void Battery_getSysData(double* level, ACPresence* isOnAC) {
}

xSnprintf((char *) filePath, sizeof filePath, SYS_POWERSUPPLY_DIR "/%s/online", entryName);
int fd = open(filePath, O_RDONLY);
if (fd == -1) {
int fd3 = open(filePath, O_RDONLY);
if (fd3 == -1) {
closedir(dir);
return;
}
char buffer[2] = "";
for(;;) {
ssize_t res = read(fd, buffer, 1);
ssize_t res = read(fd3, buffer, 1);
if (res == -1 && errno == EINTR) continue;
break;
}
close(fd);
close(fd3);
if (buffer[0] == '0') {
*isOnAC = AC_ABSENT;
} else if (buffer[0] == '1') {
Expand Down
6 changes: 3 additions & 3 deletions linux/LinuxProcessList.c
Original file line number Diff line number Diff line change
Expand Up @@ -1227,9 +1227,9 @@ static inline double LinuxProcessList_scanCPUFrequency(LinuxProcessList* this) {
(sscanf(buffer, "processor: %d", &cpuid) == 1)
) {
if (cpuid < 0 || cpuid > (cpus - 1)) {
char buffer[64];
xSnprintf(buffer, sizeof(buffer), PROCCPUINFOFILE " contains out-of-range CPU number %d", cpuid);
CRT_fatalError(buffer);
char tmpbuffer[64];
xSnprintf(tmpbuffer, sizeof(tmpbuffer), PROCCPUINFOFILE " contains out-of-range CPU number %d", cpuid);
CRT_fatalError(tmpbuffer);
}
} else if (
(sscanf(buffer, "cpu MHz : %lf", &frequency) == 1) ||
Expand Down
10 changes: 5 additions & 5 deletions linux/Platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ in the source distribution for its full text.
#define CLAMP(x,low,high) (((x)>(high))?(high):(((x)<(low))?(low):(x)))
#endif

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, (int)M_SHARE, STATE, PERCENT_CPU, PERCENT_MEM, TIME, COMM, 0 };

//static ProcessField defaultIoFields[] = { PID, IO_PRIORITY, USER, IO_READ_RATE, IO_WRITE_RATE, IO_RATE, COMM, 0 };

Expand Down Expand Up @@ -94,12 +94,12 @@ static Htop_Reaction Platform_actionSetIOPriority(State* st) {

LinuxProcess* p = (LinuxProcess*) Panel_getSelected(panel);
if (!p) return HTOP_OK;
IOPriority ioprio = p->ioPriority;
Panel* ioprioPanel = IOPriorityPanel_new(ioprio);
IOPriority ioprio1 = p->ioPriority;
Panel* ioprioPanel = IOPriorityPanel_new(ioprio1);
void* set = Action_pickFromVector(st, ioprioPanel, 21, true);
if (set) {
IOPriority ioprio = IOPriorityPanel_getIOPriority(ioprioPanel);
bool ok = MainPanel_foreachProcess((MainPanel*)panel, (MainPanel_ForeachProcessFn) LinuxProcess_setIOPriority, (Arg){ .i = ioprio }, NULL);
IOPriority ioprio2 = IOPriorityPanel_getIOPriority(ioprioPanel);
bool ok = MainPanel_foreachProcess((MainPanel*)panel, (MainPanel_ForeachProcessFn) LinuxProcess_setIOPriority, (Arg){ .i = ioprio2 }, NULL);
if (!ok)
beep();
}
Expand Down
2 changes: 1 addition & 1 deletion scripts/MakeHeader.py.in
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env @PYTHON@
import os, sys, string, io
import os, sys, io
try:
from StringIO import StringIO
except ImportError:
Expand Down