From nobody Sun Oct 30 04:42:00 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 4N0Nt026qbz4gpsM; Sun, 30 Oct 2022 04:42:00 +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 4N0Nt01dX8z4F3g; Sun, 30 Oct 2022 04:42:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1667104920; 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=EzY2NymWfqmQwqi9T/RSJemvCfSKE5SJVB+6ww2ZHpM=; b=qJ0fnSFZVJz4zhx0CNNBeQf0a8fUtk4B88Fss86NAhjNvLCV5r0S04o9kQW+QVVint9y9r yjr5kRseu9vrhkF+IJHiTD+OKy2KfI4LL1zkMNCZh6nrSRlAh4/SHPG1LMuDnUgMsrsJUG JQAVZaklIyDMq0rDZMtfa2xmwf1EYlJ2v8FtAF1mxEru6I3oJYofvv5UYafR9e48ln0voY mrfYxjGhKBP7dpzyhFOsOOcGmlY77UZw6sCkNZoUqOCWnj77hytiq3U6IHsPIPotjn9Cwv fduFrtdU6s+j6VD8u+0YcdaHuvWrdouOYHd1T7eH789NHl5OTeSQJJIa5gbCJg== 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 4N0Nt00kCzzkJD; Sun, 30 Oct 2022 04:42:00 +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 29U4g0rm005267; Sun, 30 Oct 2022 04:42:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 29U4g0OJ005266; Sun, 30 Oct 2022 04:42:00 GMT (envelope-from git) Date: Sun, 30 Oct 2022 04:42:00 GMT Message-Id: <202210300442.29U4g0OJ005266@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: 14b1657ef3f3 - stable/13 - 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/stable/13 X-Git-Reftype: branch X-Git-Commit: 14b1657ef3f3a4bf6ddb4df94e17697ecdbccd13 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1667104920; 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=EzY2NymWfqmQwqi9T/RSJemvCfSKE5SJVB+6ww2ZHpM=; b=T4gQNY8npMqAJ3ZAxEywZBjHCr1NFoMU5cBp0YkonSm/2hsO6KkSHnePKHw8qPk04VgIxB sACDEhH9NRIVBgePgx8LxHywFIEE31ih05kLdA9tVyjjw4rq8J1Km27xk4FMiQ0pT45wHf AmvKL0q50044UE5suTXxAIqOe3Is46mMmxKxVXc0LCNk3nZUM/XfUmQatbqXbHyfLYvwWM n10j7gXhqCQUuZ6mji9eW9oLS+WwQ/DEgwjh4JUfnDQJ+mRzQMlmIjbey3UnIfaTXjxShG okQZjyd5+bZWc7RPFLivq0Vy7fMp5tBEVW7S3Kg1pYbCc10ILk0VRhZxttKj6w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1667104920; a=rsa-sha256; cv=none; b=OIxfMfbh74rwXNbkJRgO7R5va4k3ejWnKLB+PZxixK/K35W56AuyWNaZ9FIQdeFIffZyxu 2OQqsqmAp9pXm3RqvtG2OKe5PmS3QTes+tYcn7mjGGjKhHYK3QInZMEncWkNjNkhLINR2d LM8OcgYk4JdX5lCJfpjUgGqXX8hvBq7RtWdqaEMwSvPR8gX7u2pH03/lMrizOrZO0YTauX Pc+3eLtW294s0au8A75BqMnejQBktNWBklqRG+AaN33bjA2vW+hOMKBfJ58C2aCFFnj7kS DzkiaueF4LfFo/IJD3bXenZv9kMtgcoxUGYZGNXkjpMbV5RiqeMhd0pxcWuD6Q== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by delphij: URL: https://cgit.FreeBSD.org/src/commit/?id=14b1657ef3f3a4bf6ddb4df94e17697ecdbccd13 commit 14b1657ef3f3a4bf6ddb4df94e17697ecdbccd13 Author: Xin LI AuthorDate: 2022-10-27 07:12:53 +0000 Commit: Xin LI CommitDate: 2022-10-30 04:41:20 +0000 MFV: Restore the ability to process files from stdin immediately. PR: bin/267221 MFC after: 3 days (cherry picked from commit 07dfb236c81483c2f08a3976f6d44ce307f4ceaf) --- 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,