Merge with modular_map
[navit-package] / src / attr.c
1 #include <string.h>
2 #include "attr.h"
3
4 struct attr_name {
5         enum attr_type attr;
6         char *name;
7 };
8
9
10 static struct attr_name attr_names[]={
11 #define ATTR2(x,y) ATTR(x)
12 #define ATTR(x) { attr_##x, #x },
13 #include "attr_def.h"
14 #undef ATTR2
15 #undef ATTR
16 };
17
18 enum attr_type
19 attr_from_name(char *name)
20 {
21         int i;
22
23         for (i=0 ; i < sizeof(attr_names)/sizeof(struct attr_name) ; i++) {
24                 if (! strcmp(attr_names[i].name, name))
25                         return attr_names[i].attr;
26         }
27         return attr_none;
28 }
29
30 char *
31 attr_to_name(enum attr_type attr)
32 {
33         int i;
34
35         for (i=0 ; i < sizeof(attr_names)/sizeof(struct attr_name) ; i++) {
36                 if (attr_names[i].attr == attr)
37                         return attr_names[i].name;
38         }
39         return NULL; 
40 }