$darkmode
Elektra 0.11.0
|
Array methods. More...
#include <kdb.h>
#include <kdbease.h>
#include <kdbhelper.h>
#include <kdbprivate.h>
#include <kdbtypes.h>
#include <ctype.h>
#include <errno.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Functions | |
int | elektraArrayValidateName (const Key *key) |
validate array syntax More... | |
int | elektraArrayValidateBaseNameString (const char *baseName) |
validate array syntax More... | |
char * | elektraArrayGetPrefix (Key *key) |
Get the base name of the passed array. More... | |
int | elektraArrayIncName (Key *key) |
Increment the name of the key by one. More... | |
int | elektraArrayDecName (Key *key) |
Decrement the name of an array key by one. More... | |
KeySet * | elektraArrayGet (const Key *arrayParent, KeySet *keys) |
Return all the array keys below the given array parent. More... | |
Key * | elektraArrayGetNextKey (KeySet *arrayKeys) |
Return the next key in the given array. More... | |
Array methods.
int elektraArrayDecName | ( | Key * | key | ) |
Decrement the name of an array key by one.
The alphabetical order will remain intact. For example, user:/abc/\#_10
will be changed to user:/abc/\#9
.
This | parameter determines the key name this function decrements. |
-1 | on error (e.g. new array index too small, non-valid array) |
0 | on success |
KeySet* elektraArrayGet | ( | const Key * | arrayParent, |
KeySet * | keys | ||
) |
Return all the array keys below the given array parent.
The array parent itself is not returned. For example, if user:/config/#
is an array, user:/config
is the array parent. Only the direct array keys will be returned. This means that for example user:/config/#1/key
will not be included, but only user:/config/#1
.
A new keyset will be allocated for the resulting keys. This means that the caller must ksDel
the resulting keyset.
arrayParent | the parent of the array to be returned |
keys | the keyset containing the array keys |
NULL | on NULL pointers |
Key* elektraArrayGetNextKey | ( | KeySet * | arrayKeys | ) |
Return the next key in the given array.
The function will automatically allocate memory for a new key and name it accordingly.
The caller has to keyDel the resulting key.
arrayKeys | the array where the new key will belong to |
NULL | if the passed array is empty |
NULL | on NULL pointers or if an error occurs |
char* elektraArrayGetPrefix | ( | Key * | key | ) |
Get the base name of the passed array.
The returned value must be freed (if not null)
e.g. user:/abc/#9/foo#1 wil return user:/abc
key |
int elektraArrayIncName | ( | Key * | key | ) |
Increment the name of the key by one.
Alphabetical order will remain
e.g. user:/abc/#9 will be changed to user:/abc/#_10
For the start: user:/abc/# will be changed to user:/abc/#0
key | which base name will be incremented |
-1 | on error (e.g. array too large, non-valid array) |
0 | on success |
int elektraArrayValidateBaseNameString | ( | const char * | baseName | ) |
validate array syntax
baseName | the supposed array element basename |
-1 | if no array element/syntax error/no key |
0 | if start |
offsetIndex | otherwise, where offsetIndex stores the offset to the first digit of the array index of baseName |
int elektraArrayValidateName | ( | const Key * | key | ) |
validate array syntax
key | an element of an array |
-1 | if no array element/syntax error/no key |
0 | if start |
1 | if array element |