[fpc-devel] Re: File Dates

Michael Van Canneyt michael at freepascal.org
Sun Jan 30 12:57:45 CET 2005



On Sat, 29 Jan 2005, Jeff Pohlmeyer wrote:

>
> > 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?
>
>
> =================================================

Can we include this in the FPC packages ? I think it would be useful.

Michael.
>
> 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 at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
>




More information about the fpc-devel mailing list