コード例 #1
0
ファイル: dump-xml.c プロジェクト: pan0007/libsmi
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);
}
コード例 #2
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");
    }
}
コード例 #3
0
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");
 
}