1 // $Id: val2text.hc 2651 2008-01-03 15:33:01Z dhozac $ --*- c -*--
3 // Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; version 2 of the License.
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27 #define VAL2TEXT(TYPE,SHORT) \
29 utilvserver_value2text_##SHORT(char const *str, size_t len, \
30 struct Mapping_ ##SHORT const *map, \
34 if (len==0) len=strlen(str); \
36 for (i=0; i<map_len; ++i) \
37 if (len==map[i].len && \
38 strncasecmp(map[i].id, str, len)==0) \
44 #define TEXT2VAL(TYPE,SHORT) \
46 searchValue(TYPE val, \
47 struct Mapping_##SHORT const *map, size_t map_len) \
50 for (i=0; i<map_len; ++i) \
51 if (val == map[i].val) return i; \
56 utilvserver_text2value_##SHORT(TYPE *val, \
57 struct Mapping_##SHORT const *map, \
66 idx = searchValue(del_val, map, map_len); \
70 for (i=0; i<sizeof(*val)*8 && (*val&((TYPE)1<<i))==0; ++i) {} \
71 del_val = ((TYPE)1<<i); \
72 idx = searchValue(del_val, map, map_len); \