To report Gnumeric bugs, please visit bugzilla.gnome.org.

This file is used as a scratch pad by developers.  It is a list of known
issues that need to be addressed.  Divided into, things that will prevent
release, and longer term bugs.

Release Critical
----------------

- We need to somehow add --export-dynamic to the gnumeric link line, or else
  plugins won't load on Solaris/gcc.  (This might just be my bastard libtool.)
- 3D reference fixes on sheet deletion
- Dependencies for constructed ranges
- Finish support for named ranges in applix.
- range sel for expressions that start with +
- 'discard' for invalid expressions enters text as string

1.2 Targets
-----------

- xls export of constructed ranges
- load/save of external references
- String functions need to be UTF8ed: CHAR, CODE, SUBSTITUTE, SEARCH.
- Search/Replace needs to be UTF8ed.
- function_category_compare needs to be made UTF8 safe.
- http://bugzilla.gnome.org/show_bug.cgi?id=83390 [drawing problem with large
  formulae]
- http://bugzilla.gnome.org/show_bug.cgi?id=83363 [gross performance problems
  with large formulae]
- Evaluate mathfunc.c's use of gamma and lgamma.  We use the libc lgamma
  (probably ok) and have gamma(x)=exp(lgamma(x)) (questionable).

Pending Patches
---------------

- Nakai's IM support (broken in the context of gnome2)

Long term breakage
------------------

- xls import should retain VBA macros and re-export them.

- Remove duplication of code between analysis-tools.c and collect.c

- Make deletion work for multiple ranges.

- Most arg-type functions need to be somehow marked as strict.  Checking for
  errors by hand everywhere is silly.  (This is at least partially done.)

- Add dirty flags to workbook too, adding a sheet should make workbook dirty
  not the new sheet.

- Audit all fixed-length buffers.  Most non-time-critical can be replaced
  by proper usage of g_strdup_printf.

- Fix "-geometry" handling:
  : When an anchor is specified (e.g., "+0+0"), the window manager should
    not be asked to place the window.  (Under twm, for example, the user
    typically clicks to place the window.) This already works correctly
    under many window managers.

- The autocalc label should use a more readable format and should not get
  clipped.

- Missing undo/redo for
    - Duplicate sheet.
    - Remove sheet. This raises some serious design issues.
    - Freeze panes.
    - Goal seek.
    - Tabulate.
    - Sheet object configuration changes.

- Misc.
    - Add an idle handler at start up to check for availablity of
      evo and guppi.  They should only be enabled if they are available.

- Names
    : references in names do not get changed with cut/paste or ins/del row/col.
      How to handle relative references in names ?? here.
    : Dialog
	* We should start with the expr entry set to either the current cell,
	  or by selecting the first named expression in scope that contains the
	  current cell.
	* Should <ok> add the name ?
    : Check xl import of unicode names
    : Check scoping changes.

- can_try_save_to uses access().  That's bogus in a number of ways: (a) it
  checks the wrong permissions in the set[gu]id case.  (b) It reports the
  wrong result if the path is not readable.  The Right Way to do this, is
  just to do it.  And then check the error code.

- gnumeric_error_invalid change call sequence to use printf argument style.

- Panes 
    : support horizontal or vertical only

- outline mode
    : finish implementing optionally putting markers above/left
    : Make ungroup smarter about handling extra items of lower level at the edges
    : implement 'clicked' for numbers callbacks (requires cleanup in the collapse code)

- hidden rows/cols
    : Make unhide smarter to find hidden regions on either side of selected ranges.

- clean up the range_list codes to differentiate a list of ranges from a list
  of cellranges.

- In selected regions the borders of cells that
  have their background color set are drawn incorrectly.
  An off-by-one pixel problem. For details see :
  http://bugzilla.gnome.org/show_bug.cgi?id=52240

- The max row/col canvas scroll size is still hard coded.

- calculated cells do not span.
    : this is by design, we'll fix it when we move to just in time rendering.

- Formats
    : support negative durations with [h]
    : Why does the number matching bother comparing against formats that are
      covered by 'General' ?
    : format.c: we should resolve all the separators at gnumeric_setlocale time,
      not every time we need them.
    : the format classification should know about other currencies and currency
      placements.
    : The currency list in the format dialog needs to be sorted for the locale
    : When applying a currency symbol we need to store the NON-localized id.
    : hour month and year format strings need to be internationalized.
	eg tt:ss instead of hh:ss for other locales.
    : formats with AM/PM need to be internationalized.
    : we should parse fractions
    : We do not format fractional seconds correctly.
    : Parsing should handle embedded strings

- Inc/Dec precision should work.  Try "44", click $, then add/remove decimals.
- While we're playing with those functions, let's add simple ones like inc/dec
  font size and things like that.

- locale : Saving xml should not rely on changing the textdomain to
           disable translation of TRUE/FALSE in expressions.
	 : Support parsing and displaying locale specific function
	   names.

- Auto resize needs to handle empty cells.

- auto-fill does not resize row/col

- Styles
    : improve uniform_get to handle full sheet more quickly.
    : Borders
	* use new border code for cell format dialog (possibly preview-grid)
    : Underline
	* should scale with font size.  (Say, max (1, font->descent/4?)
	  gnome-print has a function we could use for printing which returns the
	  underline thickness.
	* Should be visible in the edit-item (should edit item use cell_draw ?)

- SheetObjects
    : Add acetate_create virtual to handle shaped objects.
    : Other anchor types for sheet objects
    : Add keyboard controls for the control points
    : Add object control for resize to disable invalid sizes.
    : Add 'is_printable' flag and import
    : research the other xl object flags.

- Add a warning when attempting to save using the suffix from a different saver.
  eg saving .gnumeric as foo.xls
- Can we probe for .gzipped files to catch the misnaming ?

Dialogs
-------
- Formula Guru
    : Fix keyboard interface
- Import Dialog
    : Rewrite main page preview (see Bug #66393)

Function Breakage
-----------------
- Index : does not support 0,0 or reference syntax.
- address : This code is a duplicate.  Have the function use the standard
    routines.
- There are a number of #UNIMPLEMENTED! things to take care of in the
    financial functions.  Mostly this is due to incomplete documentation.
- Function range_min_k uses an O(n*log n) algorithm.  It should use O(n)
  algorithm, see Knuth.
- Functions like SUMPRODUCT need to have better support for sparse ranges.
  We should probably create synchronously_walk_ranges.  (XL goes kaboom on
  large ranges also, but we ought to be smarter.)

Printing
--------
- cell text wraps differently when printing than displaying due to scaling
  differences in font size.  do we want to eliminate this ?

Widget polishing
----------------
- extensions to the notebook to enable dragging a tab to reorder and copy

Plugins
-------
- i18n support for third-party plugins.
- Add extra info (authors, etc.) to XML file.
- Beautify ErrorInfo dialog (it's ugly).
- Mark plugin as "broken" if deactivation failed.
- mps
    : has some fixed-length arrays that can be overrun.
