aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmdline.cpp2
-rw-r--r--src/interface-curses.cpp13
-rw-r--r--src/interface-gtk.cpp2
3 files changed, 13 insertions, 4 deletions
diff --git a/src/cmdline.cpp b/src/cmdline.cpp
index 888a70c..4a04277 100644
--- a/src/cmdline.cpp
+++ b/src/cmdline.cpp
@@ -268,7 +268,7 @@ Cmdline::process_edit_cmd(gchar key)
modifier_enabled ? "enabled" : "disabled");
break;
- case '\b': /* rubout/reinsert character */
+ case CTL_KEY('H'): /* rubout/reinsert character */
interface.popup_clear();
if (modifier_enabled)
diff --git a/src/interface-curses.cpp b/src/interface-curses.cpp
index e05643b..da0f158 100644
--- a/src/interface-curses.cpp
+++ b/src/interface-curses.cpp
@@ -509,9 +509,18 @@ event_loop_iter()
interface.resize_all_windows();
break;
#endif
- case 0x7F: /* DEL */
+ case CTL_KEY('H'):
+ case 0x7F: /* ^? */
case KEY_BACKSPACE:
- cmdline.keypress('\b');
+ /*
+ * For historic reasons terminals can send
+ * ASCII 8 (^H) or 127 (^?) for backspace.
+ * Curses also defines KEY_BACKSPACE, probably
+ * for terminals that send an escape sequence for
+ * backspace.
+ * In SciTECO backspace is normalized to ^H.
+ */
+ cmdline.keypress(CTL_KEY('H'));
break;
case KEY_ENTER:
case '\r':
diff --git a/src/interface-gtk.cpp b/src/interface-gtk.cpp
index 8375dd8..14dfafd 100644
--- a/src/interface-gtk.cpp
+++ b/src/interface-gtk.cpp
@@ -311,7 +311,7 @@ handle_key_press(bool is_shift, bool is_ctl, guint keyval)
cmdline.keypress(CTL_KEY_ESC);
break;
case GDK_BackSpace:
- cmdline.keypress('\b');
+ cmdline.keypress(CTL_KEY('H'));
break;
case GDK_Tab:
cmdline.keypress('\t');