From nobody Thu Oct 13 08:24:21 2022 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Mp2cQ1XkDz4fQ8g; Thu, 13 Oct 2022 08:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Mp2cQ1709z3qXt; Thu, 13 Oct 2022 08:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1665649462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p9er9OZYXT+Wqpjx7ZGxEMXRTWhfbPsLb8EA6+4F4m0=; b=j40ck8VOrFL8ei6vDJpaXJezd9pvYX3Q8sFh4RDTUOidAJx/IlElolHOlUS+3DEysE1rWm FfH1l7LbSA3kFa7mWJABwrOBqqo2q+zs/Z5ROuyuPfhttD0/VdnK9Eppa5tDMN/sFnSO1t HHXy4aJMUislS9/7MmQgmI0ABjJwSTGGV5Mt2FnHHdvTAfPbIM0Rr7EIspzRc1ZmN8jmas fM+eUGURk4k8csyTmaq4UYE2Bx+UGG4ZAvYTDzAh4lFKy7k7gDnwCKuv91wGqF+kICSfRu +VvrWEEn4eRpP1S4PXhxD9S41GTmjWTUoSJaZwM5inAIHIpJCoGoJXTKK66jjQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Mp2cQ0BMrzMZJ; Thu, 13 Oct 2022 08:24:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 29D8OLOW075634; Thu, 13 Oct 2022 08:24:21 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 29D8OL97075633; Thu, 13 Oct 2022 08:24:21 GMT (envelope-from git) Date: Thu, 13 Oct 2022 08:24:21 GMT Message-Id: <202210130824.29D8OL97075633@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Baptiste Daroussin Subject: git: 8b9071360a31 - main - sort: unify the code to read from FILE * List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: bapt X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8b9071360a312f2bb2104864af0b9905acac87bc Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1665649462; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=p9er9OZYXT+Wqpjx7ZGxEMXRTWhfbPsLb8EA6+4F4m0=; b=urNk20jgE358QVBEWH/ugW4DalvFCQgLGa3G6+KONRw2G3LrwiXWI2+GrTcx1Eb97r5S68 86hqpxlN0vHXkSjnTkQpc6zLcgdjwbbkTtvFBh+48i8qqpbM7DTeKWfCD7dMNrWG3+FfJL CYJeNDBFFx3I72OONIhCQ7Z4huyEEjpClSa8FaFFlMolVmeAwljX8Gdf9iuD2ohLPF0ZLQ cmb9cRsyHiOtCqKLrcn0pY1Ay0wqnEn+VHIn5LhnmKm2mvtoeAfQE64lICvEvIzq6i/x5p ooEPU6gUmO90ibIRqalQhG+JDq11cMKRnXCui22xkkF/3KtCxkOIDsYA1mBOBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1665649462; a=rsa-sha256; cv=none; b=UwU88gW2U5dRdRjOpWM51iPtlwLrjFEkYwZEaNk9R+V9wrAU+YfrgrRQtOUzaUiiXhNgX7 OtT8t17WmZ8+qo9g718Y7/R9hgLe/UVRpTqYPko6ll19Q1RD9hK5wJVrS9883fYfSpLCXi ljWDOPZK7hi89epOOroqjA2X/IeL2J+XPgJ11i9Au+njmUBymsfcx+kEhHvHHDlTOuPm8G Oyr/JfIOWPnr6gyyENxf/Pdv+9mzr+y/mLceZd3H1Nxg1UOGGuT2ero+Z655pgoCS3zHDP fY9as5Lf9EdlwppGIdJ7tDA62bAOmJcMEJZcTRZiVCGw4gFZfpVsBq6D0Vs6Cg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=8b9071360a312f2bb2104864af0b9905acac87bc commit 8b9071360a312f2bb2104864af0b9905acac87bc Author: Baptiste Daroussin AuthorDate: 2022-10-13 07:36:48 +0000 Commit: Baptiste Daroussin CommitDate: 2022-10-13 08:24:11 +0000 sort: unify the code to read from FILE * Previously the code to read from a local file or stdin was sperarated After the change to remove the home made line reader used for stdin (replaced by getdelim) it apprears that the rest of the code which is used to read from any FILE * but stdin can benefit from the exact same change. --- usr.bin/sort/file.c | 94 ----------------------------------------------------- 1 file changed, 94 deletions(-) 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);