From f079ef8aa428ebffad28f5c62cce52c2bf70fb49 Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Thu, 13 Oct 2022 10:21:48 +0200 Subject: [PATCH] sort: simplify the code to handle -z flag --- usr.bin/sort/file.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/usr.bin/sort/file.c b/usr.bin/sort/file.c index bfe5e5c29b86..2e3b4e0a4350 100644 --- a/usr.bin/sort/file.c +++ b/usr.bin/sort/file.c @@ -605,10 +605,7 @@ file_reader_init(const char *fsrc) ret = sort_calloc(1, sizeof(struct file_reader)); - ret->elsymb = '\n'; - if (sort_opts_vals.zflag) - ret->elsymb = 0; - + ret->elsymb = sort_opts_vals.zflag ? '\0' : '\n'; ret->fname = sort_strdup(fsrc); if (strcmp(fsrc, "-") && (compress_program == NULL) && use_mmap) { @@ -687,14 +684,15 @@ file_reader_readline(struct file_reader *fr) } } } else { - int delim = sort_opts_vals.zflag ? '\0' : '\n'; - ssize_t len = getdelim(&fr->buffer, &fr->bsz, delim, fr->file); + ssize_t len; + + len = getdelim(&fr->buffer, &fr->bsz, fr->elsymb, fr->file); if (len < 0) { if (!feof(fr->file)) err(2, NULL); return (NULL); } - if (len > 0 && fr->buffer[len - 1] == delim) + if (len > 0 && fr->buffer[len - 1] == fr->elsymb) len--; ret = bwscsbdup(fr->buffer, len); }