56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2014 John Benediktsson
 | 
						|
! See http://factorcode.org/license.txt for BSD license
 | 
						|
 | 
						|
USING: alien alien.c-types alien.destructors alien.libraries
 | 
						|
alien.syntax combinators kernel literals system ;
 | 
						|
 | 
						|
IN: magic.ffi
 | 
						|
 | 
						|
<< "magic" {
 | 
						|
    { [ os macosx? ] [ "libmagic.dylib" ] }
 | 
						|
    { [ os unix? ] [ "libmagic.so" ] }
 | 
						|
} cond cdecl add-library >>
 | 
						|
 | 
						|
LIBRARY: magic
 | 
						|
 | 
						|
CONSTANT: MAGIC_NONE 0x000000
 | 
						|
CONSTANT: MAGIC_DEBUG 0x000001
 | 
						|
CONSTANT: MAGIC_SYMLINK 0x000002
 | 
						|
CONSTANT: MAGIC_COMPRESS 0x000004
 | 
						|
CONSTANT: MAGIC_DEVICES 0x000008
 | 
						|
CONSTANT: MAGIC_MIME_TYPE 0x000010
 | 
						|
CONSTANT: MAGIC_CONTINUE 0x000020
 | 
						|
CONSTANT: MAGIC_CHECK 0x000040
 | 
						|
CONSTANT: MAGIC_PRESERVE_ATIME 0x000080
 | 
						|
CONSTANT: MAGIC_RAW 0x000100
 | 
						|
CONSTANT: MAGIC_ERROR 0x000200
 | 
						|
CONSTANT: MAGIC_MIME_ENCODING 0x000400
 | 
						|
CONSTANT: MAGIC_MIME flags{ MAGIC_MIME_TYPE MAGIC_MIME_ENCODING }
 | 
						|
CONSTANT: MAGIC_NO_CHECK_COMPRESS 0x001000
 | 
						|
CONSTANT: MAGIC_NO_CHECK_TAR 0x002000
 | 
						|
CONSTANT: MAGIC_NO_CHECK_SOFT 0x004000
 | 
						|
CONSTANT: MAGIC_NO_CHECK_APPTYPE 0x008000
 | 
						|
CONSTANT: MAGIC_NO_CHECK_ELF 0x010000
 | 
						|
CONSTANT: MAGIC_NO_CHECK_ASCII 0x020000
 | 
						|
CONSTANT: MAGIC_NO_CHECK_TROFF 0x040000
 | 
						|
CONSTANT: MAGIC_NO_CHECK_FORTRAN 0x080000
 | 
						|
CONSTANT: MAGIC_NO_CHECK_TOKENS 0x100000
 | 
						|
 | 
						|
TYPEDEF: void* magic_t
 | 
						|
FUNCTION: magic_t magic_open ( int flags )
 | 
						|
FUNCTION: void magic_close ( magic_t magic )
 | 
						|
 | 
						|
FUNCTION: c-string magic_file ( magic_t magic, c-string path )
 | 
						|
FUNCTION: c-string magic_descriptor ( magic_t magic, int fd )
 | 
						|
FUNCTION: c-string magic_buffer ( magic_t magic, void* buffer, size_t size )
 | 
						|
 | 
						|
FUNCTION: c-string magic_error ( magic_t magic )
 | 
						|
FUNCTION: int magic_setflags ( magic_t magic, int flags )
 | 
						|
 | 
						|
FUNCTION: int magic_load ( magic_t magic, c-string path )
 | 
						|
FUNCTION: int magic_compile ( magic_t magic, c-string path )
 | 
						|
FUNCTION: int magic_check ( magic_t magic, c-string path )
 | 
						|
FUNCTION: int magic_errno ( magic_t magic )
 | 
						|
 | 
						|
DESTRUCTOR: magic_close
 |