HIGH PRIORITY:
**************

* Check `cole.spec' file, verify it works.

* Fix installed headers. It installs innecesary headers, I think.

* Fix bugs listed in `BUGS' file!


MEDIUM:
*******

* cole.spec is regenerated while configuring, avoid that.

* Make cole reentrant safe.

* Review Martin Schwartz mail:
  ---QUOTE---
  It might be helpful to you to have a look at the perl 5 (Ole::Storage) 
  release file "Storage.pm" method "ole_head", giving some additional info
  about big- and smallblocksize (offset 0x1e, 0x20) as well as about Extended 
  Block Depot for very large files (offset 0x44, 0x48). And, sorry for my
  screwed up namegiving...
  ---END QUOTE---
  May be it will answer the two questions about size file.

* Really use the results of the configure guesses, with #ifdef HAVE_x in code:
Headers used: stdio.h, stdarg.h, stdlib.h, string.h, malloc.h, \
	      ctype.h, sys/types.h, assert.h
Functions and types used:
fprintf (stderr, ...)
printf
strcpy
isprint
L_tmpnam
perror
getc
ungetc
fopen
fclose
fread
fwrite
ferror
fseek
rewind
remove
tmpnam
assert
malloc
free
realloc

* Check:
 + all exit codes in olecod.c, they must be logical (ie. not 5 but 12
   and so on)
 + ends () doesn't should be called more than once
 + that is safe calls free tree if any function (oledecode or olecod)
   exit with no zero

* Add cole_version(void) an cole_compatibility_version(void) functions.

* Make it compile using Borland C.

* Use void `swab(const void *from, void *to, size_t n);' (in fil_sread*) if
  present, for performance.

* Rewrite olecode.c to use `test(..,..)' instead of `test_exitf(..,..,dummy())'.

* Add SYSTEM_CANONICAL TYPE test to configure.in and "export" it
  to a #define macro, to reporte it in --help.
* See the posiblity to convert some #defines functions to real functions,
  to get objects of smaller size.

* See mark `/* FIXME MARK 2 */' in oledecod.c.

* Handle better seconds and days in pps_entry, may be converting it.

* Instead using assert, use assert_return or something like that: the
  purpose is not abort, but return a error code (like 19, like xls2xml).

* Check all pointer arguments checked != NULL using assert, as well other
  parameters must be correct, use assert or assert_return (see up).

* Review error checking system (that means, does all possible errors can
  be captured?)

* Add property sets read and create functions (as implemented in LAOLA):
  Invent some functions to construct an pps_entry * tree. one could be:
    int add_stream (char * stream_name, char * filename, pps_entry * tree)
  That function would open filename, calculate its size, and write it tree
  as brother. other could be:
    int add_directory (char * dir_name, pps_entry * tree)

* Function generate_real_file needs to be checked if it is all correct
there. See /* FIXME MARK 3 */ in olecod.c.

* Provide some m4 macro to test version of installed cole library.


NOT URGENT:
***********

* Check that list->size not have been used as size of file, because it's
  the size of the list.

* Change #defines func(..) and its calls in order to make parameters
  between parentesis. Don't broke anything.

* Indent all files. Use indent. Check they look ok in 80 columns.

* Change all 4's to sizeof(U32). DANGER: take care don't brake *anything*.

* Use some package to discover uninitializated memory, use some profile
  package, etc.

* Insert all streams in sbfile, SDepot, BDepot and Input and *after*
  recalculate all sizes and blocks and all that stuff in OLEcode, instead do
  it each time we insert one stream (this could lead great performance).

* Support cross compiling (don't even know what this exactly means! =) ).
