summaryrefslogtreecommitdiff
path: root/builtin/notes.c
diff options
context:
space:
mode:
authorJohan Herland <johan@herland.net>2014-11-12 00:40:12 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-11-12 18:58:09 (GMT)
commitb0de56c6a5bb41da71babafefc9207b0fc211d66 (patch)
treeefe53a71152b5399a6a662c5e30b6bda21daf9b9 /builtin/notes.c
parent4282af0fc91e7a2667f8cba7282a5b70347f6e6f (diff)
downloadgit-b0de56c6a5bb41da71babafefc9207b0fc211d66.zip
git-b0de56c6a5bb41da71babafefc9207b0fc211d66.tar.gz
git-b0de56c6a5bb41da71babafefc9207b0fc211d66.tar.bz2
builtin/notes: simplify early exit code in add()
Remove the need for 'retval' and the unnecessary goto. Also reorganize to only call free_note_data() is actually needed. Improved-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/notes.c')
-rw-r--r--builtin/notes.c35
1 files changed, 17 insertions, 18 deletions
diff --git a/builtin/notes.c b/builtin/notes.c
index 1017472..acdedbd 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -399,7 +399,7 @@ static int append_edit(int argc, const char **argv, const char *prefix);
static int add(int argc, const char **argv, const char *prefix)
{
- int retval = 0, force = 0;
+ int force = 0;
const char *object_ref;
struct notes_tree *t;
unsigned char object[20], new_note[20];
@@ -441,23 +441,23 @@ static int add(int argc, const char **argv, const char *prefix)
if (note) {
if (!force) {
- if (!d.given) {
- /*
- * Redirect to "edit" subcommand.
- *
- * We only end up here if none of -m/-F/-c/-C
- * or -f are given. The original args are
- * therefore still in argv[0-1].
- */
- argv[0] = "edit";
+ free_notes(t);
+ if (d.given) {
free_note_data(&d);
- free_notes(t);
- return append_edit(argc, argv, prefix);
+ return error(_("Cannot add notes. "
+ "Found existing notes for object %s. "
+ "Use '-f' to overwrite existing notes"),
+ sha1_to_hex(object));
}
- retval = error(_("Cannot add notes. Found existing notes "
- "for object %s. Use '-f' to overwrite "
- "existing notes"), sha1_to_hex(object));
- goto out;
+ /*
+ * Redirect to "edit" subcommand.
+ *
+ * We only end up here if none of -m/-F/-c/-C or -f are
+ * given. The original args are therefore still in
+ * argv[0-1].
+ */
+ argv[0] = "edit";
+ return append_edit(argc, argv, prefix);
}
fprintf(stderr, _("Overwriting existing notes for object %s\n"),
sha1_to_hex(object));
@@ -474,9 +474,8 @@ static int add(int argc, const char **argv, const char *prefix)
snprintf(logmsg, sizeof(logmsg), "Notes %s by 'git notes %s'",
is_null_sha1(new_note) ? "removed" : "added", "add");
commit_notes(t, logmsg);
-out:
free_notes(t);
- return retval;
+ return 0;
}
static int copy(int argc, const char **argv, const char *prefix)