Postfix3.3.1
データ構造 | マクロ定義 | 関数
dict.c ファイル
#include "sys_defs.h"
#include <sys/stat.h>
#include <fcntl.h>
#include <ctype.h>
#include <string.h>
#include <time.h>
#include "msg.h"
#include "htable.h"
#include "mymalloc.h"
#include "vstream.h"
#include "vstring.h"
#include "readlline.h"
#include "mac_expand.h"
#include "stringops.h"
#include "iostuff.h"
#include "name_mask.h"
#include "dict.h"
#include "dict_ht.h"
#include "warn_stat.h"
#include "line_number.h"

[ソースコード]

データ構造

struct  DICT_NODE
 

マクロ定義

#define dict_node(dict)   (dict_table ? (DICT_NODE *) htable_find(dict_table, dict) : 0)
 
#define DICT_FIND_FOR_LOOKUP(dict, dict_name)
 
#define DICT_FIND_FOR_UPDATE(dict, dict_name)
 
#define STR(x)   vstring_str(x)
 
#define DONT_FILTER   (char *) 0
 

関数

void dict_register (const char *dict_name, DICT *dict_info)
 
DICTdict_handle (const char *dict_name)
 
void dict_unregister (const char *dict_name)
 
int dict_update (const char *dict_name, const char *member, const char *value)
 
const char * dict_lookup (const char *dict_name, const char *member)
 
int dict_delete (const char *dict_name, const char *member)
 
int dict_sequence (const char *dict_name, const int func, const char **member, const char **value)
 
int dict_error (const char *dict_name)
 
int dict_load_file_xt (const char *dict_name, const char *path)
 
void dict_load_fp (const char *dict_name, VSTREAM *fp)
 
const char * dict_eval (const char *dict_name, const char *value, int recursive)
 
void dict_walk (DICT_WALK_ACTION action, void *ptr)
 
const char * dict_changed_name (void)
 
int dict_changed (void)
 
const char * dict_flags_str (int dict_flags)
 
int dict_flags_mask (const char *names)
 

マクロ定義詳解

#define DICT_FIND_FOR_LOOKUP (   dict,
  dict_name 
)
値:
do { \
DICT_NODE *node; \
if ((node = dict_node(dict_name)) != 0) \
dict = node->dict; \
else \
dict = 0; \
} while (0)
#define dict_node(dict)
Definition: dict.c:284

dict.c289 行目に定義があります。

#define DICT_FIND_FOR_UPDATE (   dict,
  dict_name 
)
値:
do { \
DICT_NODE *node; \
if ((node = dict_node(dict_name)) == 0) { \
dict = dict_ht_open(dict_name, O_CREAT | O_RDWR, 0); \
dict_register(dict_name, dict); \
} else \
dict = node->dict; \
} while (0)
#define dict_node(dict)
Definition: dict.c:284
void dict_register(const char *dict_name, DICT *dict_info)
Definition: dict.c:312
DICT * dict_ht_open(const char *name, int unused_open_flags, int dict_flags)
Definition: dict_ht.c:155

dict.c299 行目に定義があります。

#define dict_node (   dict)    (dict_table ? (DICT_NODE *) htable_find(dict_table, dict) : 0)

dict.c284 行目に定義があります。

#define DONT_FILTER   (char *) 0
#define STR (   x)    vstring_str(x)

dict.c308 行目に定義があります。

関数詳解

int dict_changed ( void  )

dict.c613 行目に定義があります。

const char* dict_changed_name ( void  )

dict.c583 行目に定義があります。

int dict_delete ( const char *  dict_name,
const char *  member 
)

dict.c404 行目に定義があります。

int dict_error ( const char *  dict_name)

dict.c431 行目に定義があります。

const char* dict_eval ( const char *  dict_name,
const char *  value,
int  recursive 
)

dict.c536 行目に定義があります。

int dict_flags_mask ( const char *  names)

dict.c660 行目に定義があります。

const char* dict_flags_str ( int  dict_flags)

dict.c647 行目に定義があります。

DICT* dict_handle ( const char *  dict_name)

dict.c333 行目に定義があります。

int dict_load_file_xt ( const char *  dict_name,
const char *  path 
)

dict.c441 行目に定義があります。

void dict_load_fp ( const char *  dict_name,
VSTREAM fp 
)

dict.c472 行目に定義があります。

const char* dict_lookup ( const char *  dict_name,
const char *  member 
)

dict.c382 行目に定義があります。

void dict_register ( const char *  dict_name,
DICT dict_info 
)

dict.c312 行目に定義があります。

int dict_sequence ( const char *  dict_name,
const int  func,
const char **  member,
const char **  value 
)

dict.c417 行目に定義があります。

void dict_unregister ( const char *  dict_name)

dict.c354 行目に定義があります。

int dict_update ( const char *  dict_name,
const char *  member,
const char *  value 
)

dict.c369 行目に定義があります。

void dict_walk ( DICT_WALK_ACTION  action,
void *  ptr 
)

dict.c569 行目に定義があります。