diff --git a/usr.bin/sort/file.c b/usr.bin/sort/file.c index 92371d7a15b2..bfe5e5c29b86 100644 --- a/usr.bin/sort/file.c +++ b/usr.bin/sort/file.c @@ -62,26 +62,18 @@ const char *compress_program; size_t max_open_files = 16; -/* - * How much space we read from file at once - */ -#define READ_CHUNK (4096) - /* * File reader structure */ struct file_reader { - struct reader_buffer rb; FILE *file; char *fname; char *buffer; unsigned char *mmapaddr; unsigned char *mmapptr; size_t bsz; - size_t cbsz; size_t mmapsize; - size_t strbeg; int fd; char elsymb; }; @@ -662,19 +654,6 @@ file_reader_init(const char *fsrc) ret->file = openfile(fsrc, "r"); if (ret->file == NULL) err(2, NULL); - - if (strcmp(fsrc, "-")) { - ret->cbsz = READ_CHUNK; - ret->buffer = sort_malloc(ret->cbsz); - ret->bsz = 0; - ret->strbeg = 0; - - ret->bsz = fread(ret->buffer, 1, ret->cbsz, ret->file); - if (ret->bsz == 0) { - if (ferror(ret->file)) - err(2, NULL); - } - } } return (ret); @@ -707,79 +686,6 @@ file_reader_readline(struct file_reader *fr) fr->mmapptr = strend + 1; } } - - } else if (fr->file != stdin) { - char *strend; - size_t bsz1, remsz, search_start; - - search_start = 0; - remsz = 0; - strend = NULL; - - if (fr->bsz > fr->strbeg) - remsz = fr->bsz - fr->strbeg; - - /* line read cycle */ - for (;;) { - if (remsz > search_start) - strend = memchr(fr->buffer + fr->strbeg + - search_start, fr->elsymb, remsz - - search_start); - else - strend = NULL; - - if (strend) - break; - if (feof(fr->file)) - break; - - if (fr->bsz != fr->cbsz) - /* NOTREACHED */ - err(2, "File read software error 1"); - - if (remsz > (READ_CHUNK >> 1)) { - search_start = fr->cbsz - fr->strbeg; - fr->cbsz += READ_CHUNK; - fr->buffer = sort_realloc(fr->buffer, - fr->cbsz); - bsz1 = fread(fr->buffer + fr->bsz, 1, - READ_CHUNK, fr->file); - if (bsz1 == 0) { - if (ferror(fr->file)) - err(2, NULL); - break; - } - fr->bsz += bsz1; - remsz += bsz1; - } else { - if (remsz > 0 && fr->strbeg>0) - bcopy(fr->buffer + fr->strbeg, - fr->buffer, remsz); - - fr->strbeg = 0; - search_start = remsz; - bsz1 = fread(fr->buffer + remsz, 1, - fr->cbsz - remsz, fr->file); - if (bsz1 == 0) { - if (ferror(fr->file)) - err(2, NULL); - break; - } - fr->bsz = remsz + bsz1; - remsz = fr->bsz; - } - } - - if (strend == NULL) - strend = fr->buffer + fr->bsz; - - if ((fr->buffer + fr->strbeg <= strend) && - (fr->strbeg < fr->bsz) && (remsz>0)) - ret = bwscsbdup(fr->buffer + fr->strbeg, strend - - fr->buffer - fr->strbeg); - - fr->strbeg = (strend - fr->buffer) + 1; - } else { int delim = sort_opts_vals.zflag ? '\0' : '\n'; ssize_t len = getdelim(&fr->buffer, &fr->bsz, delim, fr->file);