Elektra
0.9.3
|
Internal methods for Elektra. More...
Functions | |
ssize_t | elektraMemcpy (Key **array1, Key **array2, size_t size) |
Internal Methods for Elektra. More... | |
ssize_t | elektraMemmove (Key **array1, Key **array2, size_t size) |
Copies the key array2 into where array1 points. More... | |
int | elektraStrCmp (const char *s1, const char *s2) |
Compare Strings. More... | |
int | elektraStrNCmp (const char *s1, const char *s2, size_t n) |
Compare Strings up to a maximum length. More... | |
int | elektraStrCaseCmp (const char *s1, const char *s2) |
Compare Strings ignoring case. More... | |
int | elektraStrNCaseCmp (const char *s1, const char *s2, size_t n) |
Compare Strings ignoring case up to a maximum length. More... | |
int | elektraMemCaseCmp (const char *s1, const char *s2, size_t size) |
Compare two memory regions but make cmp chars uppercase before comparison. More... | |
int | elektraRealloc (void **buffer, size_t size) |
Reallocate Storage in a save way. More... | |
void * | elektraMalloc (size_t size) |
Allocate memory for Elektra. More... | |
void * | elektraCalloc (size_t size) |
Allocate memory for Elektra. More... | |
void | elektraFree (void *ptr) |
Free memory of Elektra or its backends. More... | |
char * | elektraStrDup (const char *s) |
Copy string into new allocated memory. More... | |
char * | elektraStrNDup (const char *s, size_t l) |
Copy buffer into new allocated memory. More... | |
size_t | elektraStrLen (const char *s) |
Calculates the length in bytes of a string. More... | |
char * | elektraFormat (const char *format,...) |
Does string formatting in fresh allocated memory. More... | |
char * | elektraVFormat (const char *format, va_list arg_list) |
Does string formatting in fresh allocated memory. More... | |
int | elektraValidateKeyName (const char *name, size_t size) |
Validates whether the supplied keyname is valid. More... | |
Internal methods for Elektra.
void* elektraCalloc | ( | size_t | size | ) |
Allocate memory for Elektra.
Memory will be set to 0.
size | the requested size |
char* elektraFormat | ( | const char * | format, |
... | |||
) |
Does string formatting in fresh allocated memory.
format | as in printf() |
... | as in printf() |
void elektraFree | ( | void * | ptr | ) |
Free memory of Elektra or its backends.
ptr | the pointer to free |
If ptr is NULL, no operation is performed.
void* elektraMalloc | ( | size_t | size | ) |
Allocate memory for Elektra.
size | the requested size |
This function is compatible to ANSI-C malloc
int elektraMemCaseCmp | ( | const char * | s1, |
const char * | s2, | ||
size_t | size | ||
) |
Compare two memory regions but make cmp chars uppercase before comparison.
s1 | The first string to be compared |
s2 | The second string to be compared |
size | to be compared |
0 | if s1 matches s2 |
ssize_t elektraMemcpy | ( | Key ** | array1, |
Key ** | array2, | ||
size_t | size | ||
) |
Internal Methods for Elektra.
To use them:
There are some areas where libraries have to reimplement some basic functions to archive support for non-standard systems, for testing purposes or to provide a little more convenience. Copies the key array2 into where array1 points. It copies size elements.
Overlapping is prohibited, use elektraMemmove() instead.
array1 | the destination |
array2 | the source |
size | how many pointer to Keys to copy |
-1 | on null pointers |
0 | if nothing was done |
ssize_t elektraMemmove | ( | Key ** | array1, |
Key ** | array2, | ||
size_t | size | ||
) |
Copies the key array2 into where array1 points.
It copies size elements.
Overlapping is ok. If they do not overlap consider elektraMemcpy() instead.
array1 | the destination |
array2 | the source |
size | how many pointer to Keys to copy |
-1 | on null pointers |
0 | if nothing was done |
int elektraRealloc | ( | void ** | buffer, |
size_t | size | ||
) |
Reallocate Storage in a save way.
buffer | is a pointer to a elektraMalloc |
size | is the new size for the memory |
-1 | on failure |
0 | on success |
int elektraStrCaseCmp | ( | const char * | s1, |
const char * | s2 | ||
) |
Compare Strings ignoring case.
s1 | The first string to be compared |
s2 | The second string to be compared |
0 | if s1 matches s2 |
int elektraStrCmp | ( | const char * | s1, |
const char * | s2 | ||
) |
Compare Strings.
s1 | The first string to be compared |
s2 | The second string to be compared |
0 | if s1 matches s2 |
char* elektraStrDup | ( | const char * | s | ) |
Copy string into new allocated memory.
You need to free the memory yourself.
s | the null-terminated string to duplicate |
size_t elektraStrLen | ( | const char * | s | ) |
Calculates the length in bytes of a string.
This function differs from strlen() because it is Unicode and multibyte chars safe. While strlen() counts characters and ignores the final NULL, elektraStrLen() count bytes including the ending NULL.
It must not be used to search for / in the name, because it does not consider escaping. Instead use the unescaped name.
s | the string to get the length from |
int elektraStrNCaseCmp | ( | const char * | s1, |
const char * | s2, | ||
size_t | n | ||
) |
Compare Strings ignoring case up to a maximum length.
s1 | The first string to be compared |
s2 | The second string to be compared |
n | The maximum length to be compared |
0 | if s1 matches s2 |
int elektraStrNCmp | ( | const char * | s1, |
const char * | s2, | ||
size_t | n | ||
) |
Compare Strings up to a maximum length.
s1 | The first string to be compared |
s2 | The second string to be compared |
n | The maximum length to be compared |
0 | if s1 matches s2 |
char* elektraStrNDup | ( | const char * | s, |
size_t | l | ||
) |
Copy buffer into new allocated memory.
You need to free the memory yourself.
This function also works with \0 characters in the buffer. The length is taken as given, it must be correct.
s | must be an allocated buffer |
l | the length of s |
int elektraValidateKeyName | ( | const char * | name, |
size_t | size | ||
) |
Validates whether the supplied keyname is valid.
The function looks for tangling escape characters in the end and for a minimum length.
Does not check for valid namespaces
name | the key name that is to be checked |
size | a elektraStrLen of the key name |
true | if the supplied keyname part is valid |
false | if its invalid |
char* elektraVFormat | ( | const char * | format, |
va_list | arg_list | ||
) |
Does string formatting in fresh allocated memory.
format | as in vprintf() |
arg_list | as in vprintf() |