Attached is a patch that fixes this issue and probably other related ones
that have not been reported.

--- vte-0.28.2/src/vte.c	2014-12-10 20:58:07.000000000 -0500
+++ vte-0.28.2-fix-termcap-restoration/src/vte.c	2014-12-10 20:52:42.833753783 -0500
@@ -8130,4 +8130,29 @@
 #endif /* GTK 2.x */
 
+/* Reset to default those values whose defaults come from termcap/emulation */
+static void vte_terminal_reset_emulation(VteTerminal *terminal) {
+	/* Read emulation flags. */
+	terminal->pvt->flags.am =
+		_vte_termcap_find_boolean(terminal->pvt->termcap,
+					  terminal->pvt->emulation,
+					  "am");
+	terminal->pvt->flags.bw =
+		_vte_termcap_find_boolean(terminal->pvt->termcap,
+					  terminal->pvt->emulation,
+					  "bw");
+	terminal->pvt->flags.LP =
+		_vte_termcap_find_boolean(terminal->pvt->termcap,
+					  terminal->pvt->emulation,
+					  "LP");
+	terminal->pvt->flags.ul =
+		_vte_termcap_find_boolean(terminal->pvt->termcap,
+					  terminal->pvt->emulation,
+					  "ul");
+	terminal->pvt->flags.xn =
+		_vte_termcap_find_boolean(terminal->pvt->termcap,
+					  terminal->pvt->emulation,
+					  "xn");
+}
+
 /**
  * vte_terminal_set_emulation:
@@ -8170,20 +8195,5 @@
 
 	if (terminal->pvt->termcap != NULL) {
-		/* Read emulation flags. */
-		terminal->pvt->flags.am = _vte_termcap_find_boolean(terminal->pvt->termcap,
-								    terminal->pvt->emulation,
-								    "am");
-		terminal->pvt->flags.bw = _vte_termcap_find_boolean(terminal->pvt->termcap,
-								    terminal->pvt->emulation,
-								    "bw");
-		terminal->pvt->flags.LP = _vte_termcap_find_boolean(terminal->pvt->termcap,
-								    terminal->pvt->emulation,
-								    "LP");
-		terminal->pvt->flags.ul = _vte_termcap_find_boolean(terminal->pvt->termcap,
-								    terminal->pvt->emulation,
-								    "ul");
-		terminal->pvt->flags.xn = _vte_termcap_find_boolean(terminal->pvt->termcap,
-								    terminal->pvt->emulation,
-								    "xn");
+		vte_terminal_reset_emulation(terminal);
 
 		/* Resize to the given default. */
@@ -14010,4 +14020,10 @@
 	/* Enable iso2022/NRC processing. */
 	pvt->nrc_mode = TRUE;
+
+	/* Restore emulation-dependent defaults */
+	if (pvt->termcap != NULL) {
+		vte_terminal_reset_emulation(terminal);
+	}
+
 	/* Reset saved settings. */
 	if (pvt->dec_saved != NULL) {

Reply via email to