diff options
Diffstat (limited to 'src/common/cfgfiles.c')
-rw-r--r-- | src/common/cfgfiles.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c index fd037525..9aac5a4f 100644 --- a/src/common/cfgfiles.c +++ b/src/common/cfgfiles.c @@ -619,7 +619,7 @@ convert_with_fallback (const char *str, const char *fallback) void load_config (void) { - char *cfg, *sp; + char *cfg, *sp, *buf; const char *username, *realname; int res, val, i; #ifdef WIN32 @@ -754,7 +754,10 @@ load_config (void) snprintf (prefs.hex_dcc_dir, sizeof (prefs.hex_dcc_dir), "%s\\Downloads", out); } #else - snprintf (prefs.hex_dcc_dir, sizeof (prefs.hex_dcc_dir), "%s/downloads", get_xdir ()); + if (g_get_user_special_dir(G_USER_DIRECTORY_DOWNLOAD)) + strcpy (prefs.hex_dcc_dir, g_get_user_special_dir(G_USER_DIRECTORY_DOWNLOAD)); + else + strcpy (prefs.hex_dcc_dir, g_build_filename (g_get_home_dir (), "Downloads", NULL)); #endif strcpy (prefs.hex_dnsprogram, "host"); strcpy (prefs.hex_gui_ulist_doubleclick, "QUERY %s"); @@ -834,6 +837,10 @@ load_config (void) g_mkdir (prefs.hex_dcc_dir, 0700); g_mkdir (prefs.hex_dcc_completed_dir, 0700); + + buf = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "addons", get_xdir ()); + g_mkdir (buf, 0700); + g_free (buf); } if (prefs.hex_gui_win_height < 138) prefs.hex_gui_win_height = 138; |