diff -u vte-0.16.14/debian/changelog vte-0.16.14/debian/changelog --- vte-0.16.14/debian/changelog +++ vte-0.16.14/debian/changelog @@ -1,3 +1,11 @@ +vte (1:0.16.14-1ubuntu2) intrepid; urgency=low + + * Avoid sending NUL character for backspace, when the termios's erase + character is undefined and backspace is bound to VTE_ERASE_AUTO. + (LP: #29787) + + -- Micah Cowan Thu, 17 Jul 2008 02:06:29 -0700 + vte (1:0.16.14-1ubuntu1) intrepid; urgency=low * Merge from Debian unstable (LP: #237806), Ubuntu remaining changes: only in patch2: unchanged: --- vte-0.16.14.orig/debian/patches/92_no_nul_backspace.patch +++ vte-0.16.14/debian/patches/92_no_nul_backspace.patch @@ -0,0 +1,45 @@ +diff -Nur -x '*.orig' -x '*~' vte-0.16.14/src/vte.c vte-0.16.14.new/src/vte.c +--- vte-0.16.14/src/vte.c 2008-05-27 01:27:06.000000000 -0700 ++++ vte-0.16.14.new/src/vte.c 2008-07-17 02:03:55.000000000 -0700 +@@ -4296,6 +4296,7 @@ + + /* Now figure out what to send to the child. */ + if ((event->type == GDK_KEY_PRESS) && !modifier) { ++ cc_t erase = VTE_VDISABLE; + handled = FALSE; + /* Map the key to a sequence name if we can. */ + switch (keyval) { +@@ -4321,11 +4322,14 @@ + if (terminal->pvt->pty_master != -1) { + if (tcgetattr(terminal->pvt->pty_master, + &tio) != -1) { +- normal = g_strdup_printf("%c", +- tio.c_cc[VERASE]); +- normal_length = 1; ++ erase = tio.c_cc[VERASE]; + } + } ++ if (erase == VTE_VDISABLE) ++ normal = g_strdup(""); /* Fallback value. */ ++ else ++ normal = g_strdup_printf("%c", erase); ++ normal_length = 1; + suppress_meta_esc = FALSE; + break; + } +diff -Nur -x '*.orig' -x '*~' vte-0.16.14/src/vte-private.h vte-0.16.14.new/src/vte-private.h +--- vte-0.16.14/src/vte-private.h 2008-05-27 01:27:06.000000000 -0700 ++++ vte-0.16.14.new/src/vte-private.h 2008-07-17 02:03:55.000000000 -0700 +@@ -91,6 +91,12 @@ + #define VTE_MAX_PROCESS_TIME 100 + #define VTE_CELL_BBOX_SLACK 1 + ++#ifdef _POSIX_VDISABLE /* From unistd.h */ ++#define VTE_VDISABLE _POSIX_VDISABLE ++#else ++#define VTE_VDISABLE '\0' ++#endif ++ + /* The structure we use to hold characters we're supposed to display -- this + * includes any supported visible attributes. */ + struct vte_charcell {