@@ -685,7 +685,7 @@ enum output_format {
685685};
686686
687687static enum output_format
688- parse_output_format (const char * name , char * callname __hwloc_attribute_unused )
688+ parse_output_format (const char * name , unsigned long * xml_flags )
689689{
690690 if (!hwloc_strncasecmp (name , "default" , 3 ))
691691 return LSTOPO_OUTPUT_DEFAULT ;
@@ -714,7 +714,13 @@ parse_output_format(const char *name, char *callname __hwloc_attribute_unused)
714714 return LSTOPO_OUTPUT_CAIROSVG ;
715715 else if (!strcasecmp (name , "nativesvg" ) || !strcasecmp (name , "svg(native)" ))
716716 return LSTOPO_OUTPUT_NATIVESVG ;
717- else if (!strcasecmp (name , "xml" ))
717+ else if (!strcasecmp (name , "v2xml" )) {
718+ * xml_flags |= HWLOC_TOPOLOGY_EXPORT_XML_FLAG_V2 ;
719+ return LSTOPO_OUTPUT_XML ;
720+ } else if (!strcasecmp (name , "v3xml" )) {
721+ * xml_flags &= ~HWLOC_TOPOLOGY_EXPORT_XML_FLAG_V2 ;
722+ return LSTOPO_OUTPUT_XML ;
723+ } else if (!strcasecmp (name , "xml" ))
718724 return LSTOPO_OUTPUT_XML ;
719725 else if (!strcasecmp (name , "shmem" ))
720726 return LSTOPO_OUTPUT_SHMEM ;
@@ -1472,7 +1478,7 @@ main (int argc, char *argv[])
14721478 } else if (!strcmp (argv [0 ], "--output-format" ) || !strcmp (argv [0 ], "--of" )) {
14731479 if (argc < 2 )
14741480 goto out_usagefailure ;
1475- output_format = parse_output_format (argv [1 ], callname );
1481+ output_format = parse_output_format (argv [1 ], & loutput . export_xml_flags );
14761482 opt = 1 ;
14771483 } else {
14781484 if (filename ) {
@@ -1513,7 +1519,7 @@ main (int argc, char *argv[])
15131519 } else {
15141520 char * dot = strrchr (filename , '.' );
15151521 if (dot ) {
1516- output_format = parse_output_format (dot + 1 , callname );
1522+ output_format = parse_output_format (dot + 1 , & loutput . export_xml_flags );
15171523 if (dot == filename + 1 && filename [0 ] == '-' && output_format != LSTOPO_OUTPUT_ERROR )
15181524 filename = "-" ; /* to simplify things later */
15191525 } else {
0 commit comments