;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; ;;; Low-level libmagic bindings. ;;; ;;; See magic.scm for a higher-level interface. ;;; ;;; Copyright (c) 2013-2018, Evan Hanson ;;; BSD-style license. See LICENSE for details. ;;; (module (magic libmagic) * (import (scheme) (chicken base) (chicken foreign)) (foreign-declare "#include ") (define MAGIC_NONE (foreign-value "MAGIC_NONE" integer)) (define MAGIC_DEBUG (foreign-value "MAGIC_DEBUG" integer)) (define MAGIC_SYMLINK (foreign-value "MAGIC_SYMLINK" integer)) (define MAGIC_COMPRESS (foreign-value "MAGIC_COMPRESS" integer)) (define MAGIC_DEVICES (foreign-value "MAGIC_DEVICES" integer)) (define MAGIC_MIME_TYPE (foreign-value "MAGIC_MIME_TYPE" integer)) (define MAGIC_CONTINUE (foreign-value "MAGIC_CONTINUE" integer)) (define MAGIC_CHECK (foreign-value "MAGIC_CHECK" integer)) (define MAGIC_PRESERVE_ATIME (foreign-value "MAGIC_PRESERVE_ATIME" integer)) (define MAGIC_RAW (foreign-value "MAGIC_RAW" integer)) (define MAGIC_ERROR (foreign-value "MAGIC_ERROR" integer)) (define MAGIC_MIME_ENCODING (foreign-value "MAGIC_MIME_ENCODING" integer)) (define MAGIC_MIME (foreign-value "MAGIC_MIME" integer)) (define MAGIC_APPLE (foreign-value "MAGIC_APPLE" integer)) (define MAGIC_NO_CHECK_COMPRESS (foreign-value "MAGIC_NO_CHECK_COMPRESS" integer)) (define MAGIC_NO_CHECK_TAR (foreign-value "MAGIC_NO_CHECK_TAR" integer)) (define MAGIC_NO_CHECK_SOFT (foreign-value "MAGIC_NO_CHECK_SOFT" integer)) (define MAGIC_NO_CHECK_APPTYPE (foreign-value "MAGIC_NO_CHECK_APPTYPE" integer)) (define MAGIC_NO_CHECK_ELF (foreign-value "MAGIC_NO_CHECK_ELF" integer)) (define MAGIC_NO_CHECK_TEXT (foreign-value "MAGIC_NO_CHECK_TEXT" integer)) (define MAGIC_NO_CHECK_CDF (foreign-value "MAGIC_NO_CHECK_CDF" integer)) (define MAGIC_NO_CHECK_TOKENS (foreign-value "MAGIC_NO_CHECK_TOKENS" integer)) (define MAGIC_NO_CHECK_ENCODING (foreign-value "MAGIC_NO_CHECK_ENCODING" integer)) (define MAGIC_NO_CHECK_ASCII (foreign-value "MAGIC_NO_CHECK_ASCII" integer)) (define MAGIC_NO_CHECK_FORTRAN (foreign-value "MAGIC_NO_CHECK_FORTRAN" integer)) (define MAGIC_NO_CHECK_TROFF (foreign-value "MAGIC_NO_CHECK_TROFF" integer)) (define magic_open (foreign-lambda (c-pointer (struct "magic_set")) magic_open integer)) (define magic_close (foreign-lambda void magic_close (c-pointer (struct "magic_set")))) (define magic_getpath (foreign-lambda c-string magic_getpath c-string integer)) (define magic_file (foreign-lambda c-string magic_file (c-pointer (struct "magic_set")) c-string)) (define magic_descriptor (foreign-lambda c-string magic_descriptor (c-pointer (struct "magic_set")) integer)) (define magic_buffer (foreign-lambda c-string magic_buffer (c-pointer (struct "magic_set")) blob size_t)) (define magic_error (foreign-lambda c-string magic_error (c-pointer (struct "magic_set")))) (define magic_setflags (foreign-lambda integer magic_setflags (c-pointer (struct "magic_set")) integer)) (define magic_load (foreign-lambda integer magic_load (c-pointer (struct "magic_set")) c-string)) (define magic_compile (foreign-lambda integer magic_compile (c-pointer (struct "magic_set")) c-string)) (define magic_check (foreign-lambda integer magic_check (c-pointer (struct "magic_set")) c-string)) (define magic_list (foreign-lambda integer magic_list (c-pointer (struct "magic_set")) c-string)) (define magic_errno (foreign-lambda integer magic_errno (c-pointer (struct "magic_set")))))