{"thread":{"id":"4266","subject":"[PATCH 2/2] Again: add more informative error messages to git-mktag","startedAt":"2006-05-23T18:20:09Z","lastAt":"2006-05-23T18:20:09Z","messageCount":1,"participants":["Björn Engelmann"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"20560","messageId":"44735259.5040107@gmx.de","threadId":"4266","inReplyTo":null,"subject":"[PATCH 2/2] Again: add more informative error messages to git-mktag","fromName":"Björn Engelmann","fromEmail":"bjengelmann@gmx.de","sentAt":"2006-05-23T18:20:09Z","receivedAt":"2006-05-23T18:20:09Z","isPatch":true,"sender":{"key":"bjengelmann@gmx.de","avatar":null},"body":"\n\n\n\nSigned-off-by: Bj�rn Engelmann <BjEngelmann@gmx.de>\n\n\n---\n\n51465a979a25c4363010cbab5798d95ac9f102e7\n mktag.c |   28 ++++++++++++++++------------\n 1 files changed, 16 insertions(+), 12 deletions(-)\n\n51465a979a25c4363010cbab5798d95ac9f102e7\ndiff --git a/mktag.c b/mktag.c\nindex f1598db..6bd45df 100644\n--- a/mktag.c\n+++ b/mktag.c\n@@ -46,41 +46,45 @@ static int verify_tag(char *buffer, unsi\n \tconst char *object, *type_line, *tag_line, *tagger_line;\n \n \tif (size < 64)\n-\t\treturn -1;\n+\t\treturn error(\"wanna fool me ? you obviously got the size wrong !\\n\");\n+\n \tbuffer[size] = 0;\n \n \t/* Verify object line */\n \tobject = buffer;\n \tif (memcmp(object, \"object \", 7))\n-\t\treturn -1;\n+\t\treturn error(\"char%d: does not start with \\\"object \\\"\\n\", 0);\n+\n \tif (get_sha1_hex(object + 7, sha1))\n-\t\treturn -1;\n+\t\treturn error(\"char%d: could not get SHA1 hash\\n\", 7);\n \n \t/* Verify type line */\n \ttype_line = object + 48;\n \tif (memcmp(type_line - 1, \"\\ntype \", 6))\n-\t\treturn -1;\n+\t\treturn error(\"char%d: could not find \\\"\\\\ntype \\\"\\n\", 47);\n \n \t/* Verify tag-line */\n \ttag_line = strchr(type_line, '\\n');\n \tif (!tag_line)\n-\t\treturn -1;\n+\t\treturn error(\"char%td: could not find next \\\"\\\\n\\\"\\n\", type_line - buffer);\n \ttag_line++;\n \tif (memcmp(tag_line, \"tag \", 4) || tag_line[4] == '\\n')\n-\t\treturn -1;\n+\t\treturn error(\"char%td: no \\\"tag \\\" found\\n\", tag_line - buffer);\n \n \t/* Get the actual type */\n \ttypelen = tag_line - type_line - strlen(\"type \\n\");\n \tif (typelen >= sizeof(type))\n-\t\treturn -1;\n+\t\treturn error(\"char%d: type too long\\n\", (int)(type_line - buffer) + strlen(\"type \\n\"));\n+\n \tmemcpy(type, type_line+5, typelen);\n \ttype[typelen] = 0;\n \n \t/* Verify that the object matches */\n \tif (get_sha1_hex(object + 7, sha1))\n-\t\treturn -1;\n+\t\treturn error(\"char%d: could not get SHA1 hash but this is really odd since i got it before !\\n\", 7);\n+\t\n \tif (verify_object(sha1, type))\n-\t\treturn -1;\n+\t\treturn error(\"char%d: could not verify object %s\\n\", 7, sha1);\n \n \t/* Verify the tag-name: we don't allow control characters or spaces in it */\n \ttag_line += 4;\n@@ -90,14 +94,14 @@ static int verify_tag(char *buffer, unsi\n \t\t\tbreak;\n \t\tif (c > ' ')\n \t\t\tcontinue;\n-\t\treturn -1;\n+\t\treturn error(\"char%td: could not verify tag name\\n\", tag_line - buffer);\n \t}\n \n \t/* Verify the tagger line */\n \ttagger_line = tag_line;\n \n \tif (memcmp(tagger_line, \"tagger\", 6) || (tagger_line[6] == '\\n'))\n-\t\treturn -1;\n+\t\treturn error(\"char%td: could not find \\\"tagger\\\"\\n\", tagger_line - buffer);\n \n \t/* The actual stuff afterwards we don't care about.. */\n \treturn 0;\n@@ -118,7 +122,7 @@ int main(int argc, char **argv)\n \t\tfree(buffer);\n \t\tdie(\"could not read from stdin\");\n \t}\n-\n+\t\n \t// Verify it for some basic sanity: it needs to start with \"object <sha1>\\ntype\\ntagger \"\n \tif (verify_tag(buffer, size) < 0)\n \t\tdie(\"invalid tag signature file\");\n-- \n1.3.3.g4309-dirty\n\n"}]}