[PATCH 2/6] Factorize shortening of notes refname for display.
Signed-off-by: Yann Dirson <ydirson@free.fr>
---
notes.c | 24 ++++++++++++++++--------
notes.h | 7 +++++++
2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/notes.c b/notes.c
index f6ce848..1a5676a 100644
--- a/notes.c
+++ b/notes.c
@@ -1235,16 +1235,11 @@ void format_note(struct notes_tree *t, const unsigned char *object_sha1,
msglen--;
if (flags & NOTES_SHOW_HEADER) {
- const char *ref = t->ref;
- if (!ref || !strcmp(ref, GIT_NOTES_DEFAULT_REF)) {
+ const char *ref = notes_ref_shortname(t->ref);
+ if (!ref)
strbuf_addstr(sb, "\nNotes:\n");
- } else {
- if (!prefixcmp(ref, "refs/"))
- ref += 5;
- if (!prefixcmp(ref, "notes/"))
- ref += 6;
+ else
strbuf_addf(sb, "\nNotes (%s):\n", ref);
- }
}
for (msg_p = msg; msg_p < msg + msglen; msg_p += linelen + 1) {
@@ -1296,3 +1291,16 @@ void expand_notes_ref(struct strbuf *sb)
else
strbuf_insert(sb, 0, "refs/notes/", 11);
}
+
+const char *notes_ref_shortname(const char *ref)
+{
+ if (!ref || !strcmp(ref, GIT_NOTES_DEFAULT_REF))
+ return NULL;
+ else {
+ if (!prefixcmp(ref, "refs/"))
+ ref += 5;
+ if (!prefixcmp(ref, "notes/"))
+ ref += 6;
+ return ref;
+ }
+}
diff --git a/notes.h b/notes.h
index c716694..d8ae29d 100644
--- a/notes.h
+++ b/notes.h
@@ -64,6 +64,13 @@ extern struct notes_tree {
const char *default_notes_ref(void);
/*
+ * Return a short name for a notes ref, suitable for display to the user.
+ *
+ * No copy is done, the return value is a pointer into the original string.
+ */
+const char *notes_ref_shortname(const char *ref);
+
+/*
* Flags controlling behaviour of notes tree initialization
*
* Default behaviour is to initialize the notes tree from the tree object
--
1.7.5.3