Lines Matching refs:magic

77 static int magic_check_code(struct magic *magic, char *code)  in magic_check_code()  argument
83 if (! magic->words[(*code - 'A')]) { in magic_check_code()
117 void magic_init(struct magic *magic) in magic_init() argument
119 memset(magic->words, 0, sizeof(magic->words)); in magic_init()
120 magic->spells = NULL; in magic_init()
124 void magic_end_session(struct magic *magic) in magic_end_session() argument
129 if (NULL != magic->words[i]) in magic_end_session()
130 free(magic->words[i]); in magic_end_session()
131 magic->words[i] = NULL; in magic_end_session()
134 if (magic->spells != NULL) { in magic_end_session()
135 magic_del_spell_tree(magic->spells); in magic_end_session()
136 magic->spells = NULL; in magic_end_session()
140 struct spell *magic_add_spell(struct magic *magic, char *code) in magic_add_spell() argument
143 struct spell *current = magic->spells; in magic_add_spell()
147 if (magic_check_code(magic, code)) in magic_add_spell()
174 magic->spells = current; in magic_add_spell()
189 struct spell *magic_lookup_spell(struct magic *magic, char *code) in magic_lookup_spell() argument
193 current = magic->spells; in magic_lookup_spell()
213 int magic_add_word(struct magic *magic, char *word) in magic_add_word() argument
223 if (magic->words[index]) { in magic_add_word()
226 magic->words[index], in magic_add_word()
231 magic->words[index] = strdup(word); in magic_add_word()
232 assert(magic->words[index]); in magic_add_word()
237 char *magic_lookup_word(struct magic *magic, char first_letter) in magic_lookup_word() argument
247 return magic->words[index]; in magic_lookup_word()
250 int magic_spell_code_to_name(struct magic *magic, char *buf, int len, in magic_spell_code_to_name() argument
256 char *word = magic_lookup_word(magic, *code); in magic_spell_code_to_name()
276 int magic_spell_name_to_code(struct magic *magic, char *code, int len, in magic_spell_name_to_code() argument