ekg2  GIT master
Definicje | Funkcje
Dokumentacja pliku dynstuff.c
#include "ekg2.h"
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
Wykres zależności załączania dla dynstuff.c:

Definicje

#define unhex(x)
 

Funkcje

void * list_add_sorted (list_t *list, void *data, int(*comparision)(void *, void *))
 
void * list_add_beginning (list_t *list, void *data)
 
void * list_add (list_t *list, void *data)
 
void * list_add_sorted3 (list_t *list, list_t new_, int(*comparision)(void *, void *))
 
void * list_add_beginning3 (list_t *list, list_t new_)
 
void * list_add3 (list_t *list, list_t new_)
 
int list_remove_safe (list_t *list, void *data, int free_data)
 
void list_cleanup (list_t *list)
 
int list_remove2 (list_t *list, void *data, void(*func)(void *data))
 
void * list_remove3 (list_t *list, list_t elem, void(*func)(list_t data))
 
void * list_remove3i (list_t *list, list_t elem, void(*func)(list_t data))
 
void * list_unlink3 (list_t *list, list_t elem)
 
int list_remove (list_t *list, void *data, int free_data)
 
void * list_get_nth (list_t list, int id)
 
void * list_get_nth3 (list_t list, int id)
 
void list_resort (list_t *list, int(*comparision)(void *, void *))
 
void list_resort3 (list_t *list, int(*comparision)(void *, void *))
 
int list_count (list_t list)
 
int list_destroy2 (list_t list, void(*func)(void *))
 
int list_destroy3 (list_t list, void(*func)(void *))
 
int list_destroy (list_t list, int free_data)
 
int string_append_c (string_t s, char c)
 
int string_append_n (string_t s, const char *str, int count)
 
int string_append_format (string_t s, const char *format,...)
 
int string_append_raw (string_t s, const char *str, int count)
 
int string_append (string_t s, const char *str)
 
void string_insert_n (string_t s, int index, const char *str, int count)
 
void string_insert (string_t s, int index, const char *str)
 
string_t string_init (const char *value)
 
string_t string_init_n (int n)
 
void string_remove (string_t s, int count)
 
void string_clear (string_t s)
 
char * string_free (string_t s, int free_string)
 
const char * ekg_itoa (long int i)
 
char ** array_make (const char *string, const char *sep, int max, int trim, int quotes)
 
int array_add (char ***array, char *string)
 
int array_add_check (char ***array, char *string, int casesensitive)
 
char * array_join_count (char **array, const char *sep, int count)
 
int array_contains (char **array, const char *string, int casesensitive)
 
int array_item_contains (char **array, const char *string, int casesensitive)
 
char * array_shift (char ***array)
 
void array_free_count (char **array, int count)
 
const char * cssfind (const char *haystack, const char *needle, const char sep, int caseinsensitive)
 
char * escape (const char *src)
 
char * unescape (const char *src)
 
static int private_data_cmp (private_data_t *item1, private_data_t *item2)
 
static void private_data_free (private_data_t *data)
 
static void private_items_add (private_data_t **lista, private_data_t *new_)
 
static void private_items_remove (private_data_t **lista, private_data_t *elem)
 
void private_items_destroy (private_data_t **lista)
 
static private_data_tprivate_item_find (private_data_t **data, const char *item_name)
 
int private_item_get_safe (private_data_t **data, const char *item_name, char **result)
 
const char * private_item_get (private_data_t **data, const char *item_name)
 
int private_item_get_int_safe (private_data_t **data, const char *item_name, int *result)
 
int private_item_get_int (private_data_t **data, const char *item_name)
 
void private_item_set (private_data_t **data, const char *item_name, const char *value)
 
void private_item_set_int (private_data_t **data, const char *item_name, int value)
 
void g_slist_free_full (GSList *list, GDestroyNotify free_func)
 

Dokumentacja definicji

◆ unhex

#define unhex (   x)
Wartość:
(unsigned char) ((x >= '0' && x <= '9') ? (x - '0') : \
(x >= 'A' && x <= 'F') ? (x - 'A' + 10) : \
(x >= 'a' && x <= 'f') ? (x - 'a' + 10) : 0)

Dokumentacja funkcji

◆ array_add()

int array_add ( char ***  array,
char *  string 
)

◆ array_add_check()

int array_add_check ( char ***  array,
char *  string,
int  casesensitive 
)

◆ array_contains()

int array_contains ( char **  array,
const char *  string,
int  casesensitive 
)

◆ array_free_count()

void array_free_count ( char **  array,
int  count 
)

◆ array_item_contains()

int array_item_contains ( char **  array,
const char *  string,
int  casesensitive 
)

◆ array_join_count()

char* array_join_count ( char **  array,
const char *  sep,
int  count 
)

◆ array_make()

char** array_make ( const char *  string,
const char *  sep,
int  max,
int  trim,
int  quotes 
)

◆ array_shift()

char* array_shift ( char ***  array)

◆ cssfind()

const char* cssfind ( const char *  haystack,
const char *  needle,
const char  sep,
int  caseinsensitive 
)

cssfind()

Short for comma-separated string find, does check whether given string contains given element. It's works like array_make()+array_contains(), but it's hell simpler and faster.

Parametry
haystack- comma-separated string to search.
needle- element to search for.
sep- separator.
caseinsensitive- take a wild guess.
Zwraca
Pointer to found element on success, or NULL on failure.

◆ ekg_itoa()

const char* ekg_itoa ( long int  i)

◆ escape()

char* escape ( const char *  src)

◆ g_slist_free_full()

void g_slist_free_full ( GSList *  list,
GDestroyNotify  free_func 
)

◆ list_add()

void* list_add ( list_t list,
void *  data 
)

list_add()

Add item data to list without sorting
Item will be added at end of list - as last item
Wrapper to: list_add_sorted(list, data, alloc_size, NULL)

Zobacz również
list_remove()
list_add_beginning() - If you can have items of list in reverse sequence [third_added_item, second_added_item, first_added_item] and not sorted
list_add_sorted()

◆ list_add3()

void* list_add3 ( list_t list,
list_t  new_ 
)

◆ list_add_beginning()

void* list_add_beginning ( list_t list,
void *  data 
)

list_add_beginning()

Add item data to the begining of the list
(Once again), item will be added at begining of the list - as first item

Zobacz również
list_add()
list_remove()

◆ list_add_beginning3()

void* list_add_beginning3 ( list_t list,
list_t  new_ 
)

◆ list_add_sorted()

void* list_add_sorted ( list_t list,
void *  data,
int(*)(void *, void *)  comparision 
)

◆ list_add_sorted3()

void* list_add_sorted3 ( list_t list,
list_t  new_,
int(*)(void *, void *)  comparision 
)

◆ list_cleanup()

void list_cleanup ( list_t list)

list_cleanup()

Remove from list_t all items with l->data set to NULL.
Use with list_remove_safe() after list is not in use.

◆ list_count()

int list_count ( list_t  list)

list_count()

Parametry
list- list_t
Zwraca
items count on list_t list.

◆ list_destroy()

int list_destroy ( list_t  list,
int  free_data 
)

list_destroy()

Destroy all items from list_t list

Nota
It doesn't take pointer to list_t, and it don't cleanup memory with \0, so after list_destroy() you must remember that list is unaccessible. So if you have list as global variable, or if you keep pointer to it in some struct.. you must NULL pointer. so always do:
list_destroy(my_list, free_data); my_list = NULL;
Parametry
list- list_t
free_data- if set we will call xfree() on each item data
Zobacz również
list_remove() - to remove specified item.
Zwraca
0

◆ list_destroy2()

int list_destroy2 ( list_t  list,
void(*)(void *)  func 
)

◆ list_destroy3()

int list_destroy3 ( list_t  list,
void(*)(void *)  func 
)

◆ list_get_nth()

void* list_get_nth ( list_t  list,
int  id 
)

list_get_nth()

Get n'th item from list_t

Parametry
list- list_t
id- n'th item [list items are numerated from 1]
Zwraca
n'th item (list->data) if found, or NULL with errno set to ENOENT

◆ list_get_nth3()

void* list_get_nth3 ( list_t  list,
int  id 
)

◆ list_remove()

int list_remove ( list_t list,
void *  data,
int  free_data 
)

list_remove()

Remove item data from list_t pointed by list

Parametry
list- pointer to list_t
data- data to remove from list
free_data- if set and item was found it'll call xfree() on it.
Zobacz również
list_destroy() - to remove whole list
Zwraca
0 if item was founded, and was removed from list_t pointed by list
-1 and errno set to EFAULT, if list was NULL
-1 and errno set to ENOENT, if item was not found

◆ list_remove2()

int list_remove2 ( list_t list,
void *  data,
void(*)(void *data)  func 
)

◆ list_remove3()

void* list_remove3 ( list_t list,
list_t  elem,
void(*)(list_t data)  func 
)

◆ list_remove3i()

void* list_remove3i ( list_t list,
list_t  elem,
void(*)(list_t data)  func 
)

◆ list_remove_safe()

int list_remove_safe ( list_t list,
void *  data,
int  free_data 
)

list_remove_safe()

Remove item data from list_t pointed by list.
Don't free whole list_t item struct. only set item_list_t->data to NULL

Nota
XXX, add note here why we should do it.
Parametry
list- pointer to list_t
data- data to remove from list
free_data-if set and item was found it'll call xfree() on it.
Zobacz również
list_cleanup() - to remove NULL items from list.

◆ list_resort()

void list_resort ( list_t list,
int(*)(void *, void *)  comparision 
)

◆ list_resort3()

void list_resort3 ( list_t list,
int(*)(void *, void *)  comparision 
)

◆ list_unlink3()

void* list_unlink3 ( list_t list,
list_t  elem 
)

◆ private_data_cmp()

static int private_data_cmp ( private_data_t item1,
private_data_t item2 
)
static

◆ private_data_free()

static void private_data_free ( private_data_t data)
static

◆ private_item_find()

static private_data_t* private_item_find ( private_data_t **  data,
const char *  item_name 
)
static

◆ private_item_get()

const char* private_item_get ( private_data_t **  data,
const char *  item_name 
)

◆ private_item_get_int()

int private_item_get_int ( private_data_t **  data,
const char *  item_name 
)

◆ private_item_get_int_safe()

int private_item_get_int_safe ( private_data_t **  data,
const char *  item_name,
int *  result 
)

◆ private_item_get_safe()

int private_item_get_safe ( private_data_t **  data,
const char *  item_name,
char **  result 
)

◆ private_item_set()

void private_item_set ( private_data_t **  data,
const char *  item_name,
const char *  value 
)

◆ private_item_set_int()

void private_item_set_int ( private_data_t **  data,
const char *  item_name,
int  value 
)

◆ private_items_add()

static void private_items_add ( private_data_t **  lista,
private_data_t new_ 
)
static

◆ private_items_destroy()

void private_items_destroy ( private_data_t **  lista)

◆ private_items_remove()

static void private_items_remove ( private_data_t **  lista,
private_data_t elem 
)
static

◆ string_append()

int string_append ( string_t  s,
const char *  str 
)

string_append()

Append to string_t s, NUL terminated string pointed by str
Wrapper to:string_append_n(s, str, -1)

Zobacz również
string_append_n()

◆ string_append_c()

int string_append_c ( string_t  s,
char  c 
)

string_append_c()

Append to string_t s char c.

Parametry
s- string_t
c- char to append
Zwraca
0 on success
-1 and errno set to EFAULT if input params were wrong (s == NULL || format == NULL)

◆ string_append_format()

int string_append_format ( string_t  s,
const char *  format,
  ... 
)

string_append_format()

Append to string_t s, formatted output of format + params
Equivalent to:
char *tmp = saprintf(format, ...);
string_append(s, tmp);
xfree(tmp);

Nota
For more details about string formating functions read man 3 vsnprintf
Zobacz również
string_append() - If you want/can use non-formating function..
saprintf() - If you want to format output but to normal char *, not to string_t
Zwraca
0 on success
-1 and errno set to EFAULT if input params were wrong (s == NULL || format == NULL)

◆ string_append_n()

int string_append_n ( string_t  s,
const char *  str,
int  count 
)

string_append_n()

Append to string_t s, first count chars, from str

Parametry
s- string_t
str- buffer to append.
count- how many chars copy copy from str, or -1 to copy whole.
Do zrobienia:
We append here NUL terminated string, so maybe let's always do count = xstrnlen(str, count);?
Because now programmer can pass negative value, and it'll possible do SIGSEGV
Also we can allocate less memory for string, when for example str[count-3] was NUL char.
Zwraca
0 on success
-1 and errno set to EFAULT if input params were wrong (s == NULL || str == NULL)

◆ string_append_raw()

int string_append_raw ( string_t  s,
const char *  str,
int  count 
)

string_append_raw()

Append to string_t s, count bytes from memory pointed by str

Zobacz również
string_append_n() - If you want to append NUL terminated (C-like) String
Do zrobienia:
XXX Protect from negative count (and less than -1) ?

◆ string_clear()

void string_clear ( string_t  s)

string_clear()

Clear s->str (s->str[0] == '\0')
If memory allocated by string_t s was larger than 160, than decrease to 80

Parametry
s- string_t
Zobacz również
string_free() - To free memory allocated by string_t

◆ string_free()

char* string_free ( string_t  s,
int  free_string 
)

string_free()

Cleanup memory after string_t s, and perhaps (if free_string set) cleanup memory after char buffer.

Parametry
s- string_t which we want to free.
free_string- do we want to free memory after char buffer?
Zobacz również
string_clear() - if you just want to clear saved char buffer, and you don't want to free internal string_t struct.
Zwraca
if free_string != 0 always NULL
else returns saved char buffer, which need be free()'d after use by xfree()

◆ string_init()

string_t string_init ( const char *  value)

string_init()

init string_t struct, allocating memory for string passed by value, and setting internal string_t data.

Parametry
value- if NULL char buffer will be inited with "", otherwise with given value.
Zobacz również
string_free() - to free memory used by string_t
Zwraca
pointer to allocated string_t struct.

◆ string_init_n()

string_t string_init_n ( int  n)

string_init_n()

init string_t struct, allocating memory string of length n

Parametry
n- number of bytes to allocate
Zobacz również
string_free() - to free memory used by string_t
Zwraca
pointer to allocated string_t struct.

◆ string_insert()

void string_insert ( string_t  s,
int  index,
const char *  str 
)

string_insert()

Insert given text (str) to given string_t (s) at given pos (index)
Wrapper to: string_insert_t(s, index, str, -1)

Parametry
s- string_t
index- pos
str- text
Zobacz również
string_insert_n()

◆ string_insert_n()

void string_insert_n ( string_t  s,
int  index,
const char *  str,
int  count 
)

◆ string_remove()

void string_remove ( string_t  s,
int  count 
)

string_remove()

Remove first count chars from string.

◆ unescape()

char* unescape ( const char *  src)