diff options
Diffstat (limited to 'common/util.c')
-rw-r--r-- | common/util.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/common/util.c b/common/util.c index 0caafb39..d66058a6 100644 --- a/common/util.c +++ b/common/util.c @@ -1,4 +1,4 @@ -#define _XOPEN_SOURCE 700 +#define _POSIX_C_SOURCE 200809L #include <assert.h> #include <sys/types.h> #include <sys/stat.h> @@ -13,7 +13,6 @@ #include <xkbcommon/xkbcommon-names.h> #include <wlr/types/wlr_keyboard.h> #include "log.h" -#include "readline.h" #include "util.h" int wrap(int i, int max) { @@ -24,7 +23,8 @@ int numlen(int n) { if (n == 0) { return 1; } - return log10(n) + 1; + // Account for the '-' in negative numbers. + return log10(abs(n)) + (n > 0 ? 1 : 2); } static struct modifier_key { @@ -86,11 +86,12 @@ pid_t get_parent_pid(pid_t child) { char *token = NULL; const char *sep = " "; FILE *stat = NULL; + size_t buf_size = 0; sprintf(file_name, "/proc/%d/stat", child); if ((stat = fopen(file_name, "r"))) { - if ((buffer = read_line(stat))) { + if (getline(&buffer, &buf_size, stat) != -1) { token = strtok(buffer, sep); // pid token = strtok(NULL, sep); // executable name token = strtok(NULL, sep); // state |