summary refs log tree commit diff stats
path: root/src/common/cfgfiles.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/cfgfiles.c')
-rw-r--r--src/common/cfgfiles.c26
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;