4.2.5 (August 2015)

Bug Fixes
    Force locale to "C" in QGLE
    Apply patch by Chris Ward to make GLE build with GCC5
    Fixed #53 Segfault when non-ASCII characters and Tex labels enabled
    Take key (outside graph) into account when doing "scale auto"
    Fixed "end if" not allowed before size command
    Fixed rounding error in colormap command
    Fixed bug in zmin/zmax arguments for colormap with a function
    Fixed bug #50: GLE axis auto scaling does not take error bars into account
    Fixed bug #52: Error bars should be clipped to the graph window
    Fixed filling problem (-nomaxpath no longer needed for fills)
    Fixed bug #54: GLE overwrites .tex file
    Fixed Rotated y2labels does not work (reported by Viachara Amirdayl)
    Fixed 'shade' fill option does not work (reported by Ben Lobo)
    Fixed "xnames from di": don't show labels twice
    Bug 3494736: QGLE terminates trying to create new file
    Implemented patch to use RTLD_DEEPBIND for dlopen
    Fixed all compiler warnings (gcc 4.7.0)
    Corrected formatting of 3D axis labels (bug reported by Nick Pomponio)
    Strip should use --strip-unneeded for library (Reported by Christian T. Steigies)
    Attempt to fix: Bug 669161: gle-graphics: FTBFS on sparc

New Features
    Dynamic typing and type checking in the expression evaluator
    Allow d[i] in let expression
    Added ndatasets() function
    Support for .gz data files in colormap command
    Added colormap option "interpolate nearest" (based on patch by Brandon Aubie)
    Made colormap take into account x/yaxis options such as log and negate
    Added barcode.gle (by Jan Soubusta)
    Added autocolor function to graphutil.gle
    Added polar_segment to polar.gle
    Improvements to the device$() function (suggested by Elrond)
    Bitmap caching in the Cairo device (suggested by Alexis Letessier)
    Added "-inverse" option to inverse black / white colors (based on patch by Brandon Aubie)
    Adds "percent" number formatting option (patch by Brandon Aubie)
    Adds "textcolor" to the key block (patch by Brandon Aubie)
    QGLE monitors include and data files and updates preview if these change

4.2.4c (March, 2012)

Bug Fixes

    Added checks on number of data sets, bar definitions, and fill definitions (QGLE crash reports 02/07/2012 and 02/16/2012)
    Save .glerc in user's AppData on Windows
    Added manifest to prevent AUC Virtualization on Windows Vista and above
    Search "C:\Program Files (x86)" on 64 bit Windows for installed software
    Fixed type in manual: logfit -> logefit
    Fixed bug in tokenizer
    Fixed crash when parsing "let d1 = x.x" (QGLE crash report 02/28/2012)
    Fix for message "QWidget::setWindowModified: The window title does not contain a '[*]' placeholder"
    Fixed bug in centering of .inc output (reported by Antonio DiCesare)
    Bug 3485409: GLE should check for Cairo version >= 1.10.0
    Added Python script to generate GLE palette functions (contributed by Brandon Aubie)
    Fixed "too many open files" when including bitmaps in filled boxes (reported by Alexis Letessier)
    Fixed issue with filled boxes (reported by Alexis Letessier)
    Make GLE compile with GCC 4.7.x (issue raised by Terje Røsten)
    Support other 64bit systems besides x86
    Fixed more GLU problems introduced in Qt4.8

4.2.4b (January, 2012)

Bug Fixes

   Added GLU dependency to make GLE compile with Qt4.8
   Fixed bug in fallback to "texcmr" when using -cairo
   Fixed crash due to subroutine argument type mismatch

4.2.4 (January, 2012)

New Features

    "Marker only" 3D plots (patch by Laurence Abbott)
    Added "discontinuity threshold" option to graph block
    Added "draw" command to graph block
    Added "msize" option to box plots (request by Nicolas Lerme)
    Added GLE-TeX symbols \uparrow, \downarrow, \updownarrow, \Uparrow, \Downarrow, \Updownarrow, and \backslash
    Added changes by Pascal Buescher to feyn.gle
    Added functions rgba() and rgba255()
    Added functions xg3d() and yg3d()
    Always embed all fonts in PDFs
    Cairo (www.cairographics.org) rendering now available in QGLE
    Control constructs (e.g., if-then-else and for-next) can be used in graph and key blocks
    Feature #3174151: Variable justification
    GNU/Hurd now officially supported
    Multiple layers in graph blocks
    New "begin length" block to compute curve length
    New CSV file reader with better error handling and wider CSV format support (including Microsoft Excel)
    Option "-cairo" can now be combined with LaTeX expressions
    Semi-transparent colors (also known as alpha blending)
    Support for "key separator" in graph blocks
    Use Poppler PDF library for rendering in QGLE and for image exports
    Support GZIP compressed CSV data in graph blocks
    QGLE export dialog remembers resolution and other settings
    Better definition of circle style markers (including "dot")
    Added support for arc arrow heads in QGLE edit mode

Bug Fixes

    Fix for "QGLE does not support bold / italic fonts" (aka "set font rm" insertion problem)
    Bug #3101026: Fixes for possible buffer overflows
    Bug #3344819: Marker line width is different in legend
    Fix for bug in number formatting (part before 10^x missing)
    Fix for compiler error on std::min/max (suggested by Laurence Abbott)
    Fixed \leftarrow kerning problem
    Patch by Michal Vyskocil: Use QMAKE_LIBS_DYNLOAD
    Subticks are now generated over the entire axis range
    g_bitmap now also works with "-cairo"
    Bug #3434175: Turning on sublabels produces wrong width of some subticks
    Fixed bug in when QGLE edits scripts with filled boxes

4.2.3 (September, 2010)

    #3058793: y1axis dominates the plot (lin/log) bound to y2axis
    #2782744: Automatic tick labels with latex
    Fixed compilation on Mac OS/X
    The graph block's "data" command now understands column c0, which contains the data set's line numbers
    #2996854: Missing a few multiple bars
    Fixed: xend()/yend() do not work in QGLE's edit mode
    QGLE's about box has been improved and shows license and contributors in separate tabs
    Graph command 'xsubticks length' now overrides 'xaxis grid'
    Fixed: key block with 'fill' incorrectly changes the 'set fill' value
    #2995351: Unwanted vertical space generated in graph module
    Added "background" command to graph block to set the background color
    #2949503: Fixed a number of errors in the GLE 4.2.2 manual
    #2950381: Allow "marker m$" with m$ a string variable in the graph block
    #2949642: Log axis sub tick font size should be based on the "alabelscale" setting
    #2949495: Access to environment variables: added getenv() command and allow $ENVVAR in file names
    Added support for single quoted strings
    Escaping single and double quote characters in strings now works by doubling them
    Experimental support for EMF output (the vector format on Windows).
    New QGLE menu entry "Edit | Copy as EMF" to copy the diagram to the clipboard on Windows.

4.2.2 (January, 2010)

New Features

    Windows installer can now copy settings from a previous GLE install thereby avoiding the long 'find dependencies' process.
    Support \'' style umlauts in LaTeX expressions (bug #2858424).
    Additional command line options for GhostScript/PDFLaTeX/LaTeX/DVIPS can now be specified in the "glerc" settings file
    GLE now expands environment variables in the tool paths specified in the "glerc" settings file.

Bug Fixes

    QGLE now no longer modifies the string argument of "write" if a text string is moved or one of its properties is changed.
    GLE now compiles with "-Wl,--no-add-needed" and hopefully also with binutils-gold.
    Fixed GLE crash on illegal font name.
    Fixed GLE crash on certain scripts with error bars.
    Fixed regression in key block in 3.5 compatibility mode.
    Diamond markers are now also centered in 3.5 emulation mode.
    QGLE now sets the locale such that the decimal point indicator is "." (workaround "export LC_ALL=C").
    Fixed crash in certain bar graphs (reported by Massimo Canonico).

4.2.1 (August, 2009)

New Features

    Added "from/to/step" options to "values" command of "contour" block.
    Number of available datasets increased from 100 to 1000 (patch by Laurence Abbott).
    Added "reload" button to QGLE.
    Added "key off" to turn off the key of a graph block (Feature #2781887).
    Added "ylabels align left" to align all labels left (right is the default).
    Added support for FreeBSD (Bug #2786222).
    Added support for --docdir configure option.
    Changed package name to "gle-graphics" and distribute GLE's source code as .tar.gz.
    Moved plotter fonts to a separate package (./configure --with-extrafonts=yes to enable these).
    Added license information to all files where this can be done easily.
    Replaced font metrics files for core PostScript fonts with a set that is freely available from Adobe.
    Manual can now be compressed and installed as "gle-manual.pdf.gz".
    Configure script checks for "qmake-qt4" before checking for "qmake".

Bug Fixes

    Arrowhead not drawn correctly when using dashed line (#2838971).
    Fixed problem in TeX macro substitution (#2838978).
    Curve with zero distance control points should be straight line #2838965).
    Added support for operations on arbitrary length strings.
    More commands are now allowed to come before the "size" command (e.g., bitmap_info).
    Improved routine for determining axis tick labels.
    Fixed QGLE crash on key block error (e.g., entry with no text).
    QGLE no longer crashes when "Save As" is selected while an EPS (not GLE) file is loaded.
    QGLE fix for the case that a "recent file" is opened that no longer exists.
    Fixed crash in "postscript" include command if bounding box is at the end of the EPS.
    The "clean" target now removes all files generated by "make".
    A "distclean" target has been added to also remove all files generated by "./configure".
    Replaced calls to "make" with "$(MAKE)" to handle the case that GNU make is "gmake".
    Added range checks for "from" "to" and "step" for the "letz" and "fitz" blocks.

4.2.0 (April, 2009)

New Features

    Added "range" and "nsteps" options to the graph block's let command.
    Added functions file$() and path$() to retrieve the script's name and path (suggested by Jörg Baumgartner).
    Added function isname() that tests if its argument is a named point or object.
    Added "set background" to set background color of shade / grid filling patterns.
    Added "background" to bar command and key block.
    Added "set fillmethod", which can be "GLE" (more accurate) or "PostScript" (faster).
    Source distribution now includes syntax highlighting patterns (in contrib/editors/).
    Source distribution now includes the GLE manual (compile with "make doc").
    Adds "ylabels log n1" to enable subticks without labels on a log scale axis (patch by Luca Donetti).
    Adds option "adist" to "x/ytitle" to set the distance between the title and axis (useful for aligning axis titles of multiple graphs).
    Support for multi-dimensional let (#2008719).
    (See: let-multi-dim.gle.)
    Support for stdin/stdout (#2009125).
    E.g., cat file.gle | gle -d pdf - > file.pdf
    E.g., cat file.gle | gle -o file.pdf -
    Experimental support for objects with named points.
    (See: transistor.gle, shapes.gle.)
    Scalable Vector Graphics (SVG) output device (-d svg).
    Engineering format "eng" for the format$ function and axis format option.
    (See: axisformat.gle.)
    Quantile based axis auto-scaling (by Florian Wisser).
    New axis command: "roundrange on/off" to disable rounding the axis range to the next tick.
    New key block mode: "compact", which combines "marker" and "line" in one column.
    New key block setting: "background", which sets the background color.
    Key box is now transparent (only for keys defined within the graph block).
    Adds function "atan2" (#1881021).
    QGLE is now available on MacOS/X (installation instructions).
    "File | Edit" menu added to QGLE for easy access to files included in GLE script.
    "Edit | Copy as Bitmap" menu added to copy the diagram to the clipboard.
    Adds entries to QGLE's help menu to display the GLE manual and website.
    GUI for detecting GLE's software dependencies (GhostScript and LaTeX).
    Automatically infer device from extension of "-o" option, which specifies the output name.
    DSC comments for title and creator added to PostScript/EPS/PDF output.
    Includes HiResBoundingBox in PostScript output.
    Better support for UTF8 accents in LaTeX expressions (use \usepackage[utf8]{inputenc}).
    Command line option "-noligatures" to disable the use of ligatures for "fl" and "fi". 

Bug Fixes

    Fix for stack corruption in PSGLEDevice::read_psfont() (bug #2543164).
    GLE now creates .inc file if -inc is given and script does not contain TeX expressions (bug #2165591).
    Fix for smooth crash in case of too few data and missing values (reported by Cilliers Kruger).
    Fix for 3D plot bounding box (reported by Brandon Aubie).
    Fix for QGLE compilation on MacOS/X: add "-spec macx-g++" to qmake (suggested by Mol Lukas).
    Fix for "xsubticks lwidth" also affecting the line width of the main ticks.
    Fix for the "strip" target in Makefile.in (by Michal Vyskocil).
    Auto-ranging now also works for x2axis/y2axis (#1933925).
    GLE can't handle filenames with a dot (#2015073).
    Fix for auto-range function with data sets with no spread (suggested by Florian Wisser).
    Fix for "nox" option of "data" command of graph block.
    Fixes for incorrect code points in GLE's Unicode table (o.a., for "ü").
    Combining "clip" + "fill" in "begin path/end path" does not perform the requested fill.
    Command line option "-noctrl-d" and some others are not documented in GLE's man page and "-help" output.
    Landscape detection PS mode is now more robust.
    Fixes for all warnings new in GCC 4.3.0. 

4.1.2 (March, 2008)

    GLE fails to read certain JPG files (bitmap command).
    Colormap command does not work for non-square .z files.
    Bug "rotate + tex = misplacement of text" (#1881020).
    Patch to make GLE compile with gcc 4.3 (include limits.h) (by Terje Røsten).
    QGLE's export fails if path contains a space or '.' character. 

4.1.1 (January, 2008)

    Smooth option of "dn line" fixed for log-scale graphs (Bug #1860761).
    Patches to make GLE compile with gcc 4.3 (by Michal Vyskocil).
    Patches to make GLE work on 64 bit machines with "lib64" dir (by Michal Vyskocil).
    Fix for GhostScript problem in QGLE on 64 bit machines. 

4.1.0 (December, 2007)
 
Detailed Changes

    Added man page (now "man gle" should work on Linux).
    Added option "-verbosity" to set the amount of console output produced by GLE.
    Grid is now by default under the bars (use "grid ontop" to get the old behavior).
    Added "boxcolor" command to key block to set the color of the box indicating the fill.
    Added "append" and "prepend" commands to format$ strings.
    Added command "abound x y" to update the current bounding box.
    Added "scale auto" "hscale auto" "vscale auto" to fit the graph to the page size.
    Added auto-key based on header in data set.
    Added auto-xnames based on names in first data set column.
    Added "let d2 = hist d1 from 0 to 10 bins 10" for computing histograms (step 1 can be used instead of bins).
    Added "bar" option to "dn line" command for drawing histograms.
    Data sets can now be just one column. If "nox" is given, the x-values are set to 1...N.
    Added "compatibility" command (e.g., compatibility "3.5").
    Added compatibility range option to include command.
    Added support for standard SVG/X11 color names (by color, alphabetical).
    Added HTML notation for color names (e.g., #FF0000 = red).
    Added "defcolor name color".
    Added "set fill xxx" and "set pattern xxx".
    Made "include filename.gle" itempotent.
    Added "declare sub name args", to allow forward declarations of subroutines.
    Added "default" to set default values for subroutine arguments.
    Output of LaTeX is now hidden, only errors are shown if they occur.
    Option "dticks" now works for log scales + improved log autoscaling.
    Improved Windows installer: added bitmaps and license screen (by Vincent P LaBella).
    Added "mdist d" option to "dn marker" to draw a marker every d cm along the given curve.
    Added "deresolve n" option to "dn line" to subsample the points before drawing (by Laurence Abbott).
    Added option "average" to "dereslove" to average the points instead of just skipping them.
    Added functions dataxvalue(di,i), datayvalue(di,i), ndata(di) (by Laurence Abbott).
    Added options "xmin" "xmax" "ymin" "ymax" to fitting routines of "let" command.
    Added "-safemode" command line option that prevents GLE scripts from accessing the file system.
    Added "-allowread" and "-allowwrite" to allow I/O in given paths if "-safemode" is given.
    Added "comment" option to "data" in graph block (by Vincent P LaBella).
    Example: "data filename.dat d1=c1,c2 comment //" will make GLE ignore lines starting with "//" in the data file.
    Better formatting of error messages if script contains long lines.
    Added support for curved arrows on arcs, elliptical arcs, and bezier curves (experimental).
    Added "palette" option to colormap command.
    Added fitting of arbitrary functions (based on fitls code from GLE 3.x).
    Example: "let d2 = fit d1 with a*sin(b*x)+c*x^2+d".
    Example: "let d2 = fit d1 with a*sin(b*x)+c*x^2+d eqstr e$ rsq r".
    These two examples fit dataset d1 with a function of the form "a*sin(b*x)+c*x^2+d" and put this function in d2.
    The second example in addition stores the resulting equation as a string in variable "e$" and the correlaction coefficient in "r". 

4.0.12 (September, 2006)

    Includes a GUI called QGLE (written by A. S. Budden)
    - displays the output of GLE and updates automatically after the source file is modified (run "gle -p myfile.gle")
    - has basic editing tools (add amove/line/circle/...)
    - QGLE is based on the QT and Ghostscript library
    Added GNU autoconf support (in addition to the regular makefile.os system)
    (on Linux, one can now compile with ./configure; make; make install)
    Added autopackage support
    UTF8 support (limited to latin characters with accents)
    LaTeX expressions are scaled to the current font height
    (set texscale none/fixed/scale)
    LaTeX expressions are used in key and graph blocks (set texlabels 1)
    The "begin box / end box" block now fills underneath its contents
    Added keyword "local" to define local variables
    (see e.g., Examples | Fractals | Sierpinski on the website)
    Added "colormap" command (regular and graph block)
    (see e.g., Examples | 3D plots | Information Gain on the website)
    Colormap works for functions and for .z files
    Added option "-v" to run another version of GLE
    (if more than one version is installed, use "gle -help v" to list installed versions)
    Added "begin object name" and "end object" to define objects
    Added "draw name.pos" to draw objects
    More sensible defaults for graph font sizes
    (use gle -cmode 3.0 to get the old defaults)
    Font size in graph now depends on the "hei" setting
    Added new set subcommands: titlescale, atitlescale, ticksscale, atitledist, alabeldist
    (to set font sizes and distances relative to the value of the "hei" setting)
    Distance between axis labels and title are better calculated
    Added "margins", "dist", "coldist" and "row" options to key block
    Added "scale h v" command to graph block, which is equivalent to a hscale/vscale pair
    Added colored fill patterns for the "bar" command and key block

    bar d1,d2,d3,d4 fill blue,red,blue,purple pattern none,shade,grid,shade2

    Added "xnames from di" to retrieve the axis labels from a data set
    Added "xnoticks p1 p2 ..." to disable ticks at specified positions
    Added "ftick x0" to "axis" to manually set the position of the first tick
    Added "offset y0" to "axis" to move the origin of the axis
    Added "angle a" to "axis" to rotate the axis labels
    Added "x0axis" and "y0axis" (these are disabled by default)
    Added option "center" to center a graph block
    Added option "math" to create a "math mode" graph with the axis crossing at the origin
    (see e.g., Examples | 2D Simple | Sin on the website)
    Added option "horiz" to bar command allowing "horizontal" bar plots
    Added option "style" to bar command allowing user defined bar styles
    (see e.g., Examples | 2D Complex | Color Bar on the website)
    Added arrow styles "filled", "empty" and "simple"
    Added support for user defined arrow styles
    (see e.g., Examples | Other | Arrow Styles on the website)
    Added function xbar(xp,i) retrieving the x-coordinate of bar i in a bar plot
    Added function xy2angle(dx,dy) that computes the angle (polar coords) given dx and dy
    Added function sdiv(x,y) implementing y == 0.0 ? 0.0 : x / y
    Added formatting modes "pi" and "frac" to format$
    (see e.g., Examples | 2D Simple | Sin on the website)
    Subroutine definitions and assignments can come before the size command
    Checks for correct nesting of all block commands
    While loops are now also supported (besides until ... next loops)
    Support for single line then/else blocks allowing code such as

    if a < 1 then print a "is smaller than 1"
    else if a < 2 then print a "is smaller than 2 but larger than 1"
    else if a < 3 then print a "is smaller than 3 but larger than 2"
    else print a "is larger than 3"

    LaTeX expressions can now also be used in combination with .ps output
    Axis scales are now computed based on the datasets that are actually used
    Graph block can include function calls, of which the output is clipped to the graph window
    (see e.g., Examples | 2D Complex | Labeled Scatter on the website)
    The manip utility has been integrated back into the GLE distribution
    (see e.g., this screenshot of manip). 

4.0.11 (December, 2005)

    Adds the contour utility for generating contour plots.
    Adds the fitz utility for generating 3d plots based on given data.
    Adds support for command line arguments using nargs() arg(i) and arg$(i).
    Adds the command line option -o to specify the name of the output file.
    Fixes a bug with accents (\^, \i, and \j are supported now).
    The \tex{} escape sequence can now also be used in tables.
    From and to specifications are now optional for let command. 

4.0.10 (November, 2005)

    Adds landscape support to the full page mode (orientation landscape).
    Improves the Windows installer (it now shows the readme, etc.).
    Fixes a bug in the parsing of some floating point numbers (e.g., 1.e5).
    Fixes a bug in user defined markers. 

4.0.9 (August, 2005)

    Parser has been significantly improved and gives more informative error messages.

    >> test.gle (22) |x = 64; y = log2(x)|
    >>                            ^
    >> Error: call to undefined function 'log2'

    TeX expressions are now included in output by default, use -inc for the "inc way".
    Added option -fullpage.
    Added pagesize and margins commands and corresponding config section.
    Added function eval(expr$) that evaluates expr$ and returns the result.
    Added option "curve angle1 angle2 d1 d2" to commands rline, aline and join.
    Fixed grid in log plots.
    Added escape sequence \expr{some_exp} that can be used in block commands and inserts the result of evaluating some_exp.
    EOF is stripped from .eps if included with postscript command.
    Special variables xgmin, xgmax, ygmin, ygmax, xg2min, xg2max, yg2min, yg2max that indicate the graph axis bounds.
    Fixed bug in return value of user defined functions.
    Fixed bug in loading of certain .tiff files that include alpha data (EXTRASAMPLE_UNASSALPHA).
    Angstrom symbol \AA added.
    Rewrote fopen/fread/fclose code based on new tokenizer.
    Added "fgetline chan line$" to read an entire line from a line.
    Added "ftokenizer chan commentchar spacetokens singletokens" to set up the tokenizer.
    Added command line option -c that turns GLE into a calculator.
    Added option -gs for fast GhostView previewing (by Axel Rohde) (only on Unix).
    Added rgb255() and rgb() functions.
    Added set arrowsize 0.5 arrowangle 30 to control shape of arrows.
    Local variables can now be used in graph blocks.
    Slope, Offset and R squared values of regression plots can be stored in global variables.
    Removed dependency on BOOST library. 

4.0.8 (March, 2005)

    One executable "gle" instead of one for each driver "gle_ps" and "gle_svg".
    Output to .pdf/.png/.jpeg by linking to GhostScript.
    Support for LaTeX expressions in GLE scripts using the command "tex" or the macro "\tex{}". (Examples can be found here.)
    Support for bitmap import (.jpeg/.png/.tiff/.gif) using the commands "bitmap" and "bitmap_info". (An example can be found here.)
    Options "impulses", "steps", "fsteps", and "hist" for the graph command "dn line".
    Option "round" for the commands "box" and "begin box" to simplify drawing boxes with rounded corners.
    Command "separator" in keys to construct keys with multiple columns.
    Option "absolute" to the offset command to position the key, e.g., at the bottom-center of the output.
    Function "format$" for formatting numbers (e.g., format$(1/3,"fix 3") = 0.333).
    Option "format" to the axis graph command to format the labels in a similar way.
    Functions "pagewidth()", "pageheight()", "width(name)", "height(name)", "pointx(name)", "pointy(name)".
    Command "print" for writing to the command prompt.
    Support for config file $GLE_TOP/glerc and $HOME/.glerc (on Unix).

4.0.7 (December, 2003)

    No more segmentation fault when encountering some types of errors.
    Unix version can now handle dos text mode files, gle, makefmt and fbuild.

4.0.6 (December, 2003)

    Includes makefiles for OS/2.
    Fix for slow rendering of long complex paths in postscript file. Speed now equivalent to 3.3h.
    Tweak to exe and src release filenames i.e gle_version_[src,exe]_[platform]....
    Exits gracefully when it cant open a file such as a data file in graph, image file, include file or using fopen.

4.0.5 (November, 2003)

    Fix unix/linux compile issues with afm files. They now have the proper line endings for Unix.
    Fix compatability issue with 3.3h: ATN and ATAN now work equivalently. In 3.3h only ATN worked for arctangent?

4.0.4 (November, 2003)

    Fix unix/linux compile issues.
    Will search c:\program files\gle (WINDOWS) or \usr\local\bin (UNIX) directories if GLE_TOP environment variable is not set.
    Proper wildcard/globbing handling on UNIX (assumes shell does the expansion).
    Minor improvement on file finding and error reporting.
    Cleanup of unused functions and varibles in gle.cpp.
    Windows binary now compressed with upx.

4.0.3 (November, 2003)

    Accepts filenames with wildcards/globbing i.e. "gle_ps *.gle" will compile all gle files in current directory.

4.0.2

    Fixed problem with program crashing when it couldn't open the gle file or include file.
    New zip files of source code and win32 executables. 

4.0.1

    Fixed problem with PATH and GLE_TOP not being set properly in installer. Fixed problem with loading include files from GLE_USRLIB.

4.0.0

    Code cleanup from 3.5.
    Compiles with latest C++ compilers.
    Has better error reporting where it prints out the line number and text associated with the line (even if the error was detected in an include file).
    Removed ncurses dependancy.

GLE 3.3g (14-May-1994)

    Ported to ALPHA OSF/1, some bugs still exist though.
    Merged changes made for gle32 and solaris and linux. 

GLE 3.3f (16-April-1993)

    fixed bug on sun's with axis labelling.  
    dviprint -dsx    Sixel graphics driver added to GLE DVIPRINT,
            thanks to:   Evan Wilson,   N Z Dairy Group

    Fixed RETURN statement so that it takes an optional parameter.
    (It always did, but why it used to work I don't know as the
    parameter wasn't optional)

    Added a yaxis option
        yaxis negate
    This is reversed the numbering on the y axis.  For use with
    measurements below ground, where you want zero at the top and 
    positive numbers below the zero.

GLE 3.3e (1-Jan-1993)

    Fixed clipping of lines through a log axis.
    Fixed help display which was loosing two lines on multi page
    displays.

GLE 3.3d

    Problem with SMOOTH on SUN machines fixed.
    fixed bug with named objects on postscript driver.
    added -nops qalifier to dviprint.

GLE 3.3c (1-Apr-1992)

    Fixed problems with large datasets in surface and contour
    Fixed problem with /kern/lower/movexy and other def's
    Fixed bug with   dviprint -depson -hires -nosquash
    Fixed bug with smoothing contours which made lines dissappear.
    (20-Sep-1992)
    Fixed bug with UNTIL looping.
    Removed limit of number of 'saved' points.
    (1-Dec-1992)
    Fixed tokenizer so "ab\"cdef" would accent the 'c' as expected.

GLE 3.3b (25-Mar-1992)

    Bigfile now accepts variables in place of the file name, e.g.
        xxx$ = "test.dat,2,3"
        d1 bigfile xxx$
    Added AUTOSCALE option to bigfile e.g.:
        d1 bifile a.dat line autoscale
    This pre-reads the file to scale the axis, which is slow but
    sometimes required.
    Updated version of inittex.ini which was causing problems with
        /char /def /movexy
    UNIX: install.com now copies graph.idx into system area.
    VMS: dviprint symbol added to CGLE_LOGIN.COM

GLE 3.3a (27-Jan-1992)

    Bug: lowercase xnames labels being mis-aligned is fixed.

    Gle now writes out   gletmp.t1 .t2 .t3 .t4 instead of .bak
    so you have four backup versions if something crashes.

    Fixed axis rounding errors for labels, e.g. .1 to .9 step .1
    might occasionally stop at .8
    
    Fixed filled boxes on DVIGLE driver, the filled region wasn't
    being translated if a scale or rotate was being used.

    Added commands:
        fopen, fclose, fread, freadln, fwrite, fwriteln
    E.G.:

    fopen "file.dat" inchan read
    fopen "file.out" outchan write
    until feof(inchan)
        fread inchan x y z
        aline x y
        rline x z
        fwriteln outchan x*2 "y =" y
    next
    fclose inchan
    fclose outchan

    The following accents now work.
        \` \' \v \u \= \^ \. \H \~ \"
    e.g.    
        text P\'e ter

GLE 3.2i (1-Jan-1992)

    Improvements made to lstyle for dot matrix and laserjet drivers.
    It now works!, patterns which don't divide into 32 bits and 
    dashlen are both supported.        (Thanks to Frank Evans)

    HPGL driver modified, now supports sizes greater than a3.
    New symbols HPGL_ADDX, HPGL_ADDY add a margin to the plot.  
    These default to .9cm and 1.5cm

    Bug in 'E' format numbers, 5e+7 was interpreted as 5+7 = 12
    instead of 50,000,000  (5e7 was always interpreted correctly)

GLE 3.2g (1-Nov-1991)

    All bitmap dot matrix drivers have been re-written:

        dvigle
        dvilj, dvilj300, dviepson, dviep24
    
    They now perform clipping and filling correctly, funny
    glitches in filled characters (texcmr) have been fixed.

    They also support a much wider range of fill styles

    Print the file DVIFILL.GLE to see the supported fill
    options.

    The command syntax has changed, the commands:
        dvilj, dvilj300, dviepson, dviep24
    
    Have been replaced by:
        dviprint -dlj 
        dviprint -dlj -hires        (was dvilj300) 
        dviprint -depson     
        dviprint -depson -hires        (was dviep24)

    Support for HP-PaintJet printers
    has been added:
        dviprint -dpj

   Usage: dviprint [-depson | -dlj] [-old] [-hires] [-debug] [-output xx.prt]    
        -depson   To produce output for epson printers 
        -dwp      To add tiff image to wp .eps file 
        -dlj      To produce output for HP LaserJet printers 
        -dpj      To produce output for HP PaintJet printers 
        -dover    Overhead transparency mode for PaintJet
        -old      For old HP Laser Jet printers (no compression)
         -hires      Uses high resolution for that printer (slower)
         -wide     If your printer has a wide carriage 
         -noflip   Disable's auto flipping 
         -nosquash Tries to print it full size
         -compress Force internal bitmap compression (slow,saves memory) 
         -noff     No form feed
         -debug    Prints debug messages
         -out x.x  Prints output to file instead of printer port
    
    ...
        3d Bar graphs are now supported, the commands are:
    
        bar d1,d2  3d .5 .3  side red,green  notop
        bar d3,d4  3d .5 .3  side red,green top black,white 
    
        Take note of comma's.
    
    3d  (xoffset yoffset)  
        Specifies the x and y vector used to draw the receding 
        lines, they are defined as fractions of the width of the
        bar.
        A negative xoffset will draw the 3d bar on the left side
        of the bar instead of the right hand side.
    
    side (color list)
        The color of the side of each of the bars in the group.
    
    top (color list)
        The color of the top part of the bar
    notop
        Turns off the top part of the bar, use this if you have 
        a stacked bar graph so you only need sides on the lower parts
        of each stack.    
    
    Note:    You won't see the color of the side or top on the pc screen.

GLE 3.2 (6-Mar-1991)

      File type changed from STREAM_LF to normal vax format.
    
      SMOOTHM option added which is identical to SMOOTH but
      will allow multi-valued functions. (e.g. circles etc)
    
      TWIDTH("") and THEIGHT("") functions fixed again.

V3.2b

      DEFINE MARKER myname subnamex
      MARKER myname
      Allows you to define a new marker as any subroutine.

      e.g. to define a character from the postscript ZapDingbats font
      as a marker you would use.

    sub subnamex size mdata
        gsave                ! save font and x,y
        set just left font pszd hei size
        t$ = "\char{102}"
        rmove -twidth(t$)/2 -theight(t$)/2  ! Centers marker
        write t$
        grestore            ! restores font and x,y
    end sub
        
    The second parameter can be supplied using the MDATA command
    when drawing a graph,  this gives the marker subroutine a 
    value from another dataset to use to draw the marker.  For 
    example the marker could vary in size, or angle, with every
    one plotted.
        d3 MARKER myname MDATA d4

    Encapsulated Postscript option modified so that WordPerfect
    won't clip the edge of the drawing.

    On a PC the /EPS qualifier will now create a file using 
    an extension of .EPS instead of .PS
    
    DEFMARKER mname fontname char_num scale dx dy 
    This command defines a new marker, from any font, it is 
    automatically centered but can be adjusted using dx,dy.
    e.g.
        defmarker hand pszd 43 1 0 0

    Bug in set color in PS devices which caused the 
    color to affect a previous line is fixed.

    Added built in function which returns a string describing 
    the device. e.g. DEVICE$() = "HARDCOPY, PS,"
    on the postscript driver.

    This can be used to use particular fonts etc on appropriate
    devices. E.g.:
        if pos(device$(),"PS,",1)>0 then
            set font psncsb
        end if 

    POS(src$,search$,start) string function fixed (surprise surprise)
    
    The editor now tolerates lines > 80 characters. 
    
    Fixed bug which caused incorrect characters to be drawn
    on pc screen occasionally.

V3.2c

    
    Pressing ESC repeatedly will now abort a redraw operation. (on PC)

    Load and Saveas will now default to .GLE 

    Bug with tex macro replacement fixed.

    Bug with mouse cursor not appearing on HERC screens is fixed.

    WPGLE.EXE added, this command will produce a special output
    file which contains EPS for PostScript printers and a 
    crude bitmap for WordPerfect to display on the screen.

V3.2e

    Fixed some colour mapping and added, purple, orange, pink, brown.

V3.2f

    Modified maximum size of dvilj,dvilj300,dviepson,dviep24 so that
    all can take graphs up to 19cm x 27cm

    Added command line switches

        /nod    (add ^D to ps file)
        /addd    (Don't add ^D to ps file)
        /nomaxpath (Don't choke on complex fill paths)
        /fill    (For dvibit, makes bar's filled instead of shaded)

    Added symbol for PC.
    
        GLE_NOCONTROLD TRUE
         (Stops ^D being added to ps files)

    (this is the default for unix)
    
    The DCL symbol GLE_NOCONTROLD should be set to "TRUE" to kill the 
    ^D on vms systems.

    If you set the DCL symbol GLE_EDITOR to TPU then you will get
    TPU instead of EDT when you press ^E

    You can now tell gle about postscript fonts that you have 
    downloaded into your own printer.

    Lets pretend we are adding a font called Greek-Bold

        1) Download the font into you laser printer
        2) Add a line to FONT.DAT
           psgb 86 psgb.fmt plsr.fve psgb.fmt
           a    b  c        d
        a = GLE's name for the font
        b = The next unused number in font.dat
        c = The font metric file, this can be created using
            makefmt from and adobe font metric file
            (.afm) which you should have been supplied
            with your font.
        d = The font vector file, this is just a font that
            that gle can use to draw your font on non
            postscript devices.
        3) Add a line to psfont.dat
           psgb Greek-Bold

        This tells the postscript driver that this is a 
        font that the printer knows how to deal with.

GLE 3.1e (1-Mar-1990)

      Errbars will now work with the bigfile option.

      x2ticks now come back on again if you turn the xaxis off and x2axis on
      (The error bars distances cannot also be a bigfile)

      if you use a let d1 = exp from 1 to 10000 step 1
      with a log xaxis it doesn't produce a smooth line.  GLE now
      checks and if the xaxis is a LOG scale then it uses the
      step option as an approximate required number of intervals which
      it spreads along the xaxis in increasing steps.

      In the graph module, if you use '0' as a column for the x data
      of a bigfile GLE will generate xdata of 1,2,3,4 ...
      e.g.  d1 bigfile a.dat,0,2 

      Data separated with commas and no spaces was being read incorrectly
      The data reading routine has been re-written. (introducing new 
      and more interesting bugs in the process)

GLE 3.1d (19-Feb-1990)

      In the past  "TEXT a\delta b" would have produced a space
      between the delta character and the letter b,  this action
      was incorrect and had been fixed. 
      Use "TEXT a\delta\ b" to get a space.

      "TEXT a(\delta)b" also works now.

GLE 3.1c

      Built in functions twidth("") and theight("") now work.

      Their is now a BIGFILE command for executing large gle files 
      that won't fit into memory using INCLUDE. (note this should
      not be confused with  the BIGFILE graph command).
      e.g.  BIGFILE NZMAP.GLE
      
      As bigfile compiles and executes the gle file one line at a 
      time you cannot use multi line structures (subs, if then else etc)
      but you can call subroutines if they are defined before the bigfile
      statement.

      Lines in bitmap drivers are now the right length (text looks better)

      There is currently a limitation on the size of text or tables that
      can be printed (this may be fixed at a later date)

      The xg() and yg() functions now work if the graph has log axes

      A bug which stopped the last line of a data file being
      read had been fixed.

      Correction to expression passing allows IF A$="ABC" THEN ... to work.

      Added shading styles RSHADE, RSHADE1, RSHADE2 ...(Lines at right angles)

GLE 3.1b

      Fixed the circle fill command so it uses the right colour.
      
      Modified PostScript arrows with wide lines so they look nice.
      They are now filled triangles rather than two short lines.

      There is now an example in BOXR.GLE which shows you how to 
      define a subroutine to draw boxes with rounded corners.

      Horizontal error bars have been added, the commands are
            HERR, HERRLEFT, HERRRIGHT, HERRWIDTH 

      If you had the same subroutine defined twice in a gle
      file it would skip the intervening gle commands, this is fixed.

      Arcto fixed for line devices (hpgl)

      Stacked bargraphs should not contain missing values,  replace
      missing values with the value from the column on the left. e.g.
            1 22 * 45  becomes          1 22 22 45

GLE 3.1a

      Bug with reading exponential format numbers fixed.

      Bigfile option added, so that you can extract particular 
      columns of data from a data file, e.g. 
            D1 LINE BIGFILE TEST.DAT,3,2
      Will use column 3 for x values and column 2 for y values.

      e.g.
'           data x.dat
            d3 line
      becomes
            d3 line bigfile x.dat,1,4
      As dataset three is made from columns 1 and 4.

      The space codes (\: \; \,) are now proportional to the
      current font size.

      text \rule{2}{3}  will draw a box, and \glass can be used
      to offset text.

GLE 3.1

      Modified default DPOINTS setting so that if DTICKS is not a 
      whole number it will display one decimal point.
      e.g. (1.0,  1.5,  2.0) instead of (1   1.5   2)

      the  "graph data d2=c3,c1"  option now requires no spaces 
      within the "d1=c1,c2"

      Begin path wasn't issuing a newpath, so multiple paths 
      got added together.

      Gle files can now begin with a numeric character.

      Bug with bitmap drivers fixed (dviepson, dvilj300 etc) which 
      resulted in a stray horizontal line on the page.

      The editor doesn't display long lines correctly,  it does 
      store them though.

      On the PC  the PSGLE driver now writes output files 
      to INPUTFILE.PS instead of out.ps   e.g. bar.gle --> bar.ps

      Added \linegap{-1} tex primitive to stop odd spaces lines
      when using super/subscripts.
      vscale and hscale were not being reset after each graph.


      Some of the characters which were missing from the PLOTTER fonts
      have now been installed (e.g.  []{}<>% )

      You can no add lines and text to a drawing using the mouse or arrow
      keys on the PC version of gle. 

      There is now a graph command, FULLSIZE which sets 
      vscale,hscale to 1,  and turns the border off.

GLE 3.0h

      Fixed bug with LSTYLE in PSGLE (on the pc only)

      You can change the size of the default key by setting the
      hei of text used to draw the key. e.g.
      begin graph
            ...
            key hei 1.2
      end graph

      If the value of an error bar length is a missing value then that 
      particular bar won't be drawn.

      If you escape out of the idiot graph creation menu it will now 
      correctly put an END GRAPH in your file.

      Line and Grid shading has been added to the postscript 
      device driver, the following colour names are now accepted.

      shade,shade1,shade2,shade3,shade4,shade5
      grid,grid1,grid2,grid3,grid4,grid5

      e.g. BAR 2 3 FILL GRID3

      Print the example file SHADE.GLE on a postscript printer 
      and stick it on the wall for reference.  ($ cgle shade /print)

      Bug with changing diskdrives on a PC is fixed.

      The fonts SSBI and SSI were reversed on the laser printer.

      There is now an axis qualifier SHIFT for shifting the labelling
      horizontally (when the label refers to the data between the 
      two ticks) e.g.
            xaxis shift .4

      In order to put a large space between two words you must 
      use these control sequences e.g.  TEXT  Hello \; world
            \,   =     .1cm
            \:   =     .2cm
            \;   =     .4cm

      Use \_ to get an underscore character inside text
      ("_" normally means subscript) 

      Fixed X2AXIS SIDE ON 

      HPGL Plotter pens 1=black, 2=red, 3=green, 4=blue, 5=magenta, 6=white

      Bug fixed in linestyles caused by the cap being set to ROUND which 
      merges the dashes together for wide lines on the laser printer.

GLE 3.0g

      Fixed bug with smoothing more that 200 points
      Fixed bug with joining between saved objects.

    When using the plotter fonts you may find some characters are missing,
          e.g.  %,[ and ]  (These have now been put into these fonts V3.1)
    The following command will replace these characters with latex equivalents.
          size 24 18
          text \chardef{%}{{\setfont{texcmr}\char{37}}}
          text \chardef{[}{{\setfont{texcmr}\char{91}}}
          text \chardef{]}{{\setfont{texcmr}\char{93}}}
          ... rest of gle file

GLE 3.0e (17-Sep-1990)

    Missing values are not used to calculate new dataset values during 
    a let command (e.g.  "let d3 = sin(d2)")
    
    Fixed bug in LOG data display.  (If you have used LOG axis prior to 
    this release you SHOULD replot your graphs)
    
    The bigfile option now works with markers as well as lines.
                (e.g.  "d3 bigfile "year.dat" lstyle 1 marker dot ")
    
    GLE 3.0d (5-Sep-1990)
    
    The default labelling of axes is sometimes not ideal, for example
          0     0.333333   0.6666667        1.0
    you can now adjust this with the command "XAXIS DPOINTS 3" which sets 
    the decimal places for an axis.  e.g.
          0.000 0.3330.666   1.000
    
    The MSCALE option now works.
    
    Markers have been reduced in size, this will affect existing gle 
    files, they are now approx 60% of there original size.
    
    The bigfile option now works on postscript printers, there was a bug 
    caused by sending an entire 10,000 point curve to the printer as one path
    which it choked on if it was short of memory.
    
    You will occasionally get an error message "PATH TOO COMPLEX" this means
    that GLE decided to split up a line into shorter segments.  Normally
    this WARNING can be ignored.
    
    The default axis labelling of  1, 1.5, 2  has been changed to  1.0, 1.5, 2.0
    Exponent axis labelling has been fixed 2.00000e4 becomes 2.0e4 
    
          *** NEW DEVICE DRIVERS ***
    
    GLE now supports the EPSON 8PIN and 24Pin printers, and the 
    HP deskjet/laserjet printers.  To support bitmap devices which require
    a large amount of memory GLE first writes a device independent file
    OUT.DVI, you then run the bitmap driver for your printer and that prints
    directly to LPT1:  e.g.
          C:\GLE> dvigle myfile        (produces OUT.DVI)
          C:\GLE> dviepson       (creates bitmap and prints to lpt1)
    
    The output options are:
          C:\GLE> DVIEPSON Standard epson printer
          C:\GLE> DVIEP24        24 Pin epson printers (180 dpi)
          C:\GLE> DVILJ          HP Laser jet, Desk jet (150 dpi)
          C:\GLE> DVILJ300 HP Laser jet, Desk jet (300 dpi)
    The hi resolution drivers are significantly slower (2-3 times) than the 
    low resolution drivers so would only be used for final copies.
    
    By default the fonts (RM, RMB, SS, TT etc) will all map to PLSR (plotter 
    simplex roman) on both bitmap drivers and the HPGL driver.
    If you want this to happen on other drivers then put the
    command "PLOTTER FONTS" right after your SIZE command in your gle file.
    
    An lwidth of .00001 on a laser printer will give you 1 pixel width lines.
    (and won't occasionally round to two pixels)
    
    Using Postscript and HP drivers on the PC:
          C:\GLE\> PSGLE MYFILE.GLE    (Writes myfile.ps)
          C:\GLE\> HPGLE myfile.gle    (Writes out.hp)
    
    Making a 360K distribution diskette from the 1.2M diskette.
    (if a: = 1.2Meg disk,  b: = 360K disk)
          a:> copy a:install.exe b:
          a:> copy a:pkunzip.exe b:
          a:> copy a:gle1.zip    b:
          a:> copy a:gle2.zip   b:
          a:> copy a:gle3.zip   b:
          a:> copy a:gle4.zip   b:
    
    To install GLE on a pc type:
          C:\> a:install 

GLE 3.0c

    Bug with LaTeX symbols in graph titles fixed. 
    
    Extra graph dataset qualifiers "BIGFILE and NOMISS"
          NOMISS removes missing values from a dataset.  (so disjointed lines
          are re-connected)  (e.g.  "d3 colour red nomiss")
          BIGFILE allows a very large dataset to be drawn on a PC, it doesn't
          read the dataset into memory as usual.  (but must be in a file 
          with only one dataset, and no BARS or markers can be drawn.
          And axis ranges must be specified by hand.
          (e.g.  "d3 bigfile "year.dat" lstyle 1")
    
    Fonts:      The LaTeX greek font is missing from the small distribution disk.
          It is now possible to copy on any missing font directly into the 
          c:\gle\font\ directory. Copy both the FMT and FVE files. 
          e.g. "texcmmi.fmt, texcmmi.fve"
    
          set join mitre | round | bevel
          set cap but | round | square
    
    Fixed:
          Superscript, Subscript
          Symbols on Laser Printer after white fill.
          Individual dataset scaling fixed.
          
    Notes on new Drivers:  HPGL, TEK4010, P79.
          HPGL: With this driver you can define the symbols
                hpgl_open, hpgl_close to be the escape
                sequences required for strange hp printers.
                also HPGL_WIDTH, and HPGL_HEIGHT for non A3 plotters
          
          TEK:  TEK_OPEN and TEK_CLOSE can be defined to allow
                non dec tektronix terminals, e.g. TEK_OPEN = "^[?38h"
    
          (this is normally done in CGLECMD.COM so that when you specify
          /DEV=V550, OR /DEV=HPA4 it defines the symbols for you.
    
          On the vax the following cgle dev qualifiers are valid:
    
                cgle myfile.gle /dev=vdisk,v550,hpgl,tek
          Plus any P79 supported device, your output file will be  MYFILE.HPGL

GLE 3.0b

    2) Currently supported devices:
          PC version:
                HERC, EGA, CGA, etc (any BGI supported display)
                PostScript
          VAX version:
                REGIS(VT125,VT240,VT340 etc)
                UIS  (Workstations running VWS software)
                PostScript
          (additions to this list lower down)
    3) Fonts:
          The PC version comes on one 360K floppy, on this disk is a 
          subset of fonts, if you use a font that isn't on this disk
          it will use a replacement font, and replacement metrics so
          the size of the text may be misleading.
          If you have enough disk space (another 1Meg) then you can
          install the complete font set.
    
    4) PostScript:
          The PSGLE driver is not on the 360K Floppy, you must install 
          it separately if you have enough disk space (another 400K)
          (or copy gle and data files to a VAX and use the vax
          PS driver)
    
    5) Using GLE on a VT100/VT240
          If your keyboard doesn't have function keys (f9-f14) then you
          can use GOLD 1-4 (for 11-14) and GOLD 0 (for f10) and
          GOLD 9 (for F9)  GOLD 5 (show errors)
    
          If you run GLE on a vt100 it will work OK but not actually DRAW
          anything on the screen (as it thinks it's a vt240)
    
    6) Other keyboard features:
          ^F will toggle between fast and slow (but nicer text) on some devices
          ^E will call VAX/EDT
          ^Z Exits from all menu's etc (like ESC on a PC)
          ALT-X Exits on a PC without asking you for confirmation.
    
    7) There are currently no drivers for Plotters or DotMatrix Printers, 
    these are planned for the next month or two   (see update notices below)
    
    8) Additions:
          The command "SET FONTLWIDTH value"  has been added, this allows
    the line width of stroked fonts to be changed.
