From 31966e6ef45bc52d64abf361c61d51b745c9b193 Mon Sep 17 00:00:00 2001 From: "Emden R. Gansner" Date: Sun, 26 Jan 2014 19:38:09 -0500 Subject: [PATCH] Reset gvc->write_fn in gv.renderchannel and gv.renderresult so that later calls to gv.render, which requires the default I/O, work. --- tclpkg/gv/gv.cpp | 3 +++ tclpkg/gv/gv_dummy_init.c | 1 + tclpkg/gv/gv_php_init.c | 1 + tclpkg/gv/gv_tcl_init.c | 2 ++ 4 files changed, 7 insertions(+) diff --git a/tclpkg/gv/gv.cpp b/tclpkg/gv/gv.cpp index a8459f843..cf98d4326 100644 --- a/tclpkg/gv/gv.cpp +++ b/tclpkg/gv/gv.cpp @@ -18,6 +18,7 @@ extern "C" { extern void gv_string_writer_init(GVC_t *gvc); extern void gv_channel_writer_init(GVC_t *gvc); +extern void gv_writer_reset(GVC_t *gvc); } #define agfindattr(x,s) agattrsym(x,s) @@ -850,6 +851,7 @@ bool renderchannel(Agraph_t *g, const char *format, const char *channelname) return false; gv_channel_writer_init(gvc); err = gvRender(gvc, g, format, (FILE*)channelname); + gv_writer_reset (gvc); /* Reset to default */ return (! err); } @@ -873,6 +875,7 @@ void renderresult(Agraph_t *g, const char *format, char *outdata) return; gv_string_writer_init(gvc); err = gvRender(gvc, g, format, (FILE*)outdata); + gv_writer_reset (gvc); /* Reset to default */ } // render to a malloc'ed data string, to be free'd by caller. diff --git a/tclpkg/gv/gv_dummy_init.c b/tclpkg/gv/gv_dummy_init.c index 096f2a970..dfdf2b986 100644 --- a/tclpkg/gv/gv_dummy_init.c +++ b/tclpkg/gv/gv_dummy_init.c @@ -2,3 +2,4 @@ void gv_string_writer_init (GVC_t *gvc) {} void gv_channel_writer_init (GVC_t *gvc) {} +void gv_writer_reset (GVC_t *gvc) {} diff --git a/tclpkg/gv/gv_php_init.c b/tclpkg/gv/gv_php_init.c index a56b273b6..57503cfc7 100644 --- a/tclpkg/gv/gv_php_init.c +++ b/tclpkg/gv/gv_php_init.c @@ -43,3 +43,4 @@ void gv_channel_writer_init(GVC_t *gvc) gvc->write_fn = gv_channel_writer; } +void gv_writer_reset (GVC_t *gvc) {gvc->write_fn = NULL;} diff --git a/tclpkg/gv/gv_tcl_init.c b/tclpkg/gv/gv_tcl_init.c index dca5fa746..9940540a5 100644 --- a/tclpkg/gv/gv_tcl_init.c +++ b/tclpkg/gv/gv_tcl_init.c @@ -37,3 +37,5 @@ void gv_channel_writer_init(GVC_t *gvc) { gvc->write_fn = gv_channel_writer; } + +void gv_writer_reset (GVC_t *gvc) {gvc->write_fn = NULL;} -- 2.40.0