114 const char *myname =
"maps_create";
140 #define OPEN_FLAGS O_RDONLY
142 while ((map_type_name =
mystrtokq(&bufp, sep, parens)) != 0) {
148 if ((dict->
flags & dict_flags) != dict_flags)
149 msg_panic(
"%s: map %s has flags 0%o, want flags 0%o",
150 myname, map_type_name, dict->
flags, dict_flags);
164 const char *myname =
"maps_find";
166 const char *expansion;
181 for (map_name = maps->
argv->
argv; *map_name; map_name++) {
183 msg_panic(
"%s: dictionary not found: %s", myname, *map_name);
184 if (flags != 0 && (dict->
flags & flags) == 0)
186 if ((expansion =
dict_get(dict, name)) != 0) {
187 if (*expansion == 0) {
188 msg_warn(
"%s lookup of %s returns an empty string result",
190 msg_warn(
"%s should return NO RESULT in case of NOT FOUND",
197 *map_name, name, expansion);
199 }
else if ((maps->
error = dict->
error) != 0) {
200 msg_warn(
"%s:%s lookup error for \"%.100s\"",
207 "search aborted" :
"not found");
217 for (map_name = maps->
argv->
argv; *map_name; map_name++) {
219 msg_info(
"maps_free: %s", *map_name);
234 int main(
int argc,
char **argv)
250 }
else if (maps->
error != 0) {
#define vstring_fgets_nonl(s, p)
char * mystrdup(const char *str)
void dict_register(const char *dict_name, DICT *dict_info)
ARGV * argv_free(ARGV *argvp)
NORETURN msg_panic(const char *fmt,...)
int main(int argc, char **argv)
void argv_add(ARGV *argvp,...)
char * mystrtokq(char **src, const char *sep, const char *parens)
DICT * dict_open(const char *, int, int)
ARGV * argv_alloc(ssize_t len)
void dict_unregister(const char *dict_name)
#define dict_get(dp, key)
MAPS * maps_create(const char *title, const char *map_names, int dict_flags)
VSTREAM * vstream_printf(const char *fmt,...)
DICT * dict_handle(const char *dict_name)
void msg_warn(const char *fmt,...)
VSTRING * vstring_alloc(ssize_t len)
const char * dict_flags_str(int dict_flags)
VSTRING * vstring_sprintf(VSTRING *vp, const char *format,...)
NORETURN msg_fatal(const char *fmt,...)
MAPS * maps_free(MAPS *maps)
int vstream_fflush(VSTREAM *stream)
VSTRING * vstring_free(VSTRING *vp)
const char * maps_find(MAPS *maps, const char *name, int flags)
void * mymalloc(ssize_t len)
void msg_info(const char *fmt,...)