libbb: code shrink fgets_str
No binary (build failed)
—
(log yok)
| @@ -17,7 +17,7 @@ static char *xmalloc_fgets_internal(FILE *file, const char *terminating_string, | |
| int linebufsz = 0; | |
| int idx = 0; | |
| int ch; | |
| - | size_t maxsz = *maxsz_p; |
| + | size_t maxsz = maxsz_p ? *maxsz_p : INT_MAX - 4095; |
| while (1) { | |
| ch = fgetc(file); | |
| @@ -53,7 +53,8 @@ static char *xmalloc_fgets_internal(FILE *file, const char *terminating_string, | |
| /* Grow/shrink *first*, then store NUL */ | |
| linebuf = xrealloc(linebuf, idx + 1); | |
| linebuf[idx] = '\0'; | |
| - | *maxsz_p = idx; |
| + | if (maxsz_p) |
| + | *maxsz_p = idx; |
| return linebuf; | |
| } | |
| @@ -63,23 +64,15 @@ static char *xmalloc_fgets_internal(FILE *file, const char *terminating_string, | |
| * Return NULL if EOF is reached immediately. */ | |
| char* FAST_FUNC xmalloc_fgets_str(FILE *file, const char *terminating_string) | |
| { | |
| - | size_t maxsz = INT_MAX - 4095; |
| - | return xmalloc_fgets_internal(file, terminating_string, 0, &maxsz); |
| + | return xmalloc_fgets_internal(file, terminating_string, 0, NULL); |
| } | |
| char* FAST_FUNC xmalloc_fgets_str_len(FILE *file, const char *terminating_string, size_t *maxsz_p) | |
| { | |
| - | size_t maxsz; |
| - | |
| - | if (!maxsz_p) { |
| - | maxsz = INT_MAX - 4095; |
| - | maxsz_p = &maxsz; |
| - | } |
| return xmalloc_fgets_internal(file, terminating_string, 0, maxsz_p); | |
| } | |
| char* FAST_FUNC xmalloc_fgetline_str(FILE *file, const char *terminating_string) | |
| { | |
| - | size_t maxsz = INT_MAX - 4095; |
| - | return xmalloc_fgets_internal(file, terminating_string, 1, &maxsz); |
| + | return xmalloc_fgets_internal(file, terminating_string, 1, NULL); |
| } | |