Line data Source code
1 : /**
2 : * @file
3 : *
4 : * @brief
5 : *
6 : * @copyright BSD License (see LICENSE.md or https://www.libelektra.org)
7 : */
8 :
9 : #include <kdb.h>
10 :
11 : //! [f]
12 0 : void f (KeySet * iterator, KeySet * lookup)
13 : {
14 0 : KeySet * append = ksNew (ksGetSize (lookup), KS_END);
15 : Key * current;
16 :
17 0 : ksRewind (iterator);
18 0 : while ((current = ksNext (iterator)))
19 : {
20 0 : Key * key = ksLookup (lookup, current, KDB_O_POP);
21 : // do something...
22 0 : ksAppendKey (append, key); // now append it to append, not lookup!
23 0 : keyDel (key); // make sure to ALWAYS delete poped keys.
24 : }
25 0 : ksAppend (lookup, append);
26 : // now lookup needs to be sorted only once, append never
27 0 : ksDel (append);
28 0 : }
29 : //! [f]
30 :
31 0 : int main (void)
32 : {
33 0 : KeySet * ks1 = ksNew (20, KS_END);
34 0 : KeySet * ks2 = ksNew (20, KS_END);
35 0 : f (ks1, ks2);
36 : }
|