X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=generator%2Fgenerator_c.ml;h=071b83cf77ec413375bcf3c9a47a4a8687a7c83f;hb=16e022871c606e5ce4c6f5db985d9e5b7818ee57;hp=aee2d774149e348f8a8c7895d8210dfe76d4299b;hpb=4e0cf4dbf8a8a96288f70114fdc3939da0aa7ad1;p=libguestfs.git diff --git a/generator/generator_c.ml b/generator/generator_c.ml index aee2d77..071b83c 100644 --- a/generator/generator_c.ml +++ b/generator/generator_c.ml @@ -365,6 +365,11 @@ extern \"C\" { #include #include +#ifdef __GNUC__ +# define GUESTFS_GCC_VERSION \\ + (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) +#endif + /* The handle. */ #ifndef GUESTFS_TYPEDEF_H #define GUESTFS_TYPEDEF_H 1 @@ -570,6 +575,8 @@ extern void *guestfs_next_private (guestfs_h *g, const char **key_rtn); ~prefix:"guestfs_" ~suffix:"_argv" ~optarg_proto:Argv shortname style; ); + + pr "\n"; ) all_functions_sorted; pr "\ @@ -914,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 @@ -1177,6 +1186,8 @@ trace_send_line (guestfs_h *g) pr " if (r == -1) {\n"; pr " guestfs___end_busy (g);\n"; trace_return_error ~indent:4 shortname style errcode; + pr " /* daemon will send an error reply which we discard */\n"; + pr " guestfs___recv_discard (g, \"%s\");\n" shortname; pr " return %s;\n" (string_of_errcode errcode); pr " }\n"; pr " if (r == -2) /* daemon cancelled */\n";