diff --git a/BUGS b/BUGS index cf4089817..b62eba00d 100644 --- a/BUGS +++ b/BUGS @@ -1,5 +1,5 @@ Please see and use - http://sourceforge.net/tracker/?atid=102055&group_id=2055&func=browse + http://sourceforge.net/p/gnuplot/bugs/ for an up-to-date bug tracking system. diff --git a/ChangeLog b/ChangeLog index 924b89be3..bdc7fcaa9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6311 +1,4683 @@ -2014-08-20 Ethan A Merritt +2017-10-01 Bastian Maerkisch - * src/wxterminal/gp_cairo.c: Distinct empirical scale factors for - dashlength used by pngcairo, pdfcairo, and wxt. - * term/emf.trm: Scale dashlength with current linewidth. + * src/win/wgraph.c: Make sure that the bounding rectangle of emf data + starts at 0,0. Bugfix. -2014-08-18 Ethan A Merritt +2017-09-25 Ethan A Merritt - * src/graphics.c (place_arrows) src/graph3d.c (place_arrows3d): - Only invoke the arrowheads only code if there really is an arrowhead. + * src/plot2d.c: smoothing options csplines|acsplines|bezier|sbezier + failed to recheck inrange/outrange after smoothing. Example failure: + plot [0:4][4:0] '+' using 1:1 smooth bezier w lines + Bugfix -2014-08-18 Hans-Bernhard Broeker +Release 5.0.7 - * config/mingw/Makefile (VPATH): Drop $W from VPATH. Necessary to - avoid circular dependency on wgnuplot.mnu - (%.$(O)): Use pattern rule instead of VPATH to build Windows - source files. - (VERSIONING): Avoid inverted logic in makefile conditional. - (console, windows, pipes): Simplify by letting the default rule in - the sub-make handle things. - (default, all): Versioning is really needed by $(TARGET) rule, - so let that handle constructing it. - ($(TARGET)): Do VERSIONING first, drop dependencies on icon files. - (%.o): Use pattern rules to build Qt source files. Much simpler - than spelling it out long hand for every single source file. +2017-08-16 Ethan A Merritt -2014-08-15 Ethan A Merritt + * src/wxtterminal/wxt_gui.cpp: Build testing under Cygwin failed + because of gtk2->gtk3 api change. We fixed this in 5.2, so back-port + that fix for 5.0.7 also. + 1) Replace handle->window with gtk_widget_get_window(handle). + 2) gdk_window_foreign_new() (used only by --enable-raise-console) no + longer exists. Make this code conditional on (GTK_MAJOR_VERSION == 2). - * src/bf_test.c src/Makefile.am src/binary.* (removed) - config/makefile.os2 config/makefile.dj2 config/makefile.cyg - config/cygwin/Makefile config/mingw/Makefile config/msvc/Makefile: - Remove bf_test dependence on all other gnuplot files and libraries. - This makes binary.c and binary.h superfluous. - Bugs #1412 #1451 +2017-08-13 Ethan A Merritt - * src/makefile.all src/makefile.awc: Remove mention of binary.o + Tag 5_0_7 - * config/*/Makefile: Remove alloc and binary from bf_test dependencies +2017-08-10 Ethan A Merritt - * src/graphics.c (place_objects) src/set.c (set_obj): - Apply default rectangle style at the time of a "set object rect" - command rather than waiting until the rectangle is drawn. This prevents - the default style line/dash settings from overriding explicit rectangle - commands. - Bug #1460 + PATCHLEVEL etc: Bump versioning to 5.0.7 - * src/save.c (save_linetype): Bugfix - dashtype was being saved only if - there was also a point type. +2017-08-08 Ethan A Merritt - * src/gadgets.c (apply_pm3dcolor): Don't clobber current dashtype by - calling term->linetype(LT_BLACK). Call term->set_color(BLACK_COLORSPEC) - instead. + * src/command.c src/parse.c src/plot2d.c demo/iterate.dem: + Revise recursive iteration algorithm to address problems with empty + ranges in a nested iteration. Add support for dynamic reevaluation of + the string in nested ranges using "for [s in ]". + Bug #1952 - * src/graphics.c (place_arrows) src/graph3d.c (place_arrows3d): - Force solid lines for arrow heads. +2017-08-07 Martin Beranek -2014-08-15 Shigeharu Takeno + * term/metapost.trm: Support for user-defined dashtypes. - * src/gplt_x11.c: For single byte fonts gnuplot_x11 uses a list of - previously used fonts to speed up the search for a new target font. - Now we add an equivalent for multi-byte font search. +2017-08-04 Ethan A Merritt -2014-08-14 Ethan A Merritt + * src/axis.c (parse_range) src/datafile.c (df_generate_pseudodata) + src/axis.h src/plot2d.c: Somewhat delayed application of patch from + 2014-12-08, originally deferred so that the feature could be tested + in the development version. Allow an optional sampling interval as + part of the sampling range spec for pseudofile '+' in a plot command: + plot sample [a=0:360:10] '+' using (3+sin(a)):(cos(a)) with points - * src/graphics.c (do_rectangle) src/graph3d.c (map3d_position_r) - demo/rectangle.dem: Fix y extent and clipping of rectangles with - negative y coord or inverted axes. - Bug #1462 +2017-08-02 Ethan A Merritt -2014-08-05 Ethan A Merritt + * src/graphics.c(plot_image_or_update_axes): Image code is shared by + 2D and 3D paths. If we are in 2D we cannot rely on pixel.z being a + reasonable z coordinate, so treat all z coordinats as 0. + 5.0.6 would segfault on command + set log xy; plot 'blutux.rgb' binary array=(128,128) flipy \ + format='%uchar' with rgbimage - * src/mouse.c (event_buttonpress): Remove extraneous event_reset. +2017-07-31 Bastian Maerkisch -2014-08-02 Ethan A Merritt + * config/mingw/Makefile config/msvc/Makefile config/config.nt: + Mingw-w64 and MSVC have working popen/pclose implementations for GUI + applications. So we use them instead of our own "fake" pipe emulation. - * src/misc.c (parse_colorspec): Apply user-defined line colors - to text color also. - Bug #1452 + * config/watcom/Makefile config/config.oww: Enable pipe support + using pipe emulation for wgnuplot. - src/misc.c src/save.c src/set.c src/term.c src/term_api.h: - Store custom dashtype string as a constant length character array - rather than a dynamically allocated string. This fixes memory - leakage that happened whenever a linetype using dashes was discarded. + Bug #1950 -2014-08-01 Ethan A Merritt +2017-07-22 Ethan A Merritt - * src/mouse.c (event_buttonpress): Trap mouse button click on - press rather than on release so that "pause mouse {button1|any}" - takes precedence over a key binding to the mouse button. - Bugfix + * src/command.c src/fit.c src/fit.h src/tables.c src/tables.h + docs/gnuplot.doc: Deprecate command "update" in favor of new command + "save fit ". "update" remains for backward compatability but + will be removed in 5.3. -2014-07-30 Ethan A Merritt +2017-07-22 Ethan A Merritt - * term/x11.trm: Remove misleading mention of -noevents. This is a - command line option for gnuplot_x11, not for gnuplot itself. + * src/fit.c: The code saving the previous "fit" command incorrectly + assumed that "fit" must be the first thing on the input line. This + is clearly not true, particularly when the command is inside a {} + bracketed clause since the entire clause acts as one long input line. + Bug #1946 - * src/datafile.c docs/gnuplot.doc demo/heatmaps.dem: - New text input matrix keywords `columnheaders` and `rowheaders`. - These handle reading matrix data from a csv file in which the first - row and/or column contains labels rather than data. +2017-07-18 Ethan A Merritt - * src/eval.c (update_plot_bounds): Provide a user-visible copy of - the current terminal scale (oversampling, etc) as GPVAL_TERM_SCALE. - Bug #1291 + * src/plot2d.c src/plot3d.c docs/gnuplot.doc: + Fix inconsistent handling of "plot ... with table". + E.g. "set style data table; plot foo" tried to both plot and tabulate. + Warn that function plots are not handled. -2014-07-28 Allin Cottrell +2017-07-03 Bastian Maerkisch - * src/syscfg.h: Report 32/64 bit Windows build in version string + * src/win/wgdiplus.cpp: Do not apply gamma correction to filled + polygons. Speeds up drawing and yields results consistent with + other terminals. -2014-07-28 Ethan A Merritt +2017-06-13 Bastian Maerkisch - * src/wxterminal/gp_cairo.c: Do not pass a linewidth of zero to the - cairo library. The linewidth of LT_AXIS is now set in the core code, - do not further reduce it in gp_cairo_stroke(). + * src/win/wgdiplus.cpp: Cleartype text antialiasing seems to be only + applied to horizontal text. Use grayscale antialiasing for rotated + text. -2014-07-25 Ethan A Merritt +2017-06-12 Ethan A Merritt - * src/gplt_x11.c: Scale x11 dashlength with linewidth. + * src/util.c (gprintf): Sanity check for NULL format -2014-07-23 Shigeharu Takeno + * src/datafile.c (df_open): Sanity check to catch "plot '+' binary ..." - * src/mouse.c src/mouse.h src/set.c src/show.c docs/gnuplot.doc: - New command 'set mouse zoomfactors ,' + * src/axis.c (clone_linked_axis): Sanity check that inverse mapping + function does not yield NaN at axis range endpoints. -2014-07-22 Ethan A Merritt + * src/graphics.c (process_image): Sanity check for empty image data + structure. - * src/gp_types.h src/plot2d.c (store2d_point): - INRANGE/OUTRANGE refer to points that are inside/outside the plot - boundaries as defined by xrange, yrange, etc. They fail to handle - points that are outside theta range limits given for polar data. - That is, a point may be outside of trange [pi/2:pi] even though it - would lie well inside the plot boundaries if drawn. - Add a new category EXCLUDEDRANGE for such points. +2017-06-02 Ethan A Merritt - * src/graphics.c (plot_impulses): Test for EXCLUDEDRANGE data points - so that set trange [theta_min:theta_max] actually does something. - Bug #1439 + * src/util.c (gprintf): Do not use LaTeX formatting in tabular output. + Bug #1931 - * demo/poldat.dem: Make sure trange includes the whole plot. +2017-05-30 (Debian /debian-science/packages/gnuplot.git/) -2014-07-18 Ethan A Merritt + * term/post.trm: Do not emit Author field containing current username. - * demo/Makefile.am.in: Do not create a symlink to GNUPLOT_X11 in the - build directory during "make check". This was probably intended to - handle the rare case of ./configure --program-suffix=foo but it breaks - the more common case of configuring on a system without x11 support - and then running "make check" twice. - Bugfix +2017-05-25 Bastian Maerkisch -2014-07-14 Ethan A Merritt + * src/win/wgraph.c (GraphEnd): Let the gnuplot core know the current + window ID. - * src/gadgets.c src/save.c src/set.c src/gadgets.h: - Continue to recognize "set style increment user" even though it has - been deprecated in favor of "set linetype". - Bug #1411 (not really a bug) +2017-05-23 Bastian Maerkisch -2014-07-12 Ethan A Merritt + * src/qtterminal/qt_term.cpp (qt_waitforinput): The Windows code waits + for the named pipe internally used by the QLocalSocket object. But in + some cases the Qt object itself will not provide new data. Handle + that case by Sleep()ing to release the CPU instead of idling rapidly. + Bug fix. - * src/parse.c (check_for_iteration): Fix failure to detect some loop - [start:end:increment] combinations that should be executed only once - or not executed at all. - Bug #1441 +2017-05-22 Ethan A Merritt -2014-07-10 Ethan A Merritt + * src/stats.c: Clean exit from stats routine after finding no data in + input file. + Bug #1930 - * src/set.c (set_dummy): More sanity checks on "set dummy" syntax. - Bug #1442 +2017-05-15 Bastian Maerkisch -2014-07-06 Ethan A Merritt + * src/win/wgraph.c (WM_SIZE): Track canvas (and window) size. - * src/set.c (load_tic_user): "set Xtics ()" should clear the list - of user-specified tics rather than setting tic generation to auto. + * src/win/winmain.c (ConsoleHandler) src/plot.c|h (terminate_flag) + src/readline.c (readline): Add an event handler to catch "close" + signals to console mode gnuplot on Windows. These events are passed + on to the main thread to terminate cleanly. + Bugs #1916, #1917, #1918 -2014-07-04 Shigeharu Takeno + * src/set.c (set_encoding, init_special_chars) src/setshow.h + src/plot.c: Move initialisation of special characters to a separate + function, which is also called during program init. Bug fix. - * docs/gnuplot.doc docs/term-ja.diff docs/gnuplot-ja.doc - man/gnuplot.1 man/gnuplot-ja.1: - Fix typos. Sync Japanese documentation to 1.896 +2017-05-15 Ethan A Merritt -2014-07-04 Bastian Maerkisch + * src/mouse.c: Allow "bind 'shift-Button1' 'something'". + Previously the shift key was ignored. - * src/win/wgraph.c: 'q' closes graph window. +2017-05-15 Bastian Maerkisch - * src/qtterminal/qt_term.cpp (qt_options) term/wxt.trm (wxt_options): - On Windows, the wxt and qt terminals can be used in the same session. + * src/term.c (do_arc): Remove hack for the windows terminal which was + meant to fix the drawing of circles, but broke it. Note that there are + similar cases in the code (ellipses) where a hack like this is actually + necessary. Further investigations required. + Bug #1880 -2014-07-01 Ethan A Merritt + * src/win/wgraph.c (MakeFonts): Handle empty type face name (GDI). + Bug #1860 - * term/cairo.trm, term/wxt.trm: - Always report {no}enhanced property in "show term". +2017-05-13 Bastian Maerkisch - * src/color.c: If the current terminal has property "monochrome" then - convert all requests for constant color as "black". - Bug #1423 + Backport changes from 5.1: -2014-06-24 Ethan A Merritt + * src/win/wgdiplus.cpp: + Graphics::MeasureString did not take trailing spaces into account. + Off-by-one error in mapping of graph coordinates. + Fix memory leak in SetFont_gdiplus. - * src/set.c src/show.c src/tables.c docs/gnuplot.doc: - New command: set margins , , , - acts just like four successive commands set lmargin , ... + * src/win/wgraph.c: + (drawgraph) Off-by-one error in mapping of graph coordinates. + (CopyClip) Only attempt to set clipboard data if the bitmap/metafile + handle is valid. Emit an error message otherwise. + (SaveAsEMF) Tweak flags for GetSaveFileName() to make sure that the + file/path is not read-only and to preserve the current working + directory. + (WndGraphProc): Remove dead code in mouse handling: Single and double + clicks are handled by the code in mouse.c and the window is not even + configured to receive double click events. Also make sure that mouse + wheel "button"s are released again. - * src/unset.c: unset margins + * src/win/wcommon.h src/win/wgnuplib.h src/win/wgraph.c + src/win/wgdiplus.cpp: GDI+ implementation of enhanced text. + Until now the GDI+ backend still used the GDI code to draw enhanced + text, which caused differences in layout if text was rendered as + "normal" or enhanced text. We now re-use the previous GDI-only + routines and introduce function pointers to call GDI or GDI+ code + depending on if they are called from drawgraph() or + drawgraph_gdiplus(). -2014-06-20 Ethan A Merritt + * src/win/wgraph.c src/win/wcommon.h (draw_image): Make static. - * configure.in src/wxterminal/wxt_gui.h: The configuration test for - wxWidgets >= 2.8 had no effect on code generation. Remove this test. +2017-05-08 Ethan A Merritt - * configure.in src/wxterminal/wxt_gui.h: Revert the attemp to guess - whether -lX11 is required by wxt. As feared, this causes problems on OSX - and other platforms where wx is built on top of something other than X11. + * term/cairo.trm: + In order to scale up an existing plot uniformly, e.g. for printing + a poster-size PostScript or PDF file, it is convenient to be able to + give the scale factor in the "set term" command. We already offer + "set term ... {linewidth } {fontscale }". This patch + adds "set term ... {pointscale }" to scale up pointsize for + cairo terminals. -2014-06-16 Karl Ratzsch +2017-05-02 Ethan A Merritt - * fit.c: FIT_NITER holds number of iterations used by previous fit. + * term/canvas.trm: Fix incorrect initialization of axis width/height. + Bug #1925 -2014-06-16 Ethan A Merritt + * term/js/gnuplot_mouse.js: Work-around for plots that were generated + prior to the above fix. You can use this mousing code even if the plots + being moused contain the initialization error. + Bug #1925 - * configure.in src/wxterminal/wxt_gui.h: wxWidgets versions > 2.8 want - the main program to call XInitThreads(), but fail to specify -lX11 in - wxt-config. So we force this ourselves. [=> reverted 2014-06-20] - Bug #1401 +2017-04-19 Ethan A Merritt - * src/graphics.c (xtick2d_callback): Clip r axis tics and tic labels to - the bounding box of the plot. - Bug #1290 + * src/wxterminal/gp_cairo.cpp (gp_cairo_boxed_text): Scale linewidth of + textbox border by the current terminal linewidth setting. + Bug #1825 -2014-06-15 Dmitri A. Sergatskov +2017-04-19 Bastian Maerkisch - * configure.in: Add LRELEASE for Qt5 autoconfiguration + * configure.in docs/Makefile.am: Some systems allow for parallel + installation of different lua versions (e.g. Ubuntu). We already use + pkg-config to test for "lua" and "lua5.1" packages. This patch extends + that mechanism to lua5.2 and lua5.3. Change the name of the lua + executable used to build the docs of the gnuplot lua terminal + accordingly. + Patch #750 -2014-06-15 Bastian Maerkisch +2017-04-18 Ethan A Merritt - * src/plot.c (main): Fix persist mode on Windows when reading - from a pipe. - See Bug #1322 + * src/graphics.c (place_objects): Error messages from placement of + circles and ellipses were misleadingly referring to "rect N" instead + of "object N". -2014-06-15 Akira Kakuto + * src/graph3d.c (map3d_position_r): Placement of generic objects in + "set view map" mode should not fail just because the z coordinate is + non-positive and z is log-scaled. The projection only uses x and y. - * src/binary.c src/datafile.h src/syscfg.h: LFS support on Windows - for MSVC and MinGW. - See also Patch #675 + * src/parse.h src/parse.c src/misc.c (parse_fillstyle): New utility + routine is_function(token) for convenience in parsing. -2014-06-14 Ethan A Merritt + * src/graph3d.c (draw_3d_graphbox): Clipping area was not maintained + across this routine, causing object clipping in "set view map" to fail. - * src/axis.h src/axis.c src/boundary.c src/plot2d.c (eval_plots): - Unlike all other axes, log scaling was being applied to the color axis - (cb) in do_plot() rather than in the caller eval_plots(). - This caused "refresh" (as opposed to "replot") to fail. Move the - log-scale correction up to eval_plots() like the other axes. - Bug #1425 +2017-04-12 Ethan A Merritt - * src/misc.c (prepare_call): Allow parenthesized expressions as - call parameters. The value is passed as a string. + * src/hidden3d.c (build_networks): A degenerate polygon can fall all + the way through the classification loop, leaving the flag value -2 as + the polygon number which is then used as an array index. Oops. - * src/command.c (exit_command): New option "exit error 'message'" - prints the message and return to the top command line, breaking out - of any loops or calls cleanly. In non-interactive mode the program - then exits. +2017-04-10 Ethan A Merritt -2014-06-13 Bastian Maerkisch + * src/eval.c (update_gpval_variables): New exported variables giving + screen coordinates of the 3D plot axial center and radius of the + enclosing sphere. GPVAL_VIEW_XCENT GPVAL_VIEW_YCENT GPVAL_VIEW_RADIUS. - * src/qtterminal/qt_term.cpp (qt_waitforinput): Fix index error - when trying to stop thread which reads from pipe. - Bug #1426 + * src/graphics.c (place_objects): Allow placement and size of circles + in 3D plot to use axis coordinates (used to only allow screen coords). + As in 2D, the radius of the circle is always scaled to match the x axis + and the circle itself is always drawn in the plane of the figure. -2014-06-13 Ethan A Merritt + * demo/Makefile.am.in: Place quotes around $(GNUTERM) so that + multi-word definitions do not gum up "make check". - * src/datafile.c (df_generate_pseudodata): Do not try to access plot - structure if we were called from fit rather than plot. - Bug #1427 +2017-04-01 Ethan A Merritt -2014-06-12 Christoph Bersch + * src/mouse.c term/qt.trm src/qtterminal/qt_term.cpp + src/qtterminal/QtGnuplotWindow.cpp: The qt terminal assumed that + "space-raises-console" would be implemented in the core code. + But it never was. Instead on non-MSWin platforms hitting + in the qt window generates a mouse protocol error. + Document that "space-raises-console" is only for MSWin, and have + other platforms treat it like any other key. - * term/lua.trm term/lua/gnuplot-tikz.lua: - Scale dashlength with linewidth. +2017-04-01 Daniel J Sebald -2014-06-11 Ethan A Merritt + * src/plot.c (main): Exit with error if dropping privilege fails. - * src/mouse.c (event_reset) src/qtterminal/QtGnuplotWindow.{h|cpp}: - Window close events from qt were not being passed through to the main - program, so "pause mouse close" did not work. Also a backgrounded - instance could hang rather than exit when the last plot window closed. - Bug #1418 +2017-03-31 Ethan A Merritt - * src/fit.c: Remove spurious test and error message for time data - with only 2 columns in the using spec. - Bug #1424 + * src/graph3d.c (do_3dplot): "set xyplane at 0; set log z; splot..." => + no plot drawn. Change this so that "at 0" for logscale z is treated as + "xyplane at ". + Bugfix. - * man/gnuplot.1: update +2017-03-23 Ethan A Merritt -2014-06-11 Mojca Miklavec + * src/qtterminal/QtGnuplotEvent.h src/qtterminal/QtGnuplotWindow.cpp: + Event type GEPID was added between the 5.0.5 and 5.0.6 releases. + It is used only by Windows, and only to allow space-raises-console. + Adding it in the middle of the enum definition made gnuplot_qt built for + 5.0.6 incompatible with previous builds, so I moved GEPID to the highest + defined enum value. Unfortunately this broke the code in + QtGnuplotEventHandler that treats any event type > GEDone as an error. + So now we put it back in the middle of the enum definition but only + define it for WIN32. - * term/aquaterm.trm: Correctly support encoding CP1252. + Add a warning that GEDone must be the highest event type value defined. -2014-06-11 Tatsuro MATSUOKA +2017-03-21 Craig DeForest - * win/gnuplot.iss: Include Qt platform DLLs in distribution package. + * src/datafile.c (plot_option_binary): Interpretation of dimensions + given via "binary record=(a,b)" contradicted that for dimensions given + via "binary array=(a,b)". This caused mangling of image data read in + using the "record" keyword. + NB: This was applied 2016-11-03 but somehow got lost in 5.0.6 - reapply! + Bug #1873 -2014-06-10 Ethan A Merritt +2017-03-19 Ethan A Merritt - * docs/gnuplot.doc: Add a section explaining the "persist" option. - Bug #1418, #1419 + * src/gadgets.h src/graphics.c (plot_border): Range-limited y2 axis was + drawn in the wrong direction (top-to-bottom rather than bottom-to-top). + If the top plot border was drawn also, this resulted in a spurious + diagonal line across the plot. + Bug #1921 - * term/post.trm term/svg.trm src/qtterminal/qt_term.cpp: - Add an empirical scale factor to the dashlength*linewidth computation to - make the resulting patterns closer in total size to the built-in ones. +2017-03-17 Release 5.0.6 -2014-06-10 Christoph Bersch + PATCHLEVEL etc: Bump versioning to 5.0.6 for release - * term/post.trm term/svg.trm: Scale dashlength with linewidth. +2017-03-09 Ethan A Merritt -2014-06-09 Daniel J Sebald + * src/plot2d.c (eval_plots): Do not enforce cbrange validity if the + palette is not used by this plot. Prevents spurious error from + "set log" with default cbrange. + Bug #1920 - * src/qtterminal/QtGnuplotWidget.cpp (processEvent): Always "resize" - the initial plot to its own size. This may work around strangeness on - some systems that create the initial qt plot window with the wrong size. - Bug #1417 (forwarded from Debian) Patch #661 +2017-03-08 Ethan A Merritt -2014-06-09 Bastian Maerkisch + * src/qtterminal/QtGnuplotEvent.h: Move new enum GEPID (2017-02-25) to + end of enum list rather than in the middle. Otherwise the gnuplot_qt + built for 5.0.6 is incompatible with gnuplot executables 5.0.0-5, which + makes comparison of multiple versions to debug things harder than it + needs to be. If the new event is at the end, all earlier gnuplot 5.0.x + versions can share gnuplot_qt 5.0.6. - * src/win/wgdiplus.cpp src/win/wgraph.c src/win/wgnuplib.h - term/win.trm: - Version 5 dashtypes. Custom dashtypes supported by GDI+ driver. +2017-03-05 Ethan A Merritt - * src/wxterminal/wxt_gui.cpp: Also "restore" the window state on - "raise". - Bug #1389 + * src/plot2d.c (get_data): Defer initialization of parallel plot data + structures so that it catches both "set style data parallel" and + "with parallel". Example failure case: + set style data parallel; plot 'silver.dat' using 1:2:3 lc var - * src/win/winmain.c (WinMain): Change type from PASCAL to CALLBACK. +2017-03-02 Bastian Maerkisch - * src/fit.c: Test if covariance matrix is available before saving - it to user variables. + * config/msvc/Makefile: Support building 32 and 64 bit variants. + Include Manifest files. HTML help compiler is located in 32 bit program + folder. -2014-06-08 Shigeharu Takeno + * config/msvc/Makefile (#QTDIR, TOP, MOC, UIC, RCC, S, W, WX, Q) + (T, D, M, {$(S)}.c.obj, {$(S)}.c.cobj, $(HELPFILE), doc2html.exe) + ($(M)bf_test.exe, demo_plugin.dll): Reduce slightly excessive use + of double backslashes. Changes by Hans-Bernhard Broeker. - * docs/gnuplot.doc win/README-Windows.txt win/README-ja.txt - docs/gnuplot-ja.doc: sync to docs version 1.891 + * config/mingw/Makefile: Enforce calling the lua executable instead + of the lua wrapper script of Mingw64. -2014-06-07 Mojca Miklavec + * src/win/wgdiplus.cpp src/win/wgnuplib.h src/win/wtext.c + src/wixterminal/wxt_gui.cpp term/caca.trm term/win.trm: Eliminate a few + compiler warnings. - * src/wxterminal/gp_cairo.c: Scale dashlength with linewidth, similar - to what qt does. +2017-03-02 Ethan A Merritt -2014-06-04 Bastian Maerkisch + * src/command.c (plot_command splot_command) src/gplt_x11.c + src/qtterminal/QtGnuplotScene.cpp src/wxterminal/wxt_gui.cpp: - * src/plot.c src/win/winmain.c|h term/caca.trm: Only if a wxt, caca - or windows terminal window is open, the -persist option is handled by - keeping the main input loop running. This is unfortunate but maybe the - best we can do since we are missing a process fork or detach mechanism. - This avoids a zombie process when no plot windows are open in a - session. For the qt terminal -persist works as on other platforms - since it uses a secondary process. - Bugs #1308, #1335, #1343 + The toggle status of all plots (plot visible or hidden) was being reset + by some terminal drivers on every clear() event. This caused the toggle + state to be lost when the plot was rotated/panned and on refresh/replot. + Now we do away with the automatic reset in the terminal drivers. + Instead we send term->modify_plots(MODPLOTS_SET_VISIBLE, -1) as part of + the plot and splot commands. -2014-06-03 Ethan A Merritt +2017-02-28 Bastian Maerkisch - * src/graph3d.c src/show.c src/save.c docs/gnuplot.doc: - The hidden3d code processes the lines making up the plot border using - the same algorithm as it does for the plot elements. This renders - partially occluded borders correctly for actual surfaces but fails to - recognize occlusion for, e.g., 3D histograms drawn with impulses. - New keyword option "set border behind" draws the border lines before - the plot elements even for hidden3d plots. + * src/win/wgraph.c src/win/wgdiplus.cpp: Positioning of rotated text + depends on the currently selected font and in particular on the font + size. Bugfix. - * src/term_api.h src/wxterminal/gp_cairo.c src/wxterminal/wxt_gui.cpp: - Change the implementation of greying out inactive keybox entries in wxt - to use a textbox rather than the active area of the key entry. - Bug #1416 + * src/win/wgraph.c src/win/wgdiplus.cpp|h (InitFont_gdiplus): + Determine initial font metrics etc. using the correct API (GDI/GDI+) + instead of always using GDI. Take actual canvas size into account. + Bug fix. - * src/hidden3d.c (draw_vertex): Handle p_type == PT_CHARACTER. +2017-02-27 Ethan A Merritt -2014-06-02 Bastian Maerkisch + * configure.in: Bump versioning to 5.0.6pre in preparation for release - * src/win/wgraph.c src/win/wgdiplus.cpp: - Grey out key entries when corresponding plot is toggled off. + * src/stdfn.c: Clarify warning message for abnormal exit. + Bug #1913 - * src/win/wgraph.c (GraphUpdateWindowPosSize) src/win/wgnuplib.h - term/win.trm (WIN_options): Immediately apply changes to window - position and size. - Bug #1400 +2017-02-27 Shigeharu Takeno - * src/datafile.h: Revert the Windows LFS changes for now as - they seem to cause problems on some systems. + * src/wxterminal/wxt_gui.cpp: Rename static int yield to avoid + name conflict on Solaris 10. + Bug #1914 -2014-06-01 Ethan A Merritt +2017-02-25 Bastian Maerkisch - * src/axis.c src/gadgets.c src/misc.c src/set.c src/unset.c: - Replace magic numbers with LAYER_{BEHIND|BACK|FRONT}. + * src/win/mingw/Makefile: Optionally use pkg-config to use gdlib. + Required with recent updates of MSYS2/Mingw-w64. New variable + CWFLAGS for warning flags to be put last in CFLAGS in order to + overwrite e.g. -Wall. New target "7z" which is similar to the "zip" + target but outputs a 7-zip packed binary package. Resource target + depends on manifest files. Use C++11 mode. Omit C++ flags when + building gp_cairo.c. Use local the build of gnuplot to create plots + for the turorial. - * src/graph3d.c: Remove obsolete (always true) conditional - USE_GRID_LAYERS. Minor clean up for the grid layer logic. + * config/mingw/Makefile: Collecting all required DLLs for a Windows + binary package can be tedious. When activated via the DLLS=1 option, + we now try to at least automatically copy all DLLs from Mingw-w64. + Applies to targets `install`, `installer`, and `zip`. -2014-06-01 Tatsuro MATSUOKA + * src/set.c (set_degreesign): Remove special Windows code since we + cannot rely on the locale on this platform. Fixes degree sign for + UTF-8 encoding. - * win/gnuplot.iss: Include gnuplot_qt.exe in installer. - Patch #689 + * src/set.c (encoding_micro): Fix micro sign for CP1252 and add a few + more encodings, including CP437 and CP850. - * src/qtterminal/gnuplot_qt.cpp: Search for Qt translation files - in gnuplot's installation directory on Windows. - Patch #687 + * src/win/wgdiplus.cpp: Default GDI+ dash patterns use a very narrow + spacing which does not scale with the line width. We now use our own + custom dash patterns which resemble the GDI default patterns for unit + line width. This in particular improves the appearance of grid lines + in polar plots. -2014-06-01 Ethan A Merritt + * demo/borders.dem demo/boxclusters.dem demo/boxplot.dem + demo/circles.dem demo/ellipse.dem demo/ellipses_style.dem + demo/histograms.dem demo/histograms2.dem demo/mgr.dem demo/molecule.dem + demo/orbits.dem demo/parallel.dem demo/special_chars.dem + demo/stats.dem demo/world2.dem: + End all demos with 'pause -1; reset'. Set encoding to utf8 when + required. - * src/datafile.h: Partial support for LFS on Windows. Currently - mostly useful for 64 bit builds since integers on the the gnuplot - command line are limited to 31bits otherwise. - Patch #675 + * docs/plotstyles.gnu: On Windows, use "Tahoma" instead of "Times" + "Times New Roman". The former is not available and the later does not + provide the characters required by the 2nd "with labels" plot. Scale + down fontsizes to better fit the size of the plots. -2014-06-01 Bastian Maerkisch + * src/win/winmain.c (WinRaiseConsole): Raise pause message box instead + of the text window during pause. - * config/mingw/Makefile: Target 'clean' and 'veryclean' include - Qt files, see patch #688. + * src/mousecmn.h src/qtterminal/qt_term.cpp + src/qtterminal/QtGnuplotEvent.h + src/qtterminal/QtGnuplotWindow.cpp|h: Enable space-raises-console + and terminal option "raise" for qt on Windows. Since gnuplot and + the qt terminal are realized as two different processes, the + currently active process has to allow the other to "raise" itself. - * config/mingw/Makefile win/gnuplot.iss: Include RELEASE_NOTES. - Add "qt" as option as default terminal. +2017-02-25 Hans-Bernhard Broeker -2014-05-30 Ethan A Merritt + * config/mingw/Makefile: Enforce calling the lua executable instead + of the lua wrapper script of Mingw64. - * term/post.trm term/cairo.trm: The "header" keyword for epslatex - and related terminals can introduce a string of arbitrary length. - Therefore it is not safe to try to store it in the fixed length - term_options character array. - Bug #1413 +2017-02-24 Ethan A Merritt - * term/gd.trm: Limit the stored length of the font so that term_options - cannot overflow. - Bug #1413 + * src/interpol.c (do_cubic) docs/gnuplot.doc: Document that smooth + options (splines and bezier variants) are sensitive to blank lines and + undefined values in the input data. Curves are fit separately to each + uninterrupted subset of the original data. Curve segments that are + entirely out of range on x are now ignored rather than triggering a + error message. + Bug #1911 - * Makefile.am RELEASE_NOTES: Include Release Notes in the distribution - package. + * src/gadgets.c src/save.c src/show.c: save/show style arrow was + showing incorrect settings for head/heads/backhead, and reporting + LT_DEFAULT as an actual line type. - * FAQ.PDF: Update for version 5. +2017-02-21 Ethan A Merritt - * src/gplt_x11.c: - Grey out key entries when corresponding plot is toggled off. + * term/svg.trm term/write_png_image.c: Backport svg terminal from 5.1. + Generated bitmap images are embedded rather than being stored as + external *.png files. This version contains support for the "domterm" + terminal emulator (http://domterm.org) that can display svg graphics + in-line. -2014-05-29 Akira Kakuto +2017-02-19 Ethan A Merritt - * term/caca.trm: Modify nominal codepage to accommodate CJK Windows. + * src/datafile.c (df_readbinary) src/plot2d.c (get_data): + Version 5 intentionally returns input data with a flag UNDEFINED rather + than skipping the point altogether. Unfortunately the binary data input + path failed to clear/initialize/set-to-NaN the value returned from + function evaluation during binary data input. Now we explicitly set NaN + in additional to returning DF_UNDEFINED. + This fix is incomplete because store2d_point() later overwrites the + UNDEFINED flag, which is almost certainly the wrong thing to do. + Bug #1911 -2014-05-29 Tatsuro MATSUOKA +2017-02-15 Ethan A Merritt - * config/mingw/Makefile: Support compilation of the qt terminal. - Patch #684 + * src/misc.c (arrow_use_properties): If an arrowstyle has no explicit + linetype or color, apply the current plot linecolor. This prevents 3D + vector plots with a default linetype from being colored as if they + were "lc palette z". + Bug #1869 -2014-05-29 Karl Ratzsch + * src/hidden3d.c: Arrowhead properties were being applied as each plot + was set up. This doesn't work in hidden3d mode because arrows from + multiple plots are sorted jointly and drawn later. Arrowhead style must + be applied separatedly for each arrow. + Bug #1492 - * docs/gnuplot.doc: Improve documentation of `update` command. - Patch #686 +2017-02-10 Mojca Miklavec - * src/win/wgdiplus.c src/win/wgraph.c: Change order of pointtypes to - match the sequence in other terminals (cairo, postscript, gd, svg). - Patch #681 + * src/qtterminal/qt_term.cpp term/aquaterm.trm: + Make the the "set term ... linewidth" option more like other terminals. -2014-05-28 Ethan A Merritt +2017-02-09 Ethan A Merritt - * src/graph3d.c (plot3d_points): Handle pointtype PT_CHARACTER. + * term/aquaterm.trm term/qt.trm src/qtterminal/qt_term.cpp term/wxt.trm: + Add "linewidth " to the list of options accepted for "set term" or + "set termoption". - * src/plot3d.c: Rearrange the order of testing for plot style options - so that it is not possible to end up with uninitialized font or text - properties. + * configure.in term/qt.trm: Qt4 info only printed for Qt4 build. + Bug #1905 -2014-05-27 Ethan A Merritt +2017-02-07 Ethan A Merritt - * src/datafile.c (df_readascii): Report status DF_UNDEFINED if a data - value evaluates to the constant "NaN", just as if we calculated it on - the fly to be e.g. 1/0. - * src/stats.c: Remove out-of-date comment that incorrectly describes - what happens in this case. - Bug #1408 + * src/hidden3d.c (build_networks): Hidden3d structures were not + correctly initialized for "splot with dots". + Bug #1904 -2014-05-26 Ethan A Merritt +2017-02-03 Ethan A Merritt - * term/js/gnuplot_svg.js term/svg.trm: - Grey out key entries when corresponding plot is toggled off. + * demo/boxclusters.dem demo/html/*: Add demo to collection. - * src/qtterminal/QtGnuplotItems.* src/qtterminal/QtGnuplotScene.cpp: - Grey out key entries when corresponding plot is toggled off. + * src/gplt_x11.c: Zero out each command string as it is freed. + I am not sure this fixes a reported use-after-free segmentation error + but it can't hurt. + Bug #1866 - * src/wxterminal/wxt_gui.cpp (wxt_grey_out_key_box): - Grey out key entries when corresponding plot is toggled off. +2017-02-01 Ethan A Merritt -2014-05-24 Bastian Maerkisch + * src/graph3d.c (plot3d_points) src/gadgets.{ch} src/graphics.c: + Apply pointinterval property to splot with linespoints. - * src/wxterminal/wxt_gui.cpp (wxt_waitforinput): Do not wait for an - event when only checking for mouse events. - Bugfix + * src/hidden3d.c: Apply pointinterval property in hidden3d mode also. -2014-05-23 Ethan A Merritt +2017-01-27 Ethan A Merritt - * src/boundary.c: A width adjustment for the length of the key title - was being applied to every column of entries in the key instead of just - once for the whole key. Apply the "set key {no}enhanced" property to - the key title as well as to the individual plot titles. - Bugfix. + * src/util.c (print_line_with_error): Replace macros + PRINT_MESSAGE_TO_STDERR PRINT_SPACES_UPTO_TOKEN PRINT_FILE_AND_LINE + with new utility routine. Add code to reconstruct the original input + line number by counting \n characters embedded in a command line + produced by concatenation of successive lines in a bracketed clause. + Backported from 5.1 -2014-05-19 Ethan A Merritt +2017-01-26 Ethan A Merritt - * src/wxterminal/wxt_gui.h: Apparently wxWidgets3 (wxgtk3) threads call - into Xlib but fail to initialize X threading before doing so. Therefore - we must call XInitThreads before forking wxt threads. - Bug #1401 + * src/datafile.c (df_determine_matrix_info): Check and report error + return from fseek, which cannot work if the input stream is a pipe. + Now you get: "seek error in binary input stream - Illegal seek" instead + of the non-informative "File doesn't factorize into full matrix". + Bug #1901 -2014-05-19 Karl Ratzsch +2017-01-24 Stefan Althoefer - * term/emf.trm: Add point types pentagon (14) and filled pentagon (15) + * term/js/gnuplot_mouse.js: Improved placement of hypertext and + mouse-click output. Fix multiline hypertext. -2014-05-16 Ethan A Merritt +2017-01-24 Ethan A Merritt - * src/term.c (load_linetype): As documented, "set linetype cycle N" - should only affect line properties (color, width, dash), not point - properties (type, interval, size). This got lost somewhere, which - meant point types > linetype_recycle_count were never used by default. - Now they are. This means that, as intended, 'with linespoints' cycles - through (linetype_recycle_count * terminal's_max_point_type) distinct - combinations before repeating so long as those two numbers are - mutually prime. Unfortunately that's not guaranteed and is terminal- - dependent. We really need a "set pointtype cycle M" command also so - that you can choose M to be prime relative to N. - Bugfix. + * term/canvas.trm term/svg.trm term/js/gnuplot_mouse.js: + Mouse support for inverted r axis (which core code doesn't yet support). - * INSTALL docs/gnuplot.doc: Update description of new features. +2017-01-23 Ethan A Merritt -2014-05-15 Ethan A Merritt + * term/pslatex.trm: Do not write postscript comments in output stream + to cairolatex terminal. + Bug #1898 - * configure.in PATCHLEVEL src/version.c docs/titlepag.tex: - Bump version information to 5.0.rc1 +2017-01-22 Ethan A Merritt - * demo/dashtypes.dem: Avoid irrelevant warning message. + * src/set.c (parse_label_options): Save label z value into its point + colorspec as well as its text colorspec + Bug #1897 -2014-05-14 Karl Ratzsch +2017-01-21 Ethan A Merritt - * term/svg.trm src/wxterminal/gp_cairo.c: - Add point types pentagon (14) and filled pentagon (15) + * src/datafile.c (f_dollar f_column df_readascii): + Version 5 was supposed to do away with differences between data read + by 'plot ... using N' and 'plot ... using ($N)'. It turns out that was + not true with regard to missing data. If the "missing" flag is present + in the data then 'using N' catches it but 'using ($N)' does not. + The problem is that ($N) and (column(N)) and "header_of_N" all invoke + expression evaluation, which has had no mechanism to indicate a missing + value on return rather than NaN. This patch overloads the imaginary + slot of a complex NaN value to hold DF_MISSING rather than 0.0 on return + from f_dollar() and f_column() as appropriate. For convenience the body + of f_dollar() is replaced by a pass-through to f_column() so that both + routines behave the same way. + Bug #1896 - * src/qtterminal/QtGnuplotItems.cpp: - (EAM) Add point types pentagon (14) and filled pentagon (15) + * src/plot2d.c (get_data) src/set.c src/show.c docs/gnuplot.doc: + The fix for bug #1896 did not address the case where a missing value is + encountered during evaluation of an expression. E.g. 'using ($1+$2)' + when there is missing data in either column 1 or 2 will evaluate to NaN. + This patch adds an additional option 'set datafile missing NaN' that + tells gnuplot to treat NaN data values as missing rather than invalid. + Based on patch #725 (Christoph Bersch) -2014-05-13 Ethan A Merritt +2017-01-18 Ethan A Merritt - * src/command.c src/tables.c src/tables.h: Remove undocumented routine - test_time(). It was never updated to handle sub-second time precision, - and in any case the functionality is now covered adequately by - "print strptime()" and "print strftime()". + * src/save.c (save_linetype): Save and show commands were failing to + list linecolor for lines that were originally specified as "lt -1". - * src/color.c (filled_polygon_3dcoords filled_polygon_zfixed) - src/pm3d.c (filled_color_contour_plot): The option "set pm3d at C" is - undocumented and doesn't work anyhow. Wrap the corresponding code in - #ifdef PM3D_CONTOURS . This disabled code may or may not be useful for - some future implementation of filled contours. +2017-01-03 Ethan A Merritt - * term/post.trm (PS_dashtype): Always stroke the previous path before - setting a new dashtype. + * docs/gnuplot.doc: Clarify the meaning of the binary file keyword + "transpose". Provide index entries for all binary file keywords. -2014-05-11 Hans-Bernhard Broeker +2017-01-02 Bastian Maerkisch - * src/util.c (LOCAL_BUFFER_SIZE): New constant. - (gprintf): Use constant to identify buffer size, instead of typing - the same magic number multiple times. Insert warning about - remaining magic number. + * src/win/wgraph.c (drawgraph): Fix incorrect detection of a + metafile device context which caused point symbols to be drawn as + a bitmap. - * src/plot2d.c (get_data): Fix buffer overflow a bit more cleanly. - (compare_boxplot_factors): Insert warning about magic number. + * src/util.c (strappend): Fix insufficient memory allocation. -2014-05-11 Ethan A Merritt + * src/qtterminal/QtGnuplotWindow.cpp (print): QPrinterDialog + requires a parent on Windows. - * src/plot2d.c (get_data): fix buffer overflow + * src/win/winmain.c (open_printer): Open temporary file in binary mode + as required e.g. for PDF data. - * src/datafile.c (f_stringcolumn): Return an empty string if asked for - stringcolumn(N) on an empty field of a *.csv file. Otherwise it would - return NULL which may cause a segfault later on. - Bugfix. + * src/win/wprinter (DumpPrinter): The Escape() PASSTHROUGH function + was included in Windows 3(!) for backward compatibility with earlier + versions and is no longer supported by some printer drivers. Detect + that and display an error message. - * src/datafile.c (df_readascii): If xticlabels(f(n)) returns a - non-string value then do not generate an axis tic. It used to issue - a warning about illegal string values but generated a tic anyway. + * src/win/wgraph.c src/win/wgdiplus.cpp|h (InitFont_gdiplus): + Determine initial font metrics etc. using the correct API (GDI/GDI+) + for no-enhanced text instead of always using GDI. Take actual canvas + size into account. Note that version 5.0 still uses GDI to draw + enhanced text. -2014-05-10 Dima Kogan +2017-01-02 Jun Takimoto - * src/mouse.c (do_zoom rescale_around_mouse): Handle various conditions - that caused zooming around the current mouse position to fail. - Re-applied after tracking down conflict. + * term/aquaterm.trm (ENHAQUA_put_text): aquaterm was ignoring + ignore_enhanced_text; i.e. you could not bypass enhanced text + processing. -2014-05-10 Shigeharu Takeno +2016-12-28 Ethan A Merritt - * docs/gnuplot.doc: various small corrections - * docs/gnuplot-ja.doc term-ja.diff: Sync translation to version 1.887 + * src/set.c: Do not allow the axis range on polar axis R to invert. + Bug #1880 -2014-05-10 Ethan A Merritt +2016-12-19 Ethan A Merritt - * term/gd.trm: Do not allow setting terminal size to 0. Bug #1398 + * src/graphics.c src/unset.c: Accept only polar_grid_angle > 0. + Bug #1888 -2014-05-10 Hans-Bernhard Broeker +2016-12-15 Ethan A Merritt - * term/lua.trm: Ensure initialization of alpha. + * src/plot2d.c: Fuzz-testing found a crash from trying to adjust the + range of a boxplot containing no points. - * src/hidden3d.c (store_polygon): Ensure initialization of v[], - just in case somebody calls this function with an illegal - 'direction' enum value. + * src/pm3d.c: The combination 'set pm3d depthorder interpolate N,M' + was not correctly tracking memory allocation. + Bug #1884 - * src/win/wgraph.c (PATTERN_BITMAP_LENGTH): Give name to magic number. - (pattern_bitmaps): Use new name. +2016-12-07 Ethan A Merritt - * term/emf.trm (PATTERN_BITMAP_LENGTH): Give name to magic number. - (pattern_bitmaps): Use new name and make const. - (EMF_filled_polygon): Define pattern pointer more locally and make - it point to const. Use named constant in loop. Fix table - underrun. + * src/unset.c (reset_command): Reset border layer to "front". - * src/win/wgnuplib.c (GetInt): Add some parentheses. + * src/graph3d.c: Revert unsuccessful changeset (2016-11-29) that + tried to make layering of the plot border components correct in all + cases by default. It broke as many cases as it fixed. - * src/stats.c (statsrequest): Initialize local data structs, to - avoid warnings about printing uninitialized results. +2016-12-06 Ethan A Merritt - * src/readline.c (BACKSPACE): Define as a character constant, not - some hex number. - (readline): Write TAB as character constant, not some hex number. + * term/gd.trm: It is only by historical accident that the gd terminal + tracks font size as an integer. Make it a double so that fractional + font sizes are possible. - * src/interpol.c (gen_interp_frequency): Ensure initialization of - y_total regardless of smooth type. +2016-12-02 Ethan A Merritt - * src/plot3d.c (grid_nongrid_data): Ensure initialization of - numpoints. + * term/gd.trm (PNG_set_font): Repair a read past end of string error + found by valgrind. - * src/pm3d.c (pm3d_plot): Ensure initialiation of gray. + * src/plot3d.c: Initialize vector of data values so that incomplete + data lines do not result in passing uninitialized values to + STORE_WITH_LOG_AND_UPDATE_RANGE - All the following concern the same problem: Macros from - cannot safely be called with arguments of type 'char' (because - that may be signed). Such values have to be cast to unsigned char - on passing. +2016-11-17 Ethan A Merritt - * src/win/wtext.c (TextPutStr): See above. + * term/pdf.trm: Mark this terminal as DEPRECATED. GmbH dropped support + in 2007 for the free (as in beer) but license-restricted version of + PDFlib. The --with-pdf configuration option remains unchanged for now + but will be removed in a future gnuplot release (probably 5.2). - * term/post.trm (PS_load_fontfile): See above. + * src/qtterminal/QtGnuplotScene.{cpp,h}: Track current fillstyle so that + qt terminal can distinguish between opaque and transparent pattern fill. - * src/win/winmain.c (GetLanguageCode, open_printer): See above. +2016-11-14 Ethan A Merritt - * src/util.c (streq): See above. + * src/boundary.c: Better adjustment of plot x2label and plot title when + x2tics are enabled. - * src/term.c (enhanced_recursion): See above. + * src/graph3d.c: Avoid writing zlabel twice when 'set grid defaultlayer'. + Bug #1277 - * src/scanner.c (legal_identifier, scanner): See above. +2016-11-03 Craig DeForest - * src/readline.c (backspace): See above. + * src/datafile.c (plot_option_binary): Interpretation of dimensions + given via "binary record=(a,b)" contridicted that for dimensions given + via "binary array=(a,b)". This caused mangling of image data read in + using the "record" keyword. Change the interpretation to match that + of "array". NB: This fix somehow got lost in 5.0.6 - reapply! + Bug #1873 - * src/plot2d.c (store_label): See above. +2016-10-27 Ethan A Merritt - * src/internal.c (f_word): See above. + * src/plot2d.c src/plot3d.c: Recent reorganization of next_iteration() + code makes it unnecessary to separately track highest iteration in each + plot clause. - * src/gplt_x11.c (exec_cmd): See above. +2016-10-26 Thomas Sefzick - * src/eval.c (set_gpval_axis_sth_double): See above. + * src/plot2d.c: Never decrease value of highest_iteration. + Avoids missed plots when a plot command contains more than one + iteration and the last iteration is shorter than the others. + Bug #1871 - * src/datafile.c (df_readascii, plot_option_binary_format): See above. +2016-10-21 Ethan A Merritt - * src/command.c (changedir, expand_1level_macros): See above. + * src/eval.c src/save.c src/set.c src/show.c src/tables.c src/tables.h + src/unset.c src/util.c src/util.h demo/special_chars.dem: + New command "set micro" tells gnuplot to use an encoding-specific + character sequence rather than "u" for the micro sign (unicode U+00B5) + used as a prefix in scientific notation. This affects the "%c" format + used by gprintf() to label axis ticks. - * src/breaders.c (edf_findInHeader): See above. + * term/pslatex.trm: For pslatex, epslatex, cairolatex "standalone" + option, if the current encoding is utf8 then put a line in the output + /usepackage[utf8x]{inputenc} + Note that [utf8x] (not [utf8]) is needed to correctly process the + degree sign and micro characters. -2014-05-08 Dima Kogan +2016-10-18 Ethan A Merritt - REVERT patch from 2014-04-26 because it broke normal zoom operations. - * src/mouse.c (do_zoom rescale_around_mouse): Handle various conditions - that caused zooming around the current mouse position to fail. + * src/parse.c src/parse.h demo/iterate.dem: + Backport revised iteration code from development version, including + dynamic reevaluation of start/end limits in nested iterations. + This allows an inner loop to reference a variable from an outer loop: + E.g. for [i=1:N] for [j=i:i+1] f(i,j) + Bug #1817 -2014-05-08 Ethan A Merritt +2016-10-15 Bastian Maerkisch - * src/axis.h (ACTUAL_STORE_WITH_LOG_AND_UPDATE_RANGE) - src/plot2d.c (store2d_point) src/plot3d.c (get_3ddata) - src/datafile.c (df_readascii) src/tabulate.c: - Revised handling of NaN or Inf in the input data stream. The program - used to set type=undefined for this point but left all the data fields - untouched (i.e. left them containing random garbage). Version 5 fills - in all data fields, including the one[s] containing NaN or Inf. - This means that the output from "set table" matches the input data - whereas before any line marked "u" contained garbage in the data fields. + * src/win/wgdiplus.cpp: Take fontscale into account. Bugfix. - Note: For 3D data z=NaN or z=Inf is replaced by z=0. This is needed to - avoid problems with image data. Possibly this special case should be - handled in the image code itself rather than at the input stage. +2016-10-15 Bastian Maerkisch - * src/plot2d.c (impulse_range_fiddling) src/plot3d.c: Don't extend - range to zero for log-scaled axes. + * src/command.c (timed_pause) src/stdfn.h (GP_SLEEP): Enforce usage of + win_sleep() even if usleep() is available. + Bug #1867 -2014-05-06 Ethan A Merritt + * src/win/wgraph.c src/win/wmenu.c src/win/wtext.c: Argument of the + function ShowWindow is not a boolean. - * term/emf.trm: Custom dashtype support. + * src/win/wgdiplus.cpp (W_image): Draw images with GDI+ using nearest + neighbour interpolation. - * configure.in term/pdf.trm: Modify PDFlib terminal for use with - version 5 dashtypes (but no custom dashtype support). Do not build - by default. + * src/win/wgraph.c (drawgraph): Missed to recreate the brush in case + of fractional solid fill was requested. Bugfix. -2014-05-05 Ethan A Merritt + * src/win/wgdiplus.cpp: Use StringFormat::GenericTypographic() to draw + text. This reduces differences in text placement between GDI and GDI+ + output. - * src/gp_types.h src/graphics.c (place_objects do_rectangle) - src/misc.c (lp_parse) src/save.c (save_object) src/set.c (set_obj): - Allow object borders to have a full set of line properties including - dashtype. + * src/win/wgraph.c src/win/wtext.c: Ensure proper initalisation of the + font chooser dialog also on non-english systems by using the LOGFONT + fields to request bold or italic fonts instead of using strings. + Request scalable fonts only, to ensure fonts can be scaled or rotated, + or offer (some) Unicode characters. - * docs/gnuplot.doc: Update documentation to better describe recent - changes. + * src/win/wgraph.c (MakeFonts): Calculation of hchar and vtic lost + precision. Bugfix. - * src/qtterminal/QtGnuplotScene.cpp: Always use a solid line to draw - point symbols, even if the current linetype has a dash pattern. +2016-10-13 Ethan A Merritt - * term/cairo.trm term/canvas.trm term/post.trm term/svg.trm term/wxt.trm - term/x11.trm src/term.c: Terminals that have been upgraded to version 5 - dash handling should ignore the "dashed/solid" terminal setting. + * src/wxterminal/wxt_gui.cpp: Screen refresh must hold mutex lock, + failure is triggered by resizing active plot window by dragging mouse. + Bug #1845. - * src/plot2d.c (impulse_range_fiddling) src/plot3d.c: Autoscaled plots - "with impulses" should include y=0 (z=0 in 3D) unless log-scaled. +2016-10-09 Release 5.0.5 -2014-05-05 Tatsuro MATSUOKA + PATCHLEVEL etc: Bump versioning to 5.0.5 for release - * src/qtterminal/po/qtgnuplot_ja.ts: Update translations +2016-10-01 Daniel J Sebald -2014-05-03 Ethan A Merritt + * QtGnuplotItems.{h|cpp} (QtGnuplotEnhancedFragment::width): + Introduce a true string width function rather than using boundingBox(), + which ignores leading or trailing whitespace. This repairs enhanced + text overprint and place-holder markup in the qt terminal. + Bug #1863 - * src/qtterminal/po/qtgnuplot_ja.ts: Update translations. +2016-09-27 Ethan A Merritt -2014-05-01 Hans-Bernhard Broeker + * src/plot2d.c (eval_plots): Initialize fillcolor. - * config/mingw/Makefile (LDFLAGS2): Add auto-import flag. - ($(TARGET)): Add icon files and Makefile as dependencies. + * src/stats.c: Do not use columnheader as a prefix for "stats" unless it + is specifically requested. - * config/config.mgw, config/config.cyg: The set of used / - available configuration macros has changed across the past several - years. +2016-09-25 Ethan A Merritt - * src/stdfn.h (sgn): Fix parenthesization of macro. - (PATH_MAX): CLang compiler on Cygwin needs a silly little tweak. + * src/pm3d.c (set_plot_with_palette): When checking for plot elements + that refer to palette coloring, go through the list of objects also. - * src/graphics.c (samesign): Improve parenthesization a bit. +2016-09-15 Ethan A Merritt -2014-05-01 Ethan A Merritt + * src/set.c docs/gnuplot.doc: Ignore "set termopt {dashed|solid}". + Remove use of this option from the manual. - * demo/gantt.dem demo/html/*: Add Gantt chart to demo collection. - Add dashtypes to demo collection. +2016-09-14 Bastian Maerkisch - * src/show.c: Show "fixed" property of arrow style. + * src/win/wgraph.c (drawgraph): Fix a GDI resource leak which is + only important when opening and closing a massive number of different + graph windows. -2014-04-29 Ethan A Merritt +2016-09-13 Ethan A Merritt - * src/datafile.c (f_timecolumn): Replace the old 1-parameter function - timecolumn(col) with a 2-parameter timecolumn(col,"timeformat"). The - old version had no way to handle time data that didn't correspond to - a coordinate on a plot axis in time format (e.g. set xdata time). - It would segfault if the function appeared in a using spec slot >= 2. - Now we require an explicit format, so data input is dissociated from - any particular axis or time setting. - Bug #1394 + * src/graph3d.c (setup_3d_box_corners): 2016-09-06 revision to which + plot edges have tic labels attached should not have been applied to + "set view map" mode. - * src/gplt_x11.c term/x11.trm term/xlib.trm: - Custom dashtype support for X11. +2016-09-12 Bastian Maerkisch -2014-04-28 Dima Kogan + * config/config.nt (HAVE_ERF, HAVE_ERFC, HAVE_STDBOOL_H, isnan + EAM_OBJECTS): Version dependent macros to enable compilation + with at least VS2012 or newer. - * src/mouse.c src/mouse.h src/set.c src/show.c docs/gnuplot.doc: - Remove the distinction between "coordinate format echoed to the screen - during mousing" and "coordinate format saved to the clipboard on click". - This removes the default bindings for hotkeys 3 and 4. + * src/win/wgnuplib.rc: Change (nominal) font size of most dialogs to + 8pt in order to match Windows default settings. -2014-04-28 Shigeharu Takeno + * src/win/wgraph.c src/win/wgdiplus.cpp (W_hypertext): Use the + encoding which was active while plotting (not the current one) to + display hypertext. - * docs/gnuplot-ja.doc term-ja.diff: Sync translation to version 1.882 - * docs/gnuplot.doc: typos + * src/win/wgdiplus.cpp: Fix a resource and memory leak. -2014-04-28 Ethan A Merritt + * src/win/wpause.c: Use default GUI font (not the archaic system font). + Match the size of the dialog box to the actual length of the message. - * src/graphics.c src/graph3d.c src/save.c src/show.c: Use named - values LAYER_{BEHIND|BACK|FRONT} rather than magic numbers. + * src/win/wtext.c (UpdateScrollBars): The size of the scroll bar + thumb reflects the length or width of the scrollable area. - * docs/gnuplot.doc: Add a section documenting the use of layers. + * src/win/wtext.c: Ctrl-C copies to clipboard if there's selected text + or sets the Ctrl-C (break) flag otherwise. -2014-04-27 Dima Kogan + * src/win/wgraph.c src/win/wmenu.c: Use TB_ADDBUTTON instead of + TB_LOADIMAGES to load standard icons as this somehow eliminates + a resource leak. - * src/gplt_x11.c: Fix off-by-one error in selection string. - Allow clipboard contents to be retrieved more than once. +2016-09-07 Daniel J Sebald -2014-04-27 Ethan A Merritt + * src/graph3d.c (setup_3d_box_corners): Add quandrant processing for + surface_rot_x similar to that for surface_rot_z. This fixes + inconsistent borders drawn when the base is upside down. + Bug #1810 - * src/graphics.c (plot_steps): Avoid overflow in clipping code. - ==> Reverted in favor of fixing the clipping code itself. +2016-09-06 Ethan A Merritt - * src/gadgets.c (clip_line): It is not safe to use (A*B >= 0) as a - substitute for the test (sign(A) != sign(B)). - It fails when A and B are integers and their product overflows. - Bugs #1390, #1392 See also Bug #1358 + * src/tabulate.c( imploded ): The smoothing routine cp_implode() + creates a new set of plots separated by dummy UNDEFINED points. + However data files use a blank line to separate curves. Thus + "set table foo; plot ... smooth freq" + creates a file foo that is not in standard format, creating problems + if it is read back in to plot later. This patch replaces each + UNDEFINED point with a blank line when smoothed data is tabulated. + Bug #1274 - * src/stdfn.h: Define a sgn() function. + * src/stats.c: In the case of 'stats foo prefix columnhead' check that + the string found in the column header is a legal identifier (i.e. rule + out numbers and punctuation). - * src/graphics.c: Use sgn() function to define samesign(). +2016-09-03 Ethan A Merritt - * src/mouse.c: No longer need a local definition of sgn(). + * src/stats.c: Track and report number of lines treated as column + headers rather than as data. -2014-04-26 Dima Kogan + * src/show.c: Show state of 'autotitle columnheaders' even if the key + is currently unset. - * src/mouse.c (do_zoom rescale_around_mouse): Handle various conditions - that caused zooming around the current mouse position to fail. - Bug #1380 - [REVERTED 2013-05-08 because it broke normal zoom] + * docs/gnuplot.doc: Update sections referring to columnheaders. + Note that the effect of `set key autotitle columnhead` extends to + stats and fit commands, and applies even if the key is unset. -2014-04-25 Ethan A Merritt + * src/datafile.c (df_open): Guarantee that first line of data is + skipped if 'set key autotitle columnhead' is in effect regardless of + whether the column headers are used. + Bug #1751 - * src/misc.c (lp_parse): Disallow defining "set lt N lt M". - This used to mean "define effective linetype N to be the hidden device - specific linetype M", except that in other contexts it meant "use - effective linetype M rather than effective linetype N". Version 5 - distinguishes between color and dashpatten, so require an explicit - command to set one or both rather than an ambiguous old-style request. +2016-09-02 Ethan A Merritt - * src/save.c (save_pm3dcolor save_linetype): Save special linetypes - by keyword rather than a magic number (e.g. lt bgnd rather than -3). + * src/datafile.c (df_generate_pseudodata): + Grid coordinates generated by splot '++' are subject to round-off error. + This error is most noticeable at the plot boundary, where it may be that + (sample_min + nsteps * stepsize != sample_max). This is more likely to + be visible on 32-bit systems than on 64-bit systems. + Force the final grid coordinate to be exactly sample_max. + Bug #1850 -2014-04-24 Ethan A Merritt +2016-09-01 Ethan A Merritt - * src/gp_types.h src/misc.c (lp_parse) src/misc.h src/plot2d.c - src/plot3d.c src/set.c: Revise the parameters passed to lp_parse() so - that the legal options can vary depending on the identity of the caller. + * term/pslatex.trm: The begin/end of plot bookkeeping of internal state + that would otherwise be done by PS_layer() needs to be done instead by + the replacement routine PSLATEX_layer(). In particular the final line + a plot needs to be stroked and the linetype reset. + Bug #1852 - * src/term.c (test_term): Reset to default font after Bold/Italic test. - Bug #1387 +2016-08-25 Ethan A Merritt -2014-04-24 Dima Kogan + * src/wxterminal/wxt_gui.cpp (wxtFrame::OnExport): Revisit the file + export widget. I misread the code previously, thinking there was only a + single global command list. Actually there is a global pointer but each + window has its own command list. So we really can export inactive plots + as well as the active plot. The global command list pointer is now + unused so get rid of it. + Bug #1843 + + * src/color.c src/set.c src/gadgets.c src/gadgets.h src/tables.c + src/tables.h src/save.c docs/gnuplot.doc: New keyword + "set colorbox {{no}invert" flips the top/bottom orientation of a + vertical gradient; i.e. the same color maps to the same numerical value + but the orientation of the sample is inverted. Display of horizontal + gradients is not affected. + Tracker issue #1808 + +2016-08-24 Ethan A Merritt + + * src/plot2d.c (refresh_bounds box_range_fiddling): Improved autoscaling + of plots "with boxes". Extend y range to 0. Distinguish between absolute + and relative boxwidth. + Bug #1827 + + * src/datafile.h src/datafile.c src/stats.c docs/gnuplot.doc: + Rearrange the order in which we parse the "stats" command. + This allows passing "columnheader" or "columnheader(N)" to the + "name" option rather than a fixed character string. + Bug #1841 + +2016-08-21 Ethan A Merritt + + * src/wxterminal/wxt_gui.cpp (wxtFrame::OnExport): The Export widget + on a plot window should dump a copy of the plot in that window, not a + copy of the currently active plot. Modify the OnExport function + accordingly. Unfortunately to generate PDF or SVG files we want to + reexecute the list of commands that generated the plot, but we only + keep such a list for the currently active plot. So Export from + inactive windows is limited to the clipboard or PNG files. + Bug #1843 + + * src/readline.c (getc_wrapper): Clear errno before reading next + character. This fix contributed anonymously. + Bug #1846 #1865 - * src/mouse.c (do_zoom_scroll_up): Fix typo that causes incorrect - manipulation of y2 axis scale during zoom. - Bug (Patch #647) +2016-08-19 Ethan A Merritt -2014-04-23 Ethan A Merritt + * src/util.c (squash_spaces) src/util.h src/command.c: + Modify squash_spaces() utility routine to optionally leave a single + space in place of whitespace or remove whitespace altogether. - * src/command.c src/graph3d.* src/set.c src/show.c src/save.c - docs/gnuplot.doc: Introduce a scale parameter "set view map {scale}" - and set the default size of a plot in this mode to approximately the - same as a default 2D plot. +2016-08-18 Ethan A Merritt - * src/command.c (replotrequest): It's now OK to have a range in a - replot command, since it can be applied to the new plot piece only. + * src/eval.c src/eval.h (free_at): afl-fuzz found multiple crashes + caused by trying to evaluate a defunct action table. This patch wraps + free_at() in a macro that clears the pointer to an action table after + freeing it. - * src/datafile.c (df_readascii): If a read request returns a string - rather than a numerical value, nevertheless fill in the numerical - value as NaN. This is better than leaving some random garbage there - (in practice probably some earlier data value). - Bugfix. +2016-08-17 AMD -2014-04-21 Ethan A Merritt + * term/post.trm: Different treatment of simplex/duplex option + depending on whether the PostScript support is limited to Level 1. - * term/canvas.trm: Support for custom dashtypes. +2016-08-16 Ethan A Merritt -2014-04-20 Jérôme Lodewyck + * src/misc.c (lp_parse) src/plot2d.c (eval_plots): Remove order + dependence of the "fillcolor" keyword and confusion with line style. + For example these commands were not working: + plot 'silver.dat' with boxes fs solid 1.0 border -1 fc "cyan" + plot 'silver.dat' with boxes fc "cyan" fs solid 1.0 border -1 lw 2 - * src/qtterminal/po/*.ts: Update translations. +2016-08-11 Ethan A Merritt - * src/qtterminal/qt_conversion.cpp: Add new encoding types. + * src/plot2d.c (box_range_fiddling): afl-fuzz found a crash caused by + an incorrect test for no data points. - * src/qtterminal/QtGnuplotEvent.* src/qtterminal/QtGnuplotWindow.cpp - src/qtterminal/qt_term.cpp src/wxterminal/wxt_gui.cpp - src/wxterminal/wxt_term.h term/qt.trm term/wxt.trm: new terminal option - "position" that specifies the initial position of the plot window. - Applies to Qt and wxt terminals. Feature request #386. + * src/set.c (encoding_minus): Comment out replacement of the SJIS minus + sign character. The character itself is correct but it is a full-width + glyph so it does not mix well with half-width digits in a number. + This problem is specific to SJIS. -2014-04-19 Ethan A Merritt +2016-08-09 Hans-Bernhard Broeker - * src/command.c (test_command): When "test" is issued before any plot - command, suppress error messages if the window is resized. + * config/config.oww (ftruncate): Definition needed to compile on + Open Watcom. - * term/PostScript/prologue.ps term/PostScript/prologues.h: - Update PostScript prolog for version 5 and regenerate headers. + * config/config.nt (HAVE_ERF, HAVE_ERFC, HAVE_STDBOOL_H) + (HAVE_STDINT_H, isnan): Update some flage to match current version + of MSVC (VS 2015). - * term/post.trm: - Support for custom dashtypes in PostScript output. +2016-08-07 Ethan A Merritt -2014-04-18 Ethan A Merritt + * src/save.c src/set.c src/show.c src/tables.c src/tables.h src/unset.c + src/util.c src/util.h src/eval.c docs/gnuplot.doc term/js/canvasmath.js: - * term/svg.trm (set_dashtype): Fix potential buffer overrun; + New command "set minussign" tells gprintf() to use an encoding-specific + minus sign character for numeric output rather than the ascii hyphen + character produced by sprintf(). + UTF-8: Unicode U+2212 "minus sign" + CP1252: ALT+150 "en dash" + SJIS: 0x817c + default: ascii \055 "hyphen" - * src/misc.c (parse_dashtype): A custom pattern must contain an even - number of entries. + The substitution of minus sign for hyphen is not made during tabular + output ("set table") or when the current terminal is a LaTeX terminal. + It affects only numbers formatted by gprint(). Other hyphens are + not affected even if they are in a gprintf format string. - * demo/dashtypes.dem demo/all.dem: New dashtype demo. + * PATCHLEVEL: increment to 5pre to distinguish test builds from 5.0.4 - * src/qtterminal/QtGnuplotEvent.h src/qtterminal/QtGnuplotScene.cpp - src/qtterminal/qt_term.cpp src/qtterminal/qt_term.h term/qt.trm: - Support for custom dashtypes and dashlength in qt terminal. - Change implementation of "lt nodraw" from background color to NoPen. +2016-08-06 Tatsuro MATSUOKA - * src/term.c (enhanced_recursion): Consume only a single space following - the font name in an enhanced text string "{/Fontname text}". + * src/wxterminal/wxt_gui.h: Correct spelling of include file name. + Bug #1836 - * docs/gnuplot.doc: Initial documentation for `set dashtype` and - dash properties in version 5. +2016-08-04 Ethan A Merritt -2014-04-17 Ethan A Merritt + * term/svg.trm: Better vertical justification of rotated text. - * src/misc.c (parse_dashtype) src/save.c (save_dashtype) src/term_api.h - src/term.c (term_apply_lp_properties) demo/dashcolor.dem: - Fix some glitches found while testing custom dashtypes. + * src/qtterminal/QtGnuplotScene.cpp src/qtterminal/QtGnuplotItems.cpp: + *.pcf (bitmap) fonts are non-rotatable. Furthermore Qt can die horribly + while trying (seen with Qt 5.4.2). To make matters worse, requesting + font "Times" may give you the Adobe pcf font Times (perfect name match) + rather than a rotatable ttf or odf font like TimesNewRoman. This patch + adds style strategy QFont::ForceOutline to forbid selection of a + bitmap font. - * src/term.c (test_term): Exercise bold/italic. Longer line samples to - make it easier to distinguish dashtypes. Minor layout changes. +2016-08-03 Ethan A Merritt - * term/svg.trm: Support for custom dashtypes. + * src/datafile.c: Matrix dimensions were not being adjusted to account + for subsampling by "every" in the using specifier, so "with image" + plots came out mangled. This was a regression from 4.6.6 and 5.0.1. + Bug #1835 - * src/wxterminal/gp_cairo.* src/wxterminal/wxt_gui.* - src/wxterminal/wxt_term.h term/cairo.trm term/wxt.trm: - Support for custom dashtype in all cairo-based terminals. + * src/set.c src/gadgets.h src/plot2d.c demo/rotate_labels.dem + docs/gnuplot.doc demo/all.dem: New option `rotate variable` to assign + a separate rotation angle for each point in a 2D `plot with labels` + using the contents of the 4th entry in the using specifier. + plot foo using 1:2:3:4 with labels rotate variable -2014-04-14 Dima Kogan +2016-08-01 Ethan A Merritt - * src/mouse.c (event_buttonpress): Flip direction of horizontal - scrolling to match the convention used by vertical scrolling. + * src/unset.c: "unset y2mtics" was clearing the setting for x, not y2. -2014-04-14 Ethan A Merritt +2016-07-31 Shigeharu Takeno - * configure.in (AC_FUNC_FSEEKO) src/datafile.h: LFS support part 2. - If possible, use fseeko/ftello to navigate input data files. + * src/win/wgnuplot-ja.mnu src/win/README.win-ja: Update Japanese + menu translations and help text. -2014-04-13 Ethan A Merritt +2016-07-31 Bastian Maerkisch - * configure.in (AC_CHECK_TYPES([off_t])) src/syscfg.h (#define off_t) - src/binary.c src/datafile.c src/datafile.h: Change the declared type - of all variables contributing to calculation of file offsets from (int) - to (off_t). This is sufficient to allow seeking in files > 2GB on 64bit - platforms. It may also allow LFS support on some 32bit platforms if - compiled with -D_FILE_OFFSET_BITS=64 but in general it will also be - necessary to replace fseek/ftell with fseeko/ftello (32bit linux) or - _fseeki64/_ftelli64 (MSVC). + Backport bug-fixes from 5.1 -2014-04-11 Ethan A Merritt + * src/wxterminal/wxt_gui.cpp: Handle errors when creating a cairo + surface. + Bug #1621 - * src/datafile.c (df_binary_details[]): Handle int64 and uint64 types - even if current platform has sizeof(long) = 4. - Bugfix + * win/gnuplot.iss: Enforce inclusion of directory and program group + pages since the default changed in Inno setup version 5.5.7. + Bug #1831 -2014-04-08 Ethan A Merritt + * src/win/wgraph.c (drawgraph) src/win/wgdiplus.cpp(drawgraph_gdiplus): + Missing cleanup of cached point symbols caused a sizeable resource + leak. Bugfix. - * src/save.c (save_linetype) src/misc.c (lp_parse) - src/graphics.c (plot_lines) src/graph3d.c (do_3dplot plot3d_lines) - src/boundary.c (do_key_sample): + * src/readline.c (fn_completion): Allow filename completion for system + commands '!' and after pipe symbols '<', '|'. + Bug #1747 - New linetype keyword "nodraw" maps to existing internal value LT_NODRAW. - Apply this in the graphics layer rather than the terminal layer in order - to distinguish between line properties and point properties. - I.e. this draws blue points but no lines: - plot $FOO with linespoints lt nodraw pointtype 6 lc rgb "blue" + * src/readline.c: The return value of the *_getch() functions should + be int, not char, in order to avoid confusion between EOF (-1) and + (char)0xff. + Bug 1558 - * src/term.c (term_apply_lp_properties): Distinguish between l_type - values that really indicate a linetype (e.g. LT_NODRAW, LT_AXIS) and - those which indicate a dash pattern. Send the former directly to - term->linetype(). Send the latter to term->dashtype(), which may itself - call term->linetype() if there is no private implementation of dashes. + * src/qtterminal/qtconversion.cpp: Avoid use of isnan() in C++ code. + The C++11 standard has it as a function in the std namespace, whereas + older compilers provude it as a macro or as ::isnan(). Use (var != var) + instead. -2014-04-07 Ethan A Merritt +2016-07-21 Ethan A Merritt - * src/term.c (null_dashtype): Ignore custom dashtypes. Pass through - dashtypes > 0 to term->linetype(). Treat negative dashtypes as LT_BLACK. - This should allow terminals without a private dashtype implementation to - continue working as they did before (pre-version 5). + * src/term_api.h: Define TERM_POLYGON_PIXELS. + * src/graphics.c (plot_image_or_update_axes): If this flag is set, + implement "plot ... with image pixels" using term->filled_polygon() + rather than term->fillbox(). + * term/qt.trm: Set TERM_POLYGON_PIXELS to avoid aliasing artifacts. - * src/plot2d.c (eval_plots): Don't call lp_parse if all we want is - a fill color. +2016-07-19 Jun Takimoto - * src/boundary.c (do_key_sample) src/graphics.c (plot_boxes plot_c_bars): - Funnel requests for linetype changes through term_apply_lp_properties(). + * term/aquaterm.trm: The AQUA_boxfill() routine scales very badly + with the total number of rectangles, making it horribly slow when + invoked by "plot $foo with image pixels". Set the terminal flag + TERM_POLYGON_PIXELS so that the image processing code will call + term->filled_polygon() in preference to term->fillbox(). - * demo/all.dem: Add varcolor.dem to the test set. +2016-07-15 Bastian Maerkisch -2014-04-06 Christoph Bersch + * src/win/wgdiplus.cpp (W_enhanced_text): Apply text color to enhanced + text. + Bug #1829 - * src/graphics.c (fill_between): It is no longer necessary to clip in - this routine because the component quadrilaterals will be clipped later. +2016-07-09 Ethan A Merritt -2014-04-05 Ethan A Merritt + * Bump PATCHLEVEL to 5.0.4 - * src/set.c (set_table): Name leak. +2016-07-08 Ethan A Merritt -2014-04-05 Bastian Maerkisch + * src/gadgets.c (write_label): Consolidate code to create a textbox for + this label. - * demo/vector.dem docs/gnuplot.doc src/command.c src/datablock.c - src/datablock.h src/gadgets.c src/gadgets.h src/plot2d.c src/set.c - src/tabulate.c src/tabulate.h src/unset.c src/util.c src/util.h: - 'set table $datablock' redirects table output to a named data block. - Patch #662 + * term/pslatex.trm: Implement textbox margins for epslatex. + Note that textbox margins are undocumented and not yet completely + implemented. -2014-04-04 Ethan A Merritt + * src/qtterminal/qt_term.cpp src/qtterminal/QtGnuplotScene.cpp + src/qtterminal/QtGnuplotScene.h: Implement textbox margins for qt. - * src/term.c (load_linetype): If a line style is based on a lt < 0 - (LT_NODRAW, LT_BACKGROUND, LT_BLACK, etc), take only the line color. - FIXME: LT_AXIS should also take the dash pattern but that mechanism - isn't fully in place yet. - Bug #1369 + * src/wxterminal/gp_cairo.c (gp_cairo_boxed_text): Reduce textbox + margin size and linewidth to better match other terminals. - * src/util.c (value_to_str): Fix error in buffer length accounting. - Bug #1372 +2016-07-05 Ethan A Merritt - * src/alloc.c src/alloc.h src/bf_test.c: The conditional code in - alloc.c for tracking memory allocation/free has bit-rotted to a point - where the program segfaults on entry if it is enabled. Since this sort - of accounting is now better done using valgrind it is not worth fixing - the old code. Delete it. + * src/graphics.c(plot_betweencurves): The filled curve options y=foo, + below y=foo, etc were reworked to piggyback on the 'fill between' code + by pre-loading ymax with foo on data input. However this mechanism + breaks if the curve is smoothed because ymax is lost during smoothing. + Revert the case of smooth + filledcurves + y=foo to use the original + FILLEDCURVES_ATY1 code. This original rationale (IIRC) was to get + better clipping but since we now have good general case polygon + clipping perhaps all the piggyback cases should be reverted. - * src/alloc.c: Although freeing old help messages may free some memory, - entangling the help system with every memory allocation seems excessive. - If we're about to run out of memory there are deeper problems than old - help messages. +2016-06-22 Ethan A Merritt - * configure.in: Remove EXPERIMENTAL warning from older options. + * RELEASE_NOTES demo/plugin/Makefile.am: Note compiler flags needed + to build gnuplot using Solaris SunPro C compiler. + Bugs #1786 #1821 + +2016-06-17 Ethan A Merritt + + * parse.h plot2d.c plot3d.c: Tracking the wrong iteration + variable (iteration_current rather than iteration) caused plot + command iteration with a negative increment to fail to iterate at all. + E.g. 'plot for [i=9:1:-1] foo' plotted only the single plot with i=9. + Bug #1819 - * src/save.c src/set.c src/term.c: Code style / whitespace cleanup + * src/mouse.c (do_event): The combination of in-line data and a + resize+replot event could result in the program exiting. + Use do_string_replot("") rather than do_string("replot"). + Bug #1818 - * src/set.c (set_dashtype) src/misc.c (parse_dashtype): Add comments. - Truncate dashtype string to match size of stored pattern array. +2016-06-15 Ethan A Merritt -2014-04-03 Bastian Maerkisch + * src/datafile.c (check_missing): Fix test for explicit 'set missing' + string in a csv file (previous check assumed the string was followed by + whitespace rather than a field separator). - * src/fit.h (error_ex): Add noreturn attribute to avoid compiler - warnings. +2016-06-14 Ethan A Merritt - * src/fit.c: Correct test for invalid covariance matrix. + * src/internal.c (f_word f_words): The implementation of word(string,N) + returned the total number of words for any N<0. This was used internally + to implement words(string) as word(string,-1) but meant that any N<0 + returned an unexpected value to the user. Limit the special case to + a single magic value and let all other N<0 return "" as expected. - * src/util.h (int_error, os_error, graph_error): noreturn attribute - for MSVC. + * src/axis.h (ACTUAL_STORE_WITH_LOG_AND_UPDATE_RANGE): + Only update axis->data_min/max if the point being stored is INRANGE. + Bug #1804 - * src/wgdiplus.cpp (drawgraph_gdiplus) src/win/wgraph.c (drawgraph): - Test if command list is available. +2016-06-12 Daniel J Sebald - * src/win.trm (WIN_update_options) src/win/wmenu.c: Incomplete format - strings. + * src/graph3d.c: Better fix for bug #1809 (placement of xyplane + independent of tics or grid lines). -2014-04-02 Ethan A Merritt +2016-06-09 Ethan A Merritt - * src/misc.c demo/heatmaps.dem docs/gnuplot.doc: - Document and add a demo for "with image pixels" (formerly "failsafe"). + * src/stats.c: Change most file-reading errors in "stats" to warnings + rather than error, so that a script can continue after trying to stat a + file the contains bad data. - * src/color.c src/plot3d.c src/pm3d.c src/pm3d.h src/save.c src/set.c - src/show.c src/tables.c src/tables.h src/term.c src/unset.c: - Revise "set pm3d hidden3d " to match other places where you can - specify line properties. - - Full syntax is now "set hidden3d {no}border {line-properties}" - - Individual line properties can be overridden in the plot command - - Old sytax is accepted as a synonym for "set hidden3d border lc " +2016-06-07 Ethan A Merritt - * demo/transparent_solids.dem docs/gnuplot.doc: - Update documentation and demo to show new syntax + * src/graph3d.c: Consistent placement of xyplane regardless of whether + tics or grid lines are present. + Bug #1809 - * src/contour.c (end_crnt_cntr): Initialize blank label in new contour. +2016-05-31 Ethan A Merritt -2014-04-01 Ethan A Merritt + * set/set.c (set_palette): Disallow "set palette maxcolors 1" because + this causes divide-by-zero errors during color smoothing. + Reported originally as an Octave bug + https://bugzilla.redhat.com/show_bug.cgi?id=1340660 - * src/command.c (test_palette_command): Write the palette colors into - a datablock $PALETTE rather than writing them as in-line data in a temp - file. Simplify the internal command sequence that generates the test - output. TODO: Move the command sequence into a datablock as well. +2016-05-23 Ethan A Merritt -2014-03-30 Bastian Maerkisch + * src/datafile.c: partial "every" specifiers are not compatible with + image plots. Ignore them when figuring out image dimensions. + Bug #1796 - * term/caca.trm: Change codepage from 932 to 437 on Japanese Windows. - Apparently this fixes display problems, although libcaca uses unicode - functions to write to screen. - Bug #1361 +2016-05-17 Ethan A Merritt - * src/eval.c src/internal.c|h src/parse.c: Implement f_words instead - of treating it as a special case in the parser. + * src/plot3d.c (get_3ddata): Color information from 7-column input to + "splot ... with vectors" was stored only for the tail, not the head. + Bug #1793 - * src/command.c src/command.h src/plot.c src/stdfn.h src/syscfg.h - src/win/wgraph.c src/win/winmain.c src/win/wprinter.c: Include file - cleanup. +2016-05-16 - * src/win/screenbuf.c: Avoid crashes on memory allocation errors. + * term/js/gnuplot_svg.js: Apply screen transform to mouse coordinates, + so that browser-mediated changes of scale and origin are accounted for. + In particular this handles the case where the size of an svg image is + not the same as the object it is embedded in. + Note: Old code claiming to handle scrollbars is left in place but may + now be counterproductive. - * src/makefile.all src/makefile.awc: Recreate to include multiplot.c. +2016-05-13 Bastian Maerkisch - * demo/lines_arrows.dem: UTF-8 encoding. + * src/fit.c (fit_command): Since memory requirements are linear in the + number of datapoints, double max_data if we need to enlarge the + internal buffers. Remove the associated message. + Feature Request #444. - * config/mingw/Makefile: Fix non-numeric version number due to - patchlevel "alpha". +2016-05-11 Ethan A Merritt -2014-03-29 Christoph Bersch + * src/graphics.c src/graphics.h src/plot2d.c: Improved handling of + boxplot data with multiple "factors" (i.e. category labels). The data + is now sorted only once, rather than once per factor. This change + was documented as appearing in 5.0.1, but appently was never applied. + Bug #1769 - * src/multiplot.h src/multiplot.c demo/layout.dem docs/gnuplot.doc: - New autolayout options for multiplot: - set multiplot layout margins LEFT, RIGHT, BOTTOM, TOP spacing GAP - Patch #611 + * src/graphics.h src/plot2d.c: Add a new field to (struct curve_points). + plot->base_linetype holds the original linetype index for this 2D plot, + prior to applying variable color, linetypes defined in terms of other + linetypes, etc. This allows assigning successive colors or other + properties to elements of a 2D plot (e.g. histogram components, boxplot + factors). An analogous field splot->hidden3d_top_linetype is already + maintained in (struct surface_points) for use by 3D plots. -2014-03-29 Ethan A Merritt + * src/graphics.c src/plot2d.c: In boxplots with multiple component + factors, interpret "lc variable" as requesting a new color for each + factor. - * src/term.c (multiplot_current_panel) term/svg.trm src/term_api.h: - Hide internal data structure behind an access function. +2016-05-07 Hans-Bernhard Broeker - * src/multiplot.h src/multiplot.c src/term.c src/term_api.h - src/Makefile.am: Move multiplot layout code from term.c into a new - file multiplot.c. + * src/term.h: Move estimate.trm further up, so emf.trm can see it. -2014-03-27 Shigeharu Takeno +2016-05-06 Ethan A Merritt - * docs/gnuplot-ja.doc term-ja.diff: Sync translation to version 1.872 - * docs/gnuplot.doc: typos + * term/emf.trm: Better (though still not perfect) estimation of + the space occupied by a UTF-8 string. Till now each byte in a + multi-byte character was being counted as occupying space. Bug + #1787 -2014-03-27 Dima Kogan + * src/term.h: The above change means that estimate.trm must be + included earlier in term.h than emf.trm. Bump it to the top. - * docs/gnuplot.doc +2016-05-04 Ethan A Merritt -2014-03-27 Ethan A Merritt + * src/save.c: "rotate parallel" was not being saved correctly. - * src/qtterminal/qt_term.cpp (qt_text_wrapper): - Prevent segfault on "set term qt; set multiplot; quit". +2016-05-01 Matthew Halverson -2014-03-24 Ethan A Merritt + * term/svg.trm: Do not flag svg terminal as TERM_BINARY. - * src/graphics.c (place_objects do_rectangle): When fillcolor for an - objects is given as a linecolor it should be interpreted as referring - to a current linetype. +2016-04-27 Ethan A Merritt - * src/command.c: clean up to remove compiler warnings. + * src/fit.c (call_gnuplot): More robust handling of undefined value + returned by function being fit. - * term/emf.trm: Bold/Italic markup in enhanced text mode +2016-04-20 Ethan A Merritt - * src/boundary.c (do_key_sample_point) demo/lines_arrows.dem: - Apply textcolor to character point type in key sample. + * src/graphics.c (process_image): There are two paths through the + code that extracts image data from an ascii input stream, depending + on whether the x or y coordinate varies fastest. The fix for Bug #1767 + corrected one path but broke the other. I.e. none of version 5.0 + patchlevels 0-3 worked correctly on all image input. Now we fix the + broken path so that all cases are working, at least on test data. + Bug #1782 -2014-03-23 Bastian Maerkisch +2016-04-16 Ethan A Merritt - * src/command.c src/command.h src/datablock.c src/datablock.h - src/set.c src/show.c src/unset.c docs/gnuplot.doc demo/ellipse.dem - demo/fitmulti.dem demo/gen-random.inc demo/rugplot.dem: - Implement 'set print $datablock' which redirects 'print' output to - an in-memory datablock. - Patch #662 + * src/graph3d.c (get_arrow3d): Fix typo introduced in 5.0 that caused + arrows defined by "from ... rto ..." to be mangled in 3D plots. - * src/setshow.h src/show.c src/util.c src/util.h: Factor out new - routine value_to_str() which returns a string representation of a - struct value from disp_value(). + * src/graphics.c (attach_title_to_plot): Bad things happen if you try + to attach a title to the end point of a plot with no points (NODATA). - * demo/tango_colors.dem: set linetype cycle. +2016-04-15 Shigeharu Takeno - * docs/plotstyles.gnu: Encoding is utf8. + * src/term.c: Windows requires mode "wb" for pipe output, BSD requires + "w" (no "b" character), linux will accept either. + Bug #1756 - * src/win/wcommon.h src/win/wgraph.c: Fix const-ness for - enhanced_recursion(). +2016-04-14 Ethan A Merritt - * src/util.c (gprintf): Skip leading zeroes of negative exponents. + * src/graphics.c (clone_linked_axes): Backport cleanup of tests for + consistency of forward/reverse mapping functions in a 'set link' + command so that spurious warnings are not generated at runtime. + Bug #1777 -2014-03-22 Ethan A Merritt +2016-04-11 Ethan A Merritt - * docs/gnuplot.doc docs/doc2tex.c docs/titlepag.tex: - Update documentation New Features, Changes for version 5. + * src/plot2d.c (refresh_bounds): Patch from 2016-01-18 to fix bug + #1709 introduced a regression. Minimal example: + 'set log x; plot '-'; replot' + failed to delog/log the updated min/max axis limits. + Bug #1774 - * src/plot.c (init_session) src/set.c (set_colorsequence) src/setshow.h - src/show.c src/tables.c src/tables.h src/term_api.h: - New command: - set colorsequence {default | classic | podo} - Built-in command to select one of the linetype color sequences provided - in .../share. The default sequence is visibly changed from the old - red/green/blue ugliness, which should make users immediately aware that - the colors can be customized. +2016-04-06 Ethan A Merritt - * src/set.c (set_linestyle): Dash type of newly created linetype should - by solid unless otherwise specified. + * term/emf.trm: Enhanced text mode was over-zealously skipping new + set_font requests if successive writes requested the same font+property. + This caused it to lose italic/bold/etc properties. + Prevent this by clearing the font history at the end of each enhanced + text write. + Bug #1772 - * src/misc.c: Allow `black` as a colorspec or linetype, analogous to - `bgnd`. +2016-04-04 Ethan A Merritt -2014-03-21 Ethan A Merritt + * src/graphics.c (process_image): There is not currently a fool-proof + mechanism for inferring image dimension from a set of x/y/z coords read + as ascii data. But we can do better than transposing the row/column + count by mistake. Note that this same transposition was previously + fixed for the case of ascii matrix data input (Bug #1654) + Bug #1767 - * src/parse.c (check_for_iteration next_iteration): - Replace overly clever checks for end condition already satisfied with - one that doesn't fail due to overflow of integer multiplication. - Bug #1358 +2016-03-31 Ethan A Merritt - * src/term.c (enhanced_recursion) term/post.trm(ENHPS_OPEN): - The bold/italic support code has revealed a problem with PostScript - output. The core code assumes that passing a blank font name means - "keep the previous font" or at worst "use the default font". post.trm - failed to do this for some command sequences. Fix it in two places. - In term.c pass the previous font if we already know it. - In post.trm fall back to the default rather than place a blank - string in the ouput *.ps file. - Bug #1359 + * src/history.c (add_history): The documentation states that + "set history N" will save N lines on history to a file on program exit. + This is true in practice for both the readline-based history code and + the built-in history code. However the builtin code also truncates and + renumbers the active history list in the current session. This makes + the numbers essentially useless once the list reaches N entries. + Remove this unwanted secondary effect in the built-in version. + Bug #1763. -2014-03-20 Bastian Maerkisch +2016-03-22 Bastian Maerkisch - * src/set.c src/term.c src/term_api.h src/util.c src/win/wgraph.c - src/wxterminal/gp_cairo.c term/aquaterm.trm term/pdf.trm term/post.trm - term/pslatex.trm term/svg.trm: Add support for codepage 1252, the - standard Western European encoding on Windows. + * config/mingw/Makefile win/gnuplot.iss: Support MSYS2/Mingw-w64 as + well as MSYS/MinGW and compilation using clang. Ability to build + 64bit or 32bit zip package and installer. New make flags MINGW64, + CLANG, COLOR-GCC, and M32. Default to 64bit builds when using + Mingw-w64, use M32 flag to select 32bit builds. - * src/set.c: "set encoding locale" only handles utf8 and sjis. Extend - this to all supported encodings on Windows, probably the only platform - where this is still relevant. - Bug #1270 + * src/win/wcommon.h src/win/wgdiplus.cpp src/win/wgnuplib.h + src/win/wgraph.c: Fix several issues found by clang, with the most + important being wrong delete's in wgdiplus.cpp. - * demo/dashcolor.dem: UTF-8 encoding. + * scanner.c (get_num): strtoll() on Windows may consume zero + characters causing an infinite loop for the input "0x". + Bug #1745 - * src/fit.c (show_results): Do not try to print parameter errors if - the covariance matrix is unavailable or invalid. + * src/win/wgraph.c (MakeFonts, TryCreateFont): Do not rely on GDI + supplying a sensible substitute when a requested font is not + available. Instead, fall back to the user-supplied default font or + the terminal's default font if the former is not available. + Bug #1669 -2014-03-20 Thomas Henlich + * src/wxterminal/wxt_gui.h: Use local events to avoid warnings about + incompatible linkage on Windows. - * term/PostScript/cp1252.ps: CP1252 encoding support for PostScript - terminal. Based on Patch #341, but with non-standard characters - removed. +2016-03-21 Ethan A Merritt -2014-03-20 Ethan A Merritt + * src/datafile.c: df_fgets() change from 4 days ago caused a regression + because input buffer initialization was missed in some paths. + Replicate the initialization in both df_gets() and df_fgets() + Rename the shared line buffer df_line to make it more obvious. + It would be better to have a single initialization routine df_init() + called once on program entry. + Bug #1758 - * term/svg.trm: svg was losing the current linetype (i.e. dash type) - between drawing the key sample and drawing the main plot. + * src/graphics.c (do_plot plot_points): The "dots" plot style is + implemented internally as pointtype 0, although this was never stated in + the documentation. Apparently some users discovered and used pointtype 0 + routinely and were unhappy that it stopped working in version 5. + Neither the original behavior nor its removal was intentional, but it is + easy enough to restore the pre-version 5 behaviour so here we do so. + Bug #1733 -2014-03-19 Bastian Maerkisch +2016-03-18 Ethan A Merritt - * src/stdfn.c src/stdfn.h src/internal.c src/win/winmain.c - src/win/wtext.h config/config.nt: Standard compliant replacements - of snprintf() and vsnprintf() for MSVC. Note that _snprintf does set - errno=ERANGE if the destination buffer is too small. + * src/graphics.c (plot_boxes): Backport fix to prevents array overrun if + there are undefined points are at the end of a data set. -2014-03-19 Ethan A Merritt + * src/datafile.c src/datafile.h src/datablock.c: + There was already a routine df_gets() in datafile.c that safely reads in + an arbitrary length line of data. Split this into a public function + df_fgets() and a private wrapper df_gets(). Share the public function + with data input in datablock.c:datablock_command. This removes the + limit of 1024 characters per line read in to a datablock. + Bug #1757 - * src/plot2d.c: Fix parsing error for "with lp pt 'X', ..." +2016-03-17 Ethan A Merritt - * src/boundary.c src/boundary.h src/graphics.c: Refactor code that - draws key samples for point plots. + * src/plot2d.c: If pointtype PT_CHARACTER is the default for a plot + then allow text options like "tc rgb 'foo'" in the plot command. - * configure.in term/gpic.trm src/term.h: - Add configuration option --with-gpic +2016-03-15 Ethan A Merritt - * configure.in src/term.h: FrameMaker now allows import of svg, so the - utility of the ancient mif v3 support is dubious. Disable by default. - Add configuration option --with-mif + * src/qtterminal/qt_term.cpp: Revise "set term qt close" so that + 1) It closes window with id N but leaves the current window id unchanged + 2) It executes the command immediately rather than queueing it + Bug #1753 - * demo/lines_arrows.dem demo/stringvar.dem demo/html/Makefile - demo/html/index.* demo/html/webify.pl: Update demos for version 5. + * src/qtterminal/QtGnuplotWindow.cpp: Do not set the DeleteOnClose + attribute of plot windows. This avoids an error message if you send a + new plot after explicitly closing the current plot window. + Bug #1753 #1554 -2014-03-19 Hans-Bernhard Broeker +2016-03-09 Allin Cottrell - * src/misc.c (parse_dashtype): Avoid warning about assignment used - as a condition value. Some reindentation. + * configure.in: Backport configuration tweak for wxt on OSX. + Do not assume that wxwidgets uses the gtk2 toolkit. + It might use gtk3 or on OSX it might use cocoa. -2014-03-19 Jérôme Lodewyck + * term/aquaterm.trm: Incorrect argument type to abs() or fabs(). - * src/qtterminal/QtGnuplotScene.cpp - src/qtterminal/QtGnuplotItems.h src/qtterminal/qt_term.cpp: - Implement image clipping for the Qt terminal. Fix issue with - unsigned variables in terminal coordinates. Bug #1349 +2016-03-05 Ethan A Merritt -2014-03-18 Peter Juhasz + * src/wxterminal/gp_cairo.c (gp_cairo_set_linewidth): Change the + minimum linewidth supported by pdfcairo to match the other cairo + terminals. Reduce it for all of them to 0.20 pt (was 0.25 or 0.50). - * src/term.c src/set.c: Fix leaks and invalid reads associated - with dashtype strings. +2016-03-01 Ethan A Merritt -2014-03-18 Ethan A Merritt + * graphics.c (map_position_double): Fix stupid typo that tried to map a + linked y axis through the x mapping function. This always mis-placed + objects and labels whose position is given in terms of y2 whenever y2 is + linked to y1. Furthermore placement on either x2 or y2 could be wrong if + the most recent plot did not use that same linked axis. + Multiple bugs including #1777 - * src/wxterminal/gp_cairo.c: PANGO_WEIGHT_NORMAL is not the same as 0. +2016-02-22 Release 5.0.3 - * term/x11.trm: Make the "persist" flag local to x11 and remember - what is was the last time we set the terminal to x11. - Bug #1348 +2016-02-13 Bastian Maerkisch -2014-03-18 Jérôme Lodewyck + * config/mingw/Makefile: Use gnuplot's default settings to generate + plots for the documentation. Use MinGW's own implementations of + printf etc. which are C99 compliant. - * src/qtterminal/QtGnuplotEvent.* src/qtterminal/QtGnuplotWindow.cpp - src/qtterminal/QtGnuplotWidget.cpp src/qtterminal/QtGnuplotScene.cpp: - Block events that come from inactive plot widgets. + * src/qtterminal/qt_term.h src/qtterminal/qt_conversion.cpp: isnan() + is in namespace std. -- Reverted since not all relevant compilers + follow the C++11 standard just yet. -2014-03-17 Peter Juhasz + * src/win/wtext.h: Avoid warnings about the re-definition of + popen/pclose with fake pipe support using MSYS2/Mingw-w64. - * src/term_api.h src/misc.c src/misc.h src/save.c src/save.h: - Parse and save dashtype specification in the form of "-_. " or - "(1.0, 0.3, 1.5, 2.0)". In the latter form alternating numbers - specify dash lengths and spaces between them. + * src/wxterminal/wxt_gui.cpp|h: Fixes to make the wxt terminal work + with wxWidgets 3 on Windows: + 1) Disable wxWidgets debug assertions in release builds. This does + not solve the problem with a setlocale(LC_ALL, NULL) == "C" test in + wxLocale, but at least gets rid of the warning. + 2) Flush the cairo surface before blitting the internal bitmap to + screen. - * src/gadgets.c src/gadgets.h: - Added new type custom_dashtype_def and global variable - first_custom_dashtype in preparation of new "set dashtype" command. + * src/win/wgraph.c: Include direct.h for _chdir(). - * src/gadgets.h src/misc.c src/set.c src/setshow.h src/show.c - src/tables.c src/tables.h src/term_api.h src/unset.c: - New commands 'set|show|unset dashtype ' to - specify permanent, user-defined dashtypes. + * term/tkcanvas.trm (TK_init): TK_image requires WRITE_PNG_IMAGE to be + defined. - * src/termp_api.h src/term.c src/misc.c: lp_parse() loads dashtype - from the list of user-defined dashtypes if the absence of an explicit - definition. +2016-02-12 Jun Takimoto -2014-03-16 Ethan A Merritt + * term/tkcanvas.trm: More fixes suggested by clang warning messages. - * src/axis.c src/axis.h src/gadgets.c src/gadgets.h src/graphics.c - src/misc.c src/plot2d.c src/set.c src/term_api.h docs/gnuplot.doc - docs/plotstyles.gnu: - New point type that consists of a single character (possibly a - multibyte character). This is particularly useful as - plot $FOO with linespoints pointtype "#" pointinterval -1 - where # is the desired character drawn at each point. +2016-02-11 Anton Gladky -2014-03-16 Peter Juhasz + * term/tkcanvas.trm: Replace statements of the form + fprintf(gpoutfile, string) because they trigger a compiler warning/error + with -Werror=format-security. - * src/term_api.h src/term.c src/misc.c src/plot2d.c src/plot2d.c - src/set.c src/save.c src/graphics.c src/gadgets.c src/gadgets.h: - Introduce new "dashtype" line property that controls dot/dash - pattern independently. Allow it in "set|show linetype|linestyle", - "plot", etc., display it in "save". - Only numeric "dashtype N" supported for now. - New function dashtype() added to termentry struct, but none of the - terminals use it yet. +2016-02-11 Bastian Maerkisch - * src/set.c (set_linestyle): Set pm3d_color.type to TC_LT and - pm3d_color.lt to line number by default. This is necessary because - since the use_palette flag was removed, pm3d_color information is - used everywhere, yet, it was not set properly. This resulted, - among others, a broken "show linetype" output with empty "linecolor" - spec. + * term/wxterminal/wxt_gui.cpp (wxt_raise_window): On Windows, only + Restore() the window if it is iconized. Fixes accidental resize of + maximized windows. -2014-03-16 Hans-Bernhard Broeker + * term/tkcanvas.trm (TK_vector): Fix for vector commands without + preceeding move as e.g. in "with line lc variable". - * src/axis.h (en_minitics_status): Give enum a typedef name, too. - (axis): Use new type for element of AXIS struct, instead of int. + * src/fit.c: Fix order of using specs printed to log-file. + Bug #1657 - * src/axis.c (gen_tics): Simplify by using local OO-like "this" - pointer variable. Remove pointless local variable "minifreq". - Treat "minitics" variable as a proper enum everywhere (no - set/compare to zero). +2016-02-10 Ethan A Merritt -2014-03-15 Ethan A Merritt + * src/stats.c: Reset data input mode to 2D at start of stats command. + This produces consistent results for "stats FOO matrix", even if the + previous command was "splot". + Bug #1739 - * configure.in VERSION PATCHLEVEL share/gnuplotrc src/version.c - demo/html/index.canvas demo/html/index.save demo/html/index.svg - docs/doc2texi.el docs/gnuplot.doc docs/titlepag.tex: +2016-02-04 Ethan A Merritt - >>>>> Bump version to 5.0 alpha <<<<< + * src/version.c PATCHLEVEL configure.in docs/titlepag.tex: + Update patchlevel to 5.0.3 -2014-03-15 Bastian Maerkisch +2016-02-04 - * src/win/wgraph.c (MakeFonts) src/win/wgdiplus.c (SetFont_gdiplus): - Implement boldface and italic markup for enhanced text. The windows - terminal already accepted "Fontface Bold Italic" in font specifiers, - now it also accepts "Fontface:Bold:Italic". + * src/gadgets.c (clip_line): Use (double) rather than (int) for + intermediate coordinates used in line clipping. + Bug #1614 - * win/gnuplot.iss: Include directories share and demo/games in - GNUPLOT_LIB +2016-02-04 Joachim Wuttke - * src/fit.c src/fit.h: Always call error_ex() to abort, which now does - the proper memory cleanup. Fixes the (most obvious) memory leaks. + * term/tkcanvas.trm: Replace old (pre-1999) tkcanvas.trm with a + rewrite from Joachim Wuttke + and Bastian Maerkisch - * src/fit.c (regress): The fit converged if chisq == 0. + This new driver has only partial support for scripting languages other + than tcl and has incomplete support for image data, but it is strictly + better than the 1999 terminal. - * src/fit.c (regress_finalize): fit did not converge if the covariance - matrix is invalid. +2016-02-03 Ethan A Merritt - * src/fit.c (fit_command): Warn about zero initial parameter values. - Help message taken from patch #230 by T. Mattison. + * src/graphics.c (finish_filled_curve): The routine fill_between() + passes in an extra-long array whose last element stores above/below + flag. We must not try to test this flag on other processing paths + because for them it is an out-of-bounds access (found by valgrind). - * src/fit.c src/unset.c: Default to "set fit errorvar" as was the - intent of a change on 2010-05-02. - Feature Request #230 +2016-01-31 Ethan A Merritt -2014-03-14 Dieter Ries + * src/wxterminal/wxt_gui.cpp: Another pair of fixes for wxt font + processing. Prevent a memory leak from temporary storage of the + fontname. Initial font used by enhanced text processing should be the + most recently set font, not the original one from "set term". - * src/qtterminal/QtGnuplotItems.* src/qtterminal/QtGnuplotScene.cpp: - Use the current linewidth to draw point symbols. +2016-01-28 Ethan A Merritt -2014-03-14 Ethan A Merritt + * src/graphics.c (plot_filledcurves): Reevaluate variable fill color + for every polygon in the input stream to "with filledcurves". + This change was noted in the ChangeLog for 15-Jan-2015 but apparently + was not actually applied to the code. + Bug/Feature Request #411 - * src/datafile.c (df_parse_string_field): Memory allocation for column - header strings had O(n^2) dependence on the length of the first line. - Replace this with an O(n) scheme. This should also improve performance - when handling string-value data columns in long input lines. - Bug #1355 +2016-01-26 Jun Takimoto - * src/fit.c: The bottleneck in the fitting code was lookup of dummy - variables by name (4x10^9 lookups in fit.dem). All but the first lookup - is unnecessary. Saving a pointer after the first lookup for later - direct access speeds up fit.dem by a factor of 3x. + * term/wxt.trm: Previous fix for parsing font "name,size" was incorrect. + Bug #1731 -2014-03-13 Ethan A Merritt +2016-01-25 Ethan A Merritt - * src/term.c (enhanced_recursion): Bugfix for bold/italic. + * src/qtterminal/QtGnuplotScene.cpp: Only toggle plots on left-click + (not center- or right-click). - * demo/enhanced_utf8.dem: Add bold/italic markup to demo. + * src/qtterminal/QtGnuplotScene.cpp: Use explicit color Qt::lightGray + to gray out toggled key entries. - * docs/gnuplot.doc: Add bold/italic examples to the section on - enhanced text. +2016-01-18 Ethan A Merritt - * term/js/gnuplot_svg.js: Work around a Firefox bug (incorrect - text length calculation affects alignment of multiline hypertext). + * src/term_api.h src/gadgets.h: Move definition of struct t_image + from term_api.h (no terminals use it) to gadgets.h (2D and 3D plots). -2014-03-10 Ethan A Merritt + * src/datafile.c src/graphics.c (plot_image_or_update_axes): + Remove old code that tried to empirically determine the grid size of + an image based on 3D coords. Backport v5.1 bookkeeping that stores + dimensions in plot->image_properties.{ncols,nrows} when image data is + read in. - * src/term.c src/qtterminal/qt_term.cpp src/wxterminal/gp_cairo.c - src/term_api.h term/svg.trm demo/bolditalic.dem: + * src/plot2d.c (refresh_bounds): The intent of this routine is to keep + the previous axis range if the user has not changed autoscale settings. + It wasn't working. I'm not sure the revised code is doing quite the + right thing either, but at least it correcly handles Bug #1709. - Revised syntax for bold/italic markup of text as per suggestions on - gnuplot-beta list. Rather than the TeX-like \bf and \it it now accepts - {/font=size:Bold:Italic text} - {/font:Bold:Italic=size text} - {/:Bold text_{:/Normal text}} - Tested on wxt, qt, svg, cairo terminals, libgd terminals, and PostScript. - I don't know how it manages to work on libgd or PostScript (I did - not modify the existing code), but suspect that it depends on having - a clever system font manager. Still needed: documentation and support - for more terminals. + These changes are back-ported from version 5.1 to address + Bugs #1607 #1703 #1709 #1718 - * term/post.trm: Not all "set term post" commands were correctly - defaulting to enhanced text mode. +2016-01-17 Ethan A Merritt - * src/plot2d.c src/plot3d.c: Auto-increment point types strictly in - sync with line types. This removes the oddity that automatically - generated point types would not necessarily match the plot number. + * term/wxt.trm (wxt_options): Fix regression, fontsize ignored if it + is the only thing in the requested font string (e.g. font ",12"). + Bug #1731 -2014-03-09 Ethan A Merritt +2016-01-12 Jun Takimoto - * src/eval.c src/eval.h src/internal.c src/parse.c src/scanner.c - src/internal.h demo/rgba_lines.dem docs/gnuplot.doc: - Bit shifting binary operators << and >>. + * term/aquaterm.trm: Add support for version 5 custom dashtypes. - * src/term.c: boldface or italic markup can be in either order. +2016-01-09 Ethan A Merritt -2014-03-09 Bastian Maerkisch + * src/parse.c src/parse.h src/plot2d.c src/plot3d.c src/set.c + src/unset.c demo/iterate.dem docs/gnuplot.doc: + New special case of iteration in a plot command: + plot for [i= : *] datafile ... + This will iterate over all available data without generating an error + message when the data is exhausted and without generating empty plots. + It can be used to iterate over an unknown number of columns (e.g. for + histograms), an unknown number of datafiles where the file name is + generated from the iteration variable, or an unknown number of data + blocks (e.g. plot for [i=0:*] datafile index i). - * demo/arrowstyle.dem: Simplify by using loops and the special - file '+'. +2016-01-09 Ethan A Merritt -2014-03-09 Alexander Täschner + * src/qtterminal/qt_term.cpp: "set term qt title 'foo'" was + incorrectly changing the title of the previous plot window in addition + to that of the new plot window. - * src/fit.c src/fit.h src/save.c src/setshow.h src/set.c src/show.c - src/unset.c docs/gnuplot.doc: Optionally store final covariance - matrix to user variables named "FIT_COV_a_b", where 'a', 'b' are - parameter names. - Patch #654 +2016-01-06 Release 5.0.2 -2014-03-09 Ethan A Merritt +2015-12-31 Ethan A Merritt - * src/term.c (enhanced_recursion): Add LaTeX-like markup for boldface - and italic in enhanced text mode: - '{\it italic} {/Times=12 \bf boldface}' - The backslash is a bit annoying because in double quotes you need to - escape it: "{\\it italic}". We may want to change it. + * term/post.trm (PS_dashtype): Prevent overflow of the custom + dash pattern array, leading to possible corruption of the output + postscipt file. - * src/qtterminal/QtGnuplotItems.* src/qtterminal/QtGnuplotScene.cpp - src/qtterminal/qt_term.cpp: Implement boldface and italic markup for - enhanced text. + * src/set.c src/show.c src/term.c: + New command "set mono linetype cycle N" acts analogously to + "set linetype cycle N". If a monochrome linetype N is requested + where N is larger than any defined monochrome linetype, then + substitute a corresponding linetype in the range [1:cycle]. - * src/wxterminal/gp_cairo.c: Implement boldface and italic markup for - cairo terminals. +2015-12-30 Ethan A Merritt -2014-03-08 Christoph Bersch + * src/term_api.h src/term.c src/set.c (init_monochrome): + Move this routine from set.c to term.c - * src/set.c src/boundary.c: Allow changing textcolor of the timestamp. + * term/lua.trm: Treat "set term tikz monochrome" as + "set term tikz; set monochrome". -2014-03-08 Alexander Täschner +2015-12-29 Ethan A Merritt - * src/fit.c (print_function_definitions): Print a list of function - definitions used by the fit command to fit.log. Limit maximum number - of functions and recursions (changes by BM). - Patch #654 + * src/show.c: Show current state of "set monochrome" option. - * src/fit.c (fit_command): Include name of the parameter file in - error message. + * src/unset.c (unset_monochrome): Clear monochrome flag in current term. -2014-03-08 Dima Kogan + * src/misc.c (parse_dashtype lp_parse) docs/psdoc/ps_symbols.gpi: + Allow "dashtype 0", which is treated as LT_AXIS. + Modify ps_symbols demo script to select dashed lines using version 5 + syntax ("dashtype N") rather than version 4 syntax ("linetype N"). + Bug #1724 - * docs/doc2texi.el docs/gpcard.tex: Remove last traces of cgi.trm +2015-12-27 Ethan A Merritt - * src/term.c: Print a warning if someone tries to plot while the - terminal type is "unknown". + * src/qtterminal/qt_term.cpp (qt_waitforinput): This routine is called + to receive both external (e.g. mouse) events and input from stdin. + In cases where we only care about events we must not perturb the state + of stdin. One such case was missed, leading to a character being + dropped from the stdin stream depending on event timing. + Bug #1559 -2014-03-07 Alexander Täschner +2015-12-24 Jun Takimoto - src/stats.c docs/gnuplot.doc: Add the calculation of the skewness, - the kurtosis, and the standard errors of mean, stddev, skewness, - and kurtosis to the stats command. Change the calculation formula - for the variance to the "corrected two-pass algorithm" to avoid - round-off errors. Re-indent printed output to accommodate the - longer descriptions of the new values. In case values cannot be - calculated set corresponding user variables to NaN and print - "undefined". - Patch #656 + * src/qtterminal/QtGnuplotScene.cpp: On Mac OS X, the Qt::KeypadModifier + bit of event->modifiers() is *always* set when an arrow key is pressed. -2014-03-07 Ethan A Merritt +2015-12-23 Ethan A Merritt - * src/misc.c (parse_color_name) src/set.c (set_palette_defined): - Accept quoted hexadecimal constant as a color name. - E.g. plot $foo linecolor rgb "0xFFAABB" + Bump PATCHLEVEL 2 in preparation for incremental release 5.0.2 -2014-03-06 Ethan A Merritt +2015-12-18 Ethan A Merritt - * Makefile.am Makefile.maint aclocal.m4 configure.in docs/Makefile.am - lisp/* README.emacs: + * src/save.c (save_variables__sub): Do not write ARGn variables to + save file. - Bruce Ravel's gnuplot-mode package for emacs is now maintained - elsewhere. Remove the outdated copy (2002 era) from the gnuplot - repository, since it causes more confusion than help for people - wanting to install gnuplot-mode. README.emacs documents the - removal and provides a pointer to the project's own repository. +2015-12-01 Ethan A Merritt - * docs/Makefile.am: Include figures in the pdf manual by default. - If you really don't want figures, say `make nofigures pdf`. + * src/plot2d.c: Allow "noautoscale" keyword for 2D function plots. -2014-03-04 Ethan A Merritt +2015-11-09 Ethan A Merritt - * configure.in: More compact summary of terminal configuration. + * src/axis.c src/axis.h src/graphics.c src/save.c src/set.c src/show.c + src/unset.c: The documentation says that "set tics `front` or `back` + controls whether the tics are placed behind or in front of the plot + elements". This was sort of true but it did this by moving the entire + grid along with the tics, so you could not entirely place the tics + and tic labels in front of the grid lines. + Decouple these two operations so that `set tics {front|back}` does only + what it is documented to do. + Bug #1704 - * term/pdf.trm: Fix crash on point size = 0. + * src/axis.c (gen_tics): "set {*}tics rangelimit" applies to minor + tics as well as to major tics. + Bug #1705 - * src/qtterminal/qt_term.cpp: More friendly warning if fonts are - slow to initialize. May only be relevant to OSX + Qt5. +2015-11-06 Jun Takimoto - * src/datafile.c: Allow pseudofile '+' for polar plots. + * src/wxterminal/gp_cairo.c: Fix longstanding bug in vertical alignment + of text fragments in cairo terminals (including wxt). Text containing + superscripts was placed too low; text with subscripts too high. + This is corrected by a query to pango_layout_get_baseline(). + Bugs #1319 #1586, probably others - * src/scanner.c (get_num): The parser has trouble reading hexadecimal - constants with the top bit set since strtol treats this as an overflow. - Use strtoll instead and mask the result back to 32 bits. - Bug #1344 +2015-10-31 Ethan A Merritt - * src/stdfn.h: Provide MSVC alias for strtoll. + * src/util3d.c src/util3d.h (edge3d_intersect two_edge3d_intersect): + Change parameters to (coordinate *) rather than (array, index) so that + the same routines can handle clipping 3D vectors that are not stored as + successive entries an array. -2014-03-04 Bastian Maerkisch + * src/graph3d.c src/plot3d.c: Support "set clip {one|two}" for 3D + vector plots. - * src/fit.c (regress) src/fit.h: Facilitate the inclusion of - alternative minimization algorithms: Move code from regress() - to new functions regress_init(), regress_finalize(), - regress_check_stop(), and fit_progress(). Rename show_fit1() to - show_fit_brief(). + * src/datafile.c (df_set_key_title): Use of columnheader(N) could + sometimes leave an extraneous character '@' in the plot title. + This was introduced in 5.0.1 as a sideeffect to the fix for Bug #1596. - * docs/gnuplot.doc (stats): Document variables which hold the - errors of linear regression analysis. +2015-10-28 Ethan A Merritt - * src/fit.c: Dead code removal. + * src/interpol.c (mcs_interp): Handle log-scaled y axis when using + monotonic cubic splines ('smooth mcs'). -2014-03-03 Ethan A Merritt + * src/plot2d.c (boxplot_range_fiddling): Fix autoscaling of x axis if + there are multiple boxplots with factors. + Bug #1696 - * src/fit.c src/matrix.c src/matrix.h: Dead code removal. - src/plot2d.c: Dead comment removal. + * src/graphics.c (plot_points plot_boxplot): Declare and initialize + p_height and p_width locally (no code was updating the global copy). + This fixes nonfunctional "set clip points" command in version 5. - * configure.in: Build qt terminal by default if either qt5 or qt4 - libraries are detected. + * src/boundary.c (do_key_layout) src/graph3d.c (boundary3d): + Remove reference to p_height, p_width. - * docs/Makefile.am: "make dist" should not trigger build of gnuplot.pdf - if it is current (it gets confused by regenerated file pdffigures.tex). +2015-10-22 Ethan A Merritt -2014-03-03 Hans-Bernhard Broeker + * src/time.c (gstrptime): Fixes a bug in processing time input using + format "%s". Because time input can cross whitespace between fields, + the string being parsed for one field may continue on into the next + field. The "%s" code looked for the first decimal point in the string, + but would read beyond the current field to find it, causing an erroneous + fractional second to be added to the input time value. - * src/Makefile.am (DISTCLEANFILES): Clean off timestamp.h for - distcheck. + * src/term_api.h term/post.trm src/graphics.c (plot_border) + term/PostScript/prologue.ps term/PostScript/prologues.h: - * demo/plugin/Makefile.am: New file. - * demo/plugin/Makefile: Dropped. - * configure.in: generate demo/plugin/Makefile in build directory. + This change addresses a backward-compatibility issue with the postscript + terminal in version 5. The long ago original postscript terminal used a + double-width line for the plot border. This was what you got when you + specified "lt -1" in a gnuplot command. All terminals agree that lt -1 + is black and solid, but postscript is anomalous in thinking that it has + double width. Furthermore postscript is anomalous in applying the + current line width to draw dots (pointtype 0). This meant that dots + drawn with lt -1 were twice as big as dots drawn with other linetypes. + We could just get rid of the double-width anomaly, but then new plots + would have a thinner border than old plots produced with the same + script. This patch instead adds a layer flag TERM_LAYER_BEGIN_BORDER + so that the postscript terminal can temporarily use new style LTB + rather than LTb. All other terminals will ignore it. + Bug #1689 and others -2014-03-02 Jérôme Lodewyck +2015-10-16 Abhijin Adiga - * src/qtterminal/QtGnuplotWidget.* src/qtterminal/QtGnuplotWindow.* - src/qtterminal/QtGnuplotSettings.ui: New settings option for displaying - mouse coordinates. Possible choices are Status bar, Tool bar, Inline or - None. + * term/lua/gnuplot-tikz.lua: Truncate term->h_char using math.floor(). + This prevents text placement errors on OSX 10.10.2 with lua5.3. + Bug #1682 -2014-03-01 Ethan A Merritt +2015-10-09 Ethan A Merritt - * demo/Makefile.am.in: Fix a typo, but the plugin subdir is still - not being properly created by "make distcheck". + * src/set.c (parse_label_options): Only the full word "boxed" is + acceptable as a label option. Allowing the shorthand "box" causes + confusion in other commands with a "box" option. + Bug #1681 -2014-02-28 Ethan A Merritt + * src/interpol.c (cp_implode): Fix bug in "smooth cnorm" that has been + there since the option was first introduced. - * src/misc.c src/axis.c src/parse.c src/parse.h src/internal.c - src/color.c src/boundary.c src/command.c src/contour.c src/datafile.c: - Trivial removal of dead code and old comments. Flag unused parameters. - - * term/js/gnuplot_svg.js: Do not let hypertext box run off the bottom - or right edge of the svg viewBox. - Bug #1340 +2015-10-06 Ethan A Merritt -2014-02-28 Bastian Maerkisch + * src/set.c (set_obj): "set obj N polygon ..." failed to consume all + possible options and keywords. + Bug #1680 - * config/config.mgw config/mingw/Makefile config/msvc/Makefile: - Build support for plugins. Build demo plugin. +2015-10-01 Ethan A Merritt - * config/mingw/Makefile: New target 'maint' to recreate makefile.all. + * src/datafile.c (df_readascii): The test intended to check whether the + user requested more than 7 columns of formatted input has always been + incorrect for 'splot'. It tested against MAXDATACOLS rather than the + actual number of requested columns. The test worked but was redundant + for 'plot' since requesting more than 7 columns will trigger another + error message "too many columns for requested style". Remove the test. + Bug #1675 - * src/makefile.all src/makefile.awc: Recreate to include external.c. +2015-09-25 Ethan A Merritt - * src/fit.dem: fit always requires decent initial parameter values. - Never initialize them to zero. + * src/boundary.c (do_key_sample): Use the same arrowhead style in the + key sample as used by the plot itself. - * src/matrix.c (free_matr): Accept NULL pointers. +2015-09-18 Ethan A Merritt -2014-02-28 Alexander Täschner + * src/graphics.c (plot_boxplot): Fix overrun if no valid points are + found for some boxplot category (a.k.a. "level"). Fix incorrect + clipping of outliers in zoomed boxplot. - * src/fit.c demo/fit.dem: Optionally take errors of independent - variables into account. - Patch #585 +2015-09-15 Mojca Miklavec -2014-02-27 Ethan A Merritt + * term/lua.trm: lua 5.3 deprecates luaL_checkint() + Bug #1672 - * src/command.c src/command.h src/eval.c src/eval.h src/external.c - src/external.h src/gp_types.h src/Makefile.am src/show.c src/tables.c: - New command `import func(x) from "sharedobject"` extends gnuplot - expression evaluation to allow calling functions exported by an - external shared object (a.k.a. plugins). - - original patch 2002 Stephan Boettcher - - updated for 4.7 2014 Alexander Täschner - - revised syntax and error handling 2014 Ethan A Merritt +2015-09-11 Akira Kakuto - * config/config.nt configure.in demo/Makefile.am.in: - ./configure --disable-plugins [enabled by default] - - * demo/plugin/demo_plugin.c demo/plugin/gnuplot_plugin.h - demo/plugin/Makefile demo/plugin/plugin.dem docs/gnuplot.doc: - Template files demonstrating the creation of custom plugin libraries. + * src/help.c term/lua.trm: #ifdef _WIN32 + '\r' is accepted as a terminator after a prompt. -2014-02-27 Bastian Maerkisch +2015-09-04 Ethan A Merritt - src/fit.c demo/fit.dem docs/gnuplot.doc: New syntax to specify errors. - The new parameter 'errors' accepts a comma separated list of (dummy) - variable names to specify which (in-)dependent variable has associated - errors. 'z' always denotes the indep. variable. 'noerrors' tells fit - to use equal (1) weights for the fit. The new syntax removes the - ambiguity between x:y:z:(1) and x:z:s. The old syntax is still - accepted but deprecated. - Patch #621 + * src/plot2d.c: For 2-column data plots with filledcurves, treat + y= as if it were provided in the 3rd data column. + Bug #1568 - src/fit.c src/unset.c: Default to prescaling of fit parameters. +2015-08-31 Jun Takimoto -2014-02-26 Bastian Maerkisch + * src/wxterminal/wxt_gui.cpp: Reset "yield" interlock on ctrl-C. + Prevents endless futile loop with single-threaded wxt terminal. - src/stats.c: Calculate errors of linear regression parameters. - Results saved to user variables STATS_slope_err and - STATS_intercept_err. +2015-08-30 Ethan A Merritt - src/mouse.c (xDateTimeFormat): gmtime() might return NULL for - invalid arguments. + * src/wxterminal/wxt_gui.cpp: Remove FPRINTF statements referring + to a stopwatch timer that no longer exists. - src/datablock.c (datablock_command): Strip trailing newline character. +2015-08-28 Ethan A Merritt -2014-02-26 Ethan A Merritt + * src/wxterminal/wxt_gui.cpp (wxt_waitforinput): + The single-threaded code path used by OSX and Windows (and optionally + linux) was not honoring "pause mouse ..." commands, including "pause + mouse close". - * src/qtterminal/qt_term.cpp(qt_sendFont): Work-around possibly very - slow response to font metrics query on OSX. May only be needed for Qt5. + * src/wxterminal/wxt_gui.cpp (wxt_exec_event): + The single-threaded code path could lose an input character that arrived + during a "pause mouse" interval. Use ungetc to push a character back + onto the input queue in this case. (Not applied for Windows but maybe + it should be?) - * src/qtterminal/qt_term.cpp(qt_connectToServer qt_waitforinput): - If the outboard server gnuplot_qt is killed while gnuplot is connected - to it, it gets restarted with a different server name. Don't waste - time trying to connect to a server with the old name. +2015-08-25 Ethan A Merritt -2014-02-24 Bastian Maerkisch + * src/datafile.c (plot_option_index): Sanity check that index >= 0. - * src/qtterminal/qt_term.cpp (qt_waitforinput): Avoid unnecessary - timeouts on Windows when only checking for mouse interaction. These - would slow down drawing considerably in some cases. + * src/datafile.c (df_determine_matrix_info): "skip" option applies to + records at the start of ascii matrix data as it does for normal ascii + files. -2014-02-24 Ethan A Merritt +2015-08-24 Ethan A Merritt + + * src/datafile.c (df_readascii): The code supporting an input format + assumed that the data being interpreted came from a file rather than + using whatever string was returned by df_gets(). + E.g. this failed + plot $datablock using 1:2 "format-string" + Bug #1666 - * src/qtterminal/qt_term.cpp(qt_flushOutBuffer): - Check for valid socket before flushing. +2015-08-24 Dima Kogan - * configure.in: --with-qt=qt5 forces qt5 even if auto-detection - would otherwise choose qt4. + * src/datafile.c (df_open): + Syntax "<&N" plots data read from an arbitrary file descriptor, but + that descriptor may be a pipe (non-seekable) rather than a true file + (seekable). If the fd is not seekable, mark it a "volatile" so that + gnuplot doesn't try to reread it on "replot". -2014-02-23 Bastian Maerkisch +2015-08-21 Ethan A Merritt - * term/caca.trm: No longer expect the name of the backend driver to be - specified in quotes. Fix some initialization issues found by the VS11 - code analysis tool. + * src/graphics.c (map_position_r): There is no way to indicate + "no offset" as opposed to "offset 0", which was causing problems + if "offset 0" was applied as axis coordinates on a log-scaled axis. + Now in 2D "offset 0" is interpreted as no offset even for log-scaled + axes. 3D offsets are still a sore point. + Bug #1662 - src/command.c: Fix another case of conditional compilation with - USE_MOUSE on Windows. +2015-08-18 Ethan A Merritt - config/mingw/Makefile: gcc's -pipe option seems to speed up - compilation with MinGW considerably. + * src/qtterminal/QtGnuplotEvent.cpp src/qtterminal/qt_term.cpp: + Make the error messages from a broken connection to gnuplot_qt less + alarming. No change in functionality. See Bug #1554 -2014-02-18 Ethan A Merritt + * src/qtterminal/qt_term.cpp: Use fprintf(stderr, ...) instead of + qDebug() << ... for the inboard driver. This allows allows Windows + to catch error messages by the redefinition of fprintf in wtext.h. + See Bug #1554 - * configure.in: The interactive terminals wxt, qt, etc, no longer build - correctly if mousing support is not configured. So force mouse support - if any of these terminals are selected during configuration. +2015-08-14 Ethan A Merritt -2014-02-16 Ethan A Merritt + * term/dumb.trm src/stdfn.h: Handle UTF-8 encoding so long as each + printed glyph occupies only one character cell. The code is specific + to UTF-8; i.e. it does not handle other multi-byte encodings. + Bug #1477 - * src/command.c (timed_pause): Fix conditional compilation when - ./configure --disable-mouse +2015-08-12 Ethan A Merritt -2014-02-16 Bastian Maerkisch + * src/datafile.c (df_generate_pseudodata): The sampling coordinates + generated by pseudofiles '+' and '++' were passed as an ascii string, + which truncated precision to 6 digits (default for format %g). Now pass + in parallel the original (double) value so that no precision is lost. + Bug #1650 - * src/qtterminal/qt_term.cpp (qt_waitforinput): Safeguard the test - of the return value of MsgWaitForMultipleObjects against accidental - matches when it returns WAIT_FAILED==-1. Disable the recursion test - for now as it seems no longer necessary. +2015-08-07 "Jun T." -2014-02-16 Jérôme Lodewyck + * term/aquaterm.trm: Failure to save+restore original color was causing + successive fill areas to become more and more transparent. + Alsi, make background color pure white. - * src/qtterminal/QtGnuplotWidget.*: Correctly handle the size of the - plot window on the first plot and after the plot window has been closed +2015-08-05 Ethan A Merritt -2014-02-15 Bastian Maerkisch + * src/parse.c (string_or_express): Prevent an empty string variable or + expression from being interpreted as the magic names '' or "". + E.g. + file1 = 'real-file' + file2 = "abc"[3:0] # any expression that evaluates to '' + plot file1,file2 # plots file1 twice, no error message + Bug #1660 - * src/qtterminal/qt_term.cpp (qt_flushOutBuffer): Avoid dead-locking - when no more data is available after flushing the socket. +2015-08-03 Ethan A Merritt - * src/win/wpause.c (win_sleep): Handle terminal "mousing" events by - calling term->waitforinput. Fixes mouse interaction for the qt terminal - during pause. + * src/util.c (streq): Avoid buffer underrun on empty string. + + * src/axis.c (load_range): "set [xyz]range" per se does not care if the + range limits are extremely large, e.g. xrange [ -inf.0 : inf.0 ] + but other places in the code do not handle this cleanly. + Limit the range to +/- VERYLARGE -2014-02-14 Bastian Maerkisch +2015-08-02 Akira Kakuto - * src/qtterminal/qt_term.cpp (qt_waitforinput): Windows - implementation. Instead of using select(), which on Windows only works - on network sockets, we use MsgWaitForMultiple objects to wait for - stdin, console, qt pipe and message queue events. Works for console - mode gnuplot and wgnuplot. In principle this scheme could be used for - all interactive terminals on Windows. Probably we should eventually - replace the individual term->waitforinput routines by a common - WinWaitForInput routine to reduce code duplication. - Patch #645 + * src/qtterminal/qt_term.cpp: Fix #ifdef block syntax, modify + string concatenation to make it acceptable in VS2010. -2014-02-14 Thomas Bleher +2015-08-02 Hans-Bernhard Broeker - * src/qtterminal/qt_term.cpp (ScopeCounter, qt_waitforinput): Avoid - recursion in qt_waitforinput (TERM_ONLY_CHECK_MOUSING) which causes - the routine to incorrectly wait for user input. Applied to Windows - code only at the moment. - Patch #642 + * src/Makefile.am (GNUPLOT_QT) [BUILD_QT]: New variable to + communicate optionally transformed name of gnuplot_qt into main to + main executable. + (AM_CPPFLAGS) [BUILD_QT]: Pass GNUPLOT_QT to the preprocessor. + (clean-demo) [BUILD_QT]: Fix copy-paste-edit oversight. -2014-02-12 Mojca Miklavec + * src/qtterminal/qt_term.cpp (GNUPLOT_QT): If not defined from + outside, provide fall-back definition equal to previously + hardcoded value. + (execGnuplotQt): Untangle the conditionals a bit. Use new macro + GNUPLOT_QT for the name of the outboard driver executable (fixes + SF bug #1652) - * configure.in src/Makefile.am src/qtterminal/qt_term.cpp - src/qtterminal/qt_term_mac.m: Revert special handling of dock icons - on OSX (2012-06-23). + * term/pslatex.trm [!EAM_BOXED_TEXT]: Remove empty fallback + definition for new entry function. Remove extraneous optional + terminal API entry. -2014-02-12 Ethan A Merritt +2015-08-01 - * src/qtterminal/qt_term.cpp (qt_sendFont qt_waitforinput): - If the amount of data available via the socket from gnuplot_qt is too - small to be an event structure, issue an error and continue rather than - spinning futilely. Suggested by Yuriy Kaminskiy + * configure.in: latest Qt5 requires compilation with -fPIC rather + than -fPIE. + Bug #1616 - * src/qtterminal/QtGnuplotScene.cpp: Remove dead code. +2015-08-01 Ethan A Merritt -2014-02-12 Bastian Maerkisch + * src/stats.c src/set.c src/eval.c: + Protect against 'free(foo); foo = try_to_get_string()' returning via + int_error() and hence never resetting the value of foo. If executed + again this leads to a double-free error. - * config/msvc/Makefile: cairo/pango terminals can be included in build - without wxt. Support building with Qt5. Build qt files out of tree. - Install gnuplot_qt. Required libraries can be installed in a common - directory tree, referenced by LIBDIR. The individual package references - GDDIR, LUADIR, CACADIR, CAIRODIR, and PDFDIR are now optional. Make - the install target more similar to MinGW installs. + * src/parse.c (next_iteration): protect against user corrupting + iteration variable. E.g. either of these used to segfault + plot for [n=1:2] x lw n='foo' + do for [n=1:2] { n="foo" } - * src/qtterminal/qt_term.cpp: Add some more checks if the qt object - is actually available. This is needed if some other terminal continues - to send events even though it is no longer active. + * src/plot2d.c src/plot3d.c src/set.c: Do not allow function plots + to specifc an image style (with image/rgbimage/rgbalpha). - * src/win/winmain.c|h (ConsoleReadCh, stdin_pipe_reader): Extract the - code to read a character from console and mapping it to a gnuplot code - from ConsoleGetCh. Export stdin_pipe_reader. + * src/plot2d.c (eval_plots) src/plot3d.c (eval_3dplots): + Example of bug: plot for [i=1:3] T=sprintf("%d",i),i title T + previous code evaluated the definition three times and only then + make [one] plot. After this fix the code executes define+plot + three separate times. - * src/win/wtext.c (TextStartEditing, TextStopEditing): Make sure that - calls to ShowCaret/HideCaret are balanced even if called if calls to - these routines are not. + * src/command.c (plot_command splot_command): Fuzz-testing found + cases where 'refresh' triggered program failure if there was not an + active refreshable plot. - * src/readline.c (msdos_getch): Handle extended key codes returned - from term->waitforinput. +2015-07-14 Ethan A Merritt -2014-02-11 Ethan A Merritt + Handle various cases of unexpected input commands or data that caused + crashes in fuzz-testing. - * src/qtterminal/qt_term.cpp (qt_connectToServer): - The timeout parameter in socket.waitForConnected() cannot be used to - wait for an unready socket, as that returns an error immediately. - Rewrite the delay loop using an explicit GP_SLEEP() instead. - Also increase the overall timeout for the retry loop. + * src/datafile.c (df_open): Filename of the form "+file.dat" must not + be mistaken for special file '+'. -2014-02-09 Jérôme Lodewyck + * src/wxterminal/wxt_gui.cpp term/cairo.trm term/wxt.trm: + Change fixed-length fontname storage to dynamic (cairo + wxt terminals). - * src/qtterminal/QtGnuplotWidget.*: QtGnuplotWidget emits a signal - after a plot is done + * src/datablock.c: The storage in a zero-length datablock was not + initialized. -2014-02-04 Ethan A Merritt + * src/set.c (set_style) src/save.c (save_data_func_style): + Do not allow "set style func parallelaxes" + +2015-07-12 Ethan A Merritt + + * src/command.c (bind_command) src/mouse.c (bind_fmt): + Very old bug (pre v4.0) in parsing the bind command, such that + bind X" some longish command" + would corrupt memory. + +2015-07-11 Christoph Bersch + + * term/epslatex.trm: enable dashtype processing + +2015-07-11 Hans-Bernhard Broeker + + * demo/imageNaN.dem: Fix broken command in demo. + +2015-07-11 Ethan A Merritt + + * src/set.c (load_tic_series): Incorrect nesting of brackets caused + "set xtics 0" to be accepted rather than rejected. This could lead + to various bad outcomes (as found by fuzz-testing). + +2015-07-08 Ethan A Merritt + + * term/estimate.trm: Initialization of enhanced text string buffer. + Bug #1648 + + * src/set.c src/fit.c src/term.c src/parse.c term/cgm.trm term/gd.trm + term/x11.trm: Fuzz-testing found a recurring pattern of fragile code: + if (isstringvalue(c_token)) + foo = try_to_get_string(); /* cannot fail */ + Unfortunately it _can_ fail if an expression begins with a quoted string + but is coerced into returning a numerical value. All of these sites + require a specific check for (foo != NULL). + Bug #1649 - * configure.in src/wxterminal/wxt_gui.h: New configure option - --with-wx-single-threaded forces the WXT_MONOTHREADED code option even - if the platform otherwise would default to WXT_MULTITHREADED. - This provides a workaround for reported problems using the wxt terminal - on Haswell CPUs, where apparently gnuplot's use of a mutex to - synchronize communication with the gui can fail badly. +2015-07-05 Ethan A Merritt + + * src/wxterminal/gp_cairo.c (gp_cairo_set_dashtype): If the dashtype + is changed then the current path must be stroked and reopened. - * term/svg.trm: Remove "horrible kludge" added in 2011 to work around - a bug in Firefox 3.x rendering. Now it is causing more problems than it - solves. +2015-07-02 Ethan A Merritt -2014-01-31 Ethan A Merritt + * src/graph3d.c: An incorrect test for variable color was used for + splots with impulses or points. Replace it with a shared correct test + in check3d_for_variable_color. Note: Binary plots can still set an + incorrect flag plot->pm3d_color_from_column but this flag is no longer + sufficient to cause the observed problem. + Bug #1644 - * src/datafile.c (df_tokenise): Fix off-by-one allocation error - affecting cvs files. - Bug #1333 + * demo/html/webify.pl: Default to pngcairo terminal rather than png. -2014-01-31 Jérôme Lodewyck +2015-06-28 Hans-Bernhard Broeker - * src/qtterminal/QtGnuplotScene.* src/qtterminal/QtGnuplotItems.*: - introduce a new QGraphicsItem type that gathers consecutive points, lines - and polygons. It greatly improves the rendering speed of plots with a large - number of these elements by reducing the number of QGraphicsItem that the - scene has to manage. - Patch #651 + * src/Makefile.am (gnuplot_x11_SOURCES): Add getcolor.c/.h to + regular source list. + (gnuplot_x11_CPPFLAGS): New, to communicate compiler flag into + getcolor.c. + (gnuplot_x11_LDADD): Remove manually created getcolor_x11.o file. + (getcolor_x11.o): Rule Removed. -2014-01-30 Jon Gjengset + * docs/Makefile.am (noinst_PROGRAMS): Add doc2wxhtml. + (MOSTLYCLEANFILES, CLEANFILES): Split up into two lists, updated. + (GNUPLOT_EXE, SRC_VERSION_O): New variables, point to freshly + built files in main src directory. + ($(GNUPLOT_EXE), $(SRC_VERSION_O)): Build , if not already present. + (grotxt, grodvi, grops): Turn into proper phony targets: depend on + the file actually built, do nothing themselves. + (troff, gnuplot.nroff, gnuplot.txt, gnuplot-groff.dvi) + (gnuplot-groff.ps): Must depend on titlepag.ms in srcdir, not + builddir. Use automatic make variables to simplify. Changed build + of gnuplot.ms allows to remove complications for out-of-tree + builds. + (gnuplot.ms): Call doc2ms with new argument to ease out-of-tree + builds. + (alldoc): Target 'ms' no longer exists. Test actual outputs made + from gnuplot.ms instead. + (gnuplot.tex, pdffigures, figures, nofigures, pdffigures.tex): + Rules removed. Having different rules produce files of the same + name, but with different content depending on the order of make + targets built, cannot possibly work. + (figures.tex, nofigures.tex): Keep two different versions of + gnuplot.tex in different-named files. + (pdf_figures, wxhelp_figures): New targets to handle generation of + figures for use. + (gnuplot.tex): Now just a link to (or copy of) nofigures.tex. + (gnuplot.pdf, nofigures.pdf): Create pdffigures.tex on-the-fly, + because its content cannot be assumed correct any other way. + (dvi): Re-enabled. + (gnuplot.dvi, gnuplot.pdf, nofigures.pdf, gpcard.dvi): Must depend + on titlepag.tex and toc_entry.sty in srcdir, not builddir. + (gnuplot.htb): Add necessary dependencies, some of them in srcdir. + (htmldocs/gnuplot.html): Do not try to build if latex2html was not + found. - * src/gp_types.h src/interpol.c src/interpol.h src/plot2d.c - src/tables.c docs/gnuplot.doc: New smoothing option "unwrap" adjusts - input y values by multiples of 2pi so that the difference between two - successive y values is never more than pi. + * configure.in: Check for existence of latex2html. -2014-01-29 Ethan A Merritt + * docs/doc2ms.c (main, init): Add optional argument giving the + location of titlepag.ms to be put into the file. This way the + file can be processed by roff tools as-is, without having to patch + it on-the-fly. - * src/plot2d.c (store2d_point parametric_fixup): Fix several problems - with autoscaling of plots in polar mode. One side effect was that the - polar grid lines did not work in parametric plots. - Bug #1323 +2015-06-26 Ethan A Merritt -2014-01-29 Shigeharu Takeno + * src/qtterminal/QtGnuplotItems.dpp (drawPoint): + The "dots" style was inadvertantly made a no-op by change on 2015-02-15. - * docs/gnuplot-ja.doc term-ja.diff: Sync translation to version 1.848 +2015-06-23 Ethan A Merritt -2014-01-29 Bastian Maerkisch + * src/mouse.c (do_event) src/command.c (replotrequest): + An attempt to zoom or scroll the output from a "test" command could + produce useless error messages on the console. Now it will revert to + the previous plot command, if any. + Bug #1627 + +2015-06-20 Hans-Bernhard Broeker + + * src/util.c (gprintf): 'L' had broken if-else since 2010; 'B' was + missing handling for power zero; 'B' had problem with excess + precision. + +2015-06-15 Daniel J Sebald + + * src/term.c (test_term): Use of unsigned terminal coordinates could + cause overflow and jam up display of very small plots in x11 terminal. + Bug #1626 + +2015-06-15 Ethan A Merritt + + * src/graphics.c (plot_boxes): Autocalculation of box widths was bad + whenever a NaN data value was encountered. Now such data points are + ignored, as they were in version 4. + Bug #1623 + +2015-06-14 Daniel J Sebald + + * src/term.c (test_term): Dashtype sample labels displayed by `test` + were off by one. + +2015-06-07 Release 5.0.1 + +2015-06-05 Hans-Bernhard Broeker + + * src/fit.c (fit_command): If there's exactly one more range in a + 'fit' command than there are independent variables, that last + range has to be applied to the dependent variable + (a.k.a. "function"). + +2015-06-03 Ethan A Merritt + + * src/util3d.c (draw3d_line_unconditional polyline3d_next): + Do not reset line properties for each component line segment in a + contour line. This improves the dash-pattern rendering for contours. + Bug #1612 + +2015-05-31 Jun-ichi Takimoto + + * src/qtterminal/qt_term.cpp: Mouse coordinates must be passed to the + clipboard as a QString. + Bug #1602 (and earlier bugs) + + * src/qtterminal/QtGnuplotScene.cpp (mouseReleaseEvent): With the above + fix in place, it is not necessary to lock out events during the + doubleclick interval. + +2015-05-30 Ethan A Merritt - * src/win/wgraph.c: Horizontal scroll wheel support. + * src/qtterminal/QtGnuplotEvent.cpp src/qtterminal/QtGnuplotScene.cpp: + Always respond to mouse button release event, even if the graph widget + is busy or the mouse has left the window area. This prevents the event + from being lost, causing the rotate-on-mouse-motion mode to get stuck. + Bug #1602 -2014-01-29 Jérôme Lodewyck +2015-05-22 Ethan A Merritt - * src/command.c: Update GPVAL_* variables after a refresh command. - Bug #1327 + * src/command.c src/command.h src/tables.c docs/gnuplot.doc: + New command `printerr` works exactly as `print` except that output is + always to stderr even if normal print output has been redirected using + `set print`. - * src/qtterminal/QtGnuplotWidget.* src/qtterminal/QtGnuplotApplication.cpp: - Only show the QtGnuplotWindow after a size event is received from gnuplot. - It avoids a visible fast resize of the window after the first plot command, - and it also avoids that the plot window infrequently sticks to a wrong size. +2015-05-14 Ethan A Merritt -2014-01-27 Ethan A Merritt + * term/tek.trm (SIXEL_fillbox): Handle FS_DEFAULT - * src/time.c (xstrftime): Explicit use of (double) when processing - fractional seconds. + * term/tek.trm (SIXEL_make_palette): A second call to make_palette() + failed to reset the state, leading to loss of all palette info. + Now it overwrites any previous palette. + Bugfix (e.g. heatmaps demo) - * src/Makefile.am: Build *.moc and *.qrc files for qt terminal in the - same subdirectory as the *.o files. +2015-05-13 Shigeharu Takeno - * src/datafile.c: [xyz]ticlabels were losing resolution due to being - passed through a float rather than a double. + * src/command.c (pause_command): The windows "pause" command is + sensitive to the locale encoding. Keep a translation table to convert + between gnuplot's idea of the encoding and WIN32 encoding states so that + strings output by "pause" are not corrupted. + Bug #1580, Feature Request #415 - * src/datafile.c: Handle error case of ticlabel function not returning - a string. +2015-05-08 Ethan A Merritt -2014-01-26 Jérôme Lodewyck + * PATCHLEVEL RELEASE_NOTES configure.in src/version.c: + Update in preparation for June(?) release of patchlevel 5.0.1 - * src/qtterminal/qt_term.cpp: Implement font metric caching. This solves - a flickering issue when a large number of font changes are called (for - example when rotating the world plot in world2.dem). +2015-05-05 Ethan A Merritt - * src/qtterminal/QtGnuplotInstance.*: New public function that sends a - command to gnuplot and blocks until it receives the answer. + * src/hidden3d.c (build_networks): In hidden3d mode do not draw + the surface if the keyword 'nosurface' is present (set the linetype + internally to LT_NODRAW). Normally this keyword would mean "draw only + the data lines, not the isosampled grid lines", but that makes little + sense for a hidden3d surface. This provides a way to draw only the + contours of a hidden3d contour plot. + See Bug #1603 -2014-01-21 Jérôme Lodewyck +2015-05-03 Hans-Bernhard Broeker - * src/qtterminal/qt_term.cpp: Fixed a regression introduced on 2014-01-18 - that caused glitches in font rendering when GE_fontprops events are missed. + * term/caca.trm: Insert missing include of . -2014-01-18 Bastian Maerkisch + * src/wxterminal/wxt_gui.cpp: Insert missing include of + . + (wxt_waitforinput): Add note about missing check for HAVE_SELECT. - * configure.in config/mingw/Makefile config/msvc/Makefile - src/show.c src/term.h src/win/wgnuplib.h src/win/wpause.c - term/caca.trm: New utterly useless, interactive color character art - terminal driver "caca" using libcaca. Supports (RGB) colors, filled - boxes and polygons, images, enhanced and rotated text, boxed labels, - hypertext and mouse interaction. Export to different file formats is - supported. - Patch #605 +2015-05-02 Ethan A Merritt -2014-01-18 Jérôme Lodewyck + * Makefile.maint docs/pdffigures.tex docs/Makefile.am: + Try to reduce churn during "make check" "make pdf" etc by suppressing + dvi as an auto-generated target and defaulting to documentation with + figures. - * src/qtterminal/qt_term.cpp: Replace calls to fork and execlp by - the portable QProcess::startDetached function. +2015-04-30 Ethan A Merritt - * src/qtterminal/qt_term.cpp: Delegate the font metric calculation to - QtGnuplotScene. This eliminates the need of a QApplication in the main - gnuplot program and thus significantly reduce the initialization time of - the Qt terminal. + * src/hidden3d.c: If a hidden3d plot included a "with image" component, + the hidden3d processing was tracking individual pixels as points. This + slowed everything down without accomplishing anything useful. Now we + ignore image plots altogether in the hidden3d code. - * src/qtterminal/QtGnuplot*: Move the inclusion of gnuplot headers from - QtGnuplotEvent.h to .cpp files. With this, QtGnuplot*.h files can be - included out of the gnuplot tree. +2015-04-27 Ethan A Merritt -2014-01-16 Ethan A Merritt + * src/graph3d.c (do_3dplot): Turning on "hidden3d" caused an off by + one error in assigning color to contours levels. + Bug #1603 - * src/help.c: Allocate help file path dynamically. + * src/command.c (do_line): If an input line starts with a shell escape + (e.g. '!' for linux) bypass first stage processing (df_tokenise) of the + remainder of the line. NB: This means that text following a comment + character is now passed to the shell rather than being stripped. + Bug #1517 - * src/qtterminal/QtGnuplotEvent.h src/qtterminal/QtGnuplotScene.cpp - src/qtterminal/qt_term.cpp: Better tracking of current plot number in - the case of multiple passes through a set of plots, e.g. when the key - samples in an opaque key box are drawn in a separate pass. +2015-04-24 Daniel J Sebald -2014-01-14 Ethan A Merritt + * src/misc.c (parse_fillstyle): Additional sanity checks when parsing + fillstyle options. + Bug #1597 - * src/misc.c (load_file lf_pop): Provide a user-visible copy of the - current line number GPVAL_LINENO when executing commands from a file. +2015-04-22 Ethan A Merritt - * src/datafile.c (df_open df_readascii): New keyword "skip" tells the - program to skip lines at the start of an ascii data file. Note this is - different from "every ::N", which skips lines at the start of the data - file but also at the start of each subsequent data block in the file. + * src/datafile.c (f_stringcolumn f_columnhead df_set_key_title): + columnhead(FOO) could return strange results for FOO > 999 or + undefined or otherwise invalid. Now we extend the range of valid + column number to 9999 and return 0 for invalid or out of range FOO. + Bug #1596 -2014-01-13 Ethan A Merritt +2015-04-20 Karl Ratzsch - * src/set.c (set_allzeroaxis set_palette_defined set_clip set_encoding): - Fuzz-testing found improper handling of END_OF_COMMAND cases. + * src/term.c (test_term): Show terminal's native dashtype support in + the `test` command output. -2014-01-12 Ethan A Merritt +2015-04-16 Ethan A Merritt - * src/command.c (link_command): Enforce a consistent linkage state; - we must either have both a forward and a reverse ("via" and "inverse") - function or neither. - Bug #1318 + * src/color.c (set_color): Some terminals (pdfcairo, post) produced + invalid output if given NaN as a gray value in term->set_color(). + Others variously ignored it, replaced it with black, or gray=0. + Now we trap NaN in the core code and substitute a request for background + color. Note: I'd substitute with a fully transparent color, + but not all terminals handle transparency. + Bug #1595 - * src/plot3d.c (plot3drequest) src/graph3d.c ([x|y]tick_callback): - Support x2 and y2 axis labels in 3D plots ('set view map' mode only). - In order for this to work, the secondary axis must be linked to the - primary axis first ("set link"). +2015-04-10 Daniel J Sebald - * src/color.c (draw_inside_color_smooth_*): remove unnecessary parameter + * term/tkcanvas.trm: Fix problems handling an empty font family name + in a requested font string, as in set term tkcanvas font ",15" + Bug #1591 - * src/README -> docs/old/README.internals: - Delete ancient comments on code refactoring circa 2000 +2015-04-08 Ethan A Merritt -2014-01-11 Bastian Maerkisch + * src/fit.c (setvarcovar): Allocated size of string for FIT_COV_*_* + variables was too small, corrupting the allocation heap. - * config/mingw/Makefile: Automatically update version numbers for - installer. + * src/fit.c (regress_finalize): Show results in log file even if the + "quiet" flag suppresses screen output. - * src/win/wgraph.c (drawgraph): When drawing to the screen, point - symbols are drawn to a memory bitmap first, which is then copied to - the target device. That way subsequent draws of the same point symbol - just need to copy the bitmap. This speeds up drawing of graphs with - a large number of point symbols. +2015-04-07 Ethan A Merritt - * src/win/wgdiplus.cpp (drawgraph_gdiplus): The GDI+ backend uses - the same technique, but was missing a case when to invalidate the - cached bitmap. + * src/term.c (termp_apply_lp_properties): Fix incorrect assumption + that dashtype 1 is always solid and is already set by default. + Bug #1588 - * src/win/wgnuplib.h src/win/wgdiplus.cpp src/win/wgraph.c: Using - MinGW 4.8.1, FontFamily::GenericSansSerif() results in unresolved - externals during linking. This is a bug in MinGW's runtime. + * term/emf.trm (EMF_linetype): Two linetypes (LT_SOLID LT_AXIS) have + an intrinsic dash pattern. + Bug #1588 - * src/win/winmain.c: Current version of MinGW does not offer working - version of __argc/__argv, but _argv/_argv. A web search shows that - MinGW-w64 is different. This is a bug in MinGW's runtime. + * src/term.c (test_term): Use same sequence of setting line properties + linewidth/linetype/dashtype in the "test" command as in the core code. - * win/gnuplot.iss (MinVersion): Minimum required version of the - installer is XP. + * src/set.c src/term.c: Adjust the new "set mono" option so that + "set term xxx mono" is not persistent. I.e., it doesn't leave "set mono" + in effect after the next terminal change. This makes it more like the + version 4 mono terminal option. "set mono" itself is still persistent. -2014-01-10 Ethan A Merritt +2015-04-04 Hans-Bernhard Broeker - * src/plot2d.c: Fix iteration over parametric function plots. - Bug #1314 + * src/term_api.h (DEFAULT_MONO_LINETYPES): Empty initializer is + not allowed. - * src/datafile.c (df_generate_pseudodata): Allow use of '++' pseudofile - to sample the parametric variables U and V in 3D parametric mode. +2015-04-03 Ethan A Merritt -2014-01-09 Ethan A Merritt + * src/axis.h (ACTUAL_STORE_WITH_LOG_AND_UPDATE_RANGE): + If the value being stored to a log-scaled axis is negative, the stored + value should be NaN rather than the un-logged original value. - * src/datafile.c src/datafile.h src/plot2d.c: Only include support for - "thru" if configured with --enable-backwards-compatibility + * src/plot2d.c (get_data): But even that doesn't help if UNDEF_ACTION + re-stores the orginal value, so don't do that. Together these changes + fix the problem that negative values mapped onto a log-scaled cbaxis + produced a valid (but wrong) color rather than being treated as NaN. - * src/datafile.c src/gp_types.h src/graph3d.c src/plot2d.c src/plot3d.c - src/tables.c src/tabulate.c: +2015-04-02 Karl Ratzsch - New keyword pair "with table" that bypasses all style-specific input - processing, column restrictions, smoothing, etc. For example: - set table "table.dat" - plot FOO using 1:2:3:4:5:($6+$7):8:9:10 with table + * docs/gnuplot.doc: Document the C library routines used to parse + numerical constants in commands and expressions. Integer constants are + read using strtoll(); floating point constants are read using atof(). -2014-01-08 Thomas Bleher +2015-04-02 Hans-Bernhard Broeker - * config/msvc/Makefile: Add configuration option for compiling the qt - terminal on Windows/MSVC. Note that the terminal itself does not work - yet on Windows, but this patch makes it easier to work on fixing that. + * compile: Add script required by automake. -2014-01-04 Bastian Maerkisch + * demo/plugin/Makefile.am (demo_plugin_so_SOURCES): Add + gnuplot_plugin.h. + (EXTRA_DIST): Add plugin.dem. - * src/win/wcommon.h src/win/wgdiplus.cpp|h src/win/wgnuplib.h - src/win/wgraph.c src/win/resourc.h term/win.trm: New (optional) - variant of the windows terminal backend which draws using the GDI+ API - whenever possible. This is much faster in some cases than the old - backend which switches between GDI and GDI+ to support antialiasing - and RGBA colors. Images are drawn using GDI since GDI+ always uses some - sort of interpolation when scaling images. Enhanced text is currently - still drawn using GDI. Adjacent polygons of the same color are merged - in order to avoid "seams" between them caused by antialiasing. See also - Bug #1096. + * demo/Makefile.am.in (Makefile.am): Subdir 'plugin' has a + Makefile.am, so it should not be in EXTRA_DIST. - * src/term_api.h src/graphics (plot_image_or_update_axes): Wrap - the fallback image output with term->layer() commands using - TERM_LAYER_BEGIN_IMAGE and TERM_LAYER_END_IMAGE. This can be - used by terminals to optimize output. +2015-03-29 Ethan A Merritt - * src/win/wgraph.c (drawgraph): Move GDI image drawing code from - drawgraph() to a new routine draw_image(). + * src/gadgets.c src/gadgets.h src/set.c src/setshow.h src/tables.c + src/tables.h src/term_api.h src/term.c src/unset.c term/x11.trm + src/show.c docs/gnuplot.doc: + New commands + {un}set monochrome {linetype N } + set color (same as "unset mono") + Maintain a set of monochrome linetypes (all black with varying dot- + dash pattern and/or width) in parallel with the default set of + color linetypes. Switch between the two sets using "set mono" or + "set color". Terminal types that used to provide a separate "mono" + keyword now trigger "set mono" as appropriate. For example, + "set term pdf mono" is equivalent to "set term pdf; set mono". + Six default monochrome linetypes are pre-defined. These do not exactly + duplicate the idiosynchratic mono linetypes of various pre-version 5 + terminals (be cairo cgm emf fig pdf post ...). + Some further adjustment for individual terminals may be needed. - * src/command.c src/fit.c|h src/plot.c|h src/term.c src/win/wgraph.c - src/win/winmain.c src/win/wtext.c term/win.trm: Handle Ctrl-C - asynchronously on Windows (GUI and console mode). This is done by - setting ctrlc_flag and testing it in check_for_mouse_event(). Thus, - scripts etc. can now finally be interrupted by pressing Ctrl-C in - console mode gnuplot or Ctrl-Break in wgnuplot. +2015-03-28 Ethan A Merritt - * src/win/winmain.c (ConsoleGetch): Remap Shift-Tab key-code in - console mode, too. + * term/fig.trm: unused variable -2014-01-03 Christoph Bersch +2015-03-24 Erik Olofsen - * src/gadgets.c (clip_polygon): Handle the case of a NULL clipping box, - possible for terminal types that do external clipping (e.g. epslatex). - Bug #1316 + * term/tek.trm: RGB + palette support for sixel terminal. + The vt100/vt340 sixel emulator is limited to 16 distinct colors per + plot but other emulators may permit more. - * src/boundary.c (do_key_sample): Apply requested border around filled - circle or ellipse used as a key sample. - Bug #1315 +2015-03-24 -2014-01-03 Ethan A Merritt + * src/mouse.c src/plot2d.c src/wxterminal/gp_cairo.c: + Incorrect argument type to abs() or fabs(). - * src/datafile.c (df_generate_pseudodata): Allow use of '+' pseudofile - to sample the parametric variable T in 2D parametric mode. + * src/stats.c (analyze_sgl_column): Incorrect truncation of double to + int while calculating absolute deviation. + Bug #1584 -2014-01-02 Jérôme Lodewyck +2015-03-24 Tatsuro MATSUOKA - * src/qtterminal/QtGnuplotWidget.* src/qtterminal/QtGnuplotWindow.cpp: - The Qt guidelines state that the "parent" variable should be the last - argument of the contructor of a class derived from QWidget. Revert the - QtGnuplotWidget constructor declaration to respect this rule. Add a second - contructor with a single argument to enable loading from a ui file. + * src/command.c (pause_command): Work around a bug seen for + mingw + SJIS encoding. -2014-01-01 Bastian Maerkisch +2015-03-23 Ethan A Merritt - * src/readline.c (readline, ansi_getc) src/win/wtext.c (WndTextProc): - Builtin-readline: Shift-Tab cycles through the list of completions - in reverse direction. + * term/fig.trm: Preload user-defined linetype colors and gnuplot's + set of named colors so that they are available in fig plots. - * src/graphics.c (get_arrow, do_ellipse) src/graph3d.c (get_arrow3d) - src/term.c (do_arc): The aspect ratio of the internal coordinates - of the windows terminal is always one. - Bug #1253 +2015-03-22 Ethan A Merritt - * src/win/wtext.c (WndTextProc) src/fit.c (regress): The ctrlc_flag - got clobbered due to a missing break statement. + * term/cairo.trm: The cairolatex terminal should not set the flag + TERM_ENHANCED_TEXT since latex markup is not the same as gnuplot's + enhanced text mode. This does not hurt plotting per se, but it + causes the "test" command to emit a non-latex string. -2013-12-29 Bastian Maerkisch +2015-03-19 Ethan A Merritt - * src/win/wgraph.c (drawgraph) term/win.trm (WIN_filled_polygon): - Rectangular filled polygons are drawn using boxfill. This routine - contained a bug in the allocation of an internal bitmap which prevented - those polygons from being drawn under certain circumstances. The - routine was also sensitive to the order of the corner points. - Bug #1279 + * src/boundary.c (do_key_sample) src/graph3d.c src/graphics.c + src/graphics.h (check_for_variable_color): The key sample for plots + with filled objects (boxes, circles, ellipses, etc) and "lc variable" + was drawn in some non-obvious color not necessarily present in the plot. + Now we guarantee that the key sample is drawn using the color of the + first point in the plot. - * unset.c (reset_command): Reinitialize axis labels after copying the - default axis structure. Fixes default text orientation of y- and color- - axes. +2015-03-13 Ethan A Merritt -2013-12-28 Ethan A Merritt + * src/unset.c: Fix memory leak (linked axis function) on reset - * configure.in: Restore the --enable-backwards-compatibility - configuration option and apply it to syntax that has been deprecated but - can still be supported for running old scripts (i.e. scripts that do not - also use recent syntax that would conflict with the deprecated commands). +2015-03-08 Ethan A Merritt - * src/datafile.c: backwards compatibility support for "thru" + * src/datafile.c: The code tracking matrix column/row headers tried + to extract the relevant string from the wrong internal array. + Bug #1575 - * src/set.c src/gadgets.c src/gadgets.h src/save.c src/unset.c: - backwards compatibility support for "set style increment user" +2015-03-06 Allin Cottrell - * src/misc.c src/scanner.c src/command.h: New mechanism for call - arguments (ARG0 ... ARGN) replaces old mechanism ($0 $1 ... $N). - The old method is still available via --enable-backwards-compatibility + * src/wxterminal/gp_cairo.c: Prevent free() of a string constant. - * demo/callargs.dem demo/all.dem docs/gnuplot.doc: docs and demo for - new call argument method +2015-03-05 Ethan A Merritt -2013-12-28 Bastian Maerkisch + * src/term_api.h src/term.c src/graphics.c term/estimate.trm: + New routine estimate_plaintext(char *enhancedtext) returns a string + stripped of all enhanced text markup. Use this to provide plain + text titles in output files even though the plot title itself contains + markup characters. + Bug #1573 - * src/stdfn.c config/mingw/Makefile: Some versions of MinGW are missing - a cexp() implementation. Supply our own. +2015-03-04 Christoph Bersch - * config/mingw/Makefile: Create timestamp.h for non-release builds. - -2013-12-27 Ethan A Merritt + * src/multiplot.c demo/heatmaps.dem demo/layout.dem docs/gnuplot.doc: + Fix inconsistencies in the margin and spacing options for + "set multiplot layout". Allow using character or screen units. + Make the character/screen keyword sticky; i.e. it applies to all four + values in the command `set multiplot margins screen 0.1,0.9,0.9,0.1` + Issue appropriate errors or warnings if margins and spacing aren't set + together. Update and expand the documentation. - * src/internal.c (f_call): Repair odd side effect of recent "notitle" - patch. "plot FOO notitle lw (1/2)" contains what looks like an - undefined string function lw(). Explicitly ignore this just as we - would an undefined string variable. +2015-03-04 Ethan A Merritt -2013-12-27 Shigeharu Takeno + * src/util.c (gprintf): The "%h" format want a proper multiplication + sign rather than 'x' when possible. We already do this for UTF8 and + CP1252, now add support for iso_8859_* encodings. - * docs/gnuplot-ja.doc term-ja.diff: Sync translation to version 1.840 + * docs/gnuplot.doc src/set.c src/show.c: + In 5.0.0 the set margin command interpreted 4 values in the order + set margin , , , + but this order in non-intuitive and conflicts with the order in + other commands (e.g. set multiplot layout). CHANGE this to + set margin , , , + Note that the code now sanity checks that (top > bottom), so this change + will not be noticed for margins given in screen coordinates. -2013-12-27 Bastian Maerkisch +2015-03-02 Ethan A Merritt - * src/win/wcommon.h src/win/wgraph.c src/win/winmain.c src/win/wmenu.c - src/win/wprinter.c src/win/wtext.c: No need to have separate code - for win32 and win64 since minimal supported platform is XP. System - headers deal with that already. Also include Allin Cottrell's patch to - the dialog callbacks. The correct return type is indeed INT_PTR. + * src/tables.c src/graphics.c (plot_filledcurves) docs/gnuplot.doc: + The "y1=foo" and "y2=foo" options to the filledcurves style are + confusing, as both operate on the current plot's y axis regardless + of whether it is y1 or y2. Rename the option as "y=foo" and remove + mention of the older y1= and y2=. All three are accepted on input. + Bug #1568 - * src/win/wgnuplib.h src/win/wgraph.c term/win.trm: Implement - modify_plots() terminal interface. +2015-02-26 Ethan A Merritt - * term/win.trm (WIN_layer): Ignore TERM_LAYER_RESET in multiplot - mode. + * src/fit.c src/fit.h src/set.c src/save.c src/show.c: "set fit nolog" -2013-12-26 Ethan A Merritt + * term/tek.trm: Remove SIXEL_set_color() terminal entry. This function + does not perform the operation expected by the core code (change the + current color for lines/texts/points/etc). Instead it redefines one of + 16 linetypes. In gnuplot version 5 this causes most objects to be + drawn in black. Removing the entry allows the sixel terminal to work + more or less like a fixed color 16-pen plotter. + Bug #1556 - * src/axis.c src/axis.h src/gadgets.c src/gadgets.h src/gp_types.h - src/graph3d.c src/graphics.c src/graphics.h src/mouse.c src/parse.c - src/plot2d.c src/save.c src/save.h src/set.c src/show.c src/tables.c - src/tables.h src/unset.c: +2015-02-24 Mojca Miklavec - New plot style "with parallelaxes". + * configure.ac m4/apple.m4 term/aquaterm.trm: + Correct "Aquaterm" to "AquaTerm" (framework name is case sensitive). - * configure.in demo/parallel.dem docs/gnuplot.doc docs/plotstyles.gnu: +2015-02-23 Ethan A Merritt - Documentation and demo for parallel axis plots. Default configuration - is to support up to 7 parallel axes. This can be increased by editing - MAX_PARALLEL_AXES, but MAX_PARALLEL_AXES must be <= MAX_NUM_VAR. + * axis.c: Special case code for axis tickmarks in polar plots was + incorrectly being applied to all axes, not just the polar axis. + Bug #1569 -2013-12-24 Ethan A Merritt +2015-02-18 Shigeharu Takeno - * src/gp_types.h src/plot2d.c src/tables.c src/interpol.c: + * term/gd.trm (PNG_vector): Prevent accummulated round-off error in + dotted line emulation by using (double) variables to track incremental + coordinates. + Bug #1549 - New smoothing option "mcsplines" - piecewise monotonic cubic splines - calculated using the algorithm of FN Fritsch & RE Carlson (1980), - SIAM Journal on Numerical Analysis 17: 238-246. +2015-02-18 Ethan A Merritt -2013-12-23 Ethan A Merritt + * src/term.c (term_apply_lp_properties do_point load_linetype): + Restore old (version 4) behavior of terminals such as hp pen plotter + and pbm that do not support user-selected colors. + Bug #1556 - * src/plot2d.c src/plot3d.c: Make "title foo ..." and "notitle foo ..." - truly identical in terms of what options they accept. - Bug #1313 +2015-02-13 Ethan A Merritt - * configure.in src/axis.h src/command.c src/command.h src/gadgets.c - src/gadgets.h src/mouse.c src/plot2d.c src/plot3d.c src/tables.c: - Remove conditional compilation test from the volatile data code. + * src/gadgets.c (apply_pm3dcolor): Variable color specifier "palette cb" + failed to handle log-scaling of the color axis. + Bug #1560 -2013-12-22 Erik Olofsen +2015-02-11 Erik Olofsen - * configure.vms src/command.c src/hidden3d.c src/stdfn.c src/stdfn.h - src/syscfg.h src/term.c src/term.h term/tek.trm: + * configure.vms: update compile-time variables to include HAVE_VFPRINTF + and MAX_PARALLEL_AXES - Update VMS build support. Tested using HP C V7.1-015 OpenVMS Alpha V8.3 - on an AlphaServer DS10. +2015-02-09 Ethan A Merritt -2013-12-21 Ethan A Merritt + * src/qtterminal/QtGnuplotIterms.cpp (drawPoint): + Don't draw an extra dot at the nominal origin of each point symbol. - * src/Makefile.am: automake 1.14 wants an option subdir-objects - * src/set.c (set_zeroaxis): memory leak - * src/unset.c (unset_histogram): memory leak - * src/parse.c (next_iteration): survive clobbered iteration variable - Bug #1312 +2015-02-07 Ethan A Merritt -2013-12-19 Ethan A Merritt + * src/interpol.c: Rework "smooth kdensity" so that + 1) it now handles logscale on y + 2) it treats xrange as other plot styles do; in particular it no longer + limits the x range to that of the points making up the kernel. - * src/axis.h src/axis.c src/graph3d.c src/show.c src/set.c src/unset.c - src/save.c: Reduce size of the AXIS structure. +2015-02-06 Ethan A Merritt -2013-12-16 Ethan A Merritt + * src/interpol.c (cp_implode): The monotonic cubic spline code + does not expect or handle multiple curves in a single data set. + Thus cp_implode should not set the total number of averaged points + to more than the total corresponding to the first curve. + Bug #1548 - * src/command.c src/gp_hist.h src/history.c src/plot.c src/set.c - src/show.c src/tables.c src/tables.h src/unset.c docs/gnuplot.doc: +2015-02-01 Ethan A Merritt - New command `set history` to control history output - Syntax: - set history {size } {quiet|numbers} {full|trim} {default} + * src/graphics.c (plot_betweencurves): This routine now handles both + the 3-column variant of filledcurved ("between") and the y1= or + y2= variants. In order that various lower level routines do not + get confused, set the same options flag FILLEDCURVES_BETWEEN for all + of these. - set history size N replaces "set historysize N" - set history size -1 replaces "unset historysize" - set history quiet subsequent `history` commands will not show numbers - set history numbers subsequent `history` commands will show numbers - set history trim [old default] remove duplicate history entries - set history full do not alter list by removing old duplicate entries - set history default equivalent to "set history size 500, numbers, trim" +2015-01-31 Ethan A Merritt -2013-12-15 Jyrki Yli-Nokari + * src/save.c (save_textcolor): Remove redundant line left by + mis-applied patch. - * src/bitmap.c configure.in: - Jyrki Yli-Nokari, the original author of the code in bitmap.c, - has agreed to relicense it as dual license (gnuplot + BSD). - This removes a restriction to non-commercial use imposed by the - license terms that appeared in earlier versions of file bitmap.c. +2015-01-27 Ethan A Merritt -2013-12-14 Ethan A Merritt + * src/plot2d.c src/show.c docs/gnuplot.doc: Report maximum number of + parallel axes in "show version long". Enforce this limit when plotting. + Document the limitation. - * src/command.c src/history.c src/gp_hist.h docs/gnuplot.doc: - New: "history !N" reexecutes the command at history entry numbered N. - The current entry ("history !...") in the history list is replaced - with the command found by searching. + * src/save.c: Use "set xyplane relative" rather than the deprecated + "set ticslevel". -2013-12-12 Erik Olofsen +2015-01-24 Ethan A Merritt - * term/tek.trm: New terminal driver "sixel" for old DEC terminals - and printers, emulated by some versions of xterm. + * src/command.c (test_palette_subcommand): Apply numeric locale to the + $PALETTE datablock created by the "test palette" command. -2013-12-12 Ethan A Merritt + * term/pslatex.trm: Separation of linetype/dashtype in version 5 means + that set_color should not be turned into term->linetype. + Bug #1545 - * configure.in: Simplify tests for libgd support libraries. + * src/term.c (term_test): Fix failure to save/restore arrow style. + Use LT_SOLID for box around central text. + Bug #1546 - * src/wxterminal/gp_cairo.c src/wxterminal/wxt_gui.*: - Modify vertical centering of enhanced text to match default case. - Bug #1309 +2015-01-20 Ethan A Merritt - * term/emf.trm: Invalidate font name at start of each plot. - Bug #1306 + * src/graphics.c: Restore several lines of code that were inadvertantly + lost in the revision to filledcurve processing (2015-01-16). -2013-12-11 Ethan A Merritt +2015-01-19 Ethan A Merritt - * src/graph3d.c (key_text): Apply key title font to key entries. - Bug #1309 + * src/boundary.c src/gadgets.h src/graph3d.c src/save.c src/set.c + src/unset.c: Track text properties (font, enhanced, justification) for + the key title separately from those for the key entries. + Bug #1525 #1542 - * src/qtterminal/qt_term.cpp (qt_options): qt structure has not yet - been initialized at the time qt_options is first called. +2015-01-16 Ethan A Merritt -2013-12-11 Thomas Bleher + * src/tabulate.c: Tabular output of time/date values should check the + new flag output flag (tictype) rather than the input flag (datatype), + and fall back to a generic time format if the axis doesn't have one. - * src/qtterminal/QtGnuplotScene.cpp src/qtterminal/QtGnuplotWidget.* - src/qtterminal/QtGnuplotWindow.*: + * src/time.c (gstrptime): If the time format explicitly includes day, + month, or year then always do sanity checking on the interpreted date. + Return NULL if the sanity check fails. Previously the sanity check + was only done if that field of the format was evaluated (i.e. it was + not done if input garbage caused parsing to terminate early), and + zeros were returned in the time structure with no indication of failure. + This "failure silently returns zero" behaviour is still kept for + hour, minute, and second input fields. - QtGnuplotWidget can be used to embed gnuplot into an existing Qt - application. This patch makes integration easier. - - QtGnuplotWidget gets the parent QWidget pointer as its first parameter - so that QtGnuplotWidget can be loaded from ui files. - - The export functions in QtGnuplotWidget get the target filename from a - parameter, enabling the embedding application to query for the - filename in some other way. - - loadSettings and saveSettings can use a configurable path for their - settings, so different plot windows can have different settings. + * demo/timedat.dat: Add a line of headers to exercise the new sanity + checks in gstrptime. -2013-12-11 Shigeharu Takeno + * src/graphics.c src/plot2d.c: Fix breakage in plot style + filledcurves {above|below} y1= - * term/emf.trm: Support true pattern-fill. Apply global linewidth. +2015-01-15 Ethan A Merritt - * src/util.c (gprintf): C compiler in SJIS locale does not like - in-line UTF-8 string constants. + * term/cairo.trm (cairotrm_put_text): The bold/italic flags can become + stuck after printing text. This patch fixes it by restoring the + original terminal font after printing any enhanced text string. + Test case: set key title "{/:Bold Hello}"; plot sin(x) title "World" + Bug fix -2013-11-22 Christoph Bersch + * src/graphics.c (plot_filledcurves): Reevaluate variable fill color + for every polygon in the input stream to "with filledcurves". + Bug/Feature Request #411 - * src/axis.h (ALL_AXES = -1) src/unset.c (unset_tics): - unset_tics() requires a defined ENUM parameter. - Bug #1305 + * src/gadgets.c (apply_pm3dcolor) src/term.c (load_linetype): + Remove special-cased test for monochrome terminals that can lead cause + a failure to update the linecolor in version 5 (e.g. background->black). + Bug fix -2013-11-14 Ethan A Merritt +2015-01-13 Ethan A Merritt - * src/qtterminal/embed_example.h: - Support for building qt terminal with either Qt4 or Qt5 + * src/datafile.c (df_read_matrix) demo/matrix_index.dem: + Handle named indices (extra line in data file containing name of + subsequent data matrix) for nonuniform ascii matrix data. + Bug #1538 - * src/plot2d.c src/plot3d.c: - Allowed enhanced/noenhanced key word after individual plot titles. + * src/stats.c: The special code path to handle ascii matrix data was + not correct. Fortunately the general case code works so long as the + data is recognized as matrix data. This removes the broken code path. - * src/eval.c src/parse.c docs/gnuplot.doc: - Restore backwards-compatibility by continuing to accept deprecated - function defined(FOO). Remove help entry so that the deprecation - is taken more seriously. +2015-01-10 Ethan A Merritt -2013-11-09 Ethan A Merritt + * src/save.c (save_tics): The order in which tics options were saved + could produce illegal syntax in the save file. + Bug fix - * src/qtterminal/qt_term.cpp (qt_set_color) term/gd.trm (PNG_set_color): - Do not change line type just because a color request specifies a - linetype color. - Bugfix. +2015-01-10 Ethan A Merritt - * src/qtterminal/QtGnuplotScene.cpp (mouseReleaseEvent): - Revert mouse click timing change of 27-Oct-2013 but add a check for - valid timer status. This greatly reduces the number of spurious events - that are passed through to the main program. - Bug #1300 + * term/gd.trm: Ensure that the brush used for drawing dotted lines + is reinitialized for each new line. + Bug #1516 -2013-11-06 Ethan A Merritt +2015-01-10 Karl Ratzsch - * src/axis.c src/axis.h src/eval.c src/save.c src/set.c src/show.c: - Replace axis_defaults[index].name with axis_name(index) everywhere. - Currently this is a macro that expands to the same thing, but now - it is ready to be replaced by something more complicated. + * docs/gnuplot.doc: Clarify sampling used by '+' special file. - * src/unset.c (unset_tics): Change the flag for unset all to -1. +2015-01-09 Ethan A Merritt - * src/set.c (set_range): We already accept "set xrange [*:*] noextend" - as a more intuitive alternative to "set auto xfix". Now we also accept - "set xrange [*:*] extend" to go back to the default behavior. + * src/datafile.c (df_determine_matrix_info): Apply numeric locale + when reading ascii matrix data. + Bug #1536 - * src/save.c (save_range): Due to a typo, the fix/nofix extend/noextend - axis property was not written by the "save" command. +2015-01-07 Achim Gratz -2013-10-29 Ethan A Merritt + * configure.in: Qt5 check via pkg-config should use --variable=host_bins + rather than --variable=exec_prefix - * src/plot3d.c (get_3ddata): Pass through Inf and NaN to image code when - the pixel value is presented in column 4. The column 3 (z) case was - already handled. +2015-01-06 Ethan A Merritt -2013-10-27 Ethan A Merritt + * src/set.c src/boundary.c src/graph3d.c: Add a sanity check to + ensure that the top margin is above the bottom margin. This corrects + for possible user confusion or error in specifying on one line + set margins , , , # (wrong order) - * src/misc.c(lp_parse): Fix bug involving color assignment to contours. - Unfortunately this negates a previous fix that allowed explicit surface - colors in a hidden3d plot to implicitly do "set hidden3d offset 0". + * src/save.c (save_textcolor): TC_VARIABLE was not handled correctly. - * src/qtterminal/QtGnuplotScene.cpp: gnuplot_qt can handle hotkey 'i' - in persist mode. Revise the timing code for responding to mouse button - press/release (needed for Qt5). +2015-01-06 Ethan A Merritt -2013-10-26 Thomas Bleher + * src/graphics.c src/graphics.h src/plot2d.c: Simplify the boxplot + data handling. Collapse the separate filter_boxplot_factor() and + filter_boxplot() into a single routine with a single supporting + routine compare_ypoints(). Points are now sorted using the "factor" + as a primary key, rather than using a separate pass to overwrite + all y values to VERYLARGE if the factor does not match. + Inspired by a patch from Jouke Witteveen + Bug #1532 - * src/qtterminal/qt_term.cpp: Change the Qt terminal to only create its - data when initialized (to avoid the Static Initialization Order Fiasco) - and to destroy its data in a gnuplot atexit handler. +2015-01-04 Jouke Witteveen -2013-10-25 Ethan A Merritt + * src/plot2d.c (check_or_add_boxplot_factor) src/gadgets.h: + When the requested "factor" column of boxplot data is missing or + empty, the y value was being stored instead. Now we store + DEFAULT_BOXPLOT_FACTOR (-1) instead, since this can never be + mistaken for a label array index. + EAM: Store this factor index in z rather than ylow. This prepares + for a later patch to get rid of repeated swapping of y and ylow + values rather than simply looking at the stored index directly. + Bug #1532 - * src/datafile.c (df_readascii df_readmatrix): If the first field of a - tab-separated csv file was empty, it would be incorrectly ignored when - processing that input line. - Bugfix. +2015-01-03 Jouke Witteveen - * src/wxterminal/wxt_gui.cpp: Extend toggling active region in key box - to include enhanced text as well as non-enhanced text. - Bugfix. + * src/plot2d.c (check_or_add_boxplot_factor): Distinguish between + boxplot category labels where one is a leading substring of the other. + Bug #1532 -2013-10-25 Thomas Bleher +2015-01-01 Release 5.0 - * src/stdfn.c(gp_atexit gp_exit) src/stdfn.h src/command.c(exit_command) - src/plot.c(main) src/qtterminal/qt_term.cpp src/win/winmain.c - src/wxterminal/gp_cairo.c src/wxterminal/gp_cairo_helpers.c - src/wxterminal/wxt_gui.cpp term/be.trm term/x11.trm: +2015-01-01 Bastian Maerkisch - Create gnuplot atexit handlers that are called before exit(3) - - Normal atexit-handlers are called in the reverse order of registration. - This causes problems when a library has its own global destructors which - do not handle the case that objects of the library may still be active - and destroyed in the atexit handler. This has been observed with Qt. - - Introduce a new function gp_exit() which calls the gnuplot atexit handlers - and then calls exit(3). Also create gp_atexit() to register gnuplot exit - handlers. + * src/term.c: Default to wxt terminal instead of the newly suported + qt terminal on Windows. - * src/getcolor.c (quantize_gray): Windows compile error ("small" is not - accepted as a variable name). + * win/gnuplot.iss: Display RELEASE_NOTES instead of NEWS file. - * config/msvc/Makefile: DEBUG option when compiling with MSVC +2014-12-31 Ethan A Merritt -2013-10-25 Ethan A Merritt + * FAQ.pdf: Fix broken URLs. - * src/corgraph.asm src/hrcgraph.asm src/pcgraph.asm src/corplot.c: - Remove vestigial files from the era of 16-bit DOS. +2014-12-30 Ethan A Merritt - * configure.in term/unixpc.trm src/term.c src/term.h src/syscfg.h - src/makefile.all src/makefile.awc config/makefile.* docs/doc2texi.el: - Remove vestigial driver and makefile entries for the AT&T 3b1 "unix pc". - Early M6800-based tiny (256Kb) machine. + * src/qtterminal/qt_term.cpp (qt_atexit): Sanity check. -2013-10-23 Ethan A Merritt + * src/command.c src/command.h src/mouse.c src/mousecmn.h src/plot.c + src/term.c: Backport core pieces of version 5.1 fix for Windows bugs + #1432 and #1502. - * src/plot.c (main): If commands are being executed interactively - because the user said something like "gnuplot -", then execution should - continue after an error message just as in a normal interactive session. - Bug #1295 + * src/win/wgnuplib.h src/win/wgraph.c src/win/winmain.c src/win/wpause.c: + Backport win term pieces of version 5.1 fix for Windows bugs + #1432 and #1502. - * src/mouse.c (event_reset) src/term.c (check_for_mouse_events): - Must not send commands to the terminal if it has not yet been - initialized. + * src/wxt/wxt_gui.cpp src/wxt/wxt_gui.h: + Backport wxt term piece (referenced from wpause.c) of version 5.1 fix + for Windows bugs #1432 and #1502 - * term/gd.trm src/wxterminal/gp_cairo.c: - Inboard terminal drivers should not write errors to stdout and normally - should not call exit() themselves. +2014-12-28 Bastian Maerkisch -2013-10-21 Ethan A Merritt + * docs/titlepag.ms: Update to version 5. - * src/color.h src/set.c src/getcolor.c (quantize_gray): - Change the algorithm used to assign palette colors in the case - set palette defined (...) maxcolors N - where the gradient boundaries are unevenly spaced. Previous versions - of quantize_gray() have shown a variety of bad outcomes. This version - has fewer, less ugly, bad outcomes but it is still sensitive to the - choice of maxcolors. Try changing maxcolors by +/- one if the generated - palette is bad. - Bug #1140 and others + * docs/gnuplot.doc: groff tables for stats command. Several groff + syntax fixes and minor layout tweaks. - * src/command.c (test_palette_subcommand): The "test palette" command - does not need to zero the current input line, and hasn't needed to since - lf_push/lf_pop were introduced 5 years ago. + * config/mingw/Makefile: New targets grops and gropdf. -2013-10-18 Christoph Bersch + * config/config.os2 config/makefile.os2: Update to version 5. - * src/gadgets.h src/graphics.c src/graphics.h src/save.c src/set.c - demo/all.dem demo/clipobject.dem docs/gnuplot.doc: - New object attribute clip/noclip. "clip" retains the current default, - clip to plot boundary unless one or more vertices are given in screen - coordinates. "noclip" clips to the canvas. + * src/term_api.h src/os2/gclient.c: Eliminate compiler warnings. -2013-10-18 Shigeharu Takeno + * src/wxterminal/wxt_gui.cpp: + Use cairo_show_page() rather than cairo_surface_show_page() - * docs/gnuplot-ja.doc term-ja.diff: Sync translation to version 1.830 +2014-12-26 Ethan A Merritt -2013-10-17 Ethan A Merritt + * src/command.c (do_line): + Report error if a "load" file fails to close an open bracketed clause. + Bug #1522 - * src/graphics.c (place_objects): Make clipping of various objects - more consistent. Clip to graph unless the center or some vertex is - specified in screen coordinates. + * src/wxterminal/wxt_gui.*: remove old debug code. - * src/save.c (save_object): "show object N" was incorrectly printing - lines for other objects as well. + * FAQ.pdf: update for version 5 release -2013-10-13 Ethan A Merritt +2014-12-26 Bastian Maerkisch - * src/axis.c: DEFAULT_GRID_LP + * src/qtterminal/qt_term.cpp: Remove dead code. Avoid implicit + casts to unsigned int. - * src/plot2d.c: Issue warning if "smooth" option causes columns in the - using spec to be ignored. +2014-12-24 Bastian Maerkisch - * src/axis.c (gen_tics): Suppress log-scaled mtics and minor grid lines - that would lie on top of the major tic/grid. - Bug #1292 + * src/win/wgraph.c (drawgraph) src/win/wgdiplus (drawgraph_gdiplus): + Failure to re-initialize the font name and size for enhanced text. + Bug #1529 - * src/pm3d.c: Allow "set pm3d top/bottom" and "set pm3d interpolate N,M" - to be active at the same time. +2014-12-24 Shigeharu Takeno - * src/unset.c (reset_key): Don't leak memory when resetting key title. + * src/win/wgdiplus.cpp (SetFont_gdiplus): Font names may be given in + current encoding. Patch #712 -2013-10-11 Craig DeForest +2014-12-23 Hans-Bernhard Broeker - * src/wxterminal/wxt_gui.cpp (wxt_waitforinput): - Handle TERM_ONLY_CHECK_MOUSING in the single-threaded code path. - Bug #1293 + * src/win/wgnuplot.mnu: Parameter input for atan2() was wrong. SF + patch #1530 by Shigeharu Takeno. -2013-10-11 Ethan A Merritt + * src/win/wgnuplot-ja.mnu: Dito. - * src/wxterminal/wxt_gui.cpp (wxt_waitforinput): One code path followed - in the case of piped input to a script with mousing enabled failed to - test for the new TERM_ONLY_CHECK_MOUSING flag. - Bug #1293 +2014-12-21 Daniel J Sebald -2013-10-09 Ethan A Merritt + * src/wxterminal/wxt_gui.cpp: Track the most recent directory used + by the export-to-file widget. - * src/util.c (gprintf) axis.h: (REVERTED) +2014-12-19 Ethan A Merritt -2013-10-06 Ethan A Merritt + * src/wxterminal/wxt_gui.cpp (wxtPanel::wxt_cairo_create_bitmap): + Another fix for the wxt terminal linked against wxWidgets 3.0. + wxWidgets + wxgtk version 2.8 were fine with the sequence + delete cairo_bitmap; + cairo_bitmap = new wxBitmap(*image); + but version 3.0 hits a use-after-free that can be attributed to a + UI-triggered event invoking OnPaint(), which tries to access the old + bitmap before the new one has been assigned. Omitting the delete + "cures" this, but then there is a memory leak. Empirical tests seem + to show that it suffices to defer the delete operation until after + the assignment operation. A proper interlock might be better yet. + +2014-12-18 Ethan A Merritt + + * src/datafile.c (df_parse_string_field): If an input data file uses + Mac OS-9 format with \r as a line terminator, the entire file is + mis-recognized as one very long line. If there are nevertheless + recognizable field separators, the code to split out string fields into + separate saved storage goes crazy, consuming huge amounts of memory. + Detect and warn if an input string field exceeds MAX_LINE_LEN. + Bug #1445 (also see Bug #1355) - * term/aquaterm.trm term/cairo.trm term/canvas.trm term/emf.trm - term/gd.trm term/pdf.trm term/post.trm term/svg.trm term/win.trm - term/wxt.trm term/x11.trm term/qt.trm src/qtterminal/qt_term.cpp: +2014-12-18 Hans-Bernhard Broeker - Default to enhanced text mode in terminals that support it. - This mode can still be disabled by "set term FOO noenhenced" or - "set termoption noenhanced". + * term/win.trm (WIN_set_font): Revert incorrect change from + strncpy() to safe_strncpy(). -2013-10-06 Craig DeForest +2014-12-17 Ethan A Merritt - * src/axis.h src/util.c (gprintf) docs/gnuplot.doc: - New format specifier %h expands to the same as %g except that the - exponential term, if any, is written using enhanced text or LaTeX markup - to generate "x10^{foo}" rather than "E+foo". The default format for axis - tics is now "% h" ("$%h$" for LaTeX terminals). + * src/datafile.c (df_generate_pseudodata): The sampling variable in a + sampled plot is not necessarily x, so "set log x" should not affect it. + E.g. set log x; set angle degrees; + plot sample [a=1:360] '+' using (3+sin(a)):(cos(a)) with points + Bug #1495 -2013-10-02 Ethan A Merritt +2014-12-16 Bastian Maerkisch - * src/command.c (expand_1level_macros): Never try to expand an - undefined variable as a macro. + * win/gnuplot.iss: Change working directory of shortcuts to + current users's document folder. Works on Vista and upwards. Bug + #1415 -2013-10-02 Ethan A Merritt +2014-12-15 Bastian Maerkisch - * src/graphics.c (plot_steps plot_fsteps plot_histeps): - Replace 350 lines of ad hoc clipping with calls to draw_clip_line. + * demo/kdensity.dem: End demo with pause / reset - * src/gadgets.c src/gadgets.h: There are no longer any external callers - of clip_line(), so make it local to gadgets. + * config/mingw/Makefile: Convert eol style of text files to CRLF + during install. + Bug #1520 -2013-10-01 Christoph Bersch +2014-12-15 Ethan A Merritt - * src/plot2d.c (store_label): Plots with labels should accept variable - color both for the label text and for the associated point symbol. - Bug #1281 + * src/mouse.c (do_event) src/gplt_x11.c src/wxterminal/wxt_gui.cpp + src/qtterminal/QtGnuplotWidget.cpp: + Distinguish auto-generated replot events (e.g. replot-on-resize) from + user-generated replot events ('e' hotkey or toolbar replot widget). + Use GE_replot for the former, GE_keypress('e') for the latter. + Reject auto-generated replot requests while multiplot is active. + (wxt was already doing this; now we extend it to qt and x11 also). + Bug #1521 -2013-09-30 Ethan A Merritt + * src/wxterminal/wxt_gui.cpp: Do not change working directory in + file export widget. - * src/graphics.c (plot_bars): Draw error bars using draw_clip_line - rather than performing ad hoc clipping on the spot. - Bug #1289 +2014-12-14 Bastian Maerkisch -2013-09-26 Ethan A Merritt + * docs/windows/doc2html.c: Rename variable "basename" to "name" to + avoid a name conflict on some platforms. - * src/axis.c src/axis.h src/save.c src/set.c src/stdfn.h src/unset.c: - Consolidate axis range flags from two fields into a single field. +2014-12-13 Ethan A Merritt - * src/axis.c src/axis.h src/boundary.c src/gadgets.c src/gadgets.h - src/graph3d.c src/graphics.c src/hidden3d.c src/misc.c src/plot2d.c - src/plot3d.c src/pm3d.c src/save.c src/set.c src/show.c src/term_api.h - src/term.c src/util3d.c src/color.c: + * src/wxterminal/wxt_gui.cpp (wxtPanel::wxt_cairo_refresh): + The wxt terminal has been failing when linked against wxgtk3.0. + The overt symptom is a library assert statement sometimes followed by a + segfault: + ./src/gtk/dcclient.cpp(2043): assert "m_window" failed in DoGetSize(): + GetSize() doesn't work without window [in thread 7fb21f386700] + Call stack: + [00] wxOnAssert() + [01] wxClientDCImpl::DoGetSize(int*, int*) const + [02] wxBufferedDC::UnMask() + Both the assert and the segfault are due to the plot window not yet + having been rendered on the screen. The documented wxwidgets function + panel->IsShownOnScreen() fails to reliably detect this condition, so we + must use our own window id bookkeeping to skip any refresh commands + before the window appears. - Simplify the historical redundancy of color properties stored in struct - lp_style_type by removing the TBOOLEAN use_palette. FALSE meant generate - color from l_type; TRUE meant take color from t_colorspec pm3d_color. - Now we always use the t_colorspec. This means that l_type refers only - to the dot/dash pattern, not color, so it becomes easier to map it to a - user-visible property "dashtype" in the future. It also has the side - effect of creating a single decision point in apply_pm3dcolor() where - [almost] all color commands are filtered against the current terminal - setting monochrome/color. Before this, colors could slip erroneously - into a "monochrome" plot. Now we limit this to an explicit set of - conditions, currently plots with rgbimage, rgb variable, or certain - user-defined color palettes. That 3rd category is a bit loose and may - need to be more carefully defined. + Gnuplot Bug #1401 + Debian Bug http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=750045 + wxWidgets Bug http://trac.wxwidgets.org/ticket/16034 - * src/axis.c src/axis.h src/set.c src/unset.c: - Dynamically allocate axis->formatstring and axis->timefmt. +2014-12-11 Ethan A Merritt -2013-09-25 Ethan A Merritt + * src/wxterminal/gp_cairo.c (gp_cairo_move gp_cairo_initialize_plot): + Do not let zero-length move iterrupt the current polyline context + (dash pattern, end caps, polygon closure). + Bug #1523 - * src/axis.h src/plot3d.c: plot3d.c is the only user of NEED_PALETTE, - so move it there. + * src/plot2d.c (eval_plots): Save/restore original dummy variable name + for 'x', so that a sampling range using a named variable does not + clobber it. - * src/color.c (set_rgbcolor_var set_rgbcolor_const) src/color.h - src/pm3d.c src/hidden3d.c src/graphics.c src/graph3d.c: - Provide two parallel routines for passing RGB color information to a - terminal. set_rgbcolor_const sets the color immediately. - set_rgbcolor_var flags that this came from a plot with "rgb variable" - and passes it to apply_pm3dcolor for possible additional filtering - (e.g. decide whether to pass it to a monochrome terminal or not). +2014-12-11 Bastian Maerkisch -2013-09-23 Ethan A Merritt + * src/win/wgraph.c (drawgaph) src/win/wgdiplus.c (drawgraph_gdiplus): + Ignore intermediate move commands in a polyline sequence. Fixes + custom dashpatterns for splots and improves drawing performance. Note + that custom dashpatterns are only available for the GDI+ variant. + Bug #1523 - * src/term.c (null_set_color) src/term_api.h (TERM_NULL_SET_COLOR) - src/boundary.c src/color.c src/gadgets.c src/graph3d.c src/graphics.c: - Provide a null_set_color() routine to cover all terminals that do not - provide their own term->set_color() routine. This removes the need to - check for term->set_color before trying to call it. It also makes the - behavior of non-RGB terminals more consistent, although still imperfect. +2014-12-11 Shigeharu Takeno - * src/graph3d.c src/boundary.c: Don't try to use opaque (background) - fill if the terminal does not support RGB colors. + * docs/gnuplot.doc docs/term-jp.diff: sync to docs version 1.902.2.20 - * src/graph3d.c: Always color contour lines via set_color, even for - terminals that do not support RGB colors. - Bug #1284 +2014-12-08 Bastian Maerkisch - * src/command.c src/graph3d.c: Set can_pm3d based on TERM_NULL_SET_COLOR + * src/term.c (do_point): Always use solid lines to draw point symbols. -2013-09-20 Per Persson + * src/win/wgraph.c term/win.trm: Make sure that the window size + variables are initialized if wgnuplot.ini does not exist yet. + Fixes a regression introduced on 2014-10-16. - * configure.in m4/apple.m4 src/term.c src/term.h: - Modify configuration tests to look for aquaterm as a framework rather - than as a library. +2014-12-05 Ethan A Merritt -2013-09-20 Ethan A Merritt + * term/PostScript/prologue.ps: Re-order dash types to more closely + match the cairo and qt terminals. - * src/gadgets.h: Initialize histogram_opts to HT_CLUSTERED. - Bug #1285 + * src/wxterminal/wxt_gui.*: The toolbar widgets for replot/zoom/grid + require intervention by the core code in order to act. This is not + possible when in -persist mode after the parent process has exited, + so disable the toolbar widgets. - * src/graphics.c (place_grid): Must initialize tic_direction when - drawing r-axis tics. Otherwise we get whatever the last set of - x or y tics used, or if they have not been used then nothing at all. - Bug #1286 + * src/gp_types.h: New state flag INVALID_NAME for internal variables. + src/eval.c (pop_or_convert_from_string eval_link_function): + Consolidate initial tests for invalid internal variable type. + Test for the correct use of linked axis mapping function variables + (f(x) for x axis, f(y) for y axis, etc). + Bug #1519 - * src/boundary.c (draw_key) src/graph3d.c (do_3dplot): - If the terminal doesn't support term->set_color() then we can't - background-fill an opaque key box. +2014-12-01 Ethan A Merritt -2013-09-17 Ethan A Merritt + * src/axis.c (clone_linked_axes): Sanity check for linked axis via and + inverse functions used fabs() with wrong grouping of parentheses. + Bug #1519 - * term/emf.trm (EMF_point): filled circles (pointtype 7) were - incorrectly being drawn with a black border. +2014-11-25 Ethan A Merritt - * src/plot2d.c (polar_range_fiddling): In a polar mode plot, if x, y, - and r are all auto-scaled then prefer a symmetric plot centered at the - orgin with radius rmax over an asymmetric plot produced by treating the - data ranges on x and y independently. + * src/qtterminal/qt_term.cpp: Increase the number of pre-defined dash + patterns for the qt terminal to 5, matching the order used by the cairo + terminals. - * src/util.c (equals almost_equals): Additional sanity checking of - c_token on entry. +2014-11-23 Ethan A Merritt -2013-09-14 Ethan A Merritt + * src/axis.c src/set.c: The full names of the parallel axes are too long + to fit in character arrays built to hold the simpler name "x2/cb/etc". + But the 'set' commands using these arrays do not apply to parallel axes, + so we avoid problems by never loading these arrays for parallel axes. - * src/internal.c (f_push) src/parse.c src/parse.h src/command.c: - The routine try_to_get_string() was intended to safely return FALSE if - the current syntax cannot be evaluated as a string. But f_push() - triggered a fatal error if an unrecognized token was encountered during - evaluation. Now it quietly returns NaN and try_to_get_string() returns - FALSE. +2014-11-21 Ethan A Merritt - * src/misc.c (prepare_call): When parsing arguments to "call", treat - the next bit of the input line as a string if at all possible. This - includes taking the contents of a string variable or evaluating the - result of a string expression. Only fall back to wrapping each token - in quotes if this fails. This is a CHANGE made in preparation for a - re-implementation of the `call` command argument passing mechanism. + * term/gd.trm: Replace the dotted-line code in PNG_vector with an + adaptation of the dash pattern code used by canvas.trm. -2013-09-12 Ethan A Merritt + * src/term.c (term_apply_lp_properties): Special linetype LT_AXIS is + intended to produce a dotted line if possible, even on terminals that + do not support the general dash pattern mechanism introduced in v5. + This means that when rendering lines with linetype LT_AXIS the + dashtype code should not be called at all. This bug affected at least + the gd and qt terminals. + Bug #1516 - * src/eval.c (clear_udf_list) src/eval.h src/unset.c: Provide a routine - that deletes all currently defined user functions. This is invoked as - part of "reset session". + * src/axis.c (axis_name) src/save.c: paxis tics and range settings + were not being saved. - * src/plot.c (init_constants) src/plot.h src/unset.c: "reset session" - reinitializes variables NaN and pi since bad user code can clobber them. + * src/show.c: formatting typos (missing \t at beginning of line) -2013-09-11 Christoph Bersch + * src/graphics.c (map_position_r): If only the x coordinate delta is + requested, don't bother to calculate delta y, particularly because + delta y=0 will fail if y is log scale. + Bug #1512 - * src/set.c src/unset.c: Sanity check "set style increment foo" command, - reset to default on "reset" command. - Bug #1282 +2014-11-12 Ethan A Merritt -2013-09-09 Ethan A Merritt + * bump patchlevel identifier to -rc3 - * term/cairo.trm (cairopng_write_cropped_image): Must free cropped image - and the structure that holds it, otherwise there is a memory leak. - Bug #1278 +2014-11-11 Ethan A Merritt - * axis.h (TIC_SCALE): tics generated from data (e.g. xticlabels(COL)) - get same size tic marks as major tics. - Bug #1280 + * src/term_api.h term/README: Add a 2nd parameter to the interface for + term->modify_plots(operations, plotno). All terminals for which this + entry point is not NULL must be updated accordingly. This patch does + not by itself add any new functionality or user-visible change. + Better to make this change now rather than after release of 5.0 since it + breaks compatibility between core code and outboard drivers. - * pm3d.c (set_plot_with_palette): "tc variable" was incorrectly causing - the color bar to be drawn by default. + * src/mouse.c src/gplt_x11.c term/caca.trm term/win.trm term/x11.trm + src/qtterminal/QtGnuplotScene.cpp src/qtterminal/qt_term.* + src/wxterminal/wxt_gui.cpp src/wxterminal/wxt_term.h: + Update term->modify_plots() entry in the terminals that provide it. - * graphics.c (check_for_variable_color): "lc variable" should index the - line _type_ (not _style_) colors unless "set style increment user". - Bug #1281 +2014-11-07 Akira Kakuto - * plot2d.c (store_label): Same fix for "with labels tc variable". - Bug #1281 + * term/luz/gnuplot-tikz.lua: Use \errmessage rather than \PackageError + because not all TeX variants provide the latter. -2013-09-08 Ethan A Merritt +2014-11-07 Ethan A Merritt - * src/command.c src/misc.c src/misc.h src/plot.c: Clean up code, - remove unused variables, add comments, new parameter to load_file(), - all in preparation for a revision to the "call" mechanism. + Timefmt revision part 1 of 7 + * src/axis.c src/axis.h src/datafile.c src/fit.c src/mouse.c src/parse.c + src/save.c src/set.c src/setshow.h src/show.c src/unset.c + docs/gnuplot.doc demo/gantt.dem: - * src/scanner.c (scanner): The syntactic entity $# (number of arguments - in a call statment) has been mishandled as introducing a comment since - sometime in version 4.5. Trap it as a special case in the scanner. + - Remove axis->timefmt and replace it with a single global timefmt. + This is what the documentation has always said, but it breaks the + undocumented command: set timefmt y "fmt-different-from-xaxis-fmt" + - Add a new flag axis->tictype to control interpretation of tic format. + axis->datatype will continue to control input format interpretation. - * src/misc.c src/plot.c: New command line option - "gnuplot -c scriptfile ARG1 ARG2 ... " executes scriptfile using - "call" rather "load" and passes arguments ARG1 ARG2 etc. - This patch leaves the old call argument convention in place - $0 = ARG1, $1 = ARG2, etc, $# = number of arguments - but a future patch series will introduce a more C-like convention - for the arguments. Modified from an original patch by Shige Takeno. + Timefmt revision part 2 of 7 + * src/save.c src/save.h src/setshow.h src/show.c: -2013-09-07 Ethan A Merritt + - Replace macro SAVE_NUM_OR_TIME with routine save_num_or_time_input(). + This routine uses _input_ data format, mostly for reporting axis range. - * src/color.c src/color.h src/eval.c src/eval.h src/plot.c src/plot.h - src/set.c src/show.c src/unset.c docs/gnuplot.doc: + Timefmt revision part 3 of 7 + * src/save.c src/save.h src/show.c: - - Consolidate code called on program entry and during "reset". - - Group program-defined variables (pi, NaN, GNUTERM) at the start of the - udv list and protect them from deletion. - - New command "reset session" does a reset followed by loading gnuplotrc - and ~/.gnuplot. It also deletes (actually undefines) all user-defined - variables. This puts the program in approximately the same state as it - was on first entry. - - Fixes memory leak; palette functions were reset without being freed. + - Show and save xyz positions using time-format coordinates when needed. + Note that like axis ranges, these are meant to be read in again later. + Thus they are written using the input format not the output format. -2013-09-01 Peter Juhasz + Timefmt revision part 4 of 7 + * src/axis.c (get_tics copy_or_invent_formatstring) src/set.c + src/unset.c src/show.c src/save.c docs/gnuplot.doc demo/world.dem: - * src/mouse.h src/mouse.c src/unset.c (reset_command): - 'reset' command restores default mouse settings, warns on bogus - options, no longer accepts 'x' or similar axis options + - New command set {xyz}tics {time|geographic|numeric} sets axis->tictype + - Output formats chosen based on axis->tictype rather than axis->datatype + - Report axis->tictype setting with axis->format in "show" and "save" -2013-08-28 Christoph Bersch + Timefmt revision part 5 of 7 + * src/datafile.c src/parse.c: - * src/save.c (save_set_all): Emit a "unset object" command before - saving objects. Bug #1251 + - Track how many parameters were passed to timecolumn(), so that + version 4 behavior can be emulated when only 1 parameter is passed. -2013-08-28 Ethan A Merritt + Timefmt revision part 6 of 7 + * src/axis.h src/set.c: - * src/graphics.c src/graphics.h src/plot2d.c src/save.c src/save.h - src/set.c src/show.c src/unset.c docs/gnuplot.doc demo/histograms2.dem: - Accept an explicit title font and text color in "set style histogram" - and "newhistogram" commands. + - Add the tictype keywords to set format {axis} {time|geographic|numeric} + - Reset to numeric on "unset format" -2013-08-26 Ethan A Merritt + Timefmt revision part 7 of 7 + * src/time.c (gstrftime xstrftime) docs/gnuplotdoc demo/timedat.dem: - * src/command.c src/term_api.h term/x11.trm - src/qtterminal//qt_term.cpp src/wxterminal//wxt_gui.cpp: - Peter Juhasz's game demos show that the 1 msec timeout in - term->waitforinput(TERM_ONLY_CHECK_MOUSING) may be a mistake. - This patch #defines it as TERM_EVENT_POLL_TIMEOUT in term_api.h - and sets it to 0 by default. + Introduce a new time format modifier 't', used to distinguish dates + from times. This allows formatting time data as hours/minutes/seconds + relative to time=0 rather than as a calendar date. Compare these + representations of the stored value -3672.50 seconds: + default date format # "12/31/69 \n 22:58" + format "%tH:%tM:%tS" # "-01:01:12" + format "%.2tH hours" # "-1.02 hours" + format "%tM:%.2tS" # "-61:12.50" -2013-08-25 Ethan A Merritt +2014-11-07 Daniel J Sebald - * term/x11.trm (x11_waitforinput) term/xlib.trm: Handle the case of - input from a file, output to x11, and TERM_ONLY_CHECK_MOUSING. - xlib output should never expect mouse events. + * src/wxterminal/wxt_gui.{cpp|h}: Add a toolbar widget on the wxt + terminal to export current plot to a PNG, SVG, or PDF file. -2013-08-24 Ethan A Merritt +2014-11-04 Ethan A Merritt - * src/gplt_x11.c term/x11.trm: Use more precision when writing out - the axis dimensions and scale at the end of a plot. This prevents - rounding errors in the mouse coordinates reported in -persist mode. - Bug #1276 + * src/datafile.c (f_dollar f_column): When a data field containing NaN + is encountered, df_readline returns DF_UNDEFINED to the caller. + This is sufficient to handle plotting that point per se, but if the + value is also used in evaluation of an arithmetic expression with a side + effect then this undefined status flag is not available. For consistency + we now pass NaN to the expression evaluation code as well. E.g. + plot FOO using 1:(side_effect=f($2)) + could leave some random (probably left-over) value in side_effect. + Now if $2 is NaN and for example f(x) = (x+foo) then side_effect becomes + NaN also. Before this side_effect would have received some other, + incorrect, numerical value. -2013-08-23 Ethan A Merritt + * src/save.c (save_dashtype): dashtype -1 is an internal flag; do not + save it to an external file. - * src/command.c src/qtterminal/qt_term.cpp src/qtterminal/qt_term.h - src/readline.c src/term_api.h src/term.c src/wxterminal/wxt_gui.cpp - src/wxterminal/wxt_term.h term/ggi.trm term/win.trm term/x11.trm - term/README: +2014-11-01 Ethan A Merritt - Gnuplot handles mouse events and hotkeys by multiplexing them with - terminal input via the interface term->waitforinput(). That means no - events are handled if the program is not waiting for terminal input, - as in "load", "pause