--- OLD/mktag.c Thu Jan 1 00:00:00 1970 +++ NEW/mktag.c Thu Jan 1 00:00:00 1970 @@ -35,9 +35,11 @@ } #ifdef NO_C99_FORMAT -#define PD_FMT "%d" +#define PD_FMT "%ld" +#define PD_TYPE long int #else #define PD_FMT "%td" +#define PD_TYPE ptrdiff_t #endif static int verify_tag(char *buffer, unsigned long size) @@ -69,15 +71,15 @@ /* Verify tag-line */ tag_line = strchr(type_line, '\n'); if (!tag_line) - return error("char" PD_FMT ": could not find next \"\\n\"", type_line - buffer); + return error("char" PD_FMT ": could not find next \"\\n\"", (PD_TYPE)(type_line - buffer)); tag_line++; if (memcmp(tag_line, "tag ", 4) || tag_line[4] == '\n') - return error("char" PD_FMT ": no \"tag \" found", tag_line - buffer); + return error("char" PD_FMT ": no \"tag \" found", (PD_TYPE)(tag_line - buffer)); /* Get the actual type */ typelen = tag_line - type_line - strlen("type \n"); if (typelen >= sizeof(type)) - return error("char" PD_FMT ": type too long", type_line+5 - buffer); + return error("char" PD_FMT ": type too long", (PD_TYPE)(type_line+5 - buffer)); memcpy(type, type_line+5, typelen); type[typelen] = 0; @@ -94,7 +96,7 @@ break; if (c > ' ') continue; - return error("char" PD_FMT ": could not verify tag name", tag_line - buffer); + return error("char" PD_FMT ": could not verify tag name", (PD_TYPE)(tag_line - buffer)); } /* Verify the tagger line */ @@ -102,7 +104,7 @@ if (memcmp(tagger_line, "tagger ", 7)) return error("char" PD_FMT ": could not find \"tagger \"", - tagger_line - buffer); + (PD_TYPE)(tagger_line - buffer)); /* * Check for correct form for name and email @@ -115,22 +117,22 @@ strpbrk(tagger_line, "<>\n") != lb+1 || strpbrk(lb+2, "><\n ") != rb) return error("char" PD_FMT ": malformed tagger field", - tagger_line - buffer); + (PD_TYPE)(tagger_line - buffer)); /* Check for author name, at least one character, space is acceptable */ if (lb == tagger_line) return error("char" PD_FMT ": missing tagger name", - tagger_line - buffer); + (PD_TYPE)(tagger_line - buffer)); /* timestamp, 1 or more digits followed by space */ tagger_line = rb + 2; if (!(len = strspn(tagger_line, "0123456789"))) return error("char" PD_FMT ": missing tag timestamp", - tagger_line - buffer); + (PD_TYPE)(tagger_line - buffer)); tagger_line += len; if (*tagger_line != ' ') return error("char" PD_FMT ": malformed tag timestamp", - tagger_line - buffer); + (PD_TYPE)(tagger_line - buffer)); tagger_line++; /* timezone, 5 digits [+-]hhmm, max. 1400 */ @@ -138,19 +140,20 @@ strspn(tagger_line+1, "0123456789") == 4 && tagger_line[5] == '\n' && atoi(tagger_line+1) <= 1400)) return error("char" PD_FMT ": malformed tag timezone", - tagger_line - buffer); + (PD_TYPE)(tagger_line - buffer)); tagger_line += 6; /* Verify the blank line separating the header from the body */ if (*tagger_line != '\n') return error("char" PD_FMT ": trailing garbage in tag header", - tagger_line - buffer); + (PD_TYPE)(tagger_line - buffer)); /* The actual stuff afterwards we don't care about.. */ return 0; } #undef PD_FMT +#undef PD_TYPE int main(int argc, char **argv) {