Find file
Fetching contributors…
Cannot retrieve contributors at this time
3202 lines (2252 sloc) 123 KB
2015-07-03 Ethan A Merritt <>
* src/plot2d.h: Move the definition of SMOOTH_BINS_OPTION
into plot2d.h, since is not seen by the build system on
* demo/html/ Default to pngcairo terminal rather than png.
2015-07-02 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
2015-06-28 Hans-Bernhard Broeker <>
* Check for existence of latex2html.
* docs/ (htmldocs/gnuplot.html): Do not try to build if
latex2html was not found.
(alldoc): Target 'ms' no longer exists. Test actual outputs made
from instead.
2015-06-26 Ethan A Merritt <>
* src/qtterminal/QtGnuplotItems.dpp (drawPoint):
The "dots" style was inadvertantly made a no-op by change on 2015-02-15.
* demo/bins.dem docs/gnuplot.doc src/gp_types.h
src/plot2d.c src/interpol.c src/interpol.h demo/random.dem:
New data filter "bins" sorts the original data into equal width bins
on x and then plots a single value per bin. The default number of bins
is controlled by `set samples`, but this can be changed by giving an
explicit number bins=N in the plot command. The new feature is marked
EXPERIMENTAL in the documentation because we may decide to change the
syntax to "smooth bins" or "filter bins" or something else.
2015-06-23 Ethan A Merritt <>
* 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
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-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-04 <>
* Qt5 as build for Arch linux apparently requires
compilation with -fPIC rather than -fPIE.
Bug #1616
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
* src/parse.c (add_udv): Warn if too-long variable name is truncated.
Bug #1526
2015-06-02 Ethan A Merritt <>
* src/show.c: Clarify the current "set clip" settings in "show clip".
* src/term_api.h src/graph3d.c: Send TERM_LAYER_3DPLOT to the terminal
at the start of an splot.
* src/qtterminal/QtGnuplotScene.{cpp|h} src/qtterminal/qt_term.cpp:
If the current plot is 3D, do not update the status dispplay of x/y
coordinates in response to a mouse move event.
Bug #1605
2015-06-01 Daniel J Sebald <>
* src/mouse.c (event_buttonrelease): Improved bookkeeping for which
icon to display during mouse interaction.
Bug #1617
* src/gplt_x11.c (reset_cursor): Do not reset the cursor of the
currently active plot to default just before setting it to the correct
cursor icon. Prevents flicker due to transient change of icons.
Bug #1618
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/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
* docs/doc2ms.c docs/windows/doc2html.c: Avoid finicky C90 compiler
2015-05-30 Hans-Bernhard Broeker <>
* docs/ (noinst_PROGRAMS): Add doc2wxhtml.
(MOSTLYCLEANFILES, CLEANFILES): Split up into two lists, updated.
(GNUPLOT_EXE): New variable, points to freshly built gnuplot
($(GNUPLOT_EXE)): Build executable, 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)
( Must depend on in srcdir, not
builddir. Use automatic make variables to simplify. Changed build
of allows to remove complications for out-of-tree
( Call doc2ms with new argument to ease out-of-tree
(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.
(doc2wxhtml_SOURCES, doc2wxhtml_CPPFLAGS): Use automake to build
wxhtml, instead of spelling out compile rules ourselfs.
* (AM_INIT_AUTOMAKE): Up version requirement a bit,
enable option subdir-objects.
* docs/doc2ms.c (main, init): Add optional argument giving the
location of 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.
2015-05-30 Ethan A Merritt <>
* term/js/gnuplot_svg.js: The test (typeof tspan_element == 'tspan')
is now failing in multiple browsers. Comment it out for now.
Bug #1340
2015-05-22 Ethan A Merritt <>
* 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`.
2015-05-19 Ethan A Merritt <>
* src/axis.c src/axis.h: Update routines that were missed in the
axis pointer revision. Remove GET_NUM_OR_TIME (no callers remain).
Reorganize GET_NUMBER_OR_TIME, get_num_or_time to handle parallel axes.
2015-05-14 Ethan A Merritt <>
* term/tek.trm (SIXEL_fillbox): Handle FS_DEFAULT
* term/tek.trm (SIXEL_make_palette): A second call to make_palette()
was failed to reset the state, leading to loss of all palette info.
Now it overwrites any previous palette.
Bugfix (e.g. heatmaps demo)
2015-05-13 Ethan A Merritt <>
* src/qtterminal/QtGnuplotScene.* src/wxterminal/wxt_gui.*
term/svg.trm term/js/gnuplot_svg.js docs/gnuplot.doc:
EXPERIMENTAL support for a variant of hypertext that allows you to pop
up an image on mouse-over. The initial implementation looks for a
hypertext string of the form "image{{xsize},{ysize}}:filename".
2015-05-13 Shigeharu Takeno <>
* 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
2015-05-12 Ethan A Merritt <>
* 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).
* src/datafile.c src/graphics.c (process_image): Remove old code that
tried to empirically determine grid size of an image based on 3D coords.
Replace it with new bookkeeping in plot->image_properties.{ncols,nrows}
that is initialized when the image data is read in.
Bug #1607
2015-05-08 Ethan A Merritt <>
* src/contour.c src/graphics.c src/internal.c src/interpol.c
src/plot3d.c src/save.c src/set.c src/show.c src/tabulate.c:
Whitespace/codestyle cleanup "if (FOO)" rather than "if( FOO )"
* src/bitmap.c src/eval.c src/gadgets.c src/getcolor.c src/hidden3d.c
src/plot3d.c src/save.c src/set.c src/show.c src/stats.c src/unset.c:
Whitespace/codestyle "for (...) {" rather than "for( ... ){"
2015-05-07 Daniel J Sebald <>
* src/graph3d.c src/graph3d.h src/graphics.c src/graphics.h
src/plot2d.c src/hidden3d.c:
Replace plot_image_or_update_axes(*plot, TBOOLEAN), which handled
2 options, with new routine process_image(*plot, t_procimg_action).
* src/plot3d.c (eval_3dplots): Accommodate images in hidden3d
plots in a way analogous to the current handling of pm3d surfaces.
A phantom surface is constructed consisting of a single rectangle
that overlays the image, and that phantom is included as surface
in the hidden3d sort/divide/occlude processing.
2015-05-05 Ethan A Merritt <>
* 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
2015-05-03 Hans-Bernhard Broeker <>
* term/caca.trm: Insert missing include of <sys/select.h>.
* src/wxterminal/wxt_gui.cpp: Insert missing include of
(wxt_waitforinput): Add note about missing check for HAVE_SELECT.
2015-05-02 Hans-Bernhard Broeker <>
* src/ (getcolor_x11.o): Use Automake macros to
control whether tool calls are echoed or not.
* docs/ (LUA_HELP, allterm.h, troff, gnuplot.nroff)
(grotxt, grodvi, grops,, htmldocs/gnuplot.html)
(pdffigures.tex, figures, nofigures, gnuplot.pdf, gnuplot.tex)
(gnuplot.dvi, gpcard.dvi,,, gnuplot.hlp)
(gnuplot.gih, allgih, gnuplot.htb, wxhelp/wgnuplot.html)
(wxhelp/doc2html.o, wxhelp/doc2html$): Use Automake macros to
control whether tool calls are echoed or not.
(gnuplot.texi gnuplot-eldoc.el): Move compilation of ELisp out of
here. There was already a separate rule for it.
(${ELCS},, install-info, gnuplot.ipf, gnuplot.rtf)
(gnuplot.rnh, check-local, clean-local, install-vms): Use Automake
macros to control whether tool calls are echoed or not.
* docs/gnuplot.doc: Blank-only line fixed.
2015-04-30 Ethan A Merritt <>
* 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.
* demo/hidden2.dem: Add a demo/test for hidden3d processing of image
plots. It doesn't actually work at this point, but is useful as a test
case for new code.
* src/axis.c (axis_init) src/axis.h src/plot2d.c: Funnel existing
macros AXIS_INIT2D and AXIS_INIT3D into a single routine axis_init().
Whatever reason there was originally to distinguish the 2D and 3D cases
is no longer applicable in version 5.
2015-04-29 Ethan A Merritt <>
* Makefile.maint docs/pdffigures.tex docs/
Try to reduce churn during "make check" "make pdf" etc by removing
dvi as an auto-generated target and defaulting to documentation with
2015-04-27 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/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
2015-04-24 Daniel J Sebald <>
* src/misc.c (parse_fillstyle): Additional sanity checks when parsing
fillstyle options.
Bug #1597
2015-04-22 Ethan A Merritt <>
* src/fit.c: Fit code really cares about MAX_NUM_VAR, not MAXDATACOLS.
2015-04-22 Ethan A Merritt <>
* 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
2015-04-21 Ethan A Merritt <>
* src/axis.c src/axis.h src/plot2d.c src/set.c src/unset.c:
Switch to dynamic allocation of parallel axis structures. The count of
currently allocated structures is kept in global num_parallel_axes.
All storage is released by "reset".
At this stage there still remains a limit on how many parallel axes you
can use in practice because each one consumes a slot in the `using`
specifier (limited by MAXDATACOLS).
2015-04-20 Karl Ratzsch <>
* src/term.c (test_term): Show terminal's native dashtype support in
the `test` command output.
2015-04-20 Jun Takimoto <>.
* src/mouse.c (apply_zoom): axis->formatstring and axis->ticfmt are
now dynamically allocated and must be saved and restored when zooming.
2015-04-18 Ethan A Merritt <>
* src/axis.c src/axis.h: axis_defaults[PARALLEL_AXES] no longer needed.
* src/set.c src/show.c src/unset.c: Clean up a few references to
PARALLEL_AXES that should instead test for a more restrictive set of
* src/axis.c src/axis.h: Simplify implementation of axis_name().
2015-04-17 Ethan A Merritt <>
* src/axis.c src/axis.h: Second stage of moving parallel axis support
into dynamically allocated storage. Move the parallel axis structures
into a separate array and shrink the main axis_array[] accordingly.
* src/save.c src/set.c src/unset.c: Split various loops over the full
set of axes into two separate loops
for (axis=0; axis<AXIS_ARRAY_SIZE; axis++) ... axis_array[axis]
for (axis=0; axis<num_parallel_axes; axis++) ... parallel_axis[axis]
* src/unset.c (unset_range reset_command): Simplify code sections that
only have to handle the regular axes (not called for parallel axes).
Add temporary code to handle "reset" of parallel axes; this can go away
again when "reset" is changed to deallocate the parallel axes altogether.
2015-04-16 Ethan A Merritt <>
* 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 rather substitute with a fully transparent color,
but not all terminals handle transparency.
Bug #1595
* src/axis.c src/axis.h: Initial stage of moving parallel axis support
into dynamically allocated storage. Here we introduce a new global
AXIS *parallel_axis = &axis_array[PARALLEL_AXES]
For now it points to the existing storage. Later it will become dynamic.
* src/graphics.c (plot_parallel place_parallel_axes)
src/set.c (set_paxis) src/show.c (show_paxis):
Index or point to parallel axis structures relative to parallel_axis[]
rather than relative to axis_array[].
* src/plot2d.c (get_data) src/save.c (save_set_all)
src/unset.c (unset_command):
Index or point to parallel axis structures relative to parallel_axis[]
rather than relative to axis_array[].
* src/unset.c (free_axis_struct): New routine to free fields in an
axis structure that is about to be reinitialized or deleted.
2015-04-15 Hans-Bernhard Broeker <>
* src/show.c (show_paxis): Simplify call to save_prange();
(show_range, show_link): Call save_prange() instead of deprecated
* src/save.c (save_range): No longer called. Removed.
(save_set_all): Replace calls to save_range() by equivalent ones
to save_prange().
* src/stdfn.h (FPRINTF, DEBUG_WHERE): Make inactive definitions
more similar to active ones, for the benefit of people who don't
like to use {} around their if() bodies.
* src/save.h: Remove prototype for save_range.
2015-04-15 Ethan A Merritt <>
* src/graphics.c (plot_parallel place_parallel_axes): Revise to use
axis pointers rather than AXIS_INDEX.
* src/unset.c: Avoid using AXIS_INDEX where practical.
Limit initialization of grid/labels/etc to the axes that need it.
* demo/fit.dem: Exercise "set fit covariancevariables" in the demo.
* src/save.c: Avoid using AXIS_INDEX where practical.
2015-04-10 Daniel J Sebald <>
* 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
2015-04-09 Ethan A Merritt <>
* src/show.c: Revise internal routines to use axis pointers rather
2015-04-08 Ethan A Merritt <>
* src/fit.c (setvarcovar): Allocated size of string for FIT_COV_*_*
variables was too small, corrupting the allocation heap.
* src/fit.c (regress_finalize): Show results in the log file even if
the "quiet" option suppresses screen output.
2015-04-07 Ethan A Merritt <>
* src/term.c (termp_apply_lp_properties): Fix incorrect assumption
that dashtype 1 is always solid and already set by default.
Bug #1588
* term/emf.trm (EMF_linetype): Two linetypes (LT_SOLID LT_AXIS) have
an intrinsic dash pattern.
Bug #1588
* src/term.c (test_term): Use same sequence of setting line properties
linewidth/linetype/dashtype in the "test" command as in the core code.
* demo/imageNaN.dem: Illustrate NaN generated by negative values
on a log-scale palette mapping.
* 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.
2015-04-04 Hans-Bernhard Broeker <>
* src/term_api.h (DEFAULT_MONO_LINETYPES): Empty initializer is
not allowed.
2015-04-03 Ethan A Merritt <>
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/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.
2015-04-02 Karl Ratzsch <>
* 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().
2015-04-02 Hans-Bernhard Broeker <>
* compile: Add script required by automake.
* demo/plugin/ (demo_plugin_so_SOURCES): Add
(EXTRA_DIST): Add plugin.dem.
* demo/ ( Subdir 'plugin' has a, so it should not be in EXTRA_DIST.
2015-03-29 Ethan A Merritt <>
* 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 <line-properties>}
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.
2015-03-27 Ethan A Merritt <>
* src/save.c src/save.h Axis pointer conversion of
save_range, save_tics, save_num_or_time_input.
2015-03-24 Erik Olofsen <>
* 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.
2015-03-24 Ethan A Merritt <>
* term/fig.trm term/epson.trm term/tek.trm: Remove unused variables.
2015-03-24 <>
* src/mouse.c src/plot2d.c src/wxterminal/gp_cairo.c:
Incorrect argument type to abs() or fabs().
* src/stats.c (analyze_sgl_column): Incorrect truncation of double to
int while calculating absolute deviation.
Bug #1584
2015-03-24 Tatsuro MATSUOKA <>
* src/command.c (pause_command): Work around a bug seen for
mingw + SJIS encoding.
2015-03-23 Ethan A Merritt <>
* term/fig.trm: Preload user-defined linetype colors and gnuplot's
set of named colors so that they are available in fig plots.
2015-03-22 Ethan A Merritt <>
* 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.
* src/unset.c: Revise internal routines unset_tics() unset_minitics()
and unset_range() to use axis pointers rather than AXIS_INDEX.
2015-03-21 Hans-Bernhard Broeker <>
* demo/plugin/.cvsignore: Added.
* config/cygwin/.cvsignore: Added.
* config/watcom/.cvsignore: Ignore two more files.
* docs/ (clean-local): $(LUA_HELP) file has to be
cleaned, too.
2015-03-19 Ethan A Merritt <>
* 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.
2015-03-17 Ethan A Merritt <>
* src/set.c: Revise many internal routines in set.c to use axis pointers
rather than AXIS_INDEX.
2015-03-14 Ethan A Merritt <>
* src/axis.h src/plot2d.c: Revise macros AXIS_INIT2D and (the big one)
ACTUAL_STORE_WITH_LOG_AND_UPDATE_RANGE to use axis pointers rather than
AXIS_INDEX. This is mostly invisible to the higher-level code.
* src/axis.h src/axis.c src/set.c: Revise load_range() to take axis
pointers. Export get_num_or_time().
* src/axis.h src/axis.c src/plot2d.c src/set.c src/datafile.c:
Revise add_tic_user() to take axis pointer rather than AXIS_INDEX.
2015-03-13 Ethan A Merritt <>
* src/axis.c src/axis.h src/datafile.c src/plot2d.c:
Revise axis_unlog_interval() to use pointers rather than AXIS_INDEX.
* src/axis.c src/axis.h src/graphics.c:
Revise old routine axis_revert_range(AXIS_INDEX) to be a wrapper for a
new routine axis_invert_if_requested(struct axis *).
* src/axis.c: Change many call sites to use the new macros and new
routine variants taking an axis pointer rather than an AXIS_INDEX.
This set of changes is purely internal to code in axis.c.
* src/axis.c src/axis.h src/boundary.c src/graphics.c src/mouse.c
src/plot3d.c: Revise make_tics(), copy_or_invent_formatstring(), and
setup_tics() to use axis pointers rather than AXIS_INDEX.
* src/unset.c: Fix memory leak (linked axis function) on reset.
2015-03-12 Ethan A Merritt <>
Begin bottom-up revision of axis handling routines to use pointers
rather than array indices.
* src/axis.h: Modify the template for axis tic-generation callbacks from
callback(AXIS_INDEX, ...) to callback(struct axis *, ...)
* src/axis.c (widest_tic_callback): Modify widest_tic_callback to match
the new template, although it needs no axis information
* src/graphics.c (xtick2d_callback ytick2d_callback)
src/graph3d.c (xtick_callback ytick_callback ztick_callback):
Modify 2D and 3D axis callbacks.
* src/color.c (cbaxis_callback): Modify color axis callback.
* src/axis.c (gen_tics): Modify the call sites for all of these.
Next level up: Modify gen_tics() and all the places that call it.
old: gen_tics(AXIS_INDEX axis, callback)
new: gen_tics(struct axis *this, callback)
* src/axis.h src/axis.c (gen_tics):
* src/boundary.c src/color.c src/graph3d.c src/graphics.c: call sites
2015-03-11 Ethan A Merritt <>
Gradually move all axis-related information into the axis structure
itself rather than leaving it spread out among multiple arrays indexed
in parallel. The rationale is to allow routines that process this
information to operate from a pointer to (struct axis) rather than from
an array index. This will allow dynamically allocated axis definitions.
* src/axis.c src/axis.h src/unset.c: Part 1 - Keep a copy of the axis
index (e.g. SECOND_Y_AXIS) in the axis structure. This may eventually
go away again, but for now it allows calling a routine that wants the
axis index from a routine that works from an axis pointer.
* src/axis.c src/axis.h: Part 2 - Replace the separate arrays
timelevel[] and ticstep[] by moving their respective contents into new
fields axis->timelevel and axis->ticstep.
* src/axis.c src src/axis.h src/unset.c: Part 3 - Replace the static
array ticfmt[AXIS_ARRAY_SIZE][MAX_ID_LEN+1] with a dynamically
maintained field axis->ticfmt.
* src/axis.c src/axis.h: Part 4 - Reduce length of axisname_tbl[] to
contain only the axes that use it (i.e. no individual parallel axis
* src/axis.h: New versions of axis data macros that use axis pointers.
New macro axis_{un}do_log(struct axis *,value) analogous to
New macro axis_map(struct axis *, variable) analogous to
New macro tic_scale(ticlevel, struct axis *) analogous to
2015-03-08 Ethan A Merritt <>
* src/datafile.c: The code tracking matrix column/row headers tried
to extract the relevant string from the wrong internal array.
Bug #1575
2015-03-06 Allin Cottrell <>
* src/wxterminal/gp_cairo.c: Prevent free() of a string constant.
2015-03-05 Ethan A Merritt <>
* 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
* demo/hypertext.dem: Simplify output file (attach hypertext to only
one set of points).
2015-03-02 Ethan A Merritt <>
* 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
2015-02-26 Ethan A Merritt <>
* src/fit.c src/fit.h src/set.c src/save.c src/show.c: "set fit nolog"
* 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
2015-02-24 Mojca Miklavec <>
* m4/apple.m4 term/aquaterm.trm:
Correct "Aquaterm" to "AquaTerm" (framework name is case sensitive).
2015-02-23 Ethan A Merritt <>
* src/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
2015-02-18 Shigeharu Takeno <>
* term/gd.trm (PNG_vector): Prevent accummulated round-off error in
dotted line emulation by using (double) variables to track incremental
Bug #1549
2015-02-18 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
2015-02-15 Ethan A Merritt <>
* src/axis.h src/axis.c src/set.c: Do away with 4 utility routines
{set|get}_writeback_{min|max} that did nothing but provide a
round-about way to access the next field in a structure that is
already active. E.g. axis->min = get_writeback_min(axis) becomes
axis->min = axis->writeback_min.
* src/boundary.c src/color.c: Remove dead code (commented-out extra
parameter to gen_tics()).
2015-02-15 Hans-Bernhard Broeker <>
* src/axis.h (AXIS_INDEX): Change value of NO_AXIS to -2. Make
AXIS_ARRAY_SIZE an enum entry, again.
(NUMBER_OF_MAIN_VISIBLE_AXES): New name, to be used instead of
(LAST_REAL_AXIS): Removed.
(AXIS_IS_SECOND, AXIS_IS_FIRST): New macros to formalize checking
if an axis is among the second or first axes, respectively.
New macros to centrally define how to switch from a first axis to
its corresponding secondary axis, and vice versa.
(axis): Change type of linked_to_primary from bool to an actual
pointer to the linked axis struct.
around macro argument use. Use linked_to_primary as a pointer.
* src/axis.c (setup_tics): Cloning takes only one argument now.
(axis_output_tics): Rely less on axis array layout.
(some_grid_selected): Use new axis range macro.
(get_position_type): Use correct type for axis index argument.
(get_position_default): Use correct type for localaxis index
variable. Catch attempted use of z2 axis.
(clone_linked_axes): Use only one argument. The other is implied
anyway. Do some sanity checks first up.
* src/command.c (link_command): Initialize local variables. Axis
link information is a pointer now. Concentrate knowledge about
links between axes more into axis methods.
* src/eval.c (eval_link_function): Use correct type for axis index
* src/gplt_x11.c (plot_struct): Use new axis range name.
(byteswap): Define variable more locally.
(exec_cmd): New local pointer to make code easier to understand.
Use new axis range name.
* src/graphics.c (adjust_offsets): Concentrate knowledge about
links between axes more into axis methods.
* src/plot2d.c (eval_plots): Concentrate knowledge about links
between axes more into axis methods.
* src/save.c (save_set_all): Use new axis range name.
(save_range): linked_to_primary is a pointer now.
* src/show.c (show_zeroaxis): Use new macro about distinction
between first and second axes.
* src/unset.c (unset_logscale): Use new axis range name.
(reset_command): linked_to_primary is a pointer now.
* term/x11.trm (X11_text): Loop over AXIS_INDEX should use that
type for the index variable. Use new axis range name.
* docs/doc2tex.c (section, puttex): Correct use for <ctype.h> functions on
plain char requires a cast to unsigned char.
* docs/doc2ms.c (section): Correct use for <ctype.h> functions on
plain char requires a cast to unsigned char.
* src/set.c (set_dummy): Correct use for <ctype.h> functions on
plain char requires a cast to unsigned char.
(set_degreesign): Avoid -Wunused.
(set_logscale): Use modified axis range name.
(set_range): Concentrate knowledge about links between axes more
into axis methods.
2015-02-13 Ethan A Merritt <>
* src/gadgets.c (apply_pm3dcolor): Variable color specifier "palette cb"
failed to handle log-scaling of the color axis.
Bug #1560
* src/mouse.c (load_mouse_variables): MOUSE_BUTTON was not set correctly.
2015-02-11 Erik Olofsen <>
* configure.vms: update compile-time variables to include HAVE_VFPRINTF
2015-02-09 Ethan A Merritt <>
* src/boundary.c (do_key_sample_point) src/graphics.c (do_plot)
src/graph3d.c (do_3dplot): Until now "with labels" plots could have
a point associated with each label but the point style was not
indicated in the key. Now it is.
* src/qtterminal/QtGnuplotIterms.cpp (drawPoint):
Don't draw an extra dot at the nominal origin of each point symbol.
2015-02-06 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
2015-02-03 Ethan A Merritt <>
* src/plot2d.c: Allow "noautoscale" keyword to appear anywhere in
the plot command, not just immediately after the using specifier.
* 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.
2015-02-02 Shigeharu Takeno <>
* docs/term-ja.diff docs/gnuplot-ja.doc:
Sync Japanese documentation to doc version 1.935
2015-02-01 Ethan A Merritt <>
* src/graphics.c (plot_betweencurves): This routine now handles both
the 3-column variant of filledcurved ("between") and the y1=<yval> or
y2=<yval> variants. In order that various lower level routines do not
get confused, set the same options flag FILLEDCURVES_BETWEEN for all
of these. (Bug fix)
2015-01-27 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/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.
* src/save.c: Use "set xyplane relative" rather than the deprecated
"set ticslevel".
2015-01-24 Ethan A Merritt <>
* src/command.c (test_palette_subcommand): Apply numeric locale to the
$PALETTE datablock created by the "test palette" command.
* term/pslatex.trm: Separation of linetype/dashtype in version 5 means
that term->set_color should not be turned into term->linetype.
Bug #1545
* src/term.c (term_test): Fix failure to save/restore arrow style.
Use LT_SOLID for box around central text.
Bug #1546
2015-01-20 Ethan A Merritt <>
* src/graphics.c: Restore several lines of code that were inadvertantly
lost in the revision to filledcurve processing (2015-01-16).
* src/graphics.c src/help.c src/hidden3d.c src/interpol.c src/color.c
src/graph3d.c: Back in 2001 some comparator functions passed to qsort
were made non-static to work around a bug in HPUX. The reason for that
is long gone, so make them static as they ought to be.
2015-01-19 Ethan A Merritt <>
* src/boundary.c src/set.c src/save.c: set/save/apply text justification
to key title.
* src/command.c src/datablock.c src/eval.c src/eval.h src/fit.c
src/gp_types.h src/internal.c src/misc.c src/mouse.c src/parse.c
src/plot2d.c src/plot3d.c src/plot.c src/save.c src/set.c src/show.c
src/standard.c src/stats.c src/term.c src/util.c term/lua.trm:
Move the "undefined" status flag from udvt_entry->udv_undef into
the value itself (udvt_entry->udv_value.type == NOTDEFINED).
This prevents coding mistakes which would leave a data type in the
value even though the variable itself is marked undefined.
Also it allows tracking or setting the undefined status in routines
that are passed a pointer to a value rather than a udvt_entry.
2015-01-16 Ethan A Merritt <>
* 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/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.
* demo/timedat.dat: Add a line of headers to exercise the new sanity
checks in gstrptime.
* src/graphics.c src/plot2d.c: Fix breakage in plot style
filledcurves {above|below} y1=<yval>
2015-01-15 Ethan A Merritt <>
* src/graphics.c (plot_filledcurves): Reevaluate variable fill color
for every polygon in the input stream to "with filledcurves".
Bug/Feature Request #411
* 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
2015-01-13 Ethan A Merritt <>
* 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/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.
2015-01-10 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
* term/cairo.trm (cairotrm_put_text): For some reason 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, but I do not understand why this would be necessary for the
cairo terminals when other terminals do not require it.
Test case: set key title "{/:Bold Hello}"; plot sin(x) title "World"
Bug fix
2015-01-10 Ethan A Merritt <>
* term/gd.trm: Ensure that the brush used for drawing dotted lines
is reinitialized for each new line.
Bug #1516
2015-01-10 Karl Ratzsch <>
* docs/gnuplot.doc: Clarify sampling used by '+' special file.
2015-01-10 Christoph Bersch <>
* 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.
2015-01-09 Ethan A Merritt <>
* src/datafile.c (df_determine_matrix_info): Apply numeric locale
when reading ascii matrix data.
Bug #1536
2015-01-07 Ethan A Merritt <>
* Qt5 check via pkg-config --variable=host_bins seems
fragile; revise to work on two different test machines.
* 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.
2015-01-07 Achim Gratz <>
* Qt5 check via pkg-config should use --variable=host_bins
rather than --variable=exec_prefix
2015-01-06 Ethan A Merritt <>
* src/boundary.c src/gadgets.h src/graph3d.c src/save.c src/set.c
src/show.c src/unset.c: Track font and enhanced flag for the key title
separately from those for the key entries.
Bug #1525
* 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 <left>, <right>, <top>, <bottom>
but this order in non-intuitive and conflicts with the order in
other commands (e.g. set multiplot layout). CHANGE this to
set margin <left>, <right>, <bottom>, <top>
Note that the code now sanity checks that (top > bottom), so this change
will not be noticed for margins given in screen coordinates.
2015-01-06 Ethan A Merritt <>
* 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
2015-01-04 Jouke Witteveen <>
* 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
2015-01-03 Jouke Witteveen <>
* src/plot2d.c (check_or_add_boxplot_factor): Distinguish between
boxplot category labels where one is a leading substring of the other.
Bug #1532
2015-01-01 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 <left>, <right>, <bottom>, <top> # (wrong order)
2014-12-30 Ethan A Merritt <>
* src/qtterminal/qt_term.cpp (qt_atexit): Sanity check.
2014-12-28 Bastian Maerkisch <>
* docs/ Update to version 5.
* docs/gnuplot.doc: groff tables for stats command. Several groff
syntax fixes and minor layout tweaks.
* config/mingw/Makefile: New targets grops and gropdf.
* config/config.os2 config/makefile.os2: Update to version 5.
* src/term_api.h src/os2/gclient.c: Eliminate compiler warnings.
* src/wxterminal/wxt_gui.cpp:
Use cairo_show_page() rather than cairo_surface_show_page()
2014-12-26 Bastian Maerkisch <>
* src/qtterminal/qt_term.cpp: Remove dead code. Avoid implicit
casts to unsigned int.
2014-12-24 Bastian Maerkisch <>
* src/win/wgraph.c (drawgraph) src/win/wgdiplus (drawgraph_gdiplus):
Failure to re-initialize the font name and size for enhanced text.
Bug #1529
2014-12-24 Shigeharu Takeno <>
* src/win/wgdiplus.cpp (SetFont_gdiplus): Font names may be given in
current encoding. Patch #712
2014-12-23 Hans-Bernhard Broeker <>
* src/win/wgnuplot.mnu: Parameter input for atan2() was wrong. SF
patch #1530 by Shigeharu Takeno.
* src/win/wgnuplot-ja.mnu: Dito.
2014-12-21 Daniel J Sebald <>
* src/wxterminal/wxt_gui.cpp: Track the most recent directory used
by the export-to-file widget.
2014-12-19 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)
* src/command.c (do_line):
Report error if a "load" file fails to close an open bracketed clause.
Bug #1522
2014-12-18 Hans-Bernhard Broeker <>
* term/win.trm (WIN_set_font): Revert incorrect change from
strncpy() to safe_strncpy().
2014-12-16 Hans-Bernhard Broeker <>
* Added copy of former, updated to
preferences of autoconf-2.69, automake-1.14.
* Dropped
* mkinstalldirs, missing, install-sh, depcomp: Update from recent
* src/syscfg.h (RETSIGTYPE): Note that former fall-back definition is now
2014-12-16 Bastian Maerkisch <>
* win/gnuplot.iss: Change working directory of shortcuts to
current users's document folder. Works on Vista and upwards.
Bug #1415
2014-12-15 Bastian Maerkisch <>
* demo/kdensity.dem: End demo with pause / reset
* config/mingw/Makefile: Convert eol style of text files to CRLF
during install.
Bug #1520
2014-12-15 Ethan A Merritt <>
* src/mouse.c (do_event) src/gplt_x11.c src/wxterminal/wxt_gui.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
* src/wxterminal/wxt_gui.cpp: Do not change working directory in
file export widget.
2014-12-14 Bastian Maerkisch <>
* src/command.c src/command.h src/mouse.c src/mousecmn.h src/plot.c
src/qtterminal/qt_term.cpp src/win/wgraph.c src/win/wpause.c
src/wxterminal/wxt_gui.cpp src/wxterminal/wxt_term.h:
Revise "pause mouse" handling on Windows to handle windows, wxt, qt
and caca terminals. Test if the current terminal window is actually
open before waiting for mouse input. (Not yet implemented for qt.)
The windows terminal no longer expects the core code to reset the
paused_for_mouse flag (like the qt, wxt and x11 terminals). The
code no longer opens an invisible window to handle "pause mouse" and
code to close this window when "pause mouse" mode ends can thus be
removed. Interrupting pause mouse via Ctrl-C should now be possible.
Bug #1502
* term/caca.trm (waitforinput): Support "pause mouse" if the graph is
shown in a window. Bugfix.
* docs/windows/doc2html.c: Rename variable "basename" to "name" to
avoid a name conflict on some platforms.
2014-12-13 Ethan A Merritt <>
* 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
./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.
Gnuplot Bug #1401
Debian Bug
wxWidgets Bug
2014-12-11 Ethan A Merritt <>
* src/wxterminal/gp_cairo.c (gp_cairo_move): Do not let zero-length
move interrupt the current polyline context (dash pattern, end caps,
polygon closure).
Bug #1523
* src/datafile.c (df_generate_pseudodata): Prevent infinite loop if
sampling range is zero.
* 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.
2014-12-11 Bastian Maerkisch <>
* 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
2014-12-08 Ethan A Merritt <>
* src/axis.c (parse_range) src/datafile.c (df_generate_pseudodata):
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
2014-12-08 Bastian Maerkisch <>
* src/term.c (do_point): Always use solid lines to draw point symbols.
* 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.
2014-12-07 Ethan A Merritt <>
* 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
2014-12-05 Ethan A Merritt <>
* term/PostScript/ Re-order dash types to more closely
match the cairo and qt terminals.
2014-12-03 Ethan A Merritt <>
* src/internal.c: Indentation cleanup for type-check macro BAD_DEFAULT
* 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
2014-12-01 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
2014-11-25 Ethan A Merritt <>
* 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
2014-11-23 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.
2014-11-21 Ethan A Merritt <>
* term/gd.trm: Replace the dotted-line code in PNG_vector with an
adaptation of the dash pattern code used by canvas.trm.
* 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/axis.c (axis_name) src/save.c: paxis tics and range settings
were not being saved.
* src/show.c: formatting typos (missing \t at beginning of line)
* src/graphics.c (map_position_r): If only the x coorinate delta is
requested, don't bother to calculate delta y, particularly because
delta y=0 will fail if y is log scale.
Bug #1512
2014-11-21 Bastian Maerkisch <>
* src/config/mingw/Makefile: Build
* src/config/config.mgw: Sync with config.h created by autoconf tools.
2014-11-18 Ethan A Merritt <>
* 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.
2014-11-16 Hans-Bernhard Broeker <>
* term/ ( Drop creation of conditional
definition of build_lua.
(all, $(srcdir)/lua/ Drop rules for lua help
file fragment generation.
* docs/ (LUA_HELP) [BUILD_LUA]: Define to name of lua
help file fragment.
($(LUA_HELP)) [BUILD_LUA]: Build lua help file fragment.
(allterm.h): Depend on $(LUA_HELP).
* term/lua.trm: Make inclusion of help file fragment depend on
HAVE_LUA. Needed for doc builds that unconditionally include all
terminals' help. Remove "lua/" from include file name.
2014-11-15 Hans-Bernhard Broeker <>
* term/ ($(srcdir)/lua/ Test for
file existence is -f, not -x.
2014-11-15 Ethan A Merritt <>
* term/ rebuild term/lua/
only if --with-lua, otherwise skip this in building the docs
2014-11-12 Ethan A Merritt <>
* term/lua/ (remove from repository)
* term/ rebuild term/lua/
2014-11-07 Akira Kakuto <>
* term/luz/gnuplot-tikz.lua: Use \errmessage rather than \PackageError
because not all TeX variants provide the latter.
2014-11-06 Ethan A Merritt <>
* src/time.c (gstrftime xstrftime) docs/gnuplotdoc demo/timedat.dem:
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"
2014-11-04 Daniel J Sebald <>
* src/wxterminal/wxt_gui.cpp: Restore Copy-to-Clipboard option in wxt
2014-11-04 Ethan A Merritt <>
* 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.
* src/save.c (save_dashtype): dashtype -1 is an internal flag; do not
save it to an external file.
2014-11-02 Hans-Bernhard Broeker <>
* config/config.oww: If we're going to use strnlen_s for strnlen,
must define according C99 library extension macro.
* src/set.c (set_dashtype): Command input following the 'default'
option would cause a crash by double-deleting from linked list.
(parse_histogramstyle): Option "title" is not protected against
multiple use. This might cause double-free of font field.
* src/bf_test.c (main): Move file-open error handling further up,
to avoid (harmless) memory leak. Use standard failure return
instead of magic constant. Allocations were relying on
sizeof(float)==sizeof(float *).
* src/getcolor.c (GROW_GRADIENT): Query realloc()ed pointer for its
own type's size; safer than making assumptions about it.
(approximate_palette): Dito; and in this case the type was
actually wrong.
2014-11-01 Ethan A Merritt <>
* term/cairo.trm (cairotrm_put_text) src/wxterminal/wxt_gui.cpp
(wxt_put_text): Start each top level enhanced text recursion using
the full font name given in "set term font 'foo'", rather than the
most recent font stored in the plot (which is only the font family
name, not bold/italic/other). This maintains bold or italic in the
original font name, but I am not entirely convinced that it cannot
overwrite an intentional change in font family.
Bug #1505
2014-10-31 Ethan A Merritt <>
* src/plot2d.c: Issue a warning if someone tries to specify a
sampling range for a data plot.
Bug #1510
2014-10-31 Bastian Maerkisch <>
* src/wxterminal/wxt_gui.cpp (wxtFrame::OnSize): Only replot on
resize if the wxt settings were properly initialized by wxt_init().
On Windows, this would otherwise cause many graph windows to be
opened when the first plot command is issued and gnuplot finally
hangs or crashes.
2014-10-30 Daniel J Sebald <>
* src/wxterminal/wxt_gui.{cpp|h}: Replace the clipboard widget on the
wxt terminal toolbar with a widget to save current plot to a file.
EAM: Output to PNG via standard wxWidgets component
Output to SVG or PDF by replaying cairo history for current plot.
2014-10-29 Christoph Bersch <>
* term/lua/gnuplot-tikz.lua term/luz.trm: Boxed text support.
2014-10-29 Shigeharu Takeno <>
* docs/gnuplot.doc docs/term-ja.diff docs/gnuplot-ja.doc:
Fix typos. Sync Japanese documentation to 1.921
2014-10-26 Ethan A Merritt <>
* term/wxt.trm src/wxterminal/wxt_term.h src/wxterminal/wxt_gui.*:
Add a checkbox to the tool widget controlling whether or not the
plot is redrawn via "replot" as the terminal window is resized.
2014-10-19 Christoph Bersch <>
* term/lua/gnuplot-tikz.lua: Missing initializations.
Bug #1503
2014-10-16 Christoph Bersch <>
* src/stats.c: The stats code was confusing the x and y dimensions of
matrix data. E.g. it would report a 5X7 matrix as being 7X5, and
mis-calculate the indices of the min/max values.
Bug #1501
* term/lua/gnuplot-tikz.lua: Fix incorrect font test.
Bug (Feature Request) #409
2014-10-16 Bastian Maerkisch <>
* src/win/wgnuplib.h src/win/wgraph.c term/win.trm: The `size` option
now refers to the canvas size instead of the window size in order to be
consistent with the qt and wxt terminals. The window size can still be
set with the new `wsize` option. Settings are now included in output of
`show term`.
Bug #1400
2014-10-11 Christoph Bersch <>
* term/lua/gnuplot-tikz.lua: LT_AXIS and LT_SOLID imply specific
dash types.
Bug #1491
2014-10-11 Hans-Bernhard Broeker <>
* src/axis.c (copy_or_invent_formatstring): Lower end of axis may
need more precision in invented format than the distance between
max and min. Bug #1496
2014-10-08 Ethan A Merritt <>
* src/save.c (save_all): Write out the filename last used for plotting.
This makes a saved plot command referencing '' slightly more useful.
2014-10-07 Ethan A Merritt <>
* src/misc.c (lf_push lf_pop): If lf_push/lf_pop are invoked from
do_string_and_free to handle bracketed if{} or do{} expressions, they
should not touch the call arguments ARG1, ARG2, ... Save/restore of the
call arguments is only needed if lf_push/lf_pop are invoked by "call".
Bug #1494
2014-10-05 Ethan A Merritt <>
* src/axis.h src/set.c (set_format):
Timefmt revision part 6
- Add tictype keywords to "set format {axis} {time|geographic|numeric}"
- Reset to numeric on "unset format"
2014-10-04 Ethan A Merritt <>
* 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:
Timefmt revision part 1 of 4
- 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.
- If only a single parameter is passed to timecolumn() try to emulate
the version 4 behavior (use global timefmt)
* src/save.c src/save.h src/setshow.h src/show.c:
Timefmt revision part 2 of 4
- 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/save.c src/save.h src/show.c:
Timefmt revision part 3 of 4
- 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
so they are written using the input format not the output format.
* 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:
Timefmt revision part 4 of 4
- 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"
2014-10-03 Christoph Bersch <>
* term/lua/gnuplot-tikz.lua: linetype -1 must reset dashtype to solid.
Bug #1491
2014-10-01 Ethan A Merritt <>
* src/misc.c (arrow_parse): Remove order dependence of "fixed" keyword.
* src/hidden3d.c (draw_edge): When an arrow is split into segments by
hidden surface processing, only keep the arrowhead on the original tip.
* src/plot2d.c (get_data): Timedata for HISTOGRAMS requires a special
* src/boundary.c src/color.c src/gadgets.c src/gadgets.h src/graph3d.c
src/graphics.c src/hidden3d.c src/misc.c src/mouse.c src/multiplot.c
src/term.c: Remove wasted parameter passed to apply_pm3dcolor(),
reset_textcolor(), and get_offsets().
* docs/gnuplot.doc: Replace outdated section on `set xdata time`.
2014-09-26 Ethan A Merritt <>
* term/js/gnuplot_mouse.js: Typo in logical test for hypertext.
* src/axis.h src/save.c src/set.c src/show.c src/unset.c src/graphics.c
src/graph3d.c: set [*]tics {{no}enhanced}
2014-09-24 Bastian Maerkisch <>
* src/win/wgraph.c term/win.trm: The windows terminal allowed users
to change linetypes via an ini file or with the help of a dialog. This
has been superseeded by the more general `set linetype` mechanism.
The old code is still available but only active with WIN_CUSTOM_PENS
defined during compilation.
* src/win/wgraph.c src/win/wgidplus.c: Accept zero point size.
Eliminates drawing of unwanted point symbols for labelled contours.
2014-09-24 Ethan A Merritt <>
* term/aed.trm term/v384.trm
config/makefile.dj2 config/makefile.emx config/makefile.vms
configure.vms docs/doc2texi.el docs/ src/makefile.all
src/makefile.awc src/term.h:
Remove obsolete terminals:
aed: pre-1980 display device ($15,000) with 500x500 pixels, 256 colors
v384: Vectrix VX 384 mid 1980s graphics display terminal ($5000) with
672x480 pixels, 512 colors
* src/interpol.c: Force the number of intervals used for interpolating
monotonic cubic splines ("smooth mcsplines") to be at least twice the
number of data points.
2014-09-22 Christoph Bersch <>
* src/misc.c (parse_fillstyle): Remove order dependence of keyword
* term/lua.trm term/lua/gnuplot-tikz.lua:
Support RGBA linecolors and LT_NODRAW. Add a linewidth terminal option.
2014-09-20 Bastian Maerkisch <>
* src/fit.c src/fit.h src/save.c src/set.c src/show.c src/unset.c
docs/gnuplot.doc demo/fit.dem: Remove xerrors option (which requires 3
columns) since it is not like the xerrorbars plot style (which requires 4).
Rename `noerrors` option to `unitweights`. Let the fit command default
to `unitweights`, i.e. do not interpret the last column of the using
spec as z-errors. Add a command `set fit v4|v5` to switch between
old-style command line syntax and the new one. Default to `v5`, but
`reset` does not change the current setting.
Note that this change is backward-incompatible with v5-rc1 and v5-rc2.
However it restores compatibility with v4, subject to the restriction
that all independent variables must appear in the "fit" command itself
(see below).
* src/fit.c: Ethan A Merritt - use the tally of dummy variable names
to detect version 4 syntax in which the last column of a using spec
contains zerror but no "*error" keyword is provided.
2014-09-18 Ethan A Merritt <>
* src/fit.c src/parse.c src/parse.h (int fit_dummy_var[]):
Track the occurrence of dummy variable names in a fit command. This lets
us count the independent variables so long as they are not obscured.
fit f(x,y) 'data' using 1:2:3:4 # flags use of 'x' and 'y'
fit x*y 'data' using 1:2:3:4 # flags use of 'x' and 'y'
g(x) = x*y;
fit g(x) 'data' using 1:2:3:4 # flags 'x', doesn't notice 'y'
In each case fit_dummy_var[0] is 1. In the 3rd case fit_dummy_var[1]
is 0 but should be 1. Fixing this would be quite hard.
2014-09-18 Bastian Maerkisch <>
* src/win/wgnuplib.h src/wgraph.c term/win.trm: windows terminal
supports the toggle command.
2014-09-18 Ethan A Merritt <>
* src/datafile.c: Revised error message for datafile open failure.
2014-09-14 Ethan A Merritt <>
* src/tables.c src/command.c src/command.h docs/gnuplot.doc:
New command `toggle {<plotno> | "plottitle" | all} has the same effect
as left-clicking on the key entry for a plot shown by an interactive
terminal (qt, wxt, x11).
2014-09-12 Bastian Maerkisch <>
* src/mouse.c (xDateTimeFormat): Use ggmtime() instead of gmtime() to
avoid platform specific restrictions.
Bug #1470
2014-09-09 Pieter-Tjerk de Boer <>
* docs/gnuplot.doc: Update help on fit to new command syntax.
* src/fit.c: Fix init of num_errors.
2014-09-09 Akira Kakuto <>
* src/win/wpause.c (PauseBox): Do not wait for further events after
pause dialog box was closed. Bugfix.
2014-09-08 Christoph Bersch <>
* demo/stringvar.dem docs/gnuplot.doc src/internal.c (f_word f_words):
Modify the word() and words() functions to recognize quoted strings
inside the top level string as single entities.
2014-09-08 Christoph Junghans <>
* New option --without-libcerf
2014-09-08 Ethan A Merritt <>
* src/misc.c (lp_parse parse_colorspec): Allow a quoted colorname to
immediately follow the keywords lc|linecolor|fc|fillcolor; i.e. in this
case the additional rgbcolor keyword is optional.
2014-09-07 Ethan A Merritt <>
* src/plot2d.c: "set linetype 1 pt 'A'; plot x with lp" requires that
the plot->labels field be initialized before plotting.
* src/save.c: handle PT_CHARACTER when saving linetype
2014-09-05 Ethan A Merritt <>
* src/term_src/api.h src/gadgets.c src/hidden3d.c src/misc.c
src/plot2d.c src/plot3d.c src/save.c src/set.c src/ show.c src/term.c:
The field lp_style_type.pointflag was variously used as a Boolean,
an integer, or a magic number indicating an uninitialized state.
Clean this up by replacing it with a bitfield lp_style_type.flags
This has the side effect of allowing a trivial fix for a regression
in 4.6.5 that caused "set hidden3d; splot ... lc <foo>" to ignore the
requested color. See Bugs #1284 #1475
2014-09-05 Karl Ratzsch <>
* docs/plotstyles.gnu: Dummy up a version of the missing/NaN figure
for use with Windows documentation.
2014-09-04 Ethan A Merritt <>
* src/mouse.c src/term_api.h src/gplt_x11.c
src/qtterminal/QtGnuplotScene.cpp src/qtterminal/qt_term.*
src/wxterminal/wxt_gui.cpp src/wxterminal/wxt_term.h
term/caca.trm term/README term/win.trm term/x11.trm:
Add a 2nd parameter to the API term->modify_plots(operations, plotno).
All terminals for which this entry point is not NULL are updated
accordingly. This patchset does not by itself add any new
functionality or change user-visible behavior. It prepares for later
adding command-line equivalents to mouse operations like "toggle".
2014-09-04 Ethan A Merritt <>
* src/graphics.c (place_arrows) src/graph3d.c (place_arrows3d):
Revert arrowhead patch of 2014-08-18. Document that if you want a
dashed arrow shaft it is best to use "nofilled" for the arrow head.
Bugs #1460 #1476
2014-09-03 Ethan A Merritt <>
* src/graph3d.c src/hidden3d.c: "splot ... with dots" was not drawing
the dots.
Bug #1474
2014-08-31 Ethan A Merritt <>
* src/stats.c docs/gnuplot.doc: Calculate and report sample standard
deviation (STATS_ssd) as well as the population standard deviation
(STATS_stddev). Provide formulae for the reported quantities in the
LaTeX documentation, and document the difference between
_ssd and _stddev in all documentation formats.
* src/stats.c: In version 5 when there is no using spec df_readline()
always returns at most the number of columns present on the first line.
Bug #1472
2014-08-30 Petr Mikulik <>
* config/config.os2: Use _strtoll.
2014-08-29 Petr Mikulik <>
* src/gplt_x11.c (exec_cmd process_configure_notify_event):
Add missing #ifdefs: USE_X11_MULTIBYTE and PIPE_IPC.
2014-08-21 Ethan A Merritt <>
* src/fit.c: Handle columnheaders in input to "fit".
Bug #1467
* src/misc.c (lp_parse): Flag "set object N lt <lt>" as an error,
since currently this must be done be "set object N fs bo <lt>".
Probably we should figure out how to make this command work, but
better to issue an error than accept it and then ignore it.
Bug #1460
* src/bf_test.c: Use HAVE_STDLIB_H and HAVE_MALLOC_H to include proper
header file for calloc(). "Jun T." <>.
2014-08-21 Ethan A Merritt <>
* Branchpoint for 5.0 (cvs tag -b branch-5-0-stable)
The main (development) branch is now marked 5.1 and will eventually
be used as the basis for a future release named gnuplot version 5.2.
>>> NOTE <<<
Starting now
* Bugfixes for version 5 should be applied to both the main branch
(5.1 == this one) and the stable branch (branch-5-0-stable).
They will first appear in patchlevel releases 5.0.1, 5.0.2, and so on.
* Major new features and experimental changes belong here, not in the
stable branch. They will appear eventually in release 5.2.
* Minor new features can go in both branches at your discretion, but
remember that the stable branch should ideally never break.
That means new code should be tested here in the development
branch first, and only after testing be added or back-ported to the
stable branch.
2014-08-20 Ethan A Merritt <>
* 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.
2014-08-18 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.
2014-08-18 Hans-Bernhard Broeker <>
* 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.
2014-08-15 Ethan A Merritt <>
* src/bf_test.c src/ 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
* src/makefile.all src/makefile.awc: Remove mention of binary.o
* config/*/Makefile: Remove alloc and binary from bf_test dependencies
* 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
Bug #1460
* src/save.c (save_linetype): Bugfix - dashtype was being saved only if
there was also a point type.
* src/gadgets.c (apply_pm3dcolor): Don't clobber current dashtype by
calling term->linetype(LT_BLACK). Call term->set_color(BLACK_COLORSPEC)
* src/graphics.c (place_arrows) src/graph3d.c (place_arrows3d):
Force solid lines for arrow heads.
2014-08-15 Shigeharu Takeno <>
* 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.
2014-08-14 Ethan A Merritt <>
* 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
2014-08-05 Ethan A Merritt <>
* src/mouse.c (event_buttonpress): Remove extraneous event_reset.
2014-08-02 Ethan A Merritt <>
* src/misc.c (parse_colorspec): Apply user-defined line colors
to text color also.
Bug #1452
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.
2014-08-01 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.
2014-07-30 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/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.
* src/eval.c (update_plot_bounds): Provide a user-visible copy of
the current terminal scale (oversampling, etc) as GPVAL_TERM_SCALE.
Bug #1291
2014-07-28 Allin Cottrell <>
* src/syscfg.h: Report 32/64 bit Windows build in version string
2014-07-28 Ethan A Merritt <>
* 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().
2014-07-25 Ethan A Merritt <>
* src/gplt_x11.c: Scale x11 dashlength with linewidth.
2014-07-23 Shigeharu Takeno <>
* src/mouse.c src/mouse.h src/set.c src/show.c docs/gnuplot.doc:
New command 'set mouse zoomfactors <xfactor>,<yfactor>'
2014-07-22 Ethan A Merritt <>
* 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.
* src/graphics.c (plot_impulses): Test for EXCLUDEDRANGE data points
so that set trange [theta_min:theta_max] actually does something.
Bug #1439
* demo/poldat.dem: Make sure trange includes the whole plot.
2014-07-18 Ethan A Merritt <>
* demo/ 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.
2014-07-14 Ethan A Merritt <>
* 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)
2014-07-12 Ethan A Merritt <>
* 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
2014-07-10 Ethan A Merritt <>
* src/set.c (set_dummy): More sanity checks on "set dummy" syntax.
Bug #1442
2014-07-06 Ethan A Merritt <>
* src/set.c (load_tic_user): "set Xtics ()" should clear the list
of user-specified tics rather than setting tic generation to auto.
2014-07-04 Shigeharu Takeno <>
* 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
2014-07-04 Bastian Maerkisch <>
* src/win/wgraph.c: 'q' closes graph window.
* 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.
2014-07-01 Ethan A Merritt <>
* term/cairo.trm, term/wxt.trm:
Always report {no}enhanced property in "show term".
* src/color.c: If the current terminal has property "monochrome" then
convert all requests for constant color as "black".
Bug #1423
2014-06-24 Ethan A Merritt <>
* src/set.c src/show.c src/tables.c docs/gnuplot.doc:
New command: set margins <left>, <right>, <top>, <bottom>
acts just like four successive commands set lmargin <left>, ...
* src/unset.c: unset margins
2014-06-20 Ethan A Merritt <>
* src/wxterminal/wxt_gui.h: The configuration test for
wxWidgets >= 2.8 had no effect on code generation. Remove this test.
* 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.
2014-06-16 Karl Ratzsch <>
* fit.c: FIT_NITER holds number of iterations used by previous fit.
2014-06-16 Ethan A Merritt <>
* 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
* src/graphics.c (xtick2d_callback): Clip r axis tics and tic labels to
the bounding box of the plot.
Bug #1290
2014-06-15 Dmitri A. Sergatskov <>
* Add LRELEASE for Qt5 autoconfiguration
2014-06-15 Bastian Maerkisch <>
* src/plot.c (main): Fix persist mode on Windows when reading
from a pipe.
See Bug #1322
2014-06-15 Akira Kakuto <>
* src/binary.c src/datafile.h src/syscfg.h: LFS support on Windows
for MSVC and MinGW.
See also Patch #675
2014-06-14 Ethan A Merritt <>
* 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
* src/misc.c (prepare_call): Allow parenthesized expressions as
call parameters. The value is passed as a string.
* 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.
2014-06-13 Bastian Maerkisch <>
* src/qtterminal/qt_term.cpp (qt_waitforinput): Fix index error
when trying to stop thread which reads from pipe.
Bug #1426
2014-06-13 Ethan A Merritt <>
* src/datafile.c (df_generate_pseudodata): Do not try to access plot
structure if we were called from fit rather than plot.
Bug #1427
2014-06-12 Christoph Bersch <>
* term/lua.trm term/lua/gnuplot-tikz.lua:
Scale dashlength with linewidth.
2014-06-11 Ethan A Merritt <>
* 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
* src/fit.c: Remove spurious test and error message for time data
with only 2 columns in the using spec.
Bug #1424
* man/gnuplot.1: update
2014-06-11 Mojca Miklavec <>
* term/aquaterm.trm: Correctly support encoding CP1252.
2014-06-11 Tatsuro MATSUOKA <>
* win/gnuplot.iss: Include Qt platform DLLs in distribution package.
2014-06-10 Ethan A Merritt <>
* docs/gnuplot.doc: Add a section explaining the "persist" option.
Bug #1418, #1419
* 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.
2014-06-10 Christoph Bersch <>
* term/post.trm term/svg.trm: Scale dashlength with linewidth.
2014-06-09 Daniel J Sebald <>
* 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
2014-06-09 Bastian Maerkisch <>
* src/win/wgdiplus.cpp src/win/wgraph.c src/win/wgnuplib.h
Version 5 dashtypes. Custom dashtypes supported by GDI+ driver.
* src/wxterminal/wxt_gui.cpp: Also "restore" the window state on
Bug #1389
* src/win/winmain.c (WinMain): Change type from PASCAL to CALLBACK.
* src/fit.c: Test if covariance matrix is available before saving
it to user variables.
2014-06-08 Shigeharu Takeno <>
* docs/gnuplot.doc win/README-Windows.txt win/README-ja.txt
docs/gnuplot-ja.doc: sync to docs version 1.891
2014-06-07 Mojca Miklavec <>
* src/wxterminal/gp_cairo.c: Scale dashlength with linewidth, similar
to what qt does.
2014-06-04 Bastian Maerkisch <>
* 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
2014-06-03 Ethan A Merritt <>
* 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/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/hidden3d.c (draw_vertex): Handle p_type == PT_CHARACTER.
2014-06-02 Bastian Maerkisch <>
* src/win/wgraph.c src/win/wgdiplus.cpp:
Grey out key entries when corresponding plot is toggled off.
* src/win/wgraph.c (GraphUpdateWindowPosSize) src/win/wgnuplib.h
term/win.trm (WIN_options): Immediately apply changes to window
position and size.
Bug #1400
* src/datafile.h: Revert the Windows LFS changes for now as
they seem to cause problems on some systems.
2014-06-01 Ethan A Merritt <>
* src/axis.c src/gadgets.c src/misc.c src/set.c src/unset.c:
Replace magic numbers with LAYER_{BEHIND|BACK|FRONT}.
* src/graph3d.c: Remove obsolete (always true) conditional
USE_GRID_LAYERS. Minor clean up for the grid layer logic.
2014-06-01 Tatsuro MATSUOKA <>
* win/gnuplot.iss: Include gnuplot_qt.exe in installer.
Patch #689
* src/qtterminal/gnuplot_qt.cpp: Search for Qt translation files
in gnuplot's installation directory on Windows.
Patch #687
2014-06-01 Ethan A Merritt <>
* 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
2014-06-01 Bastian Maerkisch <>
* config/mingw/Makefile: Target 'clean' and 'veryclean' include
Qt files, see patch #688.
* config/mingw/Makefile win/gnuplot.iss: Include RELEASE_NOTES.
Add "qt" as option as default terminal.
2014-05-30 Ethan A Merritt <>
* 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
* term/gd.trm: Limit the stored length of the font so that term_options
cannot overflow.
Bug #1413
* RELEASE_NOTES: Include Release Notes in the distribution
* FAQ.PDF: Update for version 5.
* src/gplt_x11.c:
Grey out key entries when corresponding plot is toggled off.
2014-05-29 Akira Kakuto <>
* term/caca.trm: Modify nominal codepage to accommodate CJK Windows.
2014-05-29 Tatsuro MATSUOKA <>
* config/mingw/Makefile: Support compilation of the qt terminal.
Patch #684
2014-05-29 Karl Ratzsch <>
* docs/gnuplot.doc: Improve documentation of `update` command.
Patch #686
* 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
2014-05-28 Ethan A Merritt <>
* src/graph3d.c (plot3d_points): Handle pointtype PT_CHARACTER.
* 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
2014-05-27 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
2014-05-26 Ethan A Merritt <>
* term/js/gnuplot_svg.js term/svg.trm:
Grey out key entries when corresponding plot is toggled off.
* src/qtterminal/QtGnuplotItems.* src/qtterminal/QtGnuplotScene.cpp:
Grey out key entries when corresponding plot is toggled off.
* src/wxterminal/wxt_gui.cpp (wxt_grey_out_key_box):
Grey out key entries when corresponding plot is toggled off.
2014-05-24 Bastian Maerkisch <>
* src/wxterminal/wxt_gui.cpp (wxt_waitforinput): Do not wait for an
event when only checking for mouse events.
2014-05-23 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.
2014-05-19 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
2014-05-19 Karl Ratzsch <>
* term/emf.trm: Add point types pentagon (14) and filled pentagon (15)
2014-05-16 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.
* INSTALL docs/gnuplot.doc: Update description of new features.
2014-05-15 Ethan A Merritt <>
* PATCHLEVEL src/version.c docs/titlepag.tex:
Bump version information to 5.0.rc1
* demo/dashtypes.dem: Avoid irrelevant warning message.
2014-05-14 Karl Ratzsch <>
* term/svg.trm src/wxterminal/gp_cairo.c:
Add point types pentagon (14) and filled pentagon (15)
* src/qtterminal/QtGnuplotItems.cpp:
(EAM) Add point types pentagon (14) and filled pentagon (15)
2014-05-13 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/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.
* term/post.trm (PS_dashtype): Always stroke the previous path before
setting a new dashtype.
2014-05-11 Hans-Bernhard Broeker <>
* 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/plot2d.c (get_data): Fix buffer overflow a bit more cleanly.
(compare_boxplot_factors): Insert warning about magic number.
2014-05-11 Ethan A Merritt <>
* src/plot2d.c (get_data): fix buffer overflow
* 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.
* 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.
2014-05-10 Dima Kogan <>
* 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.
2014-05-10 Shigeharu Takeno <>
* docs/gnuplot.doc: various small corrections
* docs/gnuplot-ja.doc term-ja.diff: Sync translation to version 1.887
2014-05-10 Ethan A Merritt <>
* term/gd.trm: Do not allow setting terminal size to 0. Bug #1398
2014-05-10 Hans-Bernhard Broeker <>
* term/lua.trm: Ensure initialization of alpha.
* src/hidden3d.c (store_polygon): Ensure initialization of v[],
just in case somebody calls this function with an illegal
'direction' enum value.
* src/win/wgraph.c (PATTERN_BITMAP_LENGTH): Give name to magic number.
(pattern_bitmaps): Use new name.
* 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
* src/win/wgnuplib.c (GetInt): Add some parentheses.
* src/stats.c (statsrequest): Initialize local data structs, to
avoid warnings about printing uninitialized results.
* src/readline.c (BACKSPACE): Define as a character constant, not
some hex number.
(readline): Write TAB as character constant, not some hex number.
* src/interpol.c (gen_interp_frequency): Ensure initialization of
y_total regardless of smooth type.
* src/plot3d.c (grid_nongrid_data): Ensure initialization of
* src/pm3d.c (pm3d_plot): Ensure initialiation of gray.
All the following concern the same problem: Macros from <ctype.h>
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.
* src/win/wtext.c (TextPutStr): See above.
* term/post.trm (PS_load_fontfile): See above.
* src/win/winmain.c (GetLanguageCode, open_printer): See above.
* src/util.c (streq): See above.
* src/term.c (enhanced_recursion): See above.
* src/scanner.c (legal_identifier, scanner): See above.
* src/readline.c (backspace): See above.
* src/plot2d.c (store_label): See above.
* src/internal.c (f_word): See above.
* src/gplt_x11.c (exec_cmd): See above.
* src/eval.c (set_gpval_axis_sth_double): See above.
* src/datafile.c (df_readascii, plot_option_binary_format): See above.
* src/command.c (changedir, expand_1level_macros): See above.
* src/breaders.c (edf_findInHeader): See above.
2014-05-08 Dima Kogan <>
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.
2014-05-08 Ethan A Merritt <>
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.
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.
* src/plot2d.c (impulse_range_fiddling) src/plot3d.c: Don't extend
range to zero for log-scaled axes.
2014-05-06 Ethan A Merritt <>
* term/emf.trm: Custom dashtype support.
* term/pdf.trm: Modify PDFlib terminal for use with
version 5 dashtypes (but no custom dashtype support). Do not build
by default.
2014-05-05 Ethan A Merritt <>
* 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
* docs/gnuplot.doc: Update documentation to better describe recent
* src/qtterminal/QtGnuplotScene.cpp: Always use a solid line to draw
point symbols, even if the current linetype has a dash pattern.
* 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/plot2d.c (impulse_range_fiddling) src/plot3d.c: Autoscaled plots
"with impulses" should include y=0 (z=0 in 3D) unless log-scaled.
2014-05-05 Tatsuro MATSUOKA <>
* src/qtterminal/po/qtgnuplot_ja.ts: Update translations
2014-05-03 Ethan A Merritt <>
* src/qtterminal/po/qtgnuplot_ja.ts: Update translations.
2014-05-01 Hans-Bernhard Broeker <>
* config/mingw/Makefile (LDFLAGS2): Add auto-import flag.
($(TARGET)): Add icon files and Makefile as dependencies.
* config/config.mgw, config/config.cyg: The set of used /
available configuration macros has changed across the past several
* src/stdfn.h (sgn): Fix parenthesization of macro.
(PATH_MAX): CLang compiler on Cygwin needs a silly little tweak.
* src/graphics.c (samesign): Improve parenthesization a bit.
2014-05-01 Ethan A Merritt <>
* demo/gantt.dem demo/html/*: Add Gantt chart to demo collection.
Add dashtypes to demo collection.
* src/show.c: Show "fixed" property of arrow style.
2014-04-29 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/gplt_x11.c term/x11.trm term/xlib.trm:
Custom dashtype support for X11.
2014-04-28 Dima Kogan <>
* 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.
2014-04-28 Shigeharu Takeno <>
* docs/gnuplot-ja.doc term-ja.diff: Sync translation to version 1.882
* docs/gnuplot.doc: typos
2014-04-28 Ethan A Merritt <>
* src/graphics.c src/graph3d.c src/save.c src/show.c: Use named
values LAYER_{BEHIND|BACK|FRONT} rather than magic numbers.
* docs/gnuplot.doc: Add a section documenting the use of layers.
2014-04-27 Dima Kogan <>
* src/gplt_x11.c: Fix off-by-one error in selection string.
Allow clipboard contents to be retrieved more than once.
2014-04-27 Ethan A Merritt <>
* src/graphics.c (plot_steps): Avoid overflow in clipping code.
==> Reverted in favor of fixing the clipping code itself.
* 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/stdfn.h: Define a sgn() function.
* src/graphics.c: Use sgn() function to define samesign().
* src/mouse.c: No longer need a local definition of sgn().
2014-04-26 Dima Kogan <>
* 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]
2014-04-25 Ethan A Merritt <>
* 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.
* src/save.c (save_pm3dcolor save_linetype): Save special linetypes
by keyword rather than a magic number (e.g. lt bgnd rather than -3).
2014-04-24 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.
* src/term.c (test_term): Reset to default font after Bold/Italic test.
Bug #1387
2014-04-24 Dima Kogan <>
* src/mouse.c (do_zoom_scroll_up): Fix typo that causes incorrect
manipulation of y2 axis scale during zoom.
Bug (Patch #647)
2014-04-23 Ethan A Merritt <>
* 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.
* 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/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).
2014-04-21 Ethan A Merritt <>
* term/canvas.trm: Support for custom dashtypes.
2014-04-20 Jérôme Lodewyck <>
* src/qtterminal/po/*.ts: Update translations.
* src/qtterminal/qt_conversion.cpp: Add new encoding types.
* 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.
2014-04-19 Ethan A Merritt <>
* src/command.c (test_command): When "test" is issued before any plot
command, suppress error messages if the window is resized.
* term/PostScript/ term/PostScript/prologues.h:
Update PostScript prolog for version 5 and regenerate headers.
* term/post.trm:
Support for custom dashtypes in PostScript output.
2014-04-18 Ethan A Merritt <>
* term/svg.trm (set_dashtype): Fix potential buffer overrun;
* src/misc.c (parse_dashtype): A custom pattern must contain an even
number of entries.
* demo/dashtypes.dem demo/all.dem: New dashtype demo.
* 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.
* src/term.c (enhanced_recursion): Consume only a single space following
the font name in an enhanced text string "{/Fontname text}".
* docs/gnuplot.doc: Initial documentation for `set dashtype` and
dash properties in version 5.
2014-04-17 Ethan A Merritt <>
* 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/term.c (test_term): Exercise bold/italic. Longer line samples to
make it easier to distinguish dashtypes. Minor layout changes.
* term/svg.trm: Support for custom dashtypes.
* 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.
2014-04-14 Dima Kogan <>
* src/mouse.c (event_buttonpress): Flip direction of horizontal
scrolling to match the convention used by vertical scrolling.
2014-04-14 Ethan A Merritt <>
* (AC_FUNC_FSEEKO) src/datafile.h: LFS support part 2.
If possible, use fseeko/ftello to navigate input data files.
2014-04-13 Ethan A Merritt <>
* (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).
2014-04-11 Ethan A Merritt <>
* src/datafile.c (df_binary_details[]): Handle int64 and uint64 types
even if current platform has sizeof(long) = 4.
2014-04-08 Ethan A Merritt <>
* 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):
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/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.
2014-04-07 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/plot2d.c (eval_plots): Don't call lp_parse if all we want is
a fill color.
* src/boundary.c (do_key_sample) src/graphics.c (plot_boxes plot_c_bars):
Funnel requests for linetype changes through term_apply_lp_properties().
* demo/all.dem: Add varcolor.dem to the test set.
2014-04-06 Christoph Bersch <>
* src/graphics.c (fill_between): It is no longer necessary to clip in
this routine because the component quadrilaterals will be clipped later.
2014-04-05 Ethan A Merritt <>
* src/set.c (set_table): Name leak.
2014-04-05 Bastian Maerkisch <>
* 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
2014-04-04 Ethan A Merritt <>
* 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/util.c (value_to_str): Fix error in buffer length accounting.
Bug #1372
* 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/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.
* Remove EXPERIMENTAL warning from older options.
* src/save.c src/set.c src/term.c: Code style / whitespace cleanup
* src/set.c (set_dashtype) src/misc.c (parse_dashtype): Add comments.
Truncate dashtype string to match size of stored pattern array.
2014-04-03 Bastian Maerkisch <>
* src/fit.h (error_ex): Add noreturn attribute to avoid compiler
* src/fit.c: Correct test for invalid covariance matrix.
* src/util.h (int_error, os_error, graph_error): noreturn attribute
for MSVC.
* src/wgdiplus.cpp (drawgraph_gdiplus) src/win/wgraph.c (drawgraph):
Test if command list is available.
* src/win.trm (WIN_update_options) src/win/wmenu.c: Incomplete format
2014-04-02 Ethan A Merritt <>
* src/misc.c demo/heatmaps.dem docs/gnuplot.doc:
Document and add a demo for "with image pixels" (formerly "failsafe").
* 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 <lt>" 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 <lt>"
* demo/transparent_solids.dem docs/gnuplot.doc:
Update documentation and demo to show new syntax
* src/contour.c (end_crnt_cntr): Initialize blank label in new contour.
2014-04-01 Ethan A Merritt <>
* 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.
2014-03-30 Bastian Maerkisch <>
* 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
* 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/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
* src/win/screenbuf.c: Avoid crashes on memory allocation errors.
* src/makefile.all src/makefile.awc: Recreate to include multiplot.c.
* demo/lines_arrows.dem: UTF-8 encoding.
* config/mingw/Makefile: Fix non-numeric version number due to
patchlevel "alpha".
2014-03-29 Christoph Bersch <>
* 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
2014-03-29 Ethan A Merritt <>
* src/term.c (multiplot_current_panel) term/svg.trm src/term_api.h:
Hide internal data structure behind an access function.
* src/multiplot.h src/multiplot.c src/term.c src/term_api.h
src/ Move multiplot layout code from term.c into a new
file multiplot.c.
2014-03-27 Shigeharu Takeno <>
* docs/gnuplot-ja.doc term-ja.diff: Sync translation to version 1.872
* docs/gnuplot.doc: typos
2014-03-27 Dima Kogan <>
* docs/gnuplot.doc
2014-03-27 Ethan A Merritt <>
* src/qtterminal/qt_term.cpp (qt_text_wrapper):
Prevent segfault on "set term qt; set multiplot; quit".
2014-03-24 Ethan A Merritt <>
* 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.
* src/command.c: clean up to remove compiler warnings.
* term/emf.trm: Bold/Italic markup in enhanced text mode
* src/boundary.c (do_key_sample_point) demo/lines_arrows.dem:
Apply textcolor to character point type in key sample.
2014-03-23 Bastian Maerkisch <>
* 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/ demo/rugplot.dem:
Implement 'set print $datablock' which redirects 'print' output to
an in-memory datablock.
Patch #662
* 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().
* demo/tango_colors.dem: set linetype cycle.
* docs/plotstyles.gnu: Encoding is utf8.
* src/win/wcommon.h src/win/wgraph.c: Fix const-ness for
* src/util.c (gprintf): Skip leading zeroes of negative exponents.
2014-03-22 Ethan A Merritt <>
* docs/gnuplot.doc docs/doc2tex.c docs/titlepag.tex:
Update documentation New Features, Changes for version 5.
* 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.
* src/set.c (set_linestyle): Dash type of newly created linetype should
by solid unless otherwise specified.
* src/misc.c: Allow `black` as a colorspec or linetype, analogous to
2014-03-21 Ethan A Merritt <>
* 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
* 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
2014-03-20 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.
* 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
* demo/dashcolor.dem: UTF-8 encoding.
* src/fit.c (show_results): Do not try to print parameter errors if
the covariance matrix is unavailable or invalid.
2014-03-20 Thomas Henlich <>
* term/PostScript/ CP1252 encoding support for PostScript
terminal. Based on Patch #341, but with non-standard characters
2014-03-20 Ethan A Merritt <>
* term/svg.trm: svg was losing the current linetype (i.e. dash type)
between drawing the key sample and drawing the main plot.
2014-03-19 Bastian Maerkisch <>
* 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.
2014-03-19 Ethan A Merritt <>
* src/plot2d.c: Fix parsing error for "with lp pt 'X', ..."
* src/boundary.c src/boundary.h src/graphics.c: Refactor code that
draws key samples for point plots.
* term/gpic.trm src/term.h:
Add configuration option --with-gpic
* 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
* demo/lines_arrows.dem demo/stringvar.dem demo/html/Makefile
demo/html/index.* demo/html/ Update demos for version 5.
2014-03-19 Hans-Bernhard Broeker <>
* src/misc.c (parse_dashtype): Avoid warning about assignment used
as a condition value. Some reindentation.
2014-03-19 Jérôme Lodewyck <>
* 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
2014-03-18 Peter Juhasz <>
* src/term.c src/set.c: Fix leaks and invalid reads associated
with dashtype strings.
2014-03-18 Ethan A Merritt <>
* src/wxterminal/gp_cairo.c: PANGO_WEIGHT_NORMAL is not the same as 0.
* 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
2014-03-18 Jérôme Lodewyck <>
* src/qtterminal/QtGnuplotEvent.* src/qtterminal/QtGnuplotWindow.cpp
src/qtterminal/QtGnuplotWidget.cpp src/qtterminal/QtGnuplotScene.cpp:
Block events that come from inactive plot widgets.
2014-03-17 Peter Juhasz <>
* 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/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/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 <N> <dashtype_spec>' to
specify permanent, user-defined dashtypes.
* 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
2014-03-16 Ethan A Merritt <>
* 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
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.
2014-03-16 Peter Juhasz <>
* 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.
* src/set.c (set_linestyle): Set pm3d_color.type to TC_LT and 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"
2014-03-16 Hans-Bernhard Broeker <>
* 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/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).
2014-03-15 Ethan A Merritt <>
* VERSION PATCHLEVEL share/gnuplotrc src/version.c
demo/html/index.canvas demo/html/ demo/html/index.svg
docs/doc2texi.el docs/gnuplot.doc docs/titlepag.tex:
>>>>> Bump version to 5.0 alpha <<<<<
>>> Earlier entries are in ChangeLog.4