{"thread":{"id":"42","subject":"[PATCH] Add '-z' to merge-tree.c","startedAt":"2005-04-16T01:17:57Z","lastAt":"2005-04-16T01:17:57Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"268","messageId":"7vekdbfrju.fsf@assigned-by-dhcp.cox.net","threadId":"42","inReplyTo":null,"subject":"[PATCH] Add '-z' to merge-tree.c","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2005-04-16T01:17:57Z","receivedAt":"2005-04-16T01:17:57Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Linus,\n\n    this adds '-z' to merge-tree and changes its default line\ntermination to LF to make it consistent with your other recent\nchanges.\n\nThe patch is against\n    commit 028c5948257e763b3deb391e567b624eb7975ec2\n    tree   6b866e10b16183e630db8449c64899f6810d4270\n\nSigned-off-by: Junio C Hamano <junkio@cox.net>\n---\n merge-tree.c |   23 ++++++++++++++++++++---\n 1 files changed, 20 insertions(+), 3 deletions(-)\n\n--- ,,linus/merge-tree.c\t2005-04-15 18:09:29.000000000 -0700\n+++ ./merge-tree.c\t2005-04-15 17:55:42.000000000 -0700\n@@ -1,5 +1,7 @@\n #include \"cache.h\"\n \n+static int line_termination = '\\n';\n+\n struct tree_entry {\n \tunsigned mode;\n \tunsigned char *sha1;\n@@ -35,7 +37,8 @@ static struct tree_entry *read_tree(unsi\n \n static void show(const struct tree_entry *a, const char *path)\n {\n-\tprintf(\"select %o %s %s%c\", a->mode, sha1_to_hex(a->sha1), path, 0);\n+\tprintf(\"select %o %s %s%c\", a->mode, sha1_to_hex(a->sha1), path,\n+\t       line_termination);\n }\n \n static void merge(const struct tree_entry *a, const struct tree_entry *b, const struct tree_entry *c, const char *path)\n@@ -46,7 +49,7 @@ static void merge(const struct tree_entr\n \tstrcpy(hex_c, sha1_to_hex(c->sha1));\n \tprintf(\"merge %o->%o,%o %s->%s,%s %s%c\",\n \t\ta->mode, b->mode, c->mode,\n-\t\thex_a, hex_b, hex_c, path, 0);\n+\t\thex_a, hex_b, hex_c, path, line_termination);\n }\n \n static int same(const struct tree_entry *a, const struct tree_entry *b)\n@@ -114,15 +117,29 @@ static void merge_tree(struct tree_entry\n \t}\n }\n \n+static const char *merge_tree_usage =\n+    \"merge-tree [-z] <src> <dst1> <dst2>\";\n+\n int main(int argc, char **argv)\n {\n \tunsigned char src[20], dst1[20], dst2[20];\n \n+\twhile ((1 < argc) && argv[1][0] == '-') {\n+\t\tswitch (argv[1][1]) {\n+\t\tcase 'z':\n+\t\t\tline_termination = 0;\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\tusage(merge_tree_usage);\n+\t\t}\n+\t\targc--; argv++;\n+\t}\n+\n \tif (argc != 4 ||\n \t    get_sha1_hex(argv[1], src) ||\n \t    get_sha1_hex(argv[2], dst1) ||\n \t    get_sha1_hex(argv[3], dst2))\n-\t\tusage(\"merge-tree <src> <dst1> <dst2>\");\n+\t\tusage(merge_tree_usage);\n \tmerge_tree(read_tree(src), read_tree(dst1), read_tree(dst2));\n \treturn 0;\n }\n\n\n"}]}