1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# libpom
C parser for [POM configuration language](https://pom.computer)
## About
libpom has
- small size (~20KB code+data)
- support for custom memory allocation
- no dependencies other than libc
## Building
Build with
```
make -j`nproc`
```
Install with
```
sudo make install
```
You can also do `PROFILE=Debug make` to build with debug information.
## Basic usage
```c
#include <stdlib.h>
#include <pom.h>
int main(void) {
pom_error *error;
pom_conf *conf = pom_load_path(NULL, "conf.pom", &error);
if (!conf) {
pom_error_print(error);
free(error);
return EXIT_FAILURE;
}
const char *indentation_type = pom_conf_get(conf, "indentation-type");
if (indentation_type)
printf("Indenting with %s\n", indentation_type);
else
printf("No indentation type set!\n");
pom_conf_free(conf);
}
```
Assuming you have run `make install`, you just need to add `-l:libpom.a` (or `-lpom` to
use the shared library) to your compiler flags.
See `examples/` directory for more examples.
## Contributing
Contributions are welcome, including bug fixes, examples, improvements
to documentation or code readability, and error message translations (see `errors.c`).
## License
```text
Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
```
|