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
----------------

Pending Patches
---------------
    - ?? more work on D&D based sheet reorg ?
    - XIM menu http://bugzilla.gnome.org/show_bug.cgi?id=84062

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

- validate expression names to ensure that they are not simple values (eg TRUE)
- height calculation in render value is hosed for embedded new lines

1) graphs
2) stf
    2.1) UTF-8 cleanliness
    2.2) User specifiable character encoding
    2.3) Replace UI for format selection
    2.4) Provide an optional mechanism for specifying the target location
         useful for text to columns, and import into sheet
    2.5) A help button
3) hlinks
    3.1) Finish the edit dialog to load and store results
    3.2) Figure out import semantics of the other 2 XL types
4) finish support for h/v only splits				(DONE)
5) zip based format
    5.1) move existing code into plugin
    5.2) work on sax style exporter
    5.3) extend api for gnm_expr_as_string to handle 1.0 vs 1.1 style rangerefs
    5.4) should extend the format api to contain (not support) all of the
        opencalc flags.
6) XL
    6.1) biff7 externsheet records in charts			(DONE)
    6.2) 97 export						(DONE)
    6.3) Check xl import of unicode names			(DONE)
    6.4) Fix export of unicode for 95 & 97			(DONE)
    6.5) Intersection, union and set export
    6.6) fix name export now that we sorta understand it
    6.7) non-ole import (Nick Lamb is working on this)		(DONE)
9) Manual recalc						(DONE)
    9.1) finish calculation ui in workbook attr dialog		(DONE)
10) fix highlighting of completion code				(DONE)
11) look into using the default gtk font rather than our own
12) audit all of the import plugins to do UTF-8 conversions
    12.1)  excel						(DONE)
    12.2)  applix						(DONE)
    12.3)  lotus
    12.4)  quattro pro
    12.5)  plan perfect						(DONE)
    12.6)  html							(DONE)
    12.7)  opencalc						(DONE)
    12.8)  oleo                                                 (DONE)
    12.9)  sc                                                   (DONE)
    12.10) sylk
    12.11) dif
    12.12) psion

13) Reinstate auto-format
    13.1) Add characterization (units) to StyleFormat
    13.2) Move type information to function flags.              (DONE)
    13.3) Change commands to infer types.
14) merge open and import dialogs                               (DONE)
15) Notice mismatch between suffix and saver			(DONE)
16) Decide whether to turn on the poor man's UTF-8 regexps.     (DONE)
17) Outline mode
    17.1) markers above/left instead of below/right
    17.2) smarter handling for groups at the edge of selection
    17.3) implement 'clicked' for numbers callbacks
18) 3D reference fixes on sheet deletion
19) 'discard' for invalid expressions enters text as string	(DONE)

UTF-8: (grep for ctype.h is a good start)
    - Window titles.
    - format precompile

Probably Post 1.2 Targets
-------------------------
- eggmenu (would be nice to slide in to support merging from non-bonobo build)
- finish corba plugin
- conditional formats : could be done if someone wanted to work on the dialog
- pivots and scripting
- drawing rotated borders
- undo/redo transaction file
- load/save of external references
- input message				(Stored)
- validation from list
- clipboard handlers in plugins
- Put a pango layout in rendered value

Excel i/o
    - 'Forms' import.

Misc stuff that should be fixed
-------------------------------

- Oleo formulae contains spaces and now break.  (Try demo.oleo.)

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

- Evaluate mathfunc.c's use of gamma and lgamma.  We use the libc lgamma
  (probably ok) and have gamma(x)=exp(lgamma(x)) (questionable).
- 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.)

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

- Make deletion work for multiple ranges.

- 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.

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

- 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.
    : Check scoping changes.
    : Is there such a thing as an array formula in a name ?
    : Handle pasting an expression with an un-qualified sheet local name into
      another sheet

- 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.

- 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.

- 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.
    : 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
    : It incorrectly accepts mmm:ss as some sort of minute spec.

- 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)

- 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.

Dialogs
-------
- Formula Guru
    : Fix keyboard interface

Function Breakage
-----------------
- 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 ?

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.
    : creates formulae by making strings and then parsing them.
      (Wasteful and won't work in non-C locales.)
