Elektra
0.8.23
|
Implementation of proposed API enhancements. More...
Functions | |
Key * | elektraKsPrev (KeySet *ks) |
Returns the previous Key in a KeySet. More... | |
KeySet * | elektraRenameKeys (KeySet *config, const char *name) |
Takes the first key and cuts off this common part for all other keys, instead name will be prepended. More... | |
int | elektraKeyLock (Key *key, enum elektraLockOptions what) |
Permanently locks a part of the key. More... | |
Key * | elektraKsPopAtCursor (KeySet *ks, cursor_t pos) |
Pop key at given cursor position. More... | |
Implementation of proposed API enhancements.
int elektraKeyLock | ( | Key * | key, |
enum elektraLockOptions | what | ||
) |
Permanently locks a part of the key.
This can be:
To unlock the key, duplicate it.
It is also possible to lock when the key is created with keyNew().
Some data structures need to lock the key (most likely its name), so that the ordering does not get confused.
key | which name should be locked |
>0 | the bits that were successfully locked |
0 | if everything was locked before |
-1 | if it could not be locked (nullpointer) |
Key* elektraKsPopAtCursor | ( | KeySet * | ks, |
cursor_t | pos | ||
) |
Pop key at given cursor position.
ks | the keyset to pop key from |
c | where to pop |
The internal cursor will be rewinded using ksRewind(). You can use ksGetCursor() and ksSetCursor() jump back to the previous position. e.g. to pop at current position within ksNext() loop:
0 | if ks is 0 |
Key* elektraKsPrev | ( | KeySet * | ks | ) |
Returns the previous Key in a KeySet.
KeySets have an internal cursor that can be reset with ksRewind(). Every time ksPrev() is called the cursor is decremented and the new current Key is returned.
You'll get a NULL pointer if the key before begin of the KeySet was reached.
Don't delete the key, use ksPop() if you want to delete it.
KeySet* elektraRenameKeys | ( | KeySet * | config, |
const char * | name | ||
) |
Takes the first key and cuts off this common part for all other keys, instead name will be prepended.
The first key is removed in the resulting keyset.