Home | History | Annotate | Line # | Download | only in dist
      1 
      2 Find file types by using a modified "magic" file
      3 
      4 Based on file v3.22 by Ian F. Darwin (see libfile/LEGAL.NOTICE and
      5 libfile/README.dist - File v3.22 can be found at many archive sites)
      6 
      7 For each entry in the magic file, the "message" for the initial offset MUST
      8 be 4 characters for the CREATOR and 4 characters for the TYPE - white space is
      9 optional between them. Any other characters on this line are ignored.
     10 Continuation lines (starting with a '>') are also ignored i.e. only the initial
     11 offset lines are used.
     12 
     13 e.g magic entry for a GIF file:
     14 
     15 # off	type		test		message
     16 #
     17 # GIF image
     18 0       string          GIF8            8BIM GIFf
     19 >4      string          7a              \b, version 8%s,
     20 >4      string          9a              \b, version 8%s,
     21 >6      leshort         >0              %hd x
     22 >8      leshort         >0              %hd,
     23 #>10    byte            &0x80           color mapped,
     24 #>10    byte&0x07       =0x00           2 colors
     25 #>10    byte&0x07       =0x01           4 colors
     26 #>10    byte&0x07       =0x02           8 colors
     27 #>10    byte&0x07       =0x03           16 colors
     28 #>10    byte&0x07       =0x04           32 colors
     29 #>10    byte&0x07       =0x05           64 colors
     30 #>10    byte&0x07       =0x06           128 colors
     31 #>10    byte&0x07       =0x07           256 colors
     32 
     33 Just the "8BIM" "GIFf" will be used whatever the type of GIF file it is.
     34 The continuation lines are used by the "file" command, but ignored by
     35 mkhybrid. They could be left out completely.
     36 
     37 The complete format of the magic file is given in the magic man page (magic.5).
     38 
     39 See the file "magic" for other examples
     40 
     41 Use with the -magic magic_file option, where magic_file is a file
     42 described above.
     43 
     44 The magic file can be used with the mapping file (option -map) - the order
     45 these options appear on the command line is important.  mkhybrid will try to
     46 detect if the file is one of the Unix/Mac files (e.g. a CAP or Netatalk
     47 file) first. If that fails, it will then use the magic and/or mapping
     48 file e.g:
     49 
     50 mkhybrid -o output.raw -map mapping -magic magic src_dir
     51 
     52 The above will check filename extensions first, if that fails to set the
     53 CREATOR/TYPE, the magic file will be used. To check the magic file
     54 before the filename extensions, use:
     55 
     56 mkhybrid -o output.raw -magic magic -map mapping src_dir
     57 
     58 
     59 Using just a magic file - filename extensions will not be checked e.g:
     60 
     61 mkhybrid -o output.raw -magic magic src_dir
     62 
     63 For the magic method to work, each file must be opened and read twice
     64 (once to find it's CREATOR/TYPE, and a second time to actually copy the
     65 file to the CD image). Therefore the -magic option may significantly
     66 increase processing time.
     67 
     68 If a file's CREATOR/TYPE is not set via the magic and mapping matches,
     69 then the file is given the default CREATOR/TYPE.
     70