summaryrefslogtreecommitdiffstats
path: root/lib/libedit/common.c
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>1997-01-16 05:18:27 +0000
committermillert <millert@openbsd.org>1997-01-16 05:18:27 +0000
commitbabb851a03da708c23432c3b0e2db2e2d63a0ef9 (patch)
treed668950408f4b1778018080418b2f76b9aff9340 /lib/libedit/common.c
parentSpeak in English and note that editline(3) now exists. (diff)
downloadwireguard-openbsd-babb851a03da708c23432c3b0e2db2e2d63a0ef9.tar.xz
wireguard-openbsd-babb851a03da708c23432c3b0e2db2e2d63a0ef9.zip
Merge in NetBSD libedit changes and new man pages. Also fix some
strncpy() usage in their code. NetBSD change log was: * add a man page for the editline routines * add a man page describing editrc * fix bugs in el_parse(): * didn't execute command when program name matched (test reversed) * was checking against empty string instead of program name * after checks, command to run also pointed to empty string * document ^char and \ escape sequences * when parsing ^char control chars, check the correct char when determining validity (previously, ^char was a NOP interpreted as the literal string because of this bug) * Implement CC_REDISPLAY, which (unlike CC_REFRESH) redraws the entire input * line (a la ^R). This is useful if the binding outputs information and * mucks up the input line. To be used in ``list-choices'' bindings (refer * to the ^D binding in csh when filec is set)
Diffstat (limited to 'lib/libedit/common.c')
-rw-r--r--lib/libedit/common.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/libedit/common.c b/lib/libedit/common.c
index 696da528e51..9131b58f54e 100644
--- a/lib/libedit/common.c
+++ b/lib/libedit/common.c
@@ -1,3 +1,5 @@
+/* $OpenBSD: common.c,v 1.2 1997/01/16 05:18:30 millert Exp $ */
+
/*-
* Copyright (c) 1992, 1993
* The Regents of the University of California. All rights reserved.
@@ -35,7 +37,11 @@
*/
#if !defined(lint) && !defined(SCCSID)
+#if 0
static char sccsid[] = "@(#)common.c 8.1 (Berkeley) 6/4/93";
+#else
+static char rcsid[] = "$OpenBSD: common.c,v 1.2 1997/01/16 05:18:30 millert Exp $";
+#endif
#endif /* not lint && not SCCSID */
/*
@@ -651,9 +657,7 @@ ed_redisplay(el, c)
EditLine *el;
int c;
{
- re_clear_lines(el);
- re_clear_display(el);
- return CC_REFRESH;
+ return CC_REDISPLAY;
}
@@ -702,7 +706,8 @@ ed_prev_history(el, c)
*el->el_line.lastchar = '\0'; /* just in case */
if (el->el_history.eventno == 0) { /* save the current buffer away */
- (void) strncpy(el->el_history.buf, el->el_line.buffer, EL_BUFSIZ);
+ (void) strncpy(el->el_history.buf, el->el_line.buffer, EL_BUFSIZ - 1);
+ el->el_history.buf[EL_BUFSIZ - 1] = '\0';
el->el_history.last = el->el_history.buf +
(el->el_line.lastchar - el->el_line.buffer);
}
@@ -773,7 +778,8 @@ ed_search_prev_history(el, c)
}
if (el->el_history.eventno == 0) {
- (void) strncpy(el->el_history.buf, el->el_line.buffer, EL_BUFSIZ);
+ (void) strncpy(el->el_history.buf, el->el_line.buffer, EL_BUFSIZ - 1);
+ el->el_history.buf[EL_BUFSIZ - 1] = '\0';
el->el_history.last = el->el_history.buf +
(el->el_line.lastchar - el->el_line.buffer);
}