diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/cfgfiles.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c index d3c2046d..c7a89665 100644 --- a/src/common/cfgfiles.c +++ b/src/common/cfgfiles.c @@ -23,6 +23,8 @@ #include <sys/types.h> #include <sys/stat.h> +#include <gio/gio.h> + #include "hexchat.h" #include "cfgfiles.h" #include "util.h" @@ -627,6 +629,8 @@ load_config (void) #ifdef WIN32 char out[256]; #endif + GFile *beepsrc; + GFile *beepdest; check_prefs_dir (); username = g_get_user_name (); @@ -831,9 +835,29 @@ 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 ()); + buf = g_build_filename (get_xdir (), "addons", NULL); g_mkdir (buf, 0700); g_free (buf); + + buf = g_build_filename (get_xdir (), "sounds", NULL); + if (g_mkdir (buf, 0700) == 0) + { + g_free (buf); + + buf = g_build_filename (get_xdir (), "sounds", "beep.wav", NULL); +#ifdef WIN32 + beepsrc = g_file_new_for_path (HEXCHATSHAREDIR G_DIR_SEPARATOR_S "share" G_DIR_SEPARATOR_S "beep.wav"); +#else + beepsrc = g_file_new_for_path (HEXCHATSHAREDIR G_DIR_SEPARATOR_S "hexchat" G_DIR_SEPARATOR_S "beep.wav"); +#endif + beepdest = g_file_new_for_path (buf); + + g_file_copy (beepsrc, beepdest, G_FILE_COPY_TARGET_DEFAULT_PERMS, NULL, NULL, NULL, NULL); + + g_object_unref (beepsrc); + g_object_unref (beepdest); + } + g_free (buf); } if (prefs.hex_gui_win_height < 138) prefs.hex_gui_win_height = 138; |