> AFAIR Unix has some kind of registry for file types, based on file > extensions and characteristic bytes at the begin of an file. Does > somebody know more about that registry, so that it could be integrated > into the intended registry for archive handlers?
================================================= unit libmagic; interface {$PACKRECORDS C} {$LINKLIB magic} {$LINKLIB c} const MAGIC_NONE = $000; MAGIC_DEBUG = $001; MAGIC_SYMLINK = $002; MAGIC_COMPRESS = $004; MAGIC_DEVICES = $008; MAGIC_MIME = $010; MAGIC_CONTINUE = $020; MAGIC_CHK = $040; // naming conflict ( was MAGIC_CHECK ) MAGIC_PRESERVE_ATIME = $080; MAGIC_RAW = $100; MAGIC_ERR = $200; // naming conflict ( was MAGIC_ERROR ) type size_t = dword; magic_set = record {opaque structure} end; magic_t = ^magic_set; function magic_open(flags:LongInt):magic_t;cdecl;external; function magic_file(cookie:magic_t; filename:pChar):pChar;cdecl;external; function magic_error(cookie:magic_t):pChar;cdecl;external; function magic_setflags(cookie:magic_t; flags:LongInt):LongInt;cdecl;external; function magic_load(cookie:magic_t; filename:pChar):LongInt;cdecl;external; function magic_compile(cookie:magic_t; filename:pChar):LongInt;cdecl;external; function magic_check(cookie:magic_t; filename:pChar):LongInt;cdecl;external; function magic_errno(cookie:magic_t):LongInt;cdecl;external; procedure magic_close(cookie:magic_t);cdecl;external; function magic_buffer( cookie:magic_t; buffer:pointer; buflen:size_t):pChar;cdecl;external; implementation end. ================================================= program testmagic; uses strings, libmagic; var magic: magic_t; begin if ( paramcount = 1 ) then begin magic:=magic_open( MAGIC_SYMLINK or MAGIC_MIME ); magic_load(magic, nil); WriteLn(magic_file(magic, argv[1])); magic_close(magic); end else WriteLn(StdErr, 'Usage: testmagic <filename>'); end. ================================================= Requires "file" --version >= 4.0 See also: http://directory.fsf.org/file.html http://prdownloads.sourceforge.net/gnuwin32/file-4.12-lib.zip?download . __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel