Unofficial mirror of gnuplot's git repository. Please don't open pull requests here, go to https://sourceforge.net/p/gnuplot/gnuplot-main/merge-requests/ instead.
Clone or download
Ethan A Merritt
Ethan A Merritt protect sequence of command line execution from compiler optimization
The main loop over shell command line arguments in plot.c uses the iteration
convention {argv++; argc--;}.  However if execution of a command line entry
triggers LONGJMP via int_error() then code reordering due to compiler optimization
may fail to track changes in argc.  This can result in reexecution of a previous
command line entry.  In an attempt to prevent this we copy argc to a variable
marked "static volatile" so that the compiler will not reorder code that uses it.
Latest commit 04c6a96 Sep 22, 2018
Permalink
Failed to load latest commit information.
config remove option EXTENDED_COLOR_SPECS Jul 14, 2018
demo add polar_quadrants demo to online collection Sep 13, 2018
docs document evaluation of a datablock containing strings (EXPERIMENTAL) Sep 14, 2018
faq Remove all RCS/CVS cookies. Nov 19, 2017
m4 bye-bye NeXT Jan 10, 2016
man Remove all RCS/CVS cookies. Nov 19, 2017
pm3d Updates. Apr 14, 2004
share more complete list of auto-generated files for CVS to ignore Jan 21, 2016
src protect sequence of command line execution from compiler optimization Sep 22, 2018
term missed a conversion of current_locale -> time_locale in caca.trm Sep 6, 2018
tutorial Remove all RCS/CVS cookies. Nov 19, 2017
win Do not add empty paths to PATH environment variable Dec 7, 2017
.editorconfig Add indentation rules for editors with EditorConfig Dec 8, 2017
.gitattributes Use merge driver for ChangeLogs Dec 25, 2017
.gitignore Ignore files created by "make check" Nov 19, 2017
BUGS minor cleanup during preparation for 5.2 release May 30, 2017
ChangeLog Allow dgrid3d re-gridding to take color from a separate input data co… Aug 21, 2018
ChangeLog.0 Normalize format of attribution lines in ChangeLog files Oct 13, 2017
ChangeLog.1 Normalize format of attribution lines in ChangeLog files Oct 13, 2017
ChangeLog.2 Normalize format of attribution lines in ChangeLog files Oct 13, 2017
ChangeLog.3 Normalize format of attribution lines in ChangeLog files Oct 13, 2017
ChangeLog.4 Normalize format of attribution lines in ChangeLog files Oct 13, 2017
ChangeLog.5 Normalize format of attribution lines in ChangeLog files Oct 13, 2017
CodeStyle Remove all RCS/CVS cookies. Nov 19, 2017
Copyright Update mailing list addresses, copyright years, prepare for release. Apr 13, 2004
FAQ.pdf *** empty log message *** Jun 6, 2017
GNUmakefile pre-dist target moved from Makefile.am. Jun 10, 2000
INSTALL Update README and INSTALL Nov 19, 2017
INSTALL.gnu Update GNU "INSTALL" document from current automake. Oct 1, 2006
Makefile.am minor cleanup during preparation for 5.2 release May 30, 2017
Makefile.maint reduce churn during test builds by removing "dvi" as an auto-generate… Apr 29, 2015
NEWS new command "exit status <val>" Sep 14, 2018
PATCHLEVEL Bump version of development source tree (main CVS branch) to 5.1 Aug 21, 2014
PGPKEYS Add R.Fearicks PGP key. Jan 26, 1999
PORTING remove sun.trm (SunView windowing system end-of-life 1999) Jan 11, 2016
README Update README and INSTALL Nov 19, 2017
README.emacs remove emacs gnuplot-mode lisp code (it is now maintained elsewhere) Mar 6, 2014
RELEASE_NOTES Bump version number of development branch to 5.3 Jun 20, 2017
TODO Bump version number of development branch to 5.3 Jun 20, 2017
VERSION Bump version number of development branch to 5.3 Jun 20, 2017
compile Some distclean checks: add compile script, fix handling of demo/plugi… Apr 2, 2015
configure.ac remove qms laser printer from the default set of terminal types Sep 7, 2018
configure.vms remove sun.trm (SunView windowing system end-of-life 1999) Jan 11, 2016
depcomp Update auto-toolage to more recent versions. Dec 16, 2014
install-sh Update auto-toolage to more recent versions. Dec 16, 2014
missing git can handle permissions itself, so let it do that. Nov 19, 2017
mkinstalldirs Update auto-toolage to more recent versions. Dec 16, 2014
prepare git can handle permissions itself, so let it do that. Nov 19, 2017
stamp-h.in *** empty log message *** Apr 15, 1998

README

The Gnuplot Plotting Utility
============================

 Gnuplot is a command-line driven interactive function plotting utility
for linux, OSX, MSWin, VMS, and many other platforms.  The software is
copyrighted but freely distributed (i.e., you don't have to pay for it).
It was originally written to allow scientists and students to visualize
mathematical functions and data.  Gnuplot supports many different types
of terminals, plotters, and printers (including pseudo-devices like
LaTeX) and is easily extensible to include new devices.  

 The "GNU" in gnuplot is NOT related to the Free Software Foundation,
the naming is just a coincidence (and a long story; see the gnuplot FAQ
for details). Thus gnuplot is not covered by the GPL (GNU Public License)
copyleft, but rather by its own copyright statement, included in all source
code files. However, some of the associated drivers and support utilities
are dual-licensed.

 Gnuplot handles both curves (2 dimensions) and surfaces (3 dimensions).
Surfaces can be plotted as a mesh fitting the specified function, floating
in the 3-d coordinate space, or as a contour plot on the x-y plane.
For 2-d plots, there are also many plot styles including lines, points,
boxes, heat maps, stacked histograms, and contoured projections of 3D data.
Graphs may be labeled with arbitrary labels and arrows, axis labels, 
a title, date and time, and a key.  The interface includes command-line
editing and history on most platforms.

 The new gnuplot user should begin by reading the general information
available by typing `help` after running gnuplot. Then read about the
`plot` command (type `help plot`).  The manual for gnuplot (which is a
nicely formatted version of the on-line help information) is available
as a PDF document, created via LaTeX.  Look at the docs/Makefile
for other options for formatting the documentation.

 The gnuplot source code and executables may be copied and/or modified
freely as long as the copyright messages are left intact.

Copyright and Porting
=====================

 See the Copyright file for copyright conditions.

 See the ChangeLog and docs/old/History.old file for changes to gnuplot.

 Build instructions are in the INSTALL file.  Some additional
informations needed to port gnuplot to new platforms not covered by
GNU autoconf can be found in the PORTING file. 

 The code for gnuplot was written with portability in mind, and has been
run on an amazing variety of operating systems and hardware over the years.
However, the current code has not been tested on all those older platforms
and some of the conditional code to support quirks of obsolete compilers
and OS features has been removed.  You can expect that gnuplot will compile
more or less out of the box on any system which has the GNU C compiler gcc
or other ANSI-compliant C compiler.  Some specific [optional] drivers are
written in C++ or lua.

Help and Bug Reports
====================

 Your primary place to go searching for help with gnuplot should
be the project's webpage.  At the time of this writing, that's

	http://gnuplot.sourceforge.net

 It has links to a lot of material, including the project's development
page, also at SourceForge:

	http://sourceforge.net/projects/gnuplot/

 Note that since gnuplot has nothing to do with the GNU project, please
don't ask them for help or information about gnuplot; also, please
don't ask us about GNU stuff.

 All bug reports should include the version of gnuplot you are using,
the operating system and version you are running it on, and the output
device (gnuplot's "terminal") that you are plotting to.  It helps a lot
to provide a simple script, possibly with data, that reproducibly 
demonstrates the problem you are reporting.
 
Usenet
======

 Additional help can be obtained from the USENET newsgroup

        comp.graphics.apps.gnuplot

Mailing Lists
=============

 The gnuplot mailing lists are currently operated through the general
development site on SourceForge.net.  Subscribe to mailing lists via
the web interface at
	
	http://sourceforge.net/mail/?group_id=2055

 The main lists you may be interested in are "gnuplot-info" and 
"gnuplot-bugs".  "gnuplot-info" is for general discussion and
questions about how to use the program.  But as noted above,
using the Usenet newsgroup for this kind of communication is 
almost certainly better both for you and for us.

 "gnuplot-bugs" is NOT an appropriate place to ask questions on how to
solve a gnuplot problem or even to report a bug that you haven't
investigated personally.  It is far more likely you'll get the help
you need for this kind of problem from comp.graphics.apps.gnuplot
or the gnuplot-info mailing list.

 Using "gnuplot-bugs" is also slightly disfavoured, because it makes it
hard for us to keep track what bugs are currently under investigation,
and hard for you to check if maybe the bug you've found has already
been reported by somebody else before.  We would thus like to ask to
you please use the "Bug Tracker" system that is part of gnuplot's
development web site at SourceForge.net instead of this mailing list.

 If you found a fix already, pleast post it in "diff -c" or "diff -u"
format done against the most current official version of gnuplot or
a snapshot of the current development source.  Major modifications should
include documentation and, if new features were added, a demo file.
Finally, it is much easier to integrate smaller stepwise modifications
rather than one gigantic diff file which represents months of changes.  

 There are separate tracking systems for Feature Requests and proposed
patches that implement new features, also hosted at SourceForge.  

 Discussions about plans for new features or other significant changes
should be announced and discussed on the developers' mailing list,
gnuplot-beta, which is also hosted by SourceForge.net.

----

                                        -Thomas Williams-
                                        -Alex Woo-
                                        -David Denholm-
                                        -Lars Hecking-
					-Ethan Merritt-