--- demo/fit.dem | 6 +++++- demo/poldat.dem | 2 +- demo/simple.dem | 3 +-- demo/stringvar.dem | 9 +++++---- src/show.c | 9 +++++++++ src/variable.c | 20 +++++++++++++++++++- 6 files changed, 40 insertions(+), 9 deletions(-) --- demo/fit.dem +++ demo/fit.dem 2016-12-15 12:39:37.002761578 +0000 @@ -10,6 +10,7 @@ set dummy x, y print "Some examples how data fitting using nonlinear least squares fit can be done." print '' +logfile = "`mktemp /tmp/fit.log.XXXXXX`" print "We fit a straight line to the data -- only as a demo without physical meaning." l(x) = y0 + m*x @@ -29,6 +30,7 @@ set title 'data set and initial paramete plot 'lcdemo.dat', l(x) pause -1 "Now start fitting... (-> return)" +set fit logfile logfile fit l(x) 'lcdemo.dat' via y0, m set title 'unweighted fit' plot 'lcdemo.dat', l(x) @@ -167,7 +169,7 @@ pause -1 "Press enter to start the fit." fit f(x,y) 'soundvel.dat' using 1:-2:2 via 'sound.par' #create soundfit.par, reading from sound.par and updating values -update 'sound.par' 'soundfit.par' +update 'sound.par' "`mktemp /tmp/soundfit.par.XXXXXX`" set title 'pseudo-3d multi-branch fit to velocity data' plot 'soundvel.dat', vlong(x), vtrans(x) print '' @@ -323,6 +325,7 @@ print ' "fit3.dat" u 1:2:3:4 via a0, pause -1 "Press enter to proceed with the next example." reset +set fit logfile logfile print "\n" print "The fit command can handle errors in the independent variable, too." print "The problem shown here is Pearson's data with York's weights.\n" @@ -428,6 +431,7 @@ print "to time." print '' pause -1 "Done with fitting demo (-> return)" reset +set fit logfile logfile set encoding myencoding # release datablock undefine $PearsonYork --- demo/poldat.dem +++ demo/poldat.dem 2016-12-15 12:39:37.002761578 +0000 @@ -11,7 +11,7 @@ unset grid unset polar set title "Primitive Smith Chart" unset key -set xlabel "Impedance or Admittance Coordinates" +set xlabel "Impedance or Admittance Coordinates" offset 12,-1 set para set rrange [-0 : 10] set trange [-pi : pi] --- demo/simple.dem +++ demo/simple.dem 2016-12-15 12:39:37.002761578 +0000 @@ -8,14 +8,13 @@ # set title "Simple Plots" font ",20" set key left box -set samples 50 +set samples 400 set style data points plot [-10:10] sin(x),atan(x),cos(atan(x)) pause -1 "Hit return to continue" set key right nobox -set samples 100 plot [-pi/2:pi] cos(x),-(sin(x) > sin(x+1) ? sin(x) : sin(x+1)) pause -1 "Hit return to continue" --- demo/stringvar.dem +++ demo/stringvar.dem 2016-12-15 12:39:37.002761578 +0000 @@ -1,7 +1,8 @@ # # Miscellaneous neat things you can do using the string variables code # -set print "stringvar.tmp" +stringvar="`mktemp /tmp/stringvar.XXXXXX`" +set print stringvar print "" print "Exercise substring handling" print "" @@ -27,7 +28,7 @@ print "foo[1:1] eq 'A' && foo[2:2] ne 'X unset print -set label 1 system("cat stringvar.tmp") at graph 0.1, graph 0.9 +set label 1 system(sprintf("cat %s", stringvar)) at graph 0.1, graph 0.9 unset xtics unset ytics set yrange [0:1] @@ -36,7 +37,7 @@ plot 0 pause -1 "Hit return to continue" -set print "stringvar.tmp" +set print stringvar print "Exercise string handling functions" print "" print "foo = ",foo @@ -65,7 +66,7 @@ if (strlen(foo) != 245) print "sprintf o print "" unset print -set label 1 system("cat stringvar.tmp") at graph 0.1, graph 0.9 +set label 1 system(sprintf("cat %s", stringvar)) at graph 0.1, graph 0.9 unset xtics unset ytics set yrange [0:1] --- src/show.c +++ src/show.c 2016-12-15 12:39:37.006761498 +0000 @@ -1051,6 +1051,15 @@ show_version(FILE *fp) p /* type "help seeking-assistance" */ ); +#ifdef GNUPLOT_LIB_DEFAULT + { + struct stat st; + if ((stat(GNUPLOT_LIB_DEFAULT, &st) == 0) && S_ISDIR(st.st_mode)) { + fprintf(fp, "%s\n%s\tType `load \"all.dem\"` to display a large number of examples.", p, p); + fprintf(fp, "\n%s\tThey are located at %s/*\n%s\n", p, GNUPLOT_LIB_DEFAULT, p); + } + } +#endif /* show version long */ if (almost_equals(c_token, "l$ong")) { --- src/variable.c +++ src/variable.c 2016-12-15 12:39:37.006761498 +0000 @@ -37,7 +37,10 @@ static char *RCSid() { return RCSid("$Id /* The Death of Global Variables - part one. */ #include - +#include +#include +#include +#include #include "variable.h" #include "alloc.h" @@ -98,6 +101,17 @@ loadpath_handler(int action, char *path) if (!loadpath) { char *envlib = getenv("GNUPLOT_LIB"); +#ifdef GNUPLOT_LIB_DEFAULT + char *defenvlib = (char*)0; + struct stat st; + if ((stat(GNUPLOT_LIB_DEFAULT, &st) == 0) && S_ISDIR(st.st_mode)) { + if (envlib) { + if (asprintf(&defenvlib, "%s:%s", envlib, GNUPLOT_LIB_DEFAULT) > 0) + envlib = defenvlib; + } else + envlib = GNUPLOT_LIB_DEFAULT; + } +#endif /* GNUPLOT_LIB_DEFAULT */ if (envlib) { int len = strlen(envlib); loadpath = gp_strdup(envlib); @@ -106,6 +120,10 @@ loadpath_handler(int action, char *path) /* convert all PATHSEPs to \0 */ PATHSEP_TO_NUL(loadpath); } /* else: NULL = empty */ +#ifdef GNUPLOT_LIB_DEFAULT + if (defenvlib) + free(defenvlib); +#endif /* GNUPLOT_LIB_DEFAULT */ } /* else: already initialised; int_warn (?) */ /* point to env portion of loadpath */ envptr = loadpath;