Ilya Zakharevich on Tue, 14 May 2002 19:19:33 -0400 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: DYNAMIC_PLOTTING with gnuplot made easy |
This patch makes the combination of builtin-X11 plotting and gnuplot-X11 plotting workable. There must be some bad side-effects yet, e.g., I do not expect that gnuplot-X11 plotting will be usable after swiching from gnuplot-X11 to builtin-X11 plotting. In other words, this probably would not work: plotterm(X11) ...do-something plotterm(builtin) ...do-something plotterm(X11) ...do-something Hmm, maybe it would; cannot trace all these fork()s, X callbacks, and signal handler in my head... ;-) Enjoy, Ilya --- ./src/graph/plotX.c-pre-bug Tue May 14 19:08:55 2002 +++ ./src/graph/plotX.c Tue May 14 19:11:29 2002 @@ -169,6 +169,9 @@ rectdraw0(long *w, long *x, long *y, lon /* child process goes on */ freeall(); /* PARI stack isn't needed anymore, keep rectgraph */ + /* if gnuplot X11 plotting is active, may get SIGPIPE... XXXX Better disable + * some X callback? */ + os_signal(SIGPIPE, SIG_IGN); PARI_get_plot(1); display = XOpenDisplay(NULL); font_info = XLoadQueryFont(display, "9x15"); --- ./src/graph/plotport.c-pre-bug Tue May 14 18:36:14 2002 +++ ./src/graph/plotport.c Tue May 14 18:59:15 2002 @@ -210,6 +210,8 @@ free_graph(void) { int i; + if (!rectgraph) + return; for (i=0; i<NUMRECT; i++) { PariRect *e=rectgraph[i]; @@ -218,6 +220,7 @@ free_graph(void) free((void *)e); } free((void *)rectgraph); + rectgraph = 0; } static PariRect *