about summary refs log tree commit diff stats
path: root/xxxterm.c
diff options
context:
space:
mode:
authorTodd Fries <todd@fries.net>2011-01-19 04:18:04 +0000
committerTodd Fries <todd@fries.net>2011-01-19 04:18:04 +0000
commit4a6acf16e969deeb7a396716e10272c5bda46131 (patch)
treea4b1bfbc5c459f3a2371d2840a8d2d95a8d9cfeb /xxxterm.c
parenteef5a1df9e26e33805246877e1a0c20b86f48510 (diff)
downloadxombrero-4a6acf16e969deeb7a396716e10272c5bda46131.tar.gz
keep track of socket fd, incase we execvp(), so we can close it and
it can be used on the other side
ok marco@
Diffstat (limited to 'xxxterm.c')
-rw-r--r--xxxterm.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/xxxterm.c b/xxxterm.c
index 6ac6269..e261fbc 100644
--- a/xxxterm.c
+++ b/xxxterm.c
@@ -413,6 +413,7 @@ int		show_tabs = 1;	/* show tabs on notebook */
 int		show_url = 1;	/* show url toolbar on notebook */
 int		tabless = 0;	/* allow only 1 tab */
 int		enable_socket = 0;
+int		socket_fd = -1;
 int		single_instance = 0; /* only allow one xxxterm to run */
 int		fancy_bar = 1;	/* fancy toolbar */
 
@@ -4008,6 +4009,9 @@ restart(struct tab *t, struct karg *args)
 
 	a.s = XT_RESTART_TABS_FILE;
 	save_tabs(t, &a);
+
+	if (enable_socket && socket_fd != -1)
+		close(socket_fd);
 	execvp(start_argv[0], start_argv);
 	/* NOTREACHED */
 
@@ -6775,8 +6779,10 @@ main(int argc, char *argv[])
 		create_new_tab(home, NULL, 1);
 
 	if (enable_socket)
-		if ((s = build_socket()) != -1)
+		if ((s = build_socket()) != -1) {
+			socket_fd = s;
 			gdk_input_add(s, GDK_INPUT_READ, socket_watcher, NULL);
+		}
 
 	gtk_main();