diff options
-rw-r--r-- | misc.c | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -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) { |