Orcania
Potluck with different functions for different purposes that can be shared among C programs
orcania.h
Go to the documentation of this file.
1
28#ifndef __ORCANIA_H__
29#define __ORCANIA_H__
30
31#ifdef __cplusplus
32extern "C"
33{
34#endif
35
36#include "orcania-cfg.h"
37
38#include <stdio.h>
39#include <stdlib.h>
40
61char * str_replace(const char * source, const char * str_old, const char * str_new);
62
70char * o_strdup(const char * source);
71
80char * o_strndup(const char * source, size_t len);
81
89int o_strcmp(const char * p1, const char * p2);
90
99int o_strncmp(const char * p1, const char * p2, size_t n);
100
108char * o_strcpy(char * p1, const char * p2);
109
118char * o_strncpy(char * p1, const char * p2, size_t n);
119
127int o_strcasecmp(const char * p1, const char * p2);
128
137int o_strncasecmp(const char * p1, const char * p2, size_t n);
138
146char * o_strstr(const char * haystack, const char * needle);
147
156char * o_strnstr(const char * haystack, const char * needle, size_t len);
157
165char * o_strcasestr(const char * haystack, const char * needle);
166
174char * o_strchr(const char * haystack, int c);
175
184const char * o_strnchr(const char * haystack, size_t len, char c);
185
193char * o_strrchr(const char * haystack, int c);
194
203const char * o_strrnchr(const char * haystack, size_t len, char c);
204
211size_t o_strlen(const char * s);
212
219char * trimwhitespace(char * str);
220
227char * trimcharacter(char * str, char to_remove);
228
241char * msprintf(const char * message, ...);
242
253char * mstrcatf(char * source, const char * message, ...);
254
277size_t split_string(const char * string, const char * separator, char *** return_array);
278
284void free_string_array(char ** array);
285
291size_t string_array_size(char ** array);
292
299int string_array_has_value(const char ** array, const char * needle);
300
307int string_array_has_value_case(const char ** array, const char * needle);
308
315int string_array_has_value_n(const char ** array, const char * needle, size_t len);
316
323int string_array_has_value_ncase(const char ** array, const char * needle, size_t len);
324
331int string_array_has_trimmed_value(const char ** array, const char * needle);
332
339char * string_array_join(const char ** array, const char * separator);
340
350 size_t size; /* size of the list */
351 void ** list; /* list of pointers */
352};
353
359void pointer_list_init(struct _pointer_list * pointer_list);
360
366void pointer_list_clean(struct _pointer_list * pointer_list);
367
375void pointer_list_clean_free(struct _pointer_list * pointer_list, void (* free_function)(void * elt));
376
382size_t pointer_list_size(struct _pointer_list * pointer_list);
383
391int pointer_list_append(struct _pointer_list * pointer_list, void * element);
392
399void * pointer_list_get_at(struct _pointer_list * pointer_list, size_t index);
400
408int pointer_list_remove_at(struct _pointer_list * pointer_list, size_t index);
409
419int pointer_list_remove_at_free(struct _pointer_list * pointer_list, size_t index, void (* free_function)(void * elt));
420
429int pointer_list_insert_at(struct _pointer_list * pointer_list, void * element, size_t index);
430
438int pointer_list_remove_pointer(struct _pointer_list * pointer_list, void * element);
439
449int pointer_list_remove_pointer_free(struct _pointer_list * pointer_list, void * element, void (* free_function)(void * elt));
450
460/* C89 allows these to be macros */
461#undef malloc
462#undef realloc
463#undef free
464
468typedef void *(*o_malloc_t)(size_t);
469typedef void *(*o_realloc_t)(void *, size_t);
470typedef void (*o_free_t)(void *);
471
477void * o_malloc(size_t size);
478
485void * o_realloc(void * ptr, size_t size);
486
490void o_free(void * ptr);
491
498void o_set_alloc_funcs(o_malloc_t malloc_fn, o_realloc_t realloc_fn, o_free_t free_fn);
499
506void o_get_alloc_funcs(o_malloc_t * malloc_fn, o_realloc_t * realloc_fn, o_free_t * free_fn);
507
527int o_base64_encode(const unsigned char * src, size_t len, unsigned char * out, size_t * out_len);
528
539int o_base64_decode(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
540
551int o_base64url_encode(const unsigned char * src, size_t len, unsigned char * out, size_t * out_len);
552
563int o_base64url_decode(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
564
576int o_base64url_2_base64(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
577
589int o_base64_2_base64url(const unsigned char *src, size_t len, unsigned char * out, size_t * out_len);
590
595#ifdef __cplusplus
596}
597#endif
598
599#endif // __ORCANIA_H__
int o_base64url_encode(const unsigned char *src, size_t len, unsigned char *out, size_t *out_len)
Definition: base64.c:183
int o_base64url_decode(const unsigned char *src, size_t len, unsigned char *out, size_t *out_len)
Definition: base64.c:227
int o_base64_encode(const unsigned char *src, size_t len, unsigned char *out, size_t *out_len)
Definition: base64.c:26
int o_base64_decode(const unsigned char *src, size_t len, unsigned char *out, size_t *out_len)
Definition: base64.c:99
int o_base64url_2_base64(const unsigned char *src, size_t len, unsigned char *out, size_t *out_len)
Definition: base64.c:259
int o_base64_2_base64url(const unsigned char *src, size_t len, unsigned char *out, size_t *out_len)
Definition: base64.c:297
void *(* o_malloc_t)(size_t)
Definition: orcania.h:468
void o_set_alloc_funcs(o_malloc_t malloc_fn, o_realloc_t realloc_fn, o_free_t free_fn)
Definition: memory.c:43
void * o_realloc(void *ptr, size_t size)
Definition: memory.c:27
void * o_malloc(size_t size)
Definition: memory.c:19
void o_free(void *ptr)
Definition: memory.c:35
void *(* o_realloc_t)(void *, size_t)
Definition: orcania.h:469
void(* o_free_t)(void *)
Definition: orcania.h:470
void o_get_alloc_funcs(o_malloc_t *malloc_fn, o_realloc_t *realloc_fn, o_free_t *free_fn)
Definition: memory.c:49
int pointer_list_remove_at(struct _pointer_list *pointer_list, size_t index)
Definition: orcania.c:751
int pointer_list_remove_pointer(struct _pointer_list *pointer_list, void *element)
Definition: orcania.c:814
void * pointer_list_get_at(struct _pointer_list *pointer_list, size_t index)
Definition: orcania.c:738
int pointer_list_append(struct _pointer_list *pointer_list, void *element)
Definition: orcania.c:717
void pointer_list_clean_free(struct _pointer_list *pointer_list, void(*free_function)(void *elt))
Definition: orcania.c:690
size_t pointer_list_size(struct _pointer_list *pointer_list)
Definition: orcania.c:704
int pointer_list_remove_at_free(struct _pointer_list *pointer_list, size_t index, void(*free_function)(void *elt))
Definition: orcania.c:776
int pointer_list_remove_pointer_free(struct _pointer_list *pointer_list, void *element, void(*free_function)(void *elt))
Definition: orcania.c:834
int pointer_list_insert_at(struct _pointer_list *pointer_list, void *element, size_t index)
Definition: orcania.c:790
void pointer_list_init(struct _pointer_list *pointer_list)
Definition: orcania.c:665
void pointer_list_clean(struct _pointer_list *pointer_list)
Definition: orcania.c:676
int string_array_has_value(const char **array, const char *needle)
Definition: orcania.c:568
int string_array_has_value_case(const char **array, const char *needle)
Definition: orcania.c:585
size_t string_array_size(char **array)
Definition: orcania.c:488
char * string_array_join(const char **array, const char *separator)
Definition: orcania.c:499
size_t split_string(const char *string, const char *separator, char ***return_array)
Definition: orcania.c:437
void free_string_array(char **array)
Definition: orcania.c:474
int string_array_has_value_n(const char **array, const char *needle, size_t len)
Definition: orcania.c:602
int string_array_has_value_ncase(const char **array, const char *needle, size_t len)
Definition: orcania.c:619
int string_array_has_trimmed_value(const char **array, const char *needle)
Definition: orcania.c:636
char * o_strncpy(char *p1, const char *p2, size_t n)
Definition: orcania.c:250
char * o_strrchr(const char *haystack, int c)
Definition: orcania.c:334
char * o_strndup(const char *source, size_t len)
Definition: orcania.c:185
int o_strcmp(const char *p1, const char *p2)
Definition: orcania.c:206
char * o_strcasestr(const char *haystack, const char *needle)
Definition: orcania.c:409
char * msprintf(const char *message,...)
Definition: orcania.c:107
char * o_strcpy(char *p1, const char *p2)
Definition: orcania.c:238
char * o_strstr(const char *haystack, const char *needle)
Definition: orcania.c:294
size_t o_strlen(const char *s)
Definition: orcania.c:421
const char * o_strrnchr(const char *haystack, size_t len, char c)
Definition: orcania.c:346
char * mstrcatf(char *source, const char *message,...)
Definition: orcania.c:135
char * trimcharacter(char *str, char to_remove)
Definition: orcania.c:544
int o_strcasecmp(const char *p1, const char *p2)
Definition: orcania.c:262
char * trimwhitespace(char *str)
Definition: orcania.c:520
char * o_strdup(const char *source)
Definition: orcania.c:176
char * o_strchr(const char *haystack, int c)
Definition: orcania.c:306
int o_strncasecmp(const char *p1, const char *p2, size_t n)
Definition: orcania.c:278
char * str_replace(const char *source, const char *str_old, const char *str_new)
Definition: orcania.c:57
const char * o_strnchr(const char *haystack, size_t len, char c)
Definition: orcania.c:318
int o_strncmp(const char *p1, const char *p2, size_t n)
Definition: orcania.c:222
char * o_strnstr(const char *haystack, const char *needle, size_t len)
Definition: orcania.c:397
Definition: orcania.h:349
size_t size
Definition: orcania.h:350
void ** list
Definition: orcania.h:351