1Most TODOs live in the TODO section of doc/file.man (i.e. file(1)). 2They are more visible there, so please add any further TODOs to that 3file, not here. More speculative material can live here. 4 5(This change was made when Reuben Thomas noticed that all the bugs 6listed in the BUGS section of the man page had been fixed!) 7 8--- 9It would be nice to simplify file considerably. For example, 10reimplement the apprentice and non-pattern magic methods in Python, 11and compile the magic patterns to a giant regex (or something similar; 12maybe using Ragel (http://www.complang.org/ragel/)) so that only a 13small amount of C is needed (because fast execution is typically only 14required for soft magic, not the more detailed information given by 15hard-wired routines). In this regard, note that hplip, which is 16BSD-licensed, has a magic reimplementation in Python. 17--- 18Read the kerberos magic entry for more ideas. 19--- 20Write a string merger to make magic entry sizes dynamic. 21Strings will be converted to offsets from the string table. 22--- 23Programming language support, we can introduce the concept of a group 24of rules where n rules need to match before the rule is positive. This 25could require structural changes to the matching code :-( 26 270 group 2 # require 2 matches 28# rule 1 29>0 .... 30... 31# rule 2 32>0 .... 33... 34 35christos 36 37