static int fprintRevisions(FILE *f, int modLen, SmiRevision *smiRevision, SmiModule *smiModule, int size) { int n = 0; if (smiRevision) { n = fprintRevisions(f, modLen, smiGetNextRevision(smiRevision), smiModule, -1); fprintf(f, "%-*s %7s ", modLen, smiModule->name, (size >= 0) ? language(smiModule->language) : "-"); if (size >= 0) { fprintf(f, "%4d", size); } else { fprintf(f, " -"); } fprintf(f, " %3d %s\n", n, getDateString(smiRevision->date)); n++; } if (!smiRevision && size >= 0) { fprintf(f, "%-*s %7s ", modLen, smiModule->name, language(smiModule->language)); fprintf(f, "%4d", size); fprintf(f, " - ----------\n"); } return n; }
static void fprintModule(FILE *f, SmiModule *smiModule) { SmiRevision *smiRevision; SmiNode *smiNode; int i; char *lang; lang = getStringLanguage(smiModule->language); fprintSegment(f, INDENT, "", 0); if (lang) { fprint(f, "<module name=\"%s\" language=\"%s\">\n", smiModule->name, lang); } else { fprint(f, "<module name=\"%s\">\n", smiModule->name); } if (smiModule->organization) { fprintSegment(f, 2 * INDENT, "<organization>", INDENTVALUE); fprint(f, "\n"); fprintMultilineString(f, 2 * INDENT, smiModule->organization); fprint(f, "\n"); fprintSegment(f, 2 * INDENT, "</organization>\n", 0); } if (smiModule->contactinfo) { fprintSegment(f, 2 * INDENT, "<contact>", INDENTVALUE); fprint(f, "\n"); fprintMultilineString(f, 2 * INDENT, smiModule->contactinfo); fprint(f, "\n"); fprintSegment(f, 2 * INDENT, "</contact>\n", 0); } fprintDescription(f, 2 * INDENT, smiModule->description); fprintReference(f, 2 * INDENT, smiModule->reference); for(i = 0, smiRevision = smiGetFirstRevision(smiModule); smiRevision; smiRevision = smiGetNextRevision(smiRevision)) { fprintSegment(f, 2 * INDENT, "", 0); fprint(f, "<revision date=\"%s\">\n", getTimeString(smiRevision->date)); fprintDescription(f, 3 * INDENT, smiRevision->description); fprintSegment(f, 2 * INDENT, "</revision>\n", 0); i++; } smiNode = smiGetModuleIdentityNode(smiModule); if (smiNode) { fprintSegment(f, 2 * INDENT, "", 0); fprint(f, "<identity node=\"%s\"/>\n", smiNode->name); } fprintSegment(f, INDENT, "</module>\n\n", 0); }
static void fprintRevisions(FILE *f, SmiModule *smiModule) { int i; SmiRevision *smiRevision; for(i = 0, smiRevision = smiGetFirstRevision(smiModule); smiRevision; smiRevision = smiGetNextRevision(smiRevision)) { fprintSegment(f, INDENT, "revision {\n", 0); fprintSegment(f, 2 * INDENT, "date", INDENTVALUE); fprint(f, "\"%s\";\n", getStringTime(smiRevision->date)); fprintSegment(f, 2 * INDENT, "description", INDENTVALUE); fprint(f, "\n"); fprintMultilineString(f, 2 * INDENT, smiRevision->description); fprint(f, ";\n"); fprintSegment(f, INDENT, "};\n", 0); i++; } if (i) { fprint(f, "\n"); } }