trace: Print empty list correctly.
authorRichard W.M. Jones <rjones@redhat.com>
Wed, 22 Jun 2011 09:36:44 +0000 (10:36 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Wed, 13 Jul 2011 15:49:57 +0000 (16:49 +0100)
Empty lists returned by RStringList and RHashtable functions
were incorrectly printed as [""].

Fix this so they are printed as [] instead.
(cherry picked from commit 56b94f5f6aa7981533ad867cc908c6e9cca2ba42)

generator/generator_c.ml

index 4405d63..071b83c 100644 (file)
@@ -921,12 +921,14 @@ trace_send_line (guestfs_h *g)
      | RBufferOut _ ->
          pr "%s  guestfs___print_BufferOut (trace_fp, %s, *size_r);\n" indent rv
      | RStringList _ | RHashtable _ ->
-         pr "%s  fputs (\"[\\\"\", trace_fp);\n" indent;
+         pr "%s  fputs (\"[\", trace_fp);\n" indent;
          pr "%s  for (i = 0; %s[i]; ++i) {\n" indent rv;
-         pr "%s    if (i > 0) fputs (\"\\\", \\\"\", trace_fp);\n" indent;
+         pr "%s    if (i > 0) fputs (\", \", trace_fp);\n" indent;
+         pr "%s    fputs (\"\\\"\", trace_fp);\n" indent;
          pr "%s    fputs (%s[i], trace_fp);\n" indent rv;
+         pr "%s    fputs (\"\\\"\", trace_fp);\n" indent;
          pr "%s  }\n" indent;
-         pr "%s  fputs (\"\\\"]\", trace_fp);\n" indent;
+         pr "%s  fputs (\"]\", trace_fp);\n" indent;
      | RStruct (_, typ) ->
          (* XXX There is code generated for guestfish for printing
           * these structures.  We need to make it generally available