about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMarco Peereboom <marco@conformal.com>2011-01-14 21:08:48 +0000
committerMarco Peereboom <marco@conformal.com>2011-01-14 21:08:48 +0000
commit46388ff9bd5e55622d5107be51118be9d953e4ae (patch)
tree6465a9d30cb31acd6f2c0b9e19db94b7b0a100ee
parentd22a5d6f241958551853d5fe572538843c599cf2 (diff)
downloadxombrero-46388ff9bd5e55622d5107be51118be9d953e4ae.tar.gz
make the browser obtain the correct session name upon restart
-rw-r--r--xxxterm.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/xxxterm.c b/xxxterm.c
index 4615311..72caaf0 100644
--- a/xxxterm.c
+++ b/xxxterm.c
@@ -257,6 +257,7 @@ struct karg {
 #define XT_RESTART_TABS_FILE	("restart_tabs")
 #define XT_SOCKET_FILE		("socket")
 #define XT_HISTORY_FILE		("history")
+#define XT_SAVE_SESSION_ID	("SESSION_NAME=")
 #define XT_CB_HANDLED		(TRUE)
 #define XT_CB_PASSTHROUGH	(FALSE)
 #define XT_DOCTYPE		"<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>"
@@ -1533,6 +1534,14 @@ open_tabs(struct tab *t, struct karg *a)
 			if (feof(f) || ferror(f))
 				break;
 
+		/* retrieve session name */
+		if (uri && g_str_has_prefix(uri, XT_SAVE_SESSION_ID)) {
+			strlcpy(named_session,
+			    &uri[strlen(XT_SAVE_SESSION_ID)],
+			    sizeof named_session);
+			continue;
+		}
+
 		if (uri && strlen(uri))
 			create_new_tab(uri, NULL, 1);
 
@@ -1610,6 +1619,10 @@ save_tabs(struct tab *t, struct karg *a)
 		return (1);
 	}
 
+	/* save session name */
+	fprintf(f, "%s%s\n", XT_SAVE_SESSION_ID, named_session);
+
+	/* save tabs */
 	TAILQ_FOREACH(ti, &tabs, entry) {
 		frame = webkit_web_view_get_main_frame(ti->wv);
 		uri = webkit_web_frame_get_uri(frame);