From nobody Sun Oct 30 19:43:51 2022 X-Original-To: dev-commits-src-branches@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 4N0mtc0xynz4gQnt; Sun, 30 Oct 2022 19:43:52 +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 4N0mtc0Jmmz3Y9V; Sun, 30 Oct 2022 19:43:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1667159032; 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=+GrHKjShzjtnz+2+T2m8MO16+6ZwEMt8LHQOzDftGgs=; b=FNxOUgpKrnJMlObwJ7cj8Z/hkeSCKRr5hTaqHVpjxaCop9m8DAadsJVH+w+xZMLh5dzLU8 cA6SfXovhH/TTa/I3q2NBE8XF9hEeo0Mr4VGDvg7RNA+X2XJUcundTnxBbT9G2D855iNEw 8mgIKhMpiJuwXeJywCUpJ6G3rY2Weh2+WP+OwOEV+sFk44A/Kj6KCS+5cD9oca20SGBOZb Fsjwi2GfKl0RHbQrP6pYv35/dj8EsXK+n+ZtybJgvQhr7xmib0OpP8JEgbxES4nRfYxE60 pDCr5NUZsSe1/ojfrzLZDu/QuINejELAhT7MnZaUIw0LSZmfCCYGQZdDdsxHMg== 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 4N0mtb6RsMz17gp; Sun, 30 Oct 2022 19:43:51 +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 29UJhpdA081832; Sun, 30 Oct 2022 19:43:51 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 29UJhpmm081831; Sun, 30 Oct 2022 19:43:51 GMT (envelope-from git) Date: Sun, 30 Oct 2022 19:43:51 GMT Message-Id: <202210301943.29UJhpmm081831@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Xin LI Subject: git: 28f11883e8d4 - releng/12.4 - MFV: Restore the ability to process files from stdin immediately. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: delphij X-Git-Repository: src X-Git-Refname: refs/heads/releng/12.4 X-Git-Reftype: branch X-Git-Commit: 28f11883e8d4007f27f6d39f4a95a703bc572da4 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1667159032; 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=+GrHKjShzjtnz+2+T2m8MO16+6ZwEMt8LHQOzDftGgs=; b=dHDyguPmfKeEDo6pG/pahhYbXZ4fKQwMOa/9cBnj4DcQC9Snz6E9EmHyO9A3ffu16t+zpU yDdC0D72Hc57Yws1jkavLhdk3fhGnOzWpvLNd6Co2VPqk2E9kXXJmknx4NQAYBkwZkrEkM ofalSVRTUIb0CsuxGQTfDNvpIQYyux8shnaE1LHb1tiTBTfDVx7LfiDbg/o0uWvRzb3vNh 4WQq49hgu0sjjtrqHBf8lw2Pd/J0cyYluxzNz+OWFmWoJ6pviwbgrdWm7PE7zUp08CLAbg TQl4+vlMpqnI9Wep91ZC4zZyuEgl7kEc+CED6U1Ict6LvL17B1vcdhO6ei9L2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1667159032; a=rsa-sha256; cv=none; b=ApZuUR+xYj73R4Pdz6PGdzzVd2ginLAqKpRnfscbByAsYJNR/GhA7DoBxREZ2Oeab4sVVk 1vXLKVvSkRNmzxbrZHrfHoM65YAziopTTpwOQ2uR2Mjryfz1jGXoGhIn4TPwWRbf7GtZKG YriFcAebTRFbZN6P/nopO5OLTfhW98b6Tydn5OSrwAoBNJ6jJZbJytzBEWsLtdbB+/qoR7 xJqsRca+Ss4oZ9TpySoLAjYjDdhTh8XbtsyKBSka+KHjWMw3C1pjAFELbQccCbawWducIY wKvLXqhZdPBkIbva3Ewekhz3/BJefJqXdu8R4RxteUCEbRShCA2TFL/jDn5VPA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch releng/12.4 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=28f11883e8d4007f27f6d39f4a95a703bc572da4 commit 28f11883e8d4007f27f6d39f4a95a703bc572da4 Author: Xin LI AuthorDate: 2022-10-27 07:12:53 +0000 Commit: Xin LI CommitDate: 2022-10-30 19:43:13 +0000 MFV: Restore the ability to process files from stdin immediately. PR: bin/267221 Approved by: re (gjb) (cherry picked from commit 07dfb236c81483c2f08a3976f6d44ce307f4ceaf) (cherry picked from commit 97a6bb4a3f4712ec2d9443f79b6a6e8668ef2b38) --- contrib/file/doc/file.man | 4 ++-- contrib/file/src/file.c | 36 ++++++++++++++++++++++-------------- contrib/file/src/file_opts.h | 2 +- 3 files changed, 25 insertions(+), 17 deletions(-) diff --git a/contrib/file/doc/file.man b/contrib/file/doc/file.man index 5be5e9b093e4..91470b8e199d 100644 --- a/contrib/file/doc/file.man +++ b/contrib/file/doc/file.man @@ -1,5 +1,5 @@ -.\" $File: file.man,v 1.144 2021/02/05 22:08:31 christos Exp $ -.Dd February 5, 2021 +.\" $File: file.man,v 1.146 2022/10/26 16:56:14 christos Exp $ +.Dd October 26, 2022 .Dt FILE __CSECTION__ .Os .Sh NAME diff --git a/contrib/file/src/file.c b/contrib/file/src/file.c index 0efbb92cd520..46b4256a0c24 100644 --- a/contrib/file/src/file.c +++ b/contrib/file/src/file.c @@ -512,11 +512,8 @@ unwrap(struct magic_set *ms, const char *fn) size_t llen = 0; int wid = 0, cwid; int e = 0; - size_t fi = 0, fimax = 100; - char **flist = CAST(char **, malloc(sizeof(*flist) * fimax)); - - if (flist == NULL) -out: file_err(EXIT_FAILURE, "Cannot allocate memory for file list"); + size_t fi = 0, fimax = 0; + char **flist = NULL; if (strcmp("-", fn) == 0) f = stdin; @@ -530,26 +527,37 @@ out: file_err(EXIT_FAILURE, "Cannot allocate memory for file list"); while ((len = getline(&line, &llen, f)) > 0) { if (line[len - 1] == '\n') line[len - 1] = '\0'; + cwid = file_mbswidth(ms, line); + if (nobuffer) { + e |= process(ms, line, cwid); + free(line); + line = NULL; + llen = 0; + continue; + } + if (cwid > wid) + wid = cwid; if (fi >= fimax) { fimax += 100; char **nf = CAST(char **, realloc(flist, fimax * sizeof(*flist))); - if (nf == NULL) - goto out; + if (nf == NULL) { + file_err(EXIT_FAILURE, + "Cannot allocate memory for file list"); + } flist = nf; } flist[fi++] = line; - cwid = file_mbswidth(ms, line); - if (cwid > wid) - wid = cwid; line = NULL; llen = 0; } - fimax = fi; - for (fi = 0; fi < fimax; fi++) { - e |= process(ms, flist[fi], wid); - free(flist[fi]); + if (!nobuffer) { + fimax = fi; + for (fi = 0; fi < fimax; fi++) { + e |= process(ms, flist[fi], wid); + free(flist[fi]); + } } free(flist); diff --git a/contrib/file/src/file_opts.h b/contrib/file/src/file_opts.h index 978c8b64434c..c78a8df2a800 100644 --- a/contrib/file/src/file_opts.h +++ b/contrib/file/src/file_opts.h @@ -37,7 +37,7 @@ OPT('e', "exclude", 1, 0, " performed for file. Valid tests are:\n" " %e\n") OPT_LONGONLY("exclude-quiet", 1, 0, - " TEST like exclude, but ignore unknown tests\n", OPT_EXCLUDE_QUIET) + " TEST like exclude, but ignore unknown tests\n", OPT_EXCLUDE_QUIET) OPT('f', "files-from", 1, 0, " FILE read the filenames to be examined from FILE\n") OPT('F', "separator", 1, 0,