]> git.decadent.org.uk Git - ion3.git/blob - libtu/map.c
[svn-inject] Installing original source of ion3
[ion3.git] / libtu / map.c
1 /*
2  * libtu/map.c
3  *
4  * Copyright (c) Tuomo Valkonen 1999-2002. 
5  *
6  * You may distribute and modify this library under the terms of either
7  * the Clarified Artistic License or the GNU LGPL, version 2.1 or later.
8  */
9
10 #include <string.h>
11 #include "map.h"
12
13
14 int stringintmap_ndx(const StringIntMap *map, const char *str)
15 {
16     int i;
17     
18     for(i=0; map[i].string!=NULL; i++){
19         if(strcmp(str, map[i].string)==0)
20             return i;
21     }
22     
23     return -1;
24 }
25
26
27 int stringintmap_value(const StringIntMap *map, const char *str, int dflt)
28 {
29     int i=stringintmap_ndx(map, str);
30     return (i==-1 ? dflt : map[i].value); 
31 }
32
33
34 const char *stringintmap_key(const StringIntMap *map, int value, 
35                              const char *dflt)
36 {
37     int i;
38     
39     for(i=0; map[i].string!=NULL; ++i){
40         if(map[i].value==value){
41             return map[i].string;
42         }
43     }
44     
45     return dflt;
46     
47 }