line->line[line->length - 1] = '\0';
}
-void get_key(const char* line, config_value* value)
+void get_key(config_line* line, config_value* value)
{
- value->key_length = 0;
- while(line[value->key_length] != '=') {
- value->key_length++;
+ int delimiter = 0;
+ while(line->line[delimiter] != '=') {
+ delimiter++;
}
+ value->key_length = delimiter;
value->key = malloc(sizeof(char) * value->key_length);
- memcpy(value->key, line, value->key_length - 1);
+ memcpy(value->key, line->line, value->key_length - 1);
value->key[value->key_length - 1] = '\0';
}
-void get_value(char* line, config_value* value)
+void get_value(config_line* line, config_value* value)
{
- int i = 0;
- while (line[i] != '=') {
- i++;
+ int delimiter = 0;
+ while(line->line[delimiter] != '=') {
+ delimiter++;
}
+
+ value->value_length = line->length - delimiter;
+ value->value = malloc(sizeof(char) * value->value_length + 1);
+ memcpy(value->value, line->line + delimiter + 1, value->value_length);
+ value->value[value->value_length] = '\0';
}
void loadConfig(program_config* config, const char* config_stream)
value.value = NULL;
get_line(config_stream, &line);
- get_key(line.line, &value);
+ get_key(&line, &value);
+ get_value(&line, &value);
config->scanner_url = malloc(sizeof(char) * value.key_length);
- memcpy(config->scanner_url, value.key, value.key_length);
+ memcpy(config->scanner_url, value.value, value.value_length);
free(line.line);
line.line = NULL;
line.length = 0;
+ free(value.value);
+ value.value = NULL;
+ value.value_length = 0;
+ free(value.key);
+ value.key = NULL;
+ value.key_length = 0;
}
\ No newline at end of file