]> granicus.if.org Git - graphviz/commitdiff
gvc gvprintpointflist: rewrite for clarity
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Thu, 18 Aug 2022 00:42:35 +0000 (17:42 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Tue, 23 Aug 2022 04:38:16 +0000 (21:38 -0700)
The unusual structure of the loop in this function made it appear as if it was
intending to cope with e.g. an `n` of 0 but still print the first element of
`p`. Surveying the callers of `gvprintpointflist`, we can see it is never used
this way. So we can write it simpler and more readably.

lib/gvc/gvdevice.c

index 5ced43c1200edfd513824c0c580386b5ae04b87e..7a8c6f9b36caa6a58babb4892a947f7739fbe8d6 100644 (file)
@@ -597,12 +597,10 @@ void gvprintpointf(GVJ_t * job, pointf p)
 
 void gvprintpointflist(GVJ_t * job, pointf *p, int n)
 {
-    int i = 0;
-
-    while (true) {
-       gvprintpointf(job, p[i]);
-        if (++i >= n) break;
-        gvwrite(job, " ", 1);
-    }
+  const char *separator = "";
+  for (int i = 0; i < n; ++i) {
+    gvputs(job, separator);
+    gvprintpointf(job, p[i]);
+    separator = " ";
+  }
 } 
-