# Re: [PATCH] for-each-ref: Fix --format=%(subject) for log message without newlines

2 messages from 2008-09-27 to 2008-09-27. Participants: Nanako Shiraishi, Johan Herland.
Thread: https://gitlist.dev/t/15691

## Nanako Shiraishi, 2008-09-27 22:08

Subject: Re: [PATCH] for-each-ref: Fix --format=%(subject) for log message without newlines
Message-ID: <20080928070858.6117@nanako3.lavabit.com>
URL: https://gitlist.dev/e/20080928070858.6117%40nanako3.lavabit.com

```
Johan Herland <johan@herland.net> writes:

>  builtin-for-each-ref.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/builtin-for-each-ref.c b/builtin-for-each-ref.c
> index 9b44092..e59bd80 100644
> --- a/builtin-for-each-ref.c
> +++ b/builtin-for-each-ref.c
> @@ -321,8 +321,8 @@ static const char *find_wholine(const char *who, int wholen, const char *buf, un
>  static const char *copy_line(const char *buf)
>  {
>  	const char *eol = strchr(buf, '\n');
> -	if (!eol)
> -		return "";
> +	if (!eol) // simulate strchrnul()
> +		eol = buf + strlen(buf);
>  	return xmemdupz(buf, eol - buf);
>  }

Why does this C++ style comment talk about "simulate"?

Don't other parts of git already use strchrnul()?

-- 
Nanako Shiraishi
http://ivory.ap.teacup.com/nanako3/

```

## Johan Herland, 2008-09-27 22:24

Subject: [PATCH] Use strchrnul() instead of strchr() plus manual workaround
Message-ID: <200809280024.36190.johan@herland.net>
URL: https://gitlist.dev/e/200809280024.36190.johan%40herland.net
In-Reply-To: <20080928070858.6117@nanako3.lavabit.com>

```
Also gets rid of a C++ comment.

Signed-off-by: Johan Herland <johan@herland.net>
---

On Sunday 28 September 2008, Nanako Shiraishi wrote:
> Why does this C++ style comment talk about "simulate"?
>
> Don't other parts of git already use strchrnul()?

Oops. Sorry about that. The man page for strchrnul() says that it is
a GNU extension, so I stayed away from it. Of course, I should have
grepped the git source instead...

This should fix it.


...Johan

 builtin-for-each-ref.c |    4 +---
 1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/builtin-for-each-ref.c b/builtin-for-each-ref.c
index e59bd80..fa6c1ed 100644
--- a/builtin-for-each-ref.c
+++ b/builtin-for-each-ref.c
@@ -320,9 +320,7 @@ static const char *find_wholine(const char *who, int wholen, const char *buf, un
 
 static const char *copy_line(const char *buf)
 {
-	const char *eol = strchr(buf, '\n');
-	if (!eol) // simulate strchrnul()
-		eol = buf + strlen(buf);
+	const char *eol = strchrnul(buf, '\n');
 	return xmemdupz(buf, eol - buf);
 }
 
-- 
1.6.0.2.471.g47a76

```
