1 /* $NetBSD: dict_static.c,v 1.1.1.1 2009/06/23 10:08:59 tron Exp $ */ 2 3 /*++ 4 /* NAME 5 /* dict_static 3 6 /* SUMMARY 7 /* dictionary manager interface to static variables 8 /* SYNOPSIS 9 /* #include <dict_static.h> 10 /* 11 /* DICT *dict_static_open(name, dummy, dict_flags) 12 /* const char *name; 13 /* int dummy; 14 /* int dict_flags; 15 /* DESCRIPTION 16 /* dict_static_open() implements a dummy dictionary that returns 17 /* as lookup result the dictionary name, regardless of the lookup 18 /* key value. 19 /* 20 /* The \fIdummy\fR argument is ignored. 21 /* SEE ALSO 22 /* dict(3) generic dictionary manager 23 /* LICENSE 24 /* .ad 25 /* .fi 26 /* The Secure Mailer license must be distributed with this software. 27 /* AUTHOR(S) 28 /* jeffm 29 /* ghostgun.com 30 /*--*/ 31 32 /* System library. */ 33 34 #include "sys_defs.h" 35 #include <stdio.h> /* sprintf() prototype */ 36 #include <stdlib.h> 37 #include <unistd.h> 38 #include <string.h> 39 40 /* Utility library. */ 41 42 #include "mymalloc.h" 43 #include "msg.h" 44 #include "dict.h" 45 #include "dict_static.h" 46 47 /* dict_static_lookup - access static value*/ 48 49 static const char *dict_static_lookup(DICT *dict, const char *unused_name) 50 { 51 dict_errno = 0; 52 53 return (dict->name); 54 } 55 56 /* dict_static_close - close static dictionary */ 57 58 static void dict_static_close(DICT *dict) 59 { 60 dict_free(dict); 61 } 62 63 /* dict_static_open - make association with static variable */ 64 65 DICT *dict_static_open(const char *name, int unused_flags, int dict_flags) 66 { 67 DICT *dict; 68 69 dict = dict_alloc(DICT_TYPE_STATIC, name, sizeof(*dict)); 70 dict->lookup = dict_static_lookup; 71 dict->close = dict_static_close; 72 dict->flags = dict_flags | DICT_FLAG_FIXED; 73 return (DICT_DEBUG (dict)); 74 } 75