enum {
CF_DEFAULT,
CF_VERINFO,
- CF_TEXT
+ CF_TEXT,
+ CF_XML
} cfgFormat = CF_DEFAULT;
char *programName;
Usage(void)
{
printf
- ("Usage: %s [-d directory] [-o output file name] [-c component] [-v | -t]\n",
+ ("Usage: %s [-d directory] [-o output file name] [-c component] [-v | -t | -x]\n",
programName);
printf("%s creates the AFS_component_version_number.c file.\n",
programName);
("-c component - if not \"afs\" prefix for cml_version_number variable.\n");
printf("-v generate NT versioninfo style declarations.\n");
printf("-t generate text file style information.\n");
+ printf("-x generate XML revision information.\n");
exit(1);
}
printf("Specify only one alternative output format\n");
Usage();
}
+ } else if (!strcmp("-x", argv[i])) {
+ if (cfgFormat == CF_DEFAULT || cfgFormat == CF_XML) {
+ cfgFormat = CF_XML;
+ } else {
+ printf("Specify only one alternative output format\n");
+ Usage();
+ }
} else {
printf("%s: Unknown argument.\n", argv[i]);
Usage();
strcat(outputFileBuf, ".h");
} else if (cfgFormat == CF_TEXT) {
strcat(outputFileBuf, ".txt");
+ } else if (cfgFormat == CF_XML) {
+ strcat(outputFileBuf, ".xml");
} else {
strcat(outputFileBuf, ".c");
}
if ((code = stat(outputFile, &sbuf)) < 0) {
reBuild = 1;
- versTime = (time_t) 0; /* inidicates no output file. */
+ versTime = (time_t) 0; /* indicates no output file. */
} else {
versTime = sbuf.st_mtime;
}
} else if (cfgFormat == CF_TEXT) {
fprintf(fpVers, "Base configuration %s\n",
stateDeltas[i].name);
+ } else if (cfgFormat == CF_TEXT) {
+ fprintf(fpVers,
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<revision>\n"
+ "<revnumber>\n"
+ "Base configuration %s\n"
+ "</revnumber>\n",
+ stateDeltas[i].name);
} else {
fprintf(fpVers, "%sBase configuration %s", cml_string,
stateDeltas[i].name);
if (cfgFormat == CF_TEXT) {
fprintf(fpVers, "%c%s\n", stateDeltas[i].type,
stateDeltas[i].name);
+ } else if (cfgFormat == CF_XML) {
+ fprintf(fpVers,
+ "<revremark>\n"
+ ";%c%s"
+ "</revremark>\n",
+ stateDeltas[i].type,
+ stateDeltas[i].name);
} else {
fprintf(fpVers, ";%c%s", stateDeltas[i].type,
stateDeltas[i].name);
if (cfgFormat == CF_TEXT) {
fprintf(fpVers, "%c%s\n", stateDeltas[i].type,
stateDeltas[i].name);
+ } else if (cfgFormat == CF_XML) {
+ fprintf(fpVers,
+ "<revremark>\n"
+ ";%c%s"
+ "</revremark>\n",
+ stateDeltas[i].type,
+ stateDeltas[i].name);
} else {
fprintf(fpVers, ";%c%s", stateDeltas[i].type,
stateDeltas[i].name);
if (s)
*s = '\0';
fprintf(fpVers, "%s%s\";\n", AFS_STRING, c ? c : "Unknown");
+ } else if (cfgFormat == CF_XML) {
+ fprintf(fpVers, "</revision>\n");
}
}