(partial) sync with openbsd (and fix after them),
gives us a better wrapping prompt and a manpage wording cleanup
This commit is contained in:
parent
5e619e1ef3
commit
c504a42ac1
27
edit.c
27
edit.c
@ -1,11 +1,11 @@
|
|||||||
/* $OpenBSD: edit.c,v 1.31 2005/12/11 20:31:21 otto Exp $ */
|
/* $OpenBSD: edit.c,v 1.31 2005/12/11 20:31:21 otto Exp $ */
|
||||||
/* $OpenBSD: edit.h,v 1.8 2005/03/28 21:28:22 deraadt Exp $ */
|
/* $OpenBSD: edit.h,v 1.8 2005/03/28 21:28:22 deraadt Exp $ */
|
||||||
/* $OpenBSD: emacs.c,v 1.39 2005/09/26 19:25:22 otto Exp $ */
|
/* $OpenBSD: emacs.c,v 1.40 2006/07/10 17:12:41 beck Exp $ */
|
||||||
/* $OpenBSD: vi.c,v 1.23 2006/04/10 14:38:59 jaredy Exp $ */
|
/* $OpenBSD: vi.c,v 1.23 2006/04/10 14:38:59 jaredy Exp $ */
|
||||||
|
|
||||||
#include "sh.h"
|
#include "sh.h"
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.24 2006/08/01 12:44:16 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.25 2006/08/01 14:09:18 tg Exp $");
|
||||||
|
|
||||||
/* tty driver characters we are interested in */
|
/* tty driver characters we are interested in */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -956,6 +956,7 @@ static int cur_col; /* current column on line */
|
|||||||
static int pwidth; /* width of prompt */
|
static int pwidth; /* width of prompt */
|
||||||
static int prompt_trunc; /* how much of prompt to truncate */
|
static int prompt_trunc; /* how much of prompt to truncate */
|
||||||
static int prompt_skip; /* how much of prompt to skip */
|
static int prompt_skip; /* how much of prompt to skip */
|
||||||
|
static int prompt_redraw; /* do we need to redraw the prompt? */
|
||||||
static int winwidth; /* width of window */
|
static int winwidth; /* width of window */
|
||||||
static char *wbuf[2]; /* window buffers */
|
static char *wbuf[2]; /* window buffers */
|
||||||
static int wbuf_len; /* length of window buffers (x_cols-3)*/
|
static int wbuf_len; /* length of window buffers (x_cols-3)*/
|
||||||
@ -1278,10 +1279,19 @@ x_emacs(char *buf, size_t len)
|
|||||||
x_col = promptlen(prompt, &p);
|
x_col = promptlen(prompt, &p);
|
||||||
prompt_skip = p - prompt;
|
prompt_skip = p - prompt;
|
||||||
x_adj_ok = 1;
|
x_adj_ok = 1;
|
||||||
|
prompt_redraw = 1;
|
||||||
|
if (x_col > xx_cols)
|
||||||
|
x_col = x_col - (x_col / xx_cols) * xx_cols;
|
||||||
x_displen = xx_cols - 2 - x_col;
|
x_displen = xx_cols - 2 - x_col;
|
||||||
x_adj_done = 0;
|
x_adj_done = 0;
|
||||||
|
|
||||||
pprompt(prompt, 0);
|
pprompt(prompt, 0);
|
||||||
|
if (x_displen < 1) {
|
||||||
|
x_col = 0;
|
||||||
|
x_displen = xx_cols - 2;
|
||||||
|
x_e_putc('\n');
|
||||||
|
prompt_redraw = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (x_nextcmd >= 0) {
|
if (x_nextcmd >= 0) {
|
||||||
int off = source->line - x_nextcmd;
|
int off = source->line - x_nextcmd;
|
||||||
@ -1954,7 +1964,7 @@ x_draw_line(int c __attribute__((unused)))
|
|||||||
static void
|
static void
|
||||||
x_redraw(int limit)
|
x_redraw(int limit)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j, x_trunc = 0;
|
||||||
u_char *cp;
|
u_char *cp;
|
||||||
|
|
||||||
x_adj_ok = 0;
|
x_adj_ok = 0;
|
||||||
@ -1964,10 +1974,19 @@ x_redraw(int limit)
|
|||||||
x_e_putc('\r');
|
x_e_putc('\r');
|
||||||
x_flush();
|
x_flush();
|
||||||
if (xbp == xbuf) {
|
if (xbp == xbuf) {
|
||||||
pprompt(prompt + prompt_skip, 0);
|
|
||||||
x_col = promptlen(prompt, NULL);
|
x_col = promptlen(prompt, NULL);
|
||||||
|
if (x_col > xx_cols)
|
||||||
|
x_trunc = (x_col / xx_cols) * xx_cols;
|
||||||
|
if (prompt_redraw)
|
||||||
|
pprompt(prompt + prompt_skip, x_trunc);
|
||||||
}
|
}
|
||||||
|
if (x_col > xx_cols)
|
||||||
|
x_col = x_col - (x_col / xx_cols) * xx_cols;
|
||||||
x_displen = xx_cols - 2 - x_col;
|
x_displen = xx_cols - 2 - x_col;
|
||||||
|
if (x_displen < 1) {
|
||||||
|
x_col = 0;
|
||||||
|
x_displen = xx_cols - 2;
|
||||||
|
}
|
||||||
xlp_valid = false;
|
xlp_valid = false;
|
||||||
cp = (u_char *)x_lastcp();
|
cp = (u_char *)x_lastcp();
|
||||||
x_zots((u_char *)xbp);
|
x_zots((u_char *)xbp);
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
/* $OpenBSD: history.c,v 1.34 2006/03/17 16:30:13 millert Exp $ */
|
/* $OpenBSD: history.c,v 1.35 2006/05/29 18:22:24 otto Exp $ */
|
||||||
/* $OpenBSD: trap.c,v 1.22 2005/03/30 17:16:37 deraadt Exp $ */
|
/* $OpenBSD: trap.c,v 1.22 2005/03/30 17:16:37 deraadt Exp $ */
|
||||||
|
|
||||||
#include "sh.h"
|
#include "sh.h"
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.18 2006/08/01 13:43:27 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/histrap.c,v 1.19 2006/08/01 14:09:19 tg Exp $");
|
||||||
|
|
||||||
static int histfd;
|
static int histfd;
|
||||||
static int hsize;
|
static int hsize;
|
||||||
@ -857,8 +857,7 @@ histload(Source *s, unsigned char *base, int bytes)
|
|||||||
if (histptr >= history && lno-1 != s->line) {
|
if (histptr >= history && lno-1 != s->line) {
|
||||||
/* a replacement ? */
|
/* a replacement ? */
|
||||||
histinsert(s, lno, line);
|
histinsert(s, lno, line);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
s->line = lno;
|
s->line = lno;
|
||||||
histsave(lno, (char *)line, 0);
|
histsave(lno, (char *)line, 0);
|
||||||
}
|
}
|
||||||
|
4
lex.c
4
lex.c
@ -1,8 +1,8 @@
|
|||||||
/* $OpenBSD: lex.c,v 1.39 2006/04/10 14:38:59 jaredy Exp $ */
|
/* $OpenBSD: lex.c,v 1.42 2006/07/10 17:12:41 beck Exp $ */
|
||||||
|
|
||||||
#include "sh.h"
|
#include "sh.h"
|
||||||
|
|
||||||
__RCSID("$MirOS: src/bin/mksh/lex.c,v 1.14 2006/08/01 13:43:27 tg Exp $");
|
__RCSID("$MirOS: src/bin/mksh/lex.c,v 1.15 2006/08/01 14:09:19 tg Exp $");
|
||||||
|
|
||||||
/* Structure to keep track of the lexing state and the various pieces of info
|
/* Structure to keep track of the lexing state and the various pieces of info
|
||||||
* needed for each particular state. */
|
* needed for each particular state. */
|
||||||
|
10
mksh.1
10
mksh.1
@ -1,5 +1,5 @@
|
|||||||
.\" $MirOS: src/bin/mksh/mksh.1,v 1.42 2006/08/01 12:44:17 tg Exp $
|
.\" $MirOS: src/bin/mksh/mksh.1,v 1.43 2006/08/01 14:09:19 tg Exp $
|
||||||
.\" $OpenBSD: ksh.1,v 1.112 2006/04/22 14:10:36 jmc Exp $
|
.\" $OpenBSD: ksh.1,v 1.116 2006/07/26 10:13:25 jmc Exp $
|
||||||
.\" $OpenBSD: sh.1tbl,v 1.53 2004/12/10 01:56:56 jaredy Exp $
|
.\" $OpenBSD: sh.1tbl,v 1.53 2004/12/10 01:56:56 jaredy Exp $
|
||||||
.\"
|
.\"
|
||||||
.Dd August 1, 2006
|
.Dd August 1, 2006
|
||||||
@ -1430,7 +1430,7 @@ When using
|
|||||||
.Ic getopts ,
|
.Ic getopts ,
|
||||||
it contains the argument for a parsed option, if it requires one.
|
it contains the argument for a parsed option, if it requires one.
|
||||||
.It Ev OPTIND
|
.It Ev OPTIND
|
||||||
The index of the last argument processed when using
|
The index of the next argument to be processed when using
|
||||||
.Ic getopts .
|
.Ic getopts .
|
||||||
Assigning 1 to this parameter causes
|
Assigning 1 to this parameter causes
|
||||||
.Ic getopts
|
.Ic getopts
|
||||||
@ -2796,7 +2796,9 @@ Each time
|
|||||||
.Ic getopts
|
.Ic getopts
|
||||||
is invoked, it places the next option in the shell parameter
|
is invoked, it places the next option in the shell parameter
|
||||||
.Ar name
|
.Ar name
|
||||||
and the index of the next argument to be processed in the shell parameter
|
and the index of the argument to be processed by the next call to
|
||||||
|
.Ic getopts
|
||||||
|
in the shell parameter
|
||||||
.Ev OPTIND .
|
.Ev OPTIND .
|
||||||
If the option was introduced with a
|
If the option was introduced with a
|
||||||
.Ql + ,
|
.Ql + ,
|
||||||
|
4
sh.h
4
sh.h
@ -3,12 +3,12 @@
|
|||||||
/* $OpenBSD: table.h,v 1.7 2005/12/11 20:31:21 otto Exp $ */
|
/* $OpenBSD: table.h,v 1.7 2005/12/11 20:31:21 otto Exp $ */
|
||||||
/* $OpenBSD: tree.h,v 1.10 2005/03/28 21:28:22 deraadt Exp $ */
|
/* $OpenBSD: tree.h,v 1.10 2005/03/28 21:28:22 deraadt Exp $ */
|
||||||
/* $OpenBSD: expand.h,v 1.6 2005/03/30 17:16:37 deraadt Exp $ */
|
/* $OpenBSD: expand.h,v 1.6 2005/03/30 17:16:37 deraadt Exp $ */
|
||||||
/* $OpenBSD: lex.h,v 1.10 2005/09/11 18:02:27 otto Exp $ */
|
/* $OpenBSD: lex.h,v 1.11 2006/05/29 18:22:24 otto Exp $ */
|
||||||
/* $OpenBSD: proto.h,v 1.30 2006/03/17 16:30:13 millert Exp $ */
|
/* $OpenBSD: proto.h,v 1.30 2006/03/17 16:30:13 millert Exp $ */
|
||||||
/* $OpenBSD: c_test.h,v 1.4 2004/12/20 11:34:26 otto Exp $ */
|
/* $OpenBSD: c_test.h,v 1.4 2004/12/20 11:34:26 otto Exp $ */
|
||||||
/* $OpenBSD: tty.h,v 1.5 2004/12/20 11:34:26 otto Exp $ */
|
/* $OpenBSD: tty.h,v 1.5 2004/12/20 11:34:26 otto Exp $ */
|
||||||
|
|
||||||
#define MKSH_SH_H_ID "$MirOS: src/bin/mksh/sh.h,v 1.28 2006/08/01 12:22:26 tg Exp $"
|
#define MKSH_SH_H_ID "$MirOS: src/bin/mksh/sh.h,v 1.29 2006/08/01 14:09:20 tg Exp $"
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user