summaryrefslogtreecommitdiff
path: root/misc.c
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2022-07-27 12:48:37 -0300
committermrb0nk500 <b0nk@b0nk.xyz>2022-07-27 12:48:37 -0300
commit061067957d925a8cbe3a7e09cb354488f362734c (patch)
tree6adc1a6530d7e5f4c229da8c7e6390061b6845aa /misc.c
parentbe48dd9af6d9fb1b7ab5c90fcb0c8b1cb3a20738 (diff)
misc: Make `get_line()` simpler by using `strcspn()`
Diffstat (limited to 'misc.c')
-rw-r--r--misc.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/misc.c b/misc.c
index 9fda9e6..e9c864b 100644
--- a/misc.c
+++ b/misc.c
@@ -56,17 +56,17 @@ char *read_file(const char *filename, long *size) {
}
char *get_line(char **str) {
- char *s;
- size_t i;
- char *tmp = *str;
-
- for (i = 0; tmp[i] != '\n' && tmp[i] != '\0'; i++);
+ if (str == NULL || *str == NULL) {
+ return NULL;
+ } else {
+ size_t i = strcspn(*str, "\n");
+ char *s = calloc(i+1, sizeof(char));
- s = calloc(i+1, sizeof(char));
- memcpy(s, *str, i);
+ memcpy(s, *str, i);
- *str += (i+1);
- return s;
+ *str += (i+1);
+ return s;
+ }
}
char *make_str(const char *str) {