[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