--- demo/ellipse.dem +++ demo/ellipse.dem 2010-04-06 16:00:28.000000000 +0000 @@ -9,6 +9,7 @@ if ((GPVAL_VERSION == 4.3 || GPVAL_VERSI print "This copy of gnuplot was built without support for placing ellipses\n" ; \ exit ; +random="`mktemp /tmp/random.XXXXXX` unset key set xrange [-8:8] @@ -27,7 +28,7 @@ set object 1 ellipse center 1.5,1.0 size set obj 2 ellipse center 1.5, 1 size 6, 12 angle 20 front fs empty bo 3 A = pi/9. -plot 'random.tmp' using (1.5 + $1*cos(A)-2.*$2*sin(A)):(1.0 + $1*sin(A)+2.*$2*cos(A)) with dots +plot random using (1.5 + $1*cos(A)-2.*$2*sin(A)):(1.0 + $1*sin(A)+2.*$2*cos(A)) with dots pause -1 "Hit return to continue" --- demo/fit.dem +++ demo/fit.dem 2010-04-07 07:33:39.097446751 +0000 @@ -5,9 +5,11 @@ print "Some examples how data fitting using nonlinear least squares fit" print "can be done." print "" +logfile = "`mktemp /tmp/fit.log.XXXXXX`" pause -1 "first plotting the pure data set (-> return)" reset +set fit logfile logfile set title 'data for first fit demo' set xlabel "Temperature T [deg Cels.]" set ylabel "Density [g/cm3]" @@ -162,7 +164,7 @@ pause -1 "(-> return)" # Must provide an error estimate for a 3d fit. Use constant 1 fit f(x,y) 'soundvel.dat' using 1:-2:2:(1) 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`" print "" pause -1 "(-> return)" set title 'pseudo-3d multi-branch fit to velocity data' @@ -251,6 +253,7 @@ print "" pause -1 "Hit return to continue" reset +set fit logfile logfile set xlabel 'x' set ylabel 'y' set zlabel 'z' @@ -340,3 +343,4 @@ print "from time to time!" print "" pause -1 "Done with fitting demo (-> return)" reset +set fit logfile logfile --- demo/poldat.dem +++ demo/poldat.dem 2010-04-07 07:40:04.016079881 +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/random.dem +++ demo/random.dem 2009-06-15 12:28:57.000000000 +0000 @@ -53,7 +53,8 @@ set parametric # non-pressing plot-command feature addition may address this issue. set samples nsamp set format "%8.5g" -set table "random.tmp" +random="`mktemp /tmp/random.XXXXXX`" +set table random plot invnorm(rand(0)),invnorm(rand(0)) unset table unset format @@ -75,7 +76,7 @@ set vrange [-3:3] set ticslevel 0 set isosamples 30 splot u,v,( 1/(2*pi) * exp(-0.5 * (u**2 + v**2)) ) with line lc rgb "black", \ - "random.tmp" using 1:2:(-0.2) with points pointtype 7 lc rgb "black" + random using 1:2:(-0.2) with points pointtype 7 lc rgb "black" pause -1 "Hit return to continue" unset contour @@ -101,7 +102,7 @@ scale = (binwidth/(xhigh-xlow)) set parametric set samples nsamp set format "%8.5g" -set table "random.tmp" +set table random plot invnorm(rand(0)),(1.0*scale/nsamp) unset table unset format @@ -115,7 +116,7 @@ set grid set xrange [-3:3] set yrange [0:0.45] bin(x) = (1.0/scale)*floor(x*scale) -plot "random.tmp" using (bin($1)):2 smooth frequency with steps \ +plot random using (bin($1)):2 smooth frequency with steps \ title "scaled bin frequency", \ normal(x,0,1) with lines title "Gaussian p.d.f." pause -1 "Hit return to continue" @@ -136,7 +137,7 @@ set parametric set samples nsamp set isosamples 2,2 # Smallest possible set format "%8.5g" -set table "random.tmp" +set table random splot invnorm(rand(0)),invnorm(rand(0)),invnorm(rand(0)) unset table unset format @@ -158,7 +159,7 @@ set zzeroaxis lt -1 set view 68, 28, 1.4, 0.9 tstring(n) = sprintf("Gaussian 3D cloud of %d random samples\n", n) set title tstring(nsamp) offset graph 0.15, graph -0.33 -splot "random.tmp" every :::::0 with dots +splot random every :::::0 with dots if (!oneplot) pause -1 "Hit return to continue" unset parametric @@ -178,7 +179,7 @@ scale = (binwidth/(xhigh-xlow)) set xrange [0:xhigh] set yrange [0:0.65] bin(x) = (1.0/scale)*floor(x*scale) -plot "random.tmp" using (bin(sqrt($1**2+$2**2+$3**2))):(1.0*scale/nsamp) every :::::0 smooth frequency with steps \ +plot random using (bin(sqrt($1**2+$2**2+$3**2))):(1.0*scale/nsamp) every :::::0 smooth frequency with steps \ title "scaled bin frequency", \ maxwell(x, 1/sqrt(2)) with lines title "Maxwell p.d.f." # --- demo/simple.dem +++ demo/simple.dem 2009-05-09 11:32:24.000000000 +0000 @@ -7,12 +7,11 @@ # gnuplot> load 'simple.dem' # set key left box -set samples 50 +set samples 400 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 2009-06-15 12:46:14.000000000 +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 "" @@ -24,7 +25,7 @@ print "(foo.foo)[2:2]= ",(foo.foo)[2:2] 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] @@ -33,7 +34,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 @@ -62,7 +63,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] --- demo/vector.dem +++ demo/vector.dem 2009-06-15 12:24:23.000000000 +0000 @@ -62,19 +62,21 @@ splot vtot(x,y) w l print "Now create a file with equipotential lines" pause -1 "Hit return to continue" -set table "equipo2.tmp" +equipo2="`mktemp /tmp/equipo2.XXXXXX`" +set table equipo2 replot unset table reset pause 0 -plot "equipo2.tmp" w l +plot equipo2 w l print "Now create a x/y datafile for plotting with vectors " print "and display vectors parallel to the electrostatic field" pause -1 "Hit return to continue" set isosam 31,31 -set table "field2xy.tmp" +field2xy="`mktemp /tmp/field2xy.XXXXXX`" +set table field2xy splot vtot(x,y) w l unset table pause 0 @@ -84,8 +86,8 @@ set xr [xmin:xmax] set yr [ymin:ymax] set isosam 31,31 set key under Left reverse -plot "field2xy.tmp" u 1:2:(coef*dx1($1,$2)):(coef*dy1($1,$2)) w vec, \ - "equipo2.tmp" w l +plot field2xy u 1:2:(coef*dx1($1,$2)):(coef*dy1($1,$2)) w vec, \ + equipo2 w l pause -1 "Hit return to continue" reset --- src/show.c +++ src/show.c 2010-05-19 21:19:16.000000000 +0200 @@ -1054,6 +1054,15 @@ p /* hit 'h' */ ); +#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 2009-06-15 12:01:39.000000000 +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" @@ -95,6 +98,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); @@ -103,6 +117,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;