diff options
author | Ian Fan <ianfan0@gmail.com> | 2018-12-09 12:09:11 +0000 |
---|---|---|
committer | Ian Fan <ianfan0@gmail.com> | 2019-01-01 09:01:25 +0000 |
commit | a82b8a3c14e45697708e57f8cb27a8fc6cf31839 (patch) | |
tree | 5e30327566fb6f30bd6d319f7b8a96226683e986 /swaylock | |
parent | 967566e37f93890bd5255725129c929aeeac709e (diff) |
Remove readline.c
All occurrences of read_line have been replaced by getline.
peek_line has been absorbed into detect_brace.
Diffstat (limited to 'swaylock')
-rw-r--r-- | swaylock/main.c | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/swaylock/main.c b/swaylock/main.c index 9aeb4e64..9a4f3b58 100644 --- a/swaylock/main.c +++ b/swaylock/main.c @@ -23,7 +23,6 @@ #include "cairo.h" #include "log.h" #include "loop.h" -#include "readline.h" #include "stringop.h" #include "util.h" #include "wlr-input-inhibitor-unstable-v1-client-protocol.h" @@ -808,36 +807,32 @@ static int load_config(char *path, struct swaylock_state *state, wlr_log(WLR_ERROR, "Failed to read config. Running without it."); return 0; } - char *line; + char *line = NULL; + size_t line_size = 0; + ssize_t nread; int line_number = 0; - while (!feof(config)) { - line = read_line(config); - if (!line) { - continue; - } - + int result = 0; + while ((nread = getline(&line, &line_size, config)) != -1) { line_number++; - if (line[0] == '#') { - free(line); - continue; + + if (line[nread - 1] == '\n') { + line[--nread] = '\0'; } - if (strlen(line) == 0) { - free(line); + + if (!*line || line[0] == '#') { continue; } wlr_log(WLR_DEBUG, "Config Line #%d: %s", line_number, line); - char flag[strlen(line) + 3]; + char flag[nread + 3]; sprintf(flag, "--%s", line); char *argv[] = {"swaylock", flag}; - int result = parse_options(2, argv, state, line_mode, NULL); + result = parse_options(2, argv, state, line_mode, NULL); if (result != 0) { - free(line); - fclose(config); - return result; + break; } - free(line); } + free(line); fclose(config); return 0; } |