[========================================================================]
[========= TODO BEFORE RELEASING VERSION 4.0 (EXCEPT BUG FIXES) =========]
[========================================================================]


COMMANDS:
=========

-- pm3d doesn't work for concave data, concave in the sense of valid data
  per scan, where single scans are interrupted by invalid data points. (joze)
  * Petr: what do you mean? Example?


DOCUMENTATION:
==============

-- BUGS file should be updated.

-- gnuplot.doc
	- should have sections "new in 3.7.1, 2, 3" and "new in 4.0";
	  the NEWS file could serve as a basis
	- better document that you need a blank line in between scans
	  for 3D (many people ask why pm3d plots nothing...)

-- titlepage.sty:
	- update people contributing to this gnuplot version,
	- update gnuplot version and the corresponding dates

Recently I've moved importants things from README.os2 into gnuplot.doc and
INSTALL; those other README.{x11, win, xli, nex} should be
dispersed similarly. Who can do it?

-- docs/old/README.3d
-- docs/old/README.fit
  These should be be edited and pasted into gnuplot.doc and then removed.

-- update tutorial/

-- FAQ should be updated
   Where is the original source for this? It should be ready to add
   mouse-, hotkey- and pm3d-related questions.


TERMINALS:
==========

Amiga:
  -- update its docs from docs/old/README.ami, then delete this file

CGM:
  -- implement filledboxes

Emx:
  -- update its docs from docs/old/README.emx, then delete this file

GIF:
  -- Patch 400540 Export scale information for a GIF output.
	Any sense to add this patch, or close it without adding?
	EAM - Drop it.

(g)pic:
  -- update its docs from docs/old/README.pic, then delete this file

{eps|ps}latex:
  -- none of the latex terminal variants support pattern-fill, but
	they return no error if you try it.

Metafont:
  -- update its docs from docs/old/README.mf, then delete this file

NeXTstep:
  -- update its docs from docs/old/README.nex, then delete this file

PBM:
  -- Patch 592230 Better colors for PBM.
	Can somebody comment on this?
	EAM - Yes. The PBM uses only 4 bits of color info, which doesn't
	      leave much space for nice colors.  Re-writing it to use 
	      the web_color_rgb colors as a palette instead would be nice,
	      but non-trivial.  Better just to use the PNG driver.
	      As to the patch - there is none, just a comment that two
	      of the colors are hard to see.
  
Pstricks:
  -- Patch 559611 color + variable pointsize in pstricks
	Can somebody comment on this?

Windows:
  -- update its docs from docs/old/README.win, then delete this file
  -- rotated text is not supported
	demo/textrotate.dem does not pass correctly
  -- palette colored text is not supported
	demo/textcolor.dem does not pass correctly
  -- windows driver does not report font size to windows.trm, thus
     character widht and height are quite useless numbers
  -- update wgnuplot menus
  -- repaire the linetype bug in wgraph.c --- crash for
		set style fill solid border
		plot [-2.5:4.5] 100/(1.0+x*x) with boxes lt -1
	or
		set style fill solid noborder
		plot [-2.5:4.5] 100/(1.0+x*x) with boxes lt -1
	or
		set style fill empty
		plot [-2.5:4.5] 100/(1.0+x*x) with boxes lt -1
  -- windows "Pause -1": it works very strange if you press <enter> while 
	having the mouse cursor out of the graph window. Mainly users running
	demos complain about this. This bug is associated to BUG 561418 
	"(MS Windows) 100% CPU Usage during pause", and to HBB 20001217's note
	about WaitMessage(); in wpause.c.

X11:
  -- update its docs from docs/old/README.x11, then delete this file
  -- documentation for all X11 command line switches (joze)

Xlib:
  -- update its docs from docs/old/README.xli, then delete this file

Mac, Apple, MacOS
   -- support to be added, or at least information to the AquaDriver
   et al?


OTHER BUGS:
===========

-- INF number in gnuplot binary file crashes gnuplot


TERMINALS, GENERAL COMMENTS:
============================

-- verify that terminals don't reset options (I've checked a lot, but 
should be tested again)

-- unify color and pointtype sequence, alias similar line and point type
sequences for the main terminal drivers (joze)

-- Also unify fill color sequence and fill pattern sequence;
   choose fill patterns to be optimal for monochrome output (EAM)


GNUPLOT LIBRARY:
================

Make a library (e.g. usr/local/gnuplot/scripts/, .../gnuplot/bin) of 
(a) gnuplot scripts, and (b) shell scripts relevant for gnuplot:

-- enclose script "gpsavediff" that diff's output of gnuplot's "save" command 
and default setup after "reset" 

-- move pm3d/contrib/* files into the proposed gnuplot library, then remove
pm3d/contrib and pm3d/ from cvs

I.e., the last point is the main question: where to put pm3d/contrib/* files?


WEB:
====

-- gnuplot needs a "professional" web page


INSTALLATION --- LINUX:
=======================

-- add .spec file and a 'make' target to create RPM file?


INSTALLATION --- VMS:
=====================

-- bring configure.vms in sync with current configure.in


[========================================================================]
[========================================================================]
[========================================================================]


Projects, in no particular order:

- revise border command to use keywords
- put minor tics into demo file

- define either quit or exit to mean finish-this-file, not finish session
  - at present, they are ignored in script files

longer term

- break it into four layers:
  : low level graphics  (some of term.c)
  : plotting code, reading the setshow.h global variables
  : parsing code - read a string, and parse and execute it
  : front end, interact with terminal / gui
  basically, gplotlib is layer 2, and the traditional gnuplot is
  layer 4, which is little more than a small client of layer 3.
  Terminal option lines are table driven,
  so that even though the options are defined by layer 1, the
  actual parsing is implemented in level 3

- group related 'set' variables into structures, particularly xaxis
  stuff,etc. This will allow a move to table-driven parsing.
  [PARTIALLY DONE] as of 3.8c
  [DONE for the axis ones] in 'axis' branch on SourceForge [HBB]

Lars' list

- much-requested feature: read text/commands from data files
- provide library of replacement functions instead of stdfn.c
- possibly switch to automake
  [PARTIALLY DONE] not done yet: docs lisp
  [docs is next; won't do lisp]
- completely rewrite the parser. Use yacc/bison if possible.
- maybe rewrite the scanner in lex? The benefits are not so obvious,
  because the current scanner is extremely simple. This is probably
  only worthwhile if the parser is rewritten at the same time.
- maybe use PD hash code for table-lookup (SNIPPETS code). Tables for
  builtin and user functions, variables, commands. What else? aliases
- [Robert S. Maier] rewrite term.c to provide an interface to GNU plotutils
- [HBB] rewrite hidden3d code 
  [MAINLY DONE] needs fine-tuning to remove single-pixel errors
- for post-3.7 release: integrate new feature patches (M. Koga's
  polygon patch, various postscript driver patches by Dick, T. Walter's
  gnuplot command line history save file, etc)? 
  All done except polygon patch. Better to use pm3d.
- standardise float/double comparisons around the suggestion in the
  comp.lang.c FAQ (What's a good way to check for "close enough"
  floating-point equality?) and symbolic constants from standard header files.
  LOADS of errors throughout the code, especially in graphics.c
- autogenerate term.h from config file in text format and/or configure?
- parse "~" in filenames as $HOME
  [PARTIALLY DONE] does not work for cd, set output
  [PARTIALLY DONE] works for all cmds now; plot key shows "~" instead
  of path (-> fix); does not accept "~" and "~user". Maybe implement
  former, latter requires reading passwd file (-> not!)
- general expansion of user defined and environment vars in
  labels?
- string variables, aliases
- [Lucas] fix axis ranges, overwritten labels in demos
- png driver needs update for png versions >=0.95
  must be backwards compatible (do we want to require png >=0.95? We
  already require >=0.89; possible compile problems under Irix 6.x which
  comes with png 0.88/zlib 1.0)
- write or organise a portable version of snprintf(3) with a copyright
  compatible with the gnuplot copyright (ie. no GPL) (Apache?)
- gnuplot often doesn't free() memory; rearrange code to do this
  [memdump() function, command; mem_cleanup(), to be called on
   exit and reset; check existing code]
- add Amiga WinGnuplot driver and related files (difficult; cannot get
  it to run successfully when compiled with gcc)
- add more maintainer checks (eg. file permissions)
- better lisp/ files integration (Makefile target to import Bruce's
  latest version). How to handle duplicates?
- better documentation format; get rid of the doc2xxx utils
  [SGML. SGML. SGML]
- update the FAQ!!!!
  [Being worked on by Juergen]
  updated version now in archive
- non-integer time value in 'pause' command
  implement using select() where available, or usleep(); round off
  on systems without
- tilde and variable expansion to be done by 
  gp_fopen() - to be implemented
- fix bug which prints "DI,1DI,0" in the upper left corner of the plot when
  in pcl5 mode and printing to an HP Laserjet 4+ (J. Breeding, bug-gnuplot)
  [HBB: reason known, but proper workaround path unclear]
DONE - integrate gpltconv into gnuplot (convert command?), configure option
DONE - make history size configurable (set historysize)
DONE - port writeback fix to 3.8

HBB:
WIN16 compile (BC++3.1):
DONE - no vfprintf simulation for the WText module, yet --> int_error problematic
-- graphics.c: too much global data?

WIN32 compile (BC++4.52):
DONE - problems with the 16bit helper programs doc2help, bf_test (local installation problem suspected)
-- test run fails: script execution stops as soon as first plot is done.

Petr Mikulik (info-gnuplot-beta Thu, 02 Mar 2000)
it would be very convenient to set the values/formulae for columns in 
advance, before "plot" --- something like
        set data using 3:($8/$9+1)

