When we initialize libedit (editline) always call ourselves "sh" no

matter what $0 is (or is not) set to.   This means that editrc(5)
lines that start "sh:" are used (in addition to those with no prefix,
which will usually be most of them), regardless of the name or manner in
which we were invoked.

OK christos@
This commit is contained in:
kre 2022-01-31 18:15:45 +00:00
parent aa60659cfa
commit 772973c9a5
1 changed files with 4 additions and 7 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: histedit.c,v 1.58 2022/01/31 16:54:28 kre Exp $ */ /* $NetBSD: histedit.c,v 1.59 2022/01/31 18:15:45 kre Exp $ */
/*- /*-
* Copyright (c) 1993 * Copyright (c) 1993
@ -37,7 +37,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)histedit.c 8.2 (Berkeley) 5/4/95"; static char sccsid[] = "@(#)histedit.c 8.2 (Berkeley) 5/4/95";
#else #else
__RCSID("$NetBSD: histedit.c,v 1.58 2022/01/31 16:54:28 kre Exp $"); __RCSID("$NetBSD: histedit.c,v 1.59 2022/01/31 18:15:45 kre Exp $");
#endif #endif
#endif /* not lint */ #endif /* not lint */
@ -115,7 +115,7 @@ histedit(void)
/* /*
* turn editing on * turn editing on
*/ */
char *term, *shname; char *term;
INTOFF; INTOFF;
if (el_in == NULL) if (el_in == NULL)
@ -151,10 +151,7 @@ histedit(void)
setenv("TERM", term, 1); setenv("TERM", term, 1);
else else
unsetenv("TERM"); unsetenv("TERM");
shname = arg0; el = el_init("sh", el_in, el_out, el_err);
if (shname[0] == '-')
shname++;
el = el_init(shname, el_in, el_out, el_err);
if (el != NULL) { if (el != NULL) {
if (hist) if (hist)
el_set(el, EL_HIST, history, hist); el_set(el, EL_HIST, history, hist);