| OLD | NEW |
| 1 #define _GNU_SOURCE | 1 #define _GNU_SOURCE |
| 2 #include "stdio_impl.h" | 2 #include "stdio_impl.h" |
| 3 #include <string.h> | 3 #include <string.h> |
| 4 | 4 |
| 5 char *fgetln(FILE *f, size_t *plen) | 5 char* fgetln(FILE* f, size_t* plen) { |
| 6 { | 6 char *ret = 0, *z; |
| 7 » char *ret = 0, *z; | 7 ssize_t l; |
| 8 » ssize_t l; | 8 FLOCK(f); |
| 9 » FLOCK(f); | 9 ungetc(getc_unlocked(f), f); |
| 10 » ungetc(getc_unlocked(f), f); | 10 if ((z = memchr(f->rpos, '\n', f->rend - f->rpos))) { |
| 11 » if ((z=memchr(f->rpos, '\n', f->rend - f->rpos))) { | 11 ret = (char*)f->rpos; |
| 12 » » ret = (char *)f->rpos; | 12 *plen = ++z - ret; |
| 13 » » *plen = ++z - ret; | 13 f->rpos = (void*)z; |
| 14 » » f->rpos = (void *)z; | 14 } else if ((l = getline(&f->getln_buf, (size_t[]){0}, f)) > 0) { |
| 15 » } else if ((l = getline(&f->getln_buf, (size_t[]){0}, f)) > 0) { | 15 *plen = l; |
| 16 » » *plen = l; | 16 ret = f->getln_buf; |
| 17 » » ret = f->getln_buf; | 17 } |
| 18 » } | 18 FUNLOCK(f); |
| 19 » FUNLOCK(f); | 19 return ret; |
| 20 » return ret; | |
| 21 } | 20 } |
| OLD | NEW |