| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- Most TODOs live in the TODO section of doc/file.man (i.e. file(1)).
 
- They are more visible there, so please add any further TODOs to that
 
- file, not here. More speculative material can live here.
 
- (This change was made when Reuben Thomas noticed that all the bugs
 
- listed in the BUGS section of the man page had been fixed!)
 
- ---
 
- It would be nice to simplify file considerably. For example,
 
- reimplement the apprentice and non-pattern magic methods in Python,
 
- and compile the magic patterns to a giant regex (or something similar;
 
- maybe using Ragel (http://www.complang.org/ragel/)) so that only a
 
- small amount of C is needed (because fast execution is typically only
 
- required for soft magic, not the more detailed information given by
 
- hard-wired routines). In this regard, note that hplip, which is
 
- BSD-licensed, has a magic reimplementation in Python.
 
- ---
 
- Read the kerberos magic entry for more ideas.
 
- ---
 
- Write a string merger to make magic entry sizes dynamic.
 
- Strings will be converted to offsets from the string table.
 
- ---
 
- Programming language support, we can introduce the concept of a group
 
- of rules where n rules need to match before the rule is positive. This
 
- could require structural changes to the matching code :-(
 
- 0	group	2	# require 2 matches
 
- # rule 1
 
- >0	....
 
- ...
 
- # rule 2
 
- >0	....
 
- ...
 
- ---
 
- - Merge the stat code dance in one place and keep it in one place
 
-   (perhaps struct buffer).
 
- - Enable seeking around if offset > nbytes if possible (the fd
 
-   is seekable).
 
- - We could use file_pipe2file more (for EOF offsets, CDF documents),
 
-   but that is expensive; perhaps we should provide a way to disable it
 
- - The implementation of struct buffer needs re-thinking and more work.
 
-   For example we don't always pass the fd in the child. This is not
 
-   important yet as we don't have yet cases where use/indirect magic
 
-   needs negative offsets.
 
- - Really the whole thing just needs here's an (offset, buffer, size)
 
-   you have (filebuffer, filebuffersize &&|| fd), fill the buffer with
 
-   data from offset. The buffer API should be changed to just do that.
 
- christos
 
 
  |