aboutsummaryrefslogtreecommitdiff
path: root/swaylock
diff options
context:
space:
mode:
authorIan Fan <ianfan0@gmail.com>2018-12-09 12:09:11 +0000
committerIan Fan <ianfan0@gmail.com>2019-01-01 09:01:25 +0000
commita82b8a3c14e45697708e57f8cb27a8fc6cf31839 (patch)
tree5e30327566fb6f30bd6d319f7b8a96226683e986 /swaylock
parent967566e37f93890bd5255725129c929aeeac709e (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.c33
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;
}