Jeff, is the attached patch what you want? Lines should be small enough
on most machines now.

Brice

diff --git a/utils/lstopo-draw.c b/utils/lstopo-draw.c
index 8ecde34..10282b7 100644
--- a/utils/lstopo-draw.c
+++ b/utils/lstopo-draw.c
@@ -659,11 +659,11 @@ misc_draw(hwloc_topology_t topology, struct draw_methods *methods, int logical,
 static void
 fig(hwloc_topology_t topology, struct draw_methods *methods, int logical, int legend, hwloc_obj_t level, void *output, unsigned depth, unsigned x, unsigned y)
 {
-  unsigned totwidth, totheight;
+  unsigned totwidth, totheight, offset;
   time_t t;
   char text[64];
   char *date;
-  char hostname[64];
+  char hostname[64] = "";
   int n;
   unsigned long hostname_size = sizeof(hostname);

@@ -676,18 +676,23 @@ fig(hwloc_topology_t topology, struct draw_methods *methods, int logical, int le
     date[n-1] = 0;

   if (legend) {
-    if (hwloc_topology_is_thissystem(topology) &&
+    if (hwloc_topology_is_thissystem(topology))
 #ifdef HWLOC_WIN_SYS
-        GetComputerName(hostname, &hostname_size)
+      GetComputerName(hostname, &hostname_size);
 #else
-        !gethostname(hostname, hostname_size)
+      gethostname(hostname, hostname_size);
 #endif
-        )
-      snprintf(text, sizeof(text), "%s IDs for %s on %s", logical ? "logical" : "physical", hostname, date);
-    else
-      snprintf(text, sizeof(text), "%s IDs on %s", logical ? "logical" : "physical", date);
-    methods->box(output, 0xff, 0xff, 0xff, depth, 0, totwidth, totheight, gridsize + fontsize + gridsize);
-    methods->text(output, 0, 0, 0, fontsize, depth, gridsize, totheight + gridsize, text);
+    snprintf(text, sizeof(text), "%s IDs", logical ? "logical" : "physical");
+    if (*hostname) {
+      methods->box(output, 0xff, 0xff, 0xff, depth, 0, totwidth, totheight, gridsize*4 + fontsize*3);
+      methods->text(output, 0, 0, 0, fontsize, depth, gridsize, totheight + gridsize, hostname);
+      offset = gridsize + fontsize;
+    } else {
+      methods->box(output, 0xff, 0xff, 0xff, depth, 0, totwidth, totheight, gridsize*3 + fontsize*2);
+      offset = 0;
+    }
+    methods->text(output, 0, 0, 0, fontsize, depth, gridsize, totheight + gridsize + offset, text);
+    methods->text(output, 0, 0, 0, fontsize, depth, gridsize, totheight + gridsize + offset + fontsize + gridsize, date);
   }
 }

Reply via email to