diff -r -u libsmi-0.4.5/tools/dump-perl.c libsmi-0.4.5-patched/tools/dump-perl.c --- libsmi-0.4.5/tools/dump-perl.c 2005-11-25 01:13:57.000000000 -0800 +++ libsmi-0.4.5-patched/tools/dump-perl.c 2006-07-11 12:19:05.000000000 -0700 @@ -327,11 +327,14 @@ static void fprintRanges(FILE *f, int indent, SmiType *smiType) { SmiRange *range; + SmiRange *lastrange = NULL; + fprintSegment(f, indent, "\"ranges\" => (\n", 0); for(range = smiGetFirstRange(smiType); range; range = smiGetNextRange(range)) { - fprintSegment(f, indent, "\"range\" => {\n", 0); + lastrange = range; + fprintSegment(f, indent, "{\n", 0); fprintSegment(f, indent + INDENT, "", 0); fprint(f, "\"min\" => \"%s\",\n", getValueString(&range->minValue, smiType)); @@ -340,6 +343,17 @@ getValueString(&range->maxValue, smiType)); fprintSegment(f, indent, "},\n", 0); } + fprintSegment(f, indent, "),\n", 0); + if(lastrange != NULL) { + fprintSegment(f, indent, "\"range\" => {\n", 0); + fprintSegment(f, indent + INDENT, "", 0); + fprint(f, "\"min\" => \"%s\",\n", + getValueString(&lastrange->minValue, smiType)); + fprintSegment(f, indent + INDENT, "", 0); + fprint(f, "\"max\" => \"%s\"\n", + getValueString(&lastrange->maxValue, smiType)); + fprintSegment(f, indent, "},\n", 0); + } } diff -r -u libsmi-0.4.5/tools/dump-python.c libsmi-0.4.5-patched/tools/dump-python.c --- libsmi-0.4.5/tools/dump-python.c 2005-11-25 01:13:58.000000000 -0800 +++ libsmi-0.4.5-patched/tools/dump-python.c 2006-07-11 11:58:54.000000000 -0700 @@ -326,12 +326,15 @@ static void fprintRanges(FILE *f, int indent, SmiType *smiType) { - SmiRange *range; + SmiRange *range; + SmiRange *lastrange = NULL; + fprintSegment(f, indent, "\"ranges\" : [\n", 0); for(range = smiGetFirstRange(smiType); range; range = smiGetNextRange(range)) { - fprintSegment(f, indent, "\"range\" : {\n", 0); + lastrange = range; + fprintSegment(f, indent, "{\n", 0); fprintSegment(f, indent + INDENT, "", 0); fprint(f, "\"min\" : \"%s\",\n", getValueString(&range->minValue, smiType)); @@ -339,7 +342,19 @@ fprint(f, "\"max\" : \"%s\"\n", getValueString(&range->maxValue, smiType)); fprintSegment(f, indent, "},\n", 0); - } + } + fprintSegment(f, indent, "],\n", 0); + + if(lastrange != NULL) { + fprintSegment(f, indent, "\"range\" : {\n", 0); + fprintSegment(f, indent + INDENT, "", 0); + fprint(f, "\"min\" : \"%s\",\n", + getValueString(&lastrange->minValue, smiType)); + fprintSegment(f, indent + INDENT, "", 0); + fprint(f, "\"max\" : \"%s\"\n", + getValueString(&lastrange->maxValue, smiType)); + fprintSegment(f, indent, "},\n", 0); + } }