* [PATCH] for-each-ref: Fix --format=%(subject) for log message without newlines
@ 2008-09-24 23:10 Johan Herland
0 siblings, 0 replies; 2+ messages in thread
From: Johan Herland @ 2008-09-24 23:10 UTC (permalink / raw)
To: git; +Cc: Shawn O. Pearce
'git for-each-ref --format=%(subject)' currently returns an empty string
if the log message does not contain a newline.
This patch teaches 'git for-each-ref' to return the entire log message
(instead of an empty string) if there is no newline in the log message.
Signed-off-by: Johan Herland <johan@herland.net>
---
Normally, log messages in git have trailing newlines. However, it seems the
"tag fixup commits" manufactured by cvs2svn/cvs2git (via git-fast-import)
have single-line log message without trailing newlines.
I have checked the other callers of copy_line(), and AFAICS they are not
affected by this change, since that would violate the git object format.
Have fun! :)
...Johan
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);
}
--
1.6.0.2.463.g7f0eb
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] for-each-ref: Fix --format=%(subject) for log message without newlines
@ 2008-09-27 22:08 Nanako Shiraishi
0 siblings, 0 replies; 2+ messages in thread
From: Nanako Shiraishi @ 2008-09-27 22:08 UTC (permalink / raw)
To: Johan Herland; +Cc: git, Shawn O. Pearce
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/
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-09-27 22:12 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-24 23:10 [PATCH] for-each-ref: Fix --format=%(subject) for log message without newlines Johan Herland
-- strict thread matches above, loose matches on Subject: below --
2008-09-27 22:08 Nanako Shiraishi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox