X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=gmqcc.h;h=f26152f093e3b613fd7c82f3c5a1c26779bd98ac;hb=54c8801becfc2e0bc4cf965c1d62e6d75a262fe2;hp=36a67fdf282bb6f78b7a9cb3bb437f51912ad427;hpb=7d14fdf530e49cb04b13572a790178c4c4bf75dc;p=xonotic%2Fgmqcc.git diff --git a/gmqcc.h b/gmqcc.h index 36a67fd..f26152f 100644 --- a/gmqcc.h +++ b/gmqcc.h @@ -245,9 +245,9 @@ /*===================================================================*/ /*=========================== util.c ================================*/ /*===================================================================*/ -void *util_memory_a (size_t, unsigned int, const char *); -void util_memory_d (void *, unsigned int, const char *); -void *util_memory_r (void *, size_t, unsigned int, const char *); +void *util_memory_a (size_t, /*****/ unsigned int, const char *); +void *util_memory_r (void *, size_t, unsigned int, const char *); +void util_memory_d (void *); void util_meminfo (); bool util_filexists (const char *); @@ -275,7 +275,7 @@ int util_asprintf (char **ret, const char *fmt, ...); # define mem_r(x, n) realloc((void*)x, n) #else # define mem_a(x) util_memory_a((x), __LINE__, __FILE__) -# define mem_d(x) util_memory_d((void*)(x), __LINE__, __FILE__) +# define mem_d(x) util_memory_d((void*)(x)) # define mem_r(x, n) util_memory_r((void*)(x), (n), __LINE__, __FILE__) #endif @@ -315,6 +315,13 @@ void _util_vec_grow(void **a, size_t i, size_t s); #define vec_upload(X,Y,S) memcpy(vec_add((X), (S) * sizeof(*(Y))), (Y), (S) * sizeof(*(Y))) #define vec_remove(A,I,N) memmove((A)+(I),(A)+((I)+(N)),sizeof(*(A))*(vec_meta(A)->used-(I)-(N))),vec_meta(A)->used-=(N) +typedef struct trie_s { + void *value; + struct trie_s *entries; +} correct_trie_t; + +correct_trie_t* correct_trie_new(); + typedef struct hash_table_t { size_t size; struct hash_node_t **table; @@ -423,6 +430,13 @@ GMQCC_INLINE FILE *file_open (const char *, const char *); /*NOINLINE*/ int file_getline(char **, size_t *, FILE *); +/*===================================================================*/ +/*=========================== correct.c =============================*/ +/*===================================================================*/ +void correct_del(correct_trie_t*, size_t **); +void correct_add(correct_trie_t*, size_t ***, const char *); +char *correct_str(correct_trie_t*, /********/ const char *); + /*===================================================================*/ /*=========================== code.c ================================*/ /*===================================================================*/