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 <kdbproposal.h>
10 :
11 : #include <stdio.h>
12 : #include <stdlib.h>
13 :
14 0 : void printNamespace (Key const * k)
15 : {
16 : // clang-format off
17 : //! [namespace]
18 0 : switch (keyGetNamespace (k))
19 : {
20 : case KEY_NS_SPEC:
21 0 : printf ("spec namespace\n");
22 0 : break;
23 : case KEY_NS_PROC:
24 0 : printf ("proc namespace\n");
25 0 : break;
26 : case KEY_NS_DIR:
27 0 : printf ("dir namespace\n");
28 0 : break;
29 : case KEY_NS_USER:
30 0 : printf ("user namespace\n");
31 0 : break;
32 : case KEY_NS_SYSTEM:
33 0 : printf ("system namespace\n");
34 0 : break;
35 : case KEY_NS_EMPTY:
36 0 : printf ("empty name\n");
37 0 : break;
38 : case KEY_NS_NONE:
39 0 : printf ("no key\n");
40 0 : break;
41 : case KEY_NS_META:
42 0 : printf ("metakey\n");
43 0 : break;
44 : case KEY_NS_CASCADING:
45 0 : printf ("cascading key\n");
46 0 : break;
47 : }
48 : //! [namespace]
49 0 : }
50 :
51 0 : void loop (void)
52 : {
53 : //! [loop]
54 0 : for (elektraNamespace ns = KEY_NS_FIRST; ns <= KEY_NS_LAST; ++ns)
55 : {
56 : // work with namespace
57 0 : printf ("%d\n", ns);
58 : }
59 : //! [loop]
60 0 : }
61 :
62 0 : int main (void)
63 : {
64 : char s[100];
65 0 : if (!fgets (s, 100, stdin)) {
66 0 : fprintf(stderr, "Unable to read from standard input");
67 0 : return EXIT_FAILURE;
68 : }
69 :
70 0 : Key * k = keyNew (s, KEY_CASCADING_NAME, KEY_META_NAME, KEY_END);
71 0 : printNamespace (k);
72 0 : keyDel (k);
73 : }
|