зеркало из https://github.com/microsoft/git.git
format_note(): simplify API
We either stuff the notes message without modification for %N userformat, or format it for human consumption. Using two bits is an overkill that does not benefit anybody. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
e297cf5aff
Коммит
76141e2e62
13
notes.c
13
notes.c
|
@ -1204,10 +1204,11 @@ void free_notes(struct notes_tree *t)
|
||||||
* If the given notes_tree is NULL, the internal/default notes_tree will be
|
* If the given notes_tree is NULL, the internal/default notes_tree will be
|
||||||
* used instead.
|
* used instead.
|
||||||
*
|
*
|
||||||
* 'flags' is a bitwise combination of the flags for format_display_notes.
|
* (raw != 0) gives the %N userformat; otherwise, the note message is given
|
||||||
|
* for human consumption.
|
||||||
*/
|
*/
|
||||||
static void format_note(struct notes_tree *t, const unsigned char *object_sha1,
|
static void format_note(struct notes_tree *t, const unsigned char *object_sha1,
|
||||||
struct strbuf *sb, const char *output_encoding, int flags)
|
struct strbuf *sb, const char *output_encoding, int raw)
|
||||||
{
|
{
|
||||||
static const char utf8[] = "utf-8";
|
static const char utf8[] = "utf-8";
|
||||||
const unsigned char *sha1;
|
const unsigned char *sha1;
|
||||||
|
@ -1244,7 +1245,7 @@ static void format_note(struct notes_tree *t, const unsigned char *object_sha1,
|
||||||
if (msglen && msg[msglen - 1] == '\n')
|
if (msglen && msg[msglen - 1] == '\n')
|
||||||
msglen--;
|
msglen--;
|
||||||
|
|
||||||
if (flags & NOTES_SHOW_HEADER) {
|
if (!raw) {
|
||||||
const char *ref = t->ref;
|
const char *ref = t->ref;
|
||||||
if (!ref || !strcmp(ref, GIT_NOTES_DEFAULT_REF)) {
|
if (!ref || !strcmp(ref, GIT_NOTES_DEFAULT_REF)) {
|
||||||
strbuf_addstr(sb, "\nNotes:\n");
|
strbuf_addstr(sb, "\nNotes:\n");
|
||||||
|
@ -1260,7 +1261,7 @@ static void format_note(struct notes_tree *t, const unsigned char *object_sha1,
|
||||||
for (msg_p = msg; msg_p < msg + msglen; msg_p += linelen + 1) {
|
for (msg_p = msg; msg_p < msg + msglen; msg_p += linelen + 1) {
|
||||||
linelen = strchrnul(msg_p, '\n') - msg_p;
|
linelen = strchrnul(msg_p, '\n') - msg_p;
|
||||||
|
|
||||||
if (flags & NOTES_INDENT)
|
if (!raw)
|
||||||
strbuf_addstr(sb, " ");
|
strbuf_addstr(sb, " ");
|
||||||
strbuf_add(sb, msg_p, linelen);
|
strbuf_add(sb, msg_p, linelen);
|
||||||
strbuf_addch(sb, '\n');
|
strbuf_addch(sb, '\n');
|
||||||
|
@ -1270,13 +1271,13 @@ static void format_note(struct notes_tree *t, const unsigned char *object_sha1,
|
||||||
}
|
}
|
||||||
|
|
||||||
void format_display_notes(const unsigned char *object_sha1,
|
void format_display_notes(const unsigned char *object_sha1,
|
||||||
struct strbuf *sb, const char *output_encoding, int flags)
|
struct strbuf *sb, const char *output_encoding, int raw)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
assert(display_notes_trees);
|
assert(display_notes_trees);
|
||||||
for (i = 0; display_notes_trees[i]; i++)
|
for (i = 0; display_notes_trees[i]; i++)
|
||||||
format_note(display_notes_trees[i], object_sha1, sb,
|
format_note(display_notes_trees[i], object_sha1, sb,
|
||||||
output_encoding, flags);
|
output_encoding, raw);
|
||||||
}
|
}
|
||||||
|
|
||||||
int copy_note(struct notes_tree *t,
|
int copy_note(struct notes_tree *t,
|
||||||
|
|
6
notes.h
6
notes.h
|
@ -237,10 +237,6 @@ void prune_notes(struct notes_tree *t, int flags);
|
||||||
*/
|
*/
|
||||||
void free_notes(struct notes_tree *t);
|
void free_notes(struct notes_tree *t);
|
||||||
|
|
||||||
/* Flags controlling how notes are formatted */
|
|
||||||
#define NOTES_SHOW_HEADER 1
|
|
||||||
#define NOTES_INDENT 2
|
|
||||||
|
|
||||||
struct string_list;
|
struct string_list;
|
||||||
|
|
||||||
struct display_notes_opt {
|
struct display_notes_opt {
|
||||||
|
@ -274,7 +270,7 @@ void init_display_notes(struct display_notes_opt *opt);
|
||||||
* You *must* call init_display_notes() before using this function.
|
* You *must* call init_display_notes() before using this function.
|
||||||
*/
|
*/
|
||||||
void format_display_notes(const unsigned char *object_sha1,
|
void format_display_notes(const unsigned char *object_sha1,
|
||||||
struct strbuf *sb, const char *output_encoding, int flags);
|
struct strbuf *sb, const char *output_encoding, int raw);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Load the notes tree from each ref listed in 'refs'. The output is
|
* Load the notes tree from each ref listed in 'refs'. The output is
|
||||||
|
|
5
pretty.c
5
pretty.c
|
@ -1035,7 +1035,7 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
|
||||||
case 'N':
|
case 'N':
|
||||||
if (c->pretty_ctx->show_notes) {
|
if (c->pretty_ctx->show_notes) {
|
||||||
format_display_notes(commit->object.sha1, sb,
|
format_display_notes(commit->object.sha1, sb,
|
||||||
get_log_output_encoding(), 0);
|
get_log_output_encoding(), 1);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -1419,8 +1419,7 @@ void pretty_print_commit(const struct pretty_print_context *pp,
|
||||||
strbuf_addch(sb, '\n');
|
strbuf_addch(sb, '\n');
|
||||||
|
|
||||||
if (pp->show_notes)
|
if (pp->show_notes)
|
||||||
format_display_notes(commit->object.sha1, sb, encoding,
|
format_display_notes(commit->object.sha1, sb, encoding, 0);
|
||||||
NOTES_SHOW_HEADER | NOTES_INDENT);
|
|
||||||
|
|
||||||
free(reencoded);
|
free(reencoded);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2236,7 +2236,7 @@ static int commit_match(struct commit *commit, struct rev_info *opt)
|
||||||
if (!buf.len)
|
if (!buf.len)
|
||||||
strbuf_addstr(&buf, commit->buffer);
|
strbuf_addstr(&buf, commit->buffer);
|
||||||
format_display_notes(commit->object.sha1, &buf,
|
format_display_notes(commit->object.sha1, &buf,
|
||||||
get_log_output_encoding(), 0);
|
get_log_output_encoding(), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Find either in the commit object, or in the temporary */
|
/* Find either in the commit object, or in the temporary */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче