summaryrefslogtreecommitdiff
path: root/portato/eix/eix_utils.pxd
blob: a85a65e1238c35bac04c708f9eb2539cf21fa550 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
cdef extern from *:
    ctypedef int size_t

cdef extern from "errno.h":
    int errno

cdef extern from "string.h":
    char* strerror (int errno)
    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