summaryrefslogtreecommitdiffstats
path: root/linenoise
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-09-22 06:08:50 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-09-22 06:08:50 -0700
commit206f432b1b5811c99ecf5f14a914de8da37277c0 (patch)
treec14930e3690021bcf14474042b020e6b51c9067d /linenoise
parentd0c25e3cb12f6905a68952b0eeb9c17f6edcee48 (diff)
downloadtxr-206f432b1b5811c99ecf5f14a914de8da37277c0.tar.gz
txr-206f432b1b5811c99ecf5f14a914de8da37277c0.tar.bz2
txr-206f432b1b5811c99ecf5f14a914de8da37277c0.zip
linenoise: forward paren jump too.
* linenoise/linenoise.c (paren_jump): Scan forward also, if reverse scan turns up nothing, thereby jumping to a closing parenthesis in the forward direction. * txr.1: Documentation updated.
Diffstat (limited to 'linenoise')
-rw-r--r--linenoise/linenoise.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/linenoise/linenoise.c b/linenoise/linenoise.c
index 7dd29aa5..1a16ac7c 100644
--- a/linenoise/linenoise.c
+++ b/linenoise/linenoise.c
@@ -1118,6 +1118,9 @@ static void paren_jump(lino_t *l)
{
size_t pos = scan_rev(l->data, l->dpos - 1);
+ if (pos == -1)
+ pos = scan_fwd(l->data, l->dpos - 1);
+
if (pos != -1) {
size_t dp = l->dpos;
l->dpos = pos;
@@ -1840,6 +1843,7 @@ static int edit(lino_t *l, const char *prompt)
}
break;
case ')': case ']': case '}':
+ case '(': case '[': case '{':
if (edit_insert(l,c)) {
l->error = lino_ioerr;
goto out;