2 * (c) Oleg Puchinin 2006
3 * graycardinalster@gmail.com
12 #include <gclib/gclib.h>
13 #include <gclib/gclib_c.h>
25 char * EHash::set (char *KEY
, char *VALUE
)
27 __dlist_entry_t
*entry
;
32 one
= (dkey_t
*) entry
->data
;
33 if (EQ (KEY
, one
->KEY
)) {
41 one
= CNEW (dkey_t
, 1);
42 one
->KEY
= strdup (KEY
);
44 add_tail (LPCHAR (one
));
50 char * EHash::get (char *KEY
)
53 __dlist_entry_t
* one
;
60 if (EQ (KEY
, ((dkey_t
*) one
->data
)->KEY
)) {
61 ret
= ((dkey_t
*) one
->data
)->VALUE
;
71 char * EHash::del (char *KEY
)
74 __dlist_entry_t
* one
;
78 if (EQ (KEY
, ((dkey_t
*) one
->data
)->KEY
)) {
79 ret
= ((dkey_t
*) one
->data
)->VALUE
;
89 int EHash::from_file (char *f_name
)
95 m_buf
= CNEW (char, 4096);
96 f
= fopen (f_name
, "r");
101 if (fgets (m_buf
, 256, f
) == NULL
)
108 d_set
= strchr (m_buf
, '=');
116 printf ("%s = %s\n", m_buf
, d_set
);
117 set (m_buf
, strdup (d_set
));
125 void EHash::foreach (Dhash_f f
)
127 __dlist_entry_t
* one
;
132 key
= (dkey_t
*) one
->data
;
133 f (key
->KEY
, key
->VALUE
);
138 char * EHash::operator [] (char *S
)