* [PATCH] grep: simplify is_empty_line
@ 2022-12-29 16:58 Rose via GitGitGadget
2022-12-29 17:06 ` Eric Sunshine
2022-12-29 17:18 ` [PATCH v2] " Rose via GitGitGadget
0 siblings, 2 replies; 4+ messages in thread
From: Rose via GitGitGadget @ 2022-12-29 16:58 UTC (permalink / raw)
To: git; +Cc: Rose, Seija Kijin
From: Seija Kijin <doremylover123@gmail.com>
Signed-off-by: Seija Kijin <doremylover123@gmail.com>
---
grep: simplify is_empty_line
Signed-off-by: Seija Kijin doremylover123@gmail.com
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1418%2FAtariDreams%2FisEmpty-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1418/AtariDreams/isEmpty-v1
Pull-Request: https://github.com/git/git/pull/1418
grep.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/grep.c b/grep.c
index 06eed694936..f29f4dd9e08 100644
--- a/grep.c
+++ b/grep.c
@@ -1483,9 +1483,10 @@ static int fill_textconv_grep(struct repository *r,
static int is_empty_line(const char *bol, const char *eol)
{
- while (bol < eol && isspace(*bol))
- bol++;
- return bol == eol;
+ while (bol < eol)
+ if (!isspace(*bol))
+ return 0;
+ return 1;
}
static int grep_source_1(struct grep_opt *opt, struct grep_source *gs, int collect_hits)
base-commit: 6bae53b138a1f38d8887f6b46d17661357a1468b
--
gitgitgadget
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] grep: simplify is_empty_line
2022-12-29 16:58 [PATCH] grep: simplify is_empty_line Rose via GitGitGadget
@ 2022-12-29 17:06 ` Eric Sunshine
2022-12-29 17:18 ` [PATCH v2] " Rose via GitGitGadget
1 sibling, 0 replies; 4+ messages in thread
From: Eric Sunshine @ 2022-12-29 17:06 UTC (permalink / raw)
To: Rose via GitGitGadget; +Cc: git, Rose, Seija Kijin
On Thu, Dec 29, 2022 at 12:00 PM Rose via GitGitGadget
<gitgitgadget@gmail.com> wrote:
> diff --git a/grep.c b/grep.c
> @@ -1483,9 +1483,10 @@ static int fill_textconv_grep(struct repository *r,
> static int is_empty_line(const char *bol, const char *eol)
> {
> - while (bol < eol && isspace(*bol))
> - bol++;
> - return bol == eol;
> + while (bol < eol)
> + if (!isspace(*bol))
> + return 0;
> + return 1;
> }
The rewritten code appears to be quite broken. It never increments `bol`.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2] grep: simplify is_empty_line
2022-12-29 16:58 [PATCH] grep: simplify is_empty_line Rose via GitGitGadget
2022-12-29 17:06 ` Eric Sunshine
@ 2022-12-29 17:18 ` Rose via GitGitGadget
2022-12-29 17:45 ` Eric Sunshine
1 sibling, 1 reply; 4+ messages in thread
From: Rose via GitGitGadget @ 2022-12-29 17:18 UTC (permalink / raw)
To: git; +Cc: Eric Sunshine, Rose, Seija Kijin
From: Seija Kijin <doremylover123@gmail.com>
Signed-off-by: Seija Kijin <doremylover123@gmail.com>
---
grep: simplify is_empty_line
Signed-off-by: Seija Kijin doremylover123@gmail.com
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1418%2FAtariDreams%2FisEmpty-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1418/AtariDreams/isEmpty-v2
Pull-Request: https://github.com/git/git/pull/1418
Range-diff vs v1:
1: 03a97005a67 ! 1: b193c9537de grep: simplify is_empty_line
@@ grep.c: static int fill_textconv_grep(struct repository *r,
static int is_empty_line(const char *bol, const char *eol)
{
- while (bol < eol && isspace(*bol))
-- bol++;
-- return bol == eol;
-+ while (bol < eol)
++ while (bol < eol) {
+ if (!isspace(*bol))
+ return 0;
+ bol++;
+- return bol == eol;
++ }
+ return 1;
}
grep.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/grep.c b/grep.c
index 06eed694936..d78ee08da6f 100644
--- a/grep.c
+++ b/grep.c
@@ -1483,9 +1483,12 @@ static int fill_textconv_grep(struct repository *r,
static int is_empty_line(const char *bol, const char *eol)
{
- while (bol < eol && isspace(*bol))
+ while (bol < eol) {
+ if (!isspace(*bol))
+ return 0;
bol++;
- return bol == eol;
+ }
+ return 1;
}
static int grep_source_1(struct grep_opt *opt, struct grep_source *gs, int collect_hits)
base-commit: 6bae53b138a1f38d8887f6b46d17661357a1468b
--
gitgitgadget
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2] grep: simplify is_empty_line
2022-12-29 17:18 ` [PATCH v2] " Rose via GitGitGadget
@ 2022-12-29 17:45 ` Eric Sunshine
0 siblings, 0 replies; 4+ messages in thread
From: Eric Sunshine @ 2022-12-29 17:45 UTC (permalink / raw)
To: Rose via GitGitGadget; +Cc: git, Rose, Seija Kijin
On Thu, Dec 29, 2022 at 12:18 PM Rose via GitGitGadget
<gitgitgadget@gmail.com> wrote:
> Signed-off-by: Seija Kijin <doremylover123@gmail.com>
> ---
> diff --git a/grep.c b/grep.c
> @@ -1483,9 +1483,12 @@ static int fill_textconv_grep(struct repository *r,
> static int is_empty_line(const char *bol, const char *eol)
> {
> - while (bol < eol && isspace(*bol))
> + while (bol < eol) {
> + if (!isspace(*bol))
> + return 0;
> bol++;
> - return bol == eol;
> + }
> + return 1;
> }
It is subjective (personal opinion) whether or not the new code is
clearer than the original. As a general policy, this project tends not
to accept patches like this which merely "churn" the code without
improving it. From Documentation/SubmittingPatches:
"Once it _is_ in the tree, it's not really worth the patch noise to
go and fix it up."
Cf. http://lkml.iu.edu/hypermail/linux/kernel/1001.3/01069.html
One reason for avoiding churn is that even simple and innocuous
changes like this can introduce bugs or unwanted behavior, as v1 of
this patch illustrated[1]. Another reason is that it eats up reviewer
time.
Did the Git test suite pass with v1 of this patch even though it was
buggy? If so, a better use of your time and reviewer time would be to
improve test coverage so that it detects the sort of breakage caused
by v1.
[1]: https://lore.kernel.org/git/CAPig+cSFAUcU74qULYkN7OX4-OqU_3VJeTdb1ZH_QoOW9FBwZQ@mail.gmail.com/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-12-29 17:46 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-29 16:58 [PATCH] grep: simplify is_empty_line Rose via GitGitGadget
2022-12-29 17:06 ` Eric Sunshine
2022-12-29 17:18 ` [PATCH v2] " Rose via GitGitGadget
2022-12-29 17:45 ` Eric Sunshine
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).