Ejemplo n.º 1
0
static bool read_config_file(const char *cfg_fn)
{
    FILE *cfg = fopen(cfg_fn, "r");
    if (!cfg)
        return false;

    bool rc = false;

    char line[1024];
    while (fgets(line, sizeof(line), cfg) != NULL) {
        char *key, *value;

        if (line[0] == '#')
            continue;
        while (line[0] && (isspace(line[strlen(line) - 1])))
            line[strlen(line) - 1] = 0;

        if (!parse_kvstr(line, &key, &value))
            continue;

        g_hash_table_replace(settings, key, value);
    }

    rc = ferror(cfg) == 0;

    fclose(cfg);
    return rc;
}
Ejemplo n.º 2
0
static bool do_setting(const char *arg)
{
	char *key, *value;

	if (!parse_kvstr(arg, &key, &value))
		return false;

	bp_hashtab_put(settings, key, value);

	/*
	 * trigger special setting-specific behaviors
	 */

	if (!strcmp(key, "debug"))
		debugging = true;

	else if (!strcmp(key, "config") || !strcmp(key, "c"))
		return read_config_file(value);

	return true;
}
Ejemplo n.º 3
0
static bool do_setting(const char *arg)
{
    char *key, *value;

    if (!parse_kvstr(arg, &key, &value))
        return false;

    g_hash_table_replace(settings, key, value);

    /*
     * trigger special setting-specific behaviors
     */

    if (!strcmp(key, "config") || !strcmp(key, "c"))
        return read_config_file(value);

    /* clear previous wallet, if new wallet file seen */
    if (!strcmp(key, "wallet") || !strcmp(key, "w"))
        cur_wallet_free();

    return true;
}