From 5a5c7536d307aa12c040f89b4d5048fcd8b1a1f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20=27Necoro=27=20Neumann?= Date: Sun, 26 Jul 2009 02:54:41 +0200 Subject: Get rid of the self-implemented file-stuff. Use the normal python-API instead --- portato/eix/eix_utils.pxd | 30 ------------------------- portato/eix/eix_utils.pyx | 57 ----------------------------------------------- 2 files changed, 87 deletions(-) (limited to 'portato/eix') diff --git a/portato/eix/eix_utils.pxd b/portato/eix/eix_utils.pxd index a85a65e..39f60a9 100644 --- a/portato/eix/eix_utils.pxd +++ b/portato/eix/eix_utils.pxd @@ -9,39 +9,9 @@ cdef extern from "string.h": size_t strlen (char* s) char* strcpy (char* dest, char* src) -cdef extern from "stdio.h": - - ctypedef struct FILE: - pass - - FILE* c_fopen "fopen" (char* path, char* mode) - int c_fclose "fclose" (FILE* f) - int c_feof "feof" (FILE* f) - int fread (void* buf, size_t size, size_t n, FILE* f) - - enum WHENCE: - SEEK_SET - SEEK_CUR - SEEK_END - - int fseek (FILE* stream, long offset, WHENCE whence) - cdef extern from "Python.h": - ctypedef struct PyObject: - pass - void* PyMem_Malloc (size_t n) void PyMem_Free (void* p) cdef: - struct File: - FILE* file - char* name - - File* fopen (char* path, char* mode) except NULL - void fclose (File* f) - - void ffree (void* p) - char* fget (File* f, size_t n) except NULL - char* strdup (char* other) except NULL diff --git a/portato/eix/eix_utils.pyx b/portato/eix/eix_utils.pyx index 57fa5d7..0ea9603 100644 --- a/portato/eix/eix_utils.pyx +++ b/portato/eix/eix_utils.pyx @@ -1,15 +1,3 @@ -class EndOfFileError (IOError): - - def __init__ (self, filename = None): - self.message = "End of file reached while not expecting it" - self.filename = filename - - def __str__ (self): - if self.filename is not None: - return "%s: %s" % (self.message, self.filename) - else: - return self.message - cdef char* strdup (char * other) except NULL: cdef size_t len cdef char* new @@ -25,48 +13,3 @@ cdef char* strdup (char * other) except NULL: return NULL return strcpy(new, other) - - -cdef File* fopen (char* path, char* mode) except NULL: - cdef File* f - - f = PyMem_Malloc(sizeof(File)) - - if f is NULL: - raise MemoryError, "Malloc of File" - return NULL - - f.file = c_fopen(path, mode) - - if f.file is NULL: - raise IOError, (errno, strerror(errno), path) - return NULL - - f.name = strdup(path) - - if f.name is NULL: - return NULL - - return f - -cdef void fclose (File* f): - c_fclose(f.file) - ffree(f.name) - PyMem_Free(f) - -cdef void ffree (void* p): - PyMem_Free(p) - -cdef char* fget (File* f, size_t n) except NULL: - cdef char* buf - buf = PyMem_Malloc(n) - - if buf is NULL: - raise MemoryError, "Malloc" - return NULL - - if (fread(buf, 1, n, f.file) != n): - PyMem_Free(buf) - raise EndOfFileError, f.name - - return buf -- cgit v1.2.3