From ced705ae045f1d8f70b6601d3bff54d07cf4e443 Mon Sep 17 00:00:00 2001 From: tg Date: Sun, 2 Apr 2017 15:43:24 +0000 Subject: [PATCH] handle multibyte backspace in ^R --- edit.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/edit.c b/edit.c index 6e48377..36c6447 100644 --- a/edit.c +++ b/edit.c @@ -28,7 +28,7 @@ #ifndef MKSH_NO_CMDLINE_EDITING -__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.315 2017/04/02 15:42:59 tg Exp $"); +__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.316 2017/04/02 15:43:24 tg Exp $"); /* * in later versions we might use libtermcap for this, but since external @@ -1926,8 +1926,10 @@ x_search_hist(int c) offset = -1; break; } - if (p > pat) - *--p = '\0'; + if (p > pat) { + p = x_bs0(p - 1, pat); + *p = '\0'; + } if (p == pat) offset = -1; else