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"); } }
static void fprintRevision(FILE *f, int modc, SmiModule **modv) { int i; int modLen = 8; for (i = 0; i < modc; i++) { if (modLen < strlen(modv[i]->name)) { modLen = strlen(modv[i]->name); } } fprintf(f, "%-*s LANGUAGE SIZE REVISION DATE\n", modLen, "MODULE"); for (i = 0; i < modc; i++) { fprintRevisions(f, modLen, smiGetFirstRevision(modv[i]), modv[i], calcSize(modv[i])); } fprintf(f, "\n"); }