struct s_list *f_keys_initialize(struct s_list *supplied, const char *file, char separator) { struct s_list *result = supplied; struct s_keys_entry *entry; char buffer[d_string_buffer_size], *pointer; FILE *stream; if (!result) f_list_init(&result); if ((stream = fopen(file, "r"))) { while (!feof(stream)) { memset(buffer, 0, d_string_buffer_size); if (fgets(buffer, d_string_buffer_size, stream)) if ((pointer = strchr(buffer, separator))) { *pointer = '\0'; pointer++; f_string_trim(buffer); f_string_trim(pointer); if ((f_string_strlen(buffer) > 0) && (f_string_strlen(pointer) > 0)) if ((entry = (struct s_keys_entry *) d_malloc(sizeof(struct s_keys_entry)))) { strncpy(entry->key, buffer, d_string_buffer_size); strncpy(entry->value, pointer, d_string_buffer_size); f_list_append(result, (struct s_list_node *)entry, e_list_insert_head); } } } fclose(stream); } return result; }
struct s_object *f_emitter_new(struct s_object *self) { struct s_emitter_attributes *attributes = d_prepare(self, emitter); f_list_init(&(attributes->signals)); return self; }