diff options
| -rw-r--r-- | magic.py | 21 | ||||
| -rw-r--r-- | setup.py | 1 |
2 files changed, 15 insertions, 7 deletions
@@ -162,13 +162,21 @@ if not libmagic or not libmagic._name: magic_t = ctypes.c_void_p -def errorcheck(result, func, args): - err = magic_error(args[0]) - if err is not None: +def errorcheck_null(result, func, args): + if result is None: + err = magic_error(args[0]) raise MagicException(err) else: return result +def errorcheck_negative_one(result, func, args): + if result is -1: + err = magic_error(args[0]) + raise MagicException(err) + else: + return result + + def coerce_filename(filename): if filename is None: return None @@ -193,7 +201,7 @@ magic_errno.argtypes = [magic_t] _magic_file = libmagic.magic_file _magic_file.restype = c_char_p _magic_file.argtypes = [magic_t, c_char_p] -_magic_file.errcheck = errorcheck +_magic_file.errcheck = errorcheck_null def magic_file(cookie, filename): return _magic_file(cookie, coerce_filename(filename)) @@ -201,8 +209,7 @@ def magic_file(cookie, filename): _magic_buffer = libmagic.magic_buffer _magic_buffer.restype = c_char_p _magic_buffer.argtypes = [magic_t, c_void_p, c_size_t] -_magic_buffer.errcheck = errorcheck - +_magic_buffer.errcheck = errorcheck_null def magic_buffer(cookie, buf): return _magic_buffer(cookie, buf, len(buf)) @@ -211,7 +218,7 @@ def magic_buffer(cookie, buf): _magic_load = libmagic.magic_load _magic_load.restype = c_int _magic_load.argtypes = [magic_t, c_char_p] -_magic_load.errcheck = errorcheck +_magic_load.errcheck = errorcheck_negative_one def magic_load(cookie, filename): return _magic_load(cookie, coerce_filename(filename)) @@ -14,4 +14,5 @@ supports both textual and MIME-type output. """, keywords="mime magic file", license="PSF", + test_suite='test' ) |
