Read global configuration file

Thanks to Sebastinas
This commit is contained in:
Moritz Lipp 2010-07-22 23:27:17 +02:00
parent 49e4e8abe1
commit 98bf13102c
2 changed files with 40 additions and 35 deletions

View file

@ -17,6 +17,7 @@ static const char FORMAT_DESCRIPTION[] = "<i>%s</i>";
static const char ZATHURA_DIR[] = ".config/zathura";
static const char BOOKMARK_FILE[] = "bookmarks";
static const char ZATHURA_RC[] = "zathurarc";
static const char GLOBAL_RC[] = "/etc/zathurarc";
/* bookmarks */
static const char BM_PAGE_ENTRY[] = "page";

View file

@ -1365,45 +1365,49 @@ update_status()
g_free(zoom_level);
}
void
read_configuration_file(const char* rcfile)
{
if(!rcfile)
return;
if(!g_file_test(rcfile, G_FILE_TEST_IS_REGULAR))
return;
char* content = NULL;
if(g_file_get_contents(rcfile, &content, NULL, NULL))
{
gchar **lines = g_strsplit(content, "\n", -1);
int n = g_strv_length(lines) - 1;
int i;
for(i = 0; i <= n; i++)
{
if(!strlen(lines[i]))
continue;
gchar **tokens = g_strsplit(lines[i], " ", -1);
int length = g_strv_length(tokens);
if(!strcmp(tokens[0], "set"))
cmd_set(length - 1, tokens + 1);
else if(!strcmp(tokens[0], "map"))
cmd_map(length - 1, tokens + 1);
g_strfreev(tokens);
}
g_strfreev(lines);
g_free(content);
}
}
void
read_configuration()
{
char* zathurarc = g_strdup_printf("%s/%s/%s", g_get_home_dir(), ZATHURA_DIR, ZATHURA_RC);
if(!zathurarc)
return;
if(g_file_test(zathurarc, G_FILE_TEST_IS_REGULAR))
{
char* content = NULL;
if(g_file_get_contents(zathurarc, &content, NULL, NULL))
{
gchar **lines = g_strsplit(content, "\n", -1);
int n = g_strv_length(lines) - 1;
int i;
for(i = 0; i <= n; i++)
{
if(!strlen(lines[i]))
continue;
gchar **tokens = g_strsplit(lines[i], " ", -1);
int length = g_strv_length(tokens);
if(!strcmp(tokens[0], "set"))
cmd_set(length - 1, tokens + 1);
else if(!strcmp(tokens[0], "map"))
cmd_map(length - 1, tokens + 1);
g_strfreev(tokens);
}
g_strfreev(lines);
g_free(content);
}
}
read_configuration_file(GLOBAL_RC);
read_configuration_file(zathurarc);
g_free(zathurarc);
}