summaryrefslogtreecommitdiff
path: root/mktag.c
diff options
context:
space:
mode:
authorRamsay Allan Jones <ramsay@ramsay1.demon.co.uk>2006-07-30 15:38:28 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-08-02 07:27:18 (GMT)
commit579d1fbfaf25550254014fa472faac95f88eb779 (patch)
treea6cc7f0ba87e166d30007e6e9c91213a8ca7dded /mktag.c
parent446c6faec69f7ac521b8b9fc2b1874731729032f (diff)
downloadgit-579d1fbfaf25550254014fa472faac95f88eb779.zip
git-579d1fbfaf25550254014fa472faac95f88eb779.tar.gz
git-579d1fbfaf25550254014fa472faac95f88eb779.tar.bz2
Add NO_C99_FORMAT to support older compilers.
The NO_C99_FORMAT macro allows compilers that lack support for the ll,hh,j,z,t size specifiers (eg. gcc 2.95.2) to adapt the code to avoid runtime errors in the formatted IO functions. Signed-off-by: Ramsay Allan Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'mktag.c')
-rw-r--r--mktag.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/mktag.c b/mktag.c
index fa4a9e6..09b6e43 100644
--- a/mktag.c
+++ b/mktag.c
@@ -39,6 +39,12 @@ static int verify_object(unsigned char *sha1, const char *expected_type)
return ret;
}
+#ifdef NO_C99_FORMAT
+#define PD_FMT "%d"
+#else
+#define PD_FMT "%td"
+#endif
+
static int verify_tag(char *buffer, unsigned long size)
{
int typelen;
@@ -67,15 +73,15 @@ static int verify_tag(char *buffer, unsigned long size)
/* Verify tag-line */
tag_line = strchr(type_line, '\n');
if (!tag_line)
- return error("char%td: could not find next \"\\n\"", type_line - buffer);
+ return error("char" PD_FMT ": could not find next \"\\n\"", type_line - buffer);
tag_line++;
if (memcmp(tag_line, "tag ", 4) || tag_line[4] == '\n')
- return error("char%td: no \"tag \" found", tag_line - buffer);
+ return error("char" PD_FMT ": no \"tag \" found", tag_line - buffer);
/* Get the actual type */
typelen = tag_line - type_line - strlen("type \n");
if (typelen >= sizeof(type))
- return error("char%td: type too long", type_line+5 - buffer);
+ return error("char" PD_FMT ": type too long", type_line+5 - buffer);
memcpy(type, type_line+5, typelen);
type[typelen] = 0;
@@ -92,14 +98,14 @@ static int verify_tag(char *buffer, unsigned long size)
break;
if (c > ' ')
continue;
- return error("char%td: could not verify tag name", tag_line - buffer);
+ return error("char" PD_FMT ": could not verify tag name", tag_line - buffer);
}
/* Verify the tagger line */
tagger_line = tag_line;
if (memcmp(tagger_line, "tagger", 6) || (tagger_line[6] == '\n'))
- return error("char%td: could not find \"tagger\"", tagger_line - buffer);
+ return error("char" PD_FMT ": could not find \"tagger\"", tagger_line - buffer);
/* TODO: check for committer info + blank line? */
/* Also, the minimum length is probably + "tagger .", or 63+8=71 */
@@ -108,6 +114,8 @@ static int verify_tag(char *buffer, unsigned long size)
return 0;
}
+#undef PD_FMT
+
int main(int argc, char **argv)
{
unsigned long size = 4096;