158 lines
4.9 KiB
Plaintext
158 lines
4.9 KiB
Plaintext
|
|
||
|
HIGH PRIORITY:
|
||
|
**************
|
||
|
|
||
|
* Review all the documentation for style errors and so on.
|
||
|
PLEASE, ENGLISH SPEAKERS, HELP ME HERE!!!
|
||
|
|
||
|
* Improve example of cole_recurse_tree() in examples/filesystem.c: include
|
||
|
actual callback functions, not just NULLs.
|
||
|
|
||
|
* Write tests for all calls of the API: Improve example/directory.c:
|
||
|
missing some calls to test.
|
||
|
|
||
|
* Call all the calls of the API in examples/demo.c.
|
||
|
|
||
|
* Implement more API calls, like `stdio.h' ANSI C calls.
|
||
|
|
||
|
* Fix the bugs listed in `BUGS' file!
|
||
|
|
||
|
* Search for `FIXME' in the source code... and fix some =).
|
||
|
|
||
|
|
||
|
MEDIUM:
|
||
|
*******
|
||
|
|
||
|
* Improve tests, they must actually test the output of the public calls.
|
||
|
|
||
|
* Investigate if it is possible to use `const' in static version variables.
|
||
|
|
||
|
* Test cole_fopen() using wired filenames. ie "/", "//", "", etc. May be a
|
||
|
function that check the filename could be written.
|
||
|
|
||
|
* Check input arguments of each call of the API, returning an colerror if
|
||
|
there are an error.
|
||
|
|
||
|
* Say in the documentation that many other files can be `Structured Storage'
|
||
|
files too.
|
||
|
|
||
|
* May be in cole 3.x, create a double char type in order to handle the complete
|
||
|
directory and file names.
|
||
|
|
||
|
* Investigate how to avoid content of the structures COLEFILE and so on be
|
||
|
documented in the api document (their must be documented only in the internal
|
||
|
document).
|
||
|
|
||
|
* Investigate how to force that calls begining with `_' to be in documentation
|
||
|
(their will be in internals).
|
||
|
|
||
|
* Make api section is before internals section in generated documentation, but
|
||
|
COLEFS, COLEFILE, COLEDIR and COLEDIRENT must be documented in internals, not
|
||
|
in api.
|
||
|
|
||
|
* Make cole fork safe.
|
||
|
|
||
|
* Make 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---
|
||
|
The Extended Block Depot is implemented now, but bigblocksize and
|
||
|
smallblocksize are not implented yet.
|
||
|
|
||
|
* Really use the results of the configure guesses, with #ifdef HAVE_x in code.
|
||
|
|
||
|
* Make it compile using DJGPP and Borland C (we may need a custom Makefile and
|
||
|
a custom config.h).
|
||
|
|
||
|
* Use void `swab(const void *from, void *to, size_t n);' (in fil_sread*
|
||
|
calls) if present, for performance, in support.c.
|
||
|
|
||
|
* Replace cole_direntry_getday[12] and cole_direntry_getsec[12] calls with
|
||
|
another calls that return something useful.
|
||
|
|
||
|
* Divide the RPM in cole and cole-devel packages (may be it's not necessary,
|
||
|
because cole package is not much big).
|
||
|
|
||
|
* cole.spec is regenerated while configuring, avoid that. (UPDATE: may be
|
||
|
is impossible to avoid that =().
|
||
|
|
||
|
|
||
|
NOT URGENT:
|
||
|
***********
|
||
|
|
||
|
* Use some package to discover uninitializated memory, use some profile
|
||
|
package, etc.
|
||
|
|
||
|
* Support cross compiling (don't even know what this exactly means! =) ).
|
||
|
UPDATE: seems that cross compiling it is just useful for compilers... =)
|
||
|
|
||
|
* Use zlib to support compressed files.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
******************
|
||
|
PRE COLE 2.x TODO:
|
||
|
******************
|
||
|
|
||
|
|
||
|
MEDIUM:
|
||
|
*******
|
||
|
|
||
|
* Check:
|
||
|
+ ends () doesn't should be called more than once
|
||
|
+ if OLEdecode or OLEcode fails, then the stream tree is never freed.
|
||
|
|
||
|
* Rewrite olecode.c to use `test(..,..)' instead of `test_exitf(..,..,dummy())'.
|
||
|
|
||
|
* 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.
|
||
|
|
||
|
* 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.
|
||
|
|
||
|
|
||
|
|
||
|
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*.
|
||
|
|
||
|
* 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).
|
||
|
|