Char -> wchar_t from Ingo Schwarze.
This commit is contained in:
parent
6b3f51ca99
commit
0594af8028
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: chared.c,v 1.51 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: chared.c,v 1.52 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)chared.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: chared.c,v 1.51 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: chared.c,v 1.52 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -84,7 +84,7 @@ cv_undo(EditLine *el)
|
||||
* Save yank/delete data for paste
|
||||
*/
|
||||
protected void
|
||||
cv_yank(EditLine *el, const Char *ptr, int size)
|
||||
cv_yank(EditLine *el, const wchar_t *ptr, int size)
|
||||
{
|
||||
c_kill_t *k = &el->el_chared.c_kill;
|
||||
|
||||
@ -99,7 +99,7 @@ cv_yank(EditLine *el, const Char *ptr, int size)
|
||||
protected void
|
||||
c_insert(EditLine *el, int num)
|
||||
{
|
||||
Char *cp;
|
||||
wchar_t *cp;
|
||||
|
||||
if (el->el_line.lastchar + num >= el->el_line.limit) {
|
||||
if (!ch_enlargebufs(el, (size_t)num))
|
||||
@ -131,7 +131,7 @@ c_delafter(EditLine *el, int num)
|
||||
}
|
||||
|
||||
if (num > 0) {
|
||||
Char *cp;
|
||||
wchar_t *cp;
|
||||
|
||||
for (cp = el->el_line.cursor; cp <= el->el_line.lastchar; cp++)
|
||||
*cp = cp[num];
|
||||
@ -147,7 +147,7 @@ c_delafter(EditLine *el, int num)
|
||||
protected void
|
||||
c_delafter1(EditLine *el)
|
||||
{
|
||||
Char *cp;
|
||||
wchar_t *cp;
|
||||
|
||||
for (cp = el->el_line.cursor; cp <= el->el_line.lastchar; cp++)
|
||||
*cp = cp[1];
|
||||
@ -172,7 +172,7 @@ c_delbefore(EditLine *el, int num)
|
||||
}
|
||||
|
||||
if (num > 0) {
|
||||
Char *cp;
|
||||
wchar_t *cp;
|
||||
|
||||
for (cp = el->el_line.cursor - num;
|
||||
cp <= el->el_line.lastchar;
|
||||
@ -190,7 +190,7 @@ c_delbefore(EditLine *el, int num)
|
||||
protected void
|
||||
c_delbefore1(EditLine *el)
|
||||
{
|
||||
Char *cp;
|
||||
wchar_t *cp;
|
||||
|
||||
for (cp = el->el_line.cursor - 1; cp <= el->el_line.lastchar; cp++)
|
||||
*cp = cp[1];
|
||||
@ -236,8 +236,8 @@ cv__isWord(wint_t p)
|
||||
/* c__prev_word():
|
||||
* Find the previous word
|
||||
*/
|
||||
protected Char *
|
||||
c__prev_word(Char *p, Char *low, int n, int (*wtest)(wint_t))
|
||||
protected wchar_t *
|
||||
c__prev_word(wchar_t *p, wchar_t *low, int n, int (*wtest)(wint_t))
|
||||
{
|
||||
p--;
|
||||
|
||||
@ -260,8 +260,8 @@ c__prev_word(Char *p, Char *low, int n, int (*wtest)(wint_t))
|
||||
/* c__next_word():
|
||||
* Find the next word
|
||||
*/
|
||||
protected Char *
|
||||
c__next_word(Char *p, Char *high, int n, int (*wtest)(wint_t))
|
||||
protected wchar_t *
|
||||
c__next_word(wchar_t *p, wchar_t *high, int n, int (*wtest)(wint_t))
|
||||
{
|
||||
while (n--) {
|
||||
while ((p < high) && !(*wtest)(*p))
|
||||
@ -278,8 +278,9 @@ c__next_word(Char *p, Char *high, int n, int (*wtest)(wint_t))
|
||||
/* cv_next_word():
|
||||
* Find the next word vi style
|
||||
*/
|
||||
protected Char *
|
||||
cv_next_word(EditLine *el, Char *p, Char *high, int n, int (*wtest)(wint_t))
|
||||
protected wchar_t *
|
||||
cv_next_word(EditLine *el, wchar_t *p, wchar_t *high, int n,
|
||||
int (*wtest)(wint_t))
|
||||
{
|
||||
int test;
|
||||
|
||||
@ -307,8 +308,8 @@ cv_next_word(EditLine *el, Char *p, Char *high, int n, int (*wtest)(wint_t))
|
||||
/* cv_prev_word():
|
||||
* Find the previous word vi style
|
||||
*/
|
||||
protected Char *
|
||||
cv_prev_word(Char *p, Char *low, int n, int (*wtest)(wint_t))
|
||||
protected wchar_t *
|
||||
cv_prev_word(wchar_t *p, wchar_t *low, int n, int (*wtest)(wint_t))
|
||||
{
|
||||
int test;
|
||||
|
||||
@ -371,8 +372,8 @@ cv_delfini(EditLine *el)
|
||||
/* cv__endword():
|
||||
* Go to the end of this word according to vi
|
||||
*/
|
||||
protected Char *
|
||||
cv__endword(Char *p, Char *high, int n, int (*wtest)(wint_t))
|
||||
protected wchar_t *
|
||||
cv__endword(wchar_t *p, wchar_t *high, int n, int (*wtest)(wint_t))
|
||||
{
|
||||
int test;
|
||||
|
||||
@ -504,7 +505,7 @@ protected int
|
||||
ch_enlargebufs(EditLine *el, size_t addlen)
|
||||
{
|
||||
size_t sz, newsz;
|
||||
Char *newbuffer, *oldbuf, *oldkbuf;
|
||||
wchar_t *newbuffer, *oldbuf, *oldkbuf;
|
||||
|
||||
sz = (size_t)(el->el_line.limit - el->el_line.buffer + EL_LEAVE);
|
||||
newsz = sz * 2;
|
||||
@ -614,7 +615,7 @@ ch_end(EditLine *el)
|
||||
* Insert string at cursorI
|
||||
*/
|
||||
public int
|
||||
el_winsertstr(EditLine *el, const Char *s)
|
||||
el_winsertstr(EditLine *el, const wchar_t *s)
|
||||
{
|
||||
size_t len;
|
||||
|
||||
@ -673,11 +674,10 @@ out:
|
||||
* Get a string
|
||||
*/
|
||||
protected int
|
||||
c_gets(EditLine *el, Char *buf, const Char *prompt)
|
||||
c_gets(EditLine *el, wchar_t *buf, const wchar_t *prompt)
|
||||
{
|
||||
wchar_t wch;
|
||||
ssize_t len;
|
||||
Char *cp = el->el_line.buffer, ch;
|
||||
wchar_t *cp = el->el_line.buffer, ch;
|
||||
|
||||
if (prompt) {
|
||||
len = (ssize_t)wcslen(prompt);
|
||||
@ -692,12 +692,11 @@ c_gets(EditLine *el, Char *buf, const Char *prompt)
|
||||
el->el_line.lastchar = cp + 1;
|
||||
re_refresh(el);
|
||||
|
||||
if (el_wgetc(el, &wch) != 1) {
|
||||
if (el_wgetc(el, &ch) != 1) {
|
||||
ed_end_of_file(el, 0);
|
||||
len = -1;
|
||||
break;
|
||||
}
|
||||
ch = (Char)wch;
|
||||
|
||||
switch (ch) {
|
||||
|
||||
@ -742,7 +741,7 @@ c_gets(EditLine *el, Char *buf, const Char *prompt)
|
||||
protected int
|
||||
c_hpos(EditLine *el)
|
||||
{
|
||||
Char *ptr;
|
||||
wchar_t *ptr;
|
||||
|
||||
/*
|
||||
* Find how many characters till the beginning of this line.
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: chared.h,v 1.27 2016/02/16 22:53:14 christos Exp $ */
|
||||
/* $NetBSD: chared.h,v 1.28 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -58,7 +58,7 @@
|
||||
typedef struct c_macro_t {
|
||||
int level;
|
||||
int offset;
|
||||
Char **macro;
|
||||
wchar_t **macro;
|
||||
} c_macro_t;
|
||||
|
||||
/*
|
||||
@ -67,16 +67,16 @@ typedef struct c_macro_t {
|
||||
typedef struct c_undo_t {
|
||||
ssize_t len; /* length of saved line */
|
||||
int cursor; /* position of saved cursor */
|
||||
Char *buf; /* full saved text */
|
||||
wchar_t *buf; /* full saved text */
|
||||
} c_undo_t;
|
||||
|
||||
/* redo for vi */
|
||||
typedef struct c_redo_t {
|
||||
Char *buf; /* redo insert key sequence */
|
||||
Char *pos;
|
||||
Char *lim;
|
||||
wchar_t *buf; /* redo insert key sequence */
|
||||
wchar_t *pos;
|
||||
wchar_t *lim;
|
||||
el_action_t cmd; /* command to redo */
|
||||
Char ch; /* char that invoked it */
|
||||
wchar_t ch; /* char that invoked it */
|
||||
int count;
|
||||
int action; /* from cv_action() */
|
||||
} c_redo_t;
|
||||
@ -86,16 +86,16 @@ typedef struct c_redo_t {
|
||||
*/
|
||||
typedef struct c_vcmd_t {
|
||||
int action;
|
||||
Char *pos;
|
||||
wchar_t *pos;
|
||||
} c_vcmd_t;
|
||||
|
||||
/*
|
||||
* Kill buffer for emacs
|
||||
*/
|
||||
typedef struct c_kill_t {
|
||||
Char *buf;
|
||||
Char *last;
|
||||
Char *mark;
|
||||
wchar_t *buf;
|
||||
wchar_t *last;
|
||||
wchar_t *mark;
|
||||
} c_kill_t;
|
||||
|
||||
typedef void (*el_zfunc_t)(EditLine *, void *);
|
||||
@ -138,20 +138,21 @@ typedef struct el_chared_t {
|
||||
protected int cv__isword(wint_t);
|
||||
protected int cv__isWord(wint_t);
|
||||
protected void cv_delfini(EditLine *);
|
||||
protected Char *cv__endword(Char *, Char *, int, int (*)(wint_t));
|
||||
protected wchar_t *cv__endword(wchar_t *, wchar_t *, int, int (*)(wint_t));
|
||||
protected int ce__isword(wint_t);
|
||||
protected void cv_undo(EditLine *);
|
||||
protected void cv_yank(EditLine *, const Char *, int);
|
||||
protected Char *cv_next_word(EditLine*, Char *, Char *, int, int (*)(wint_t));
|
||||
protected Char *cv_prev_word(Char *, Char *, int, int (*)(wint_t));
|
||||
protected Char *c__next_word(Char *, Char *, int, int (*)(wint_t));
|
||||
protected Char *c__prev_word(Char *, Char *, int, int (*)(wint_t));
|
||||
protected void cv_yank(EditLine *, const wchar_t *, int);
|
||||
protected wchar_t *cv_next_word(EditLine*, wchar_t *, wchar_t *, int,
|
||||
int (*)(wint_t));
|
||||
protected wchar_t *cv_prev_word(wchar_t *, wchar_t *, int, int (*)(wint_t));
|
||||
protected wchar_t *c__next_word(wchar_t *, wchar_t *, int, int (*)(wint_t));
|
||||
protected wchar_t *c__prev_word(wchar_t *, wchar_t *, int, int (*)(wint_t));
|
||||
protected void c_insert(EditLine *, int);
|
||||
protected void c_delbefore(EditLine *, int);
|
||||
protected void c_delbefore1(EditLine *);
|
||||
protected void c_delafter(EditLine *, int);
|
||||
protected void c_delafter1(EditLine *);
|
||||
protected int c_gets(EditLine *, Char *, const Char *);
|
||||
protected int c_gets(EditLine *, wchar_t *, const wchar_t *);
|
||||
protected int c_hpos(EditLine *);
|
||||
|
||||
protected int ch_init(EditLine *);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: chartype.c,v 1.25 2016/04/09 18:43:17 christos Exp $ */
|
||||
/* $NetBSD: chartype.c,v 1.26 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2009 The NetBSD Foundation, Inc.
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
#include "config.h"
|
||||
#if !defined(lint) && !defined(SCCSID)
|
||||
__RCSID("$NetBSD: chartype.c,v 1.25 2016/04/09 18:43:17 christos Exp $");
|
||||
__RCSID("$NetBSD: chartype.c,v 1.26 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
#include <ctype.h>
|
||||
@ -86,7 +86,7 @@ ct_conv_wbuff_resize(ct_buffer_t *conv, size_t wsize)
|
||||
|
||||
|
||||
public char *
|
||||
ct_encode_string(const Char *s, ct_buffer_t *conv)
|
||||
ct_encode_string(const wchar_t *s, ct_buffer_t *conv)
|
||||
{
|
||||
char *dst;
|
||||
ssize_t used;
|
||||
@ -115,7 +115,7 @@ ct_encode_string(const Char *s, ct_buffer_t *conv)
|
||||
return conv->cbuff;
|
||||
}
|
||||
|
||||
public Char *
|
||||
public wchar_t *
|
||||
ct_decode_string(const char *s, ct_buffer_t *conv)
|
||||
{
|
||||
size_t len;
|
||||
@ -136,13 +136,13 @@ ct_decode_string(const char *s, ct_buffer_t *conv)
|
||||
}
|
||||
|
||||
|
||||
protected Char **
|
||||
protected wchar_t **
|
||||
ct_decode_argv(int argc, const char *argv[], ct_buffer_t *conv)
|
||||
{
|
||||
size_t bufspace;
|
||||
int i;
|
||||
Char *p;
|
||||
Char **wargv;
|
||||
wchar_t *p;
|
||||
wchar_t **wargv;
|
||||
ssize_t bytes;
|
||||
|
||||
/* Make sure we have enough space in the conversion buffer to store all
|
||||
@ -177,7 +177,7 @@ ct_decode_argv(int argc, const char *argv[], ct_buffer_t *conv)
|
||||
|
||||
|
||||
protected size_t
|
||||
ct_enc_width(Char c)
|
||||
ct_enc_width(wchar_t c)
|
||||
{
|
||||
/* UTF-8 encoding specific values */
|
||||
if (c < 0x80)
|
||||
@ -193,7 +193,7 @@ ct_enc_width(Char c)
|
||||
}
|
||||
|
||||
protected ssize_t
|
||||
ct_encode_char(char *dst, size_t len, Char c)
|
||||
ct_encode_char(char *dst, size_t len, wchar_t c)
|
||||
{
|
||||
ssize_t l = 0;
|
||||
if (len < ct_enc_width(c))
|
||||
@ -207,13 +207,13 @@ ct_encode_char(char *dst, size_t len, Char c)
|
||||
return l;
|
||||
}
|
||||
|
||||
protected const Char *
|
||||
ct_visual_string(const Char *s)
|
||||
protected const wchar_t *
|
||||
ct_visual_string(const wchar_t *s)
|
||||
{
|
||||
static Char *buff = NULL;
|
||||
static wchar_t *buff = NULL;
|
||||
static size_t buffsize = 0;
|
||||
void *p;
|
||||
Char *dst;
|
||||
wchar_t *dst;
|
||||
ssize_t used = 0;
|
||||
|
||||
if (!s)
|
||||
@ -258,7 +258,7 @@ out:
|
||||
|
||||
|
||||
protected int
|
||||
ct_visual_width(Char c)
|
||||
ct_visual_width(wchar_t c)
|
||||
{
|
||||
int t = ct_chr_class(c);
|
||||
switch (t) {
|
||||
@ -282,7 +282,7 @@ ct_visual_width(Char c)
|
||||
|
||||
|
||||
protected ssize_t
|
||||
ct_visual_char(Char *dst, size_t len, Char c)
|
||||
ct_visual_char(wchar_t *dst, size_t len, wchar_t c)
|
||||
{
|
||||
int t = ct_chr_class(c);
|
||||
switch (t) {
|
||||
@ -329,7 +329,7 @@ ct_visual_char(Char *dst, size_t len, Char c)
|
||||
|
||||
|
||||
protected int
|
||||
ct_chr_class(Char c)
|
||||
ct_chr_class(wchar_t c)
|
||||
{
|
||||
if (c == '\t')
|
||||
return CHTYPE_TAB;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: chartype.h,v 1.28 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: chartype.h,v 1.29 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2009 The NetBSD Foundation, Inc.
|
||||
@ -51,40 +51,33 @@
|
||||
#warning Build environment does not support non-BMP characters
|
||||
#endif
|
||||
|
||||
#define Char wchar_t
|
||||
#else /* NARROW */
|
||||
#define Char char
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef NARROWCHAR
|
||||
/*
|
||||
* Conversion buffer
|
||||
*/
|
||||
typedef struct ct_buffer_t {
|
||||
char *cbuff;
|
||||
size_t csize;
|
||||
Char *wbuff;
|
||||
wchar_t *wbuff;
|
||||
size_t wsize;
|
||||
} ct_buffer_t;
|
||||
|
||||
#define ct_encode_string __ct_encode_string
|
||||
/* Encode a wide-character string and return the UTF-8 encoded result. */
|
||||
public char *ct_encode_string(const Char *, ct_buffer_t *);
|
||||
public char *ct_encode_string(const wchar_t *, ct_buffer_t *);
|
||||
|
||||
#define ct_decode_string __ct_decode_string
|
||||
/* Decode a (multi)?byte string and return the wide-character string result. */
|
||||
public Char *ct_decode_string(const char *, ct_buffer_t *);
|
||||
public wchar_t *ct_decode_string(const char *, ct_buffer_t *);
|
||||
|
||||
/* Decode a (multi)?byte argv string array.
|
||||
* The pointer returned must be free()d when done. */
|
||||
protected Char **ct_decode_argv(int, const char *[], ct_buffer_t *);
|
||||
protected wchar_t **ct_decode_argv(int, const char *[], ct_buffer_t *);
|
||||
|
||||
/* Resizes the conversion buffer(s) if needed. */
|
||||
protected int ct_conv_cbuff_resize(ct_buffer_t *, size_t);
|
||||
protected int ct_conv_wbuff_resize(ct_buffer_t *, size_t);
|
||||
protected ssize_t ct_encode_char(char *, size_t, Char);
|
||||
protected size_t ct_enc_width(Char);
|
||||
protected ssize_t ct_encode_char(char *, size_t, wchar_t);
|
||||
protected size_t ct_enc_width(wchar_t);
|
||||
|
||||
#else
|
||||
#define ct_encode_string(s, b) (s)
|
||||
@ -103,20 +96,20 @@ protected size_t ct_enc_width(Char);
|
||||
/* The terminal is thought of in terms of X columns by Y lines. In the cases
|
||||
* where a wide character takes up more than one column, the adjacent
|
||||
* occupied column entries will contain this faux character. */
|
||||
#define MB_FILL_CHAR ((Char)-1)
|
||||
#define MB_FILL_CHAR ((wchar_t)-1)
|
||||
|
||||
/* Visual width of character c, taking into account ^? , \0177 and \U+nnnnn
|
||||
* style visual expansions. */
|
||||
protected int ct_visual_width(Char);
|
||||
protected int ct_visual_width(wchar_t);
|
||||
|
||||
/* Turn the given character into the appropriate visual format, matching
|
||||
* the width given by ct_visual_width(). Returns the number of characters used
|
||||
* up, or -1 if insufficient space. Buffer length is in count of Char's. */
|
||||
protected ssize_t ct_visual_char(Char *, size_t, Char);
|
||||
* up, or -1 if insufficient space. Buffer length is in count of wchar_t's. */
|
||||
protected ssize_t ct_visual_char(wchar_t *, size_t, wchar_t);
|
||||
|
||||
/* Convert the given string into visual format, using the ct_visual_char()
|
||||
* function. Uses a static buffer, so not threadsafe. */
|
||||
protected const Char *ct_visual_string(const Char *);
|
||||
protected const wchar_t *ct_visual_string(const wchar_t *);
|
||||
|
||||
|
||||
/* printable character, use ct_visual_width() to find out display width */
|
||||
@ -130,7 +123,7 @@ protected const Char *ct_visual_string(const Char *);
|
||||
/* non-printable character */
|
||||
#define CHTYPE_NONPRINT (-4)
|
||||
/* classification of character c, as one of the above defines */
|
||||
protected int ct_chr_class(Char c);
|
||||
protected int ct_chr_class(wchar_t c);
|
||||
#endif
|
||||
|
||||
#endif /* _chartype_f */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: common.c,v 1.42 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: common.c,v 1.43 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)common.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: common.c,v 1.42 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: common.c,v 1.43 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -91,14 +91,14 @@ ed_insert(EditLine *el, wint_t c)
|
||||
|| el->el_line.cursor >= el->el_line.lastchar)
|
||||
c_insert(el, 1);
|
||||
|
||||
*el->el_line.cursor++ = (Char)c;
|
||||
*el->el_line.cursor++ = c;
|
||||
re_fastaddc(el); /* fast refresh for one char. */
|
||||
} else {
|
||||
if (el->el_state.inputmode != MODE_REPLACE_1)
|
||||
c_insert(el, el->el_state.argument);
|
||||
|
||||
while (count-- && el->el_line.cursor < el->el_line.lastchar)
|
||||
*el->el_line.cursor++ = (Char)c;
|
||||
*el->el_line.cursor++ = c;
|
||||
re_refresh(el);
|
||||
}
|
||||
|
||||
@ -117,7 +117,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
ed_delete_prev_word(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *cp, *p, *kp;
|
||||
wchar_t *cp, *p, *kp;
|
||||
|
||||
if (el->el_line.cursor == el->el_line.buffer)
|
||||
return CC_ERROR;
|
||||
@ -192,7 +192,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
ed_kill_line(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *kp, *cp;
|
||||
wchar_t *kp, *cp;
|
||||
|
||||
cp = el->el_line.cursor;
|
||||
kp = el->el_chared.c_kill.buf;
|
||||
@ -270,7 +270,7 @@ ed_transpose_chars(EditLine *el, wint_t c)
|
||||
/* must have at least two chars entered */
|
||||
c = el->el_line.cursor[-2];
|
||||
el->el_line.cursor[-2] = el->el_line.cursor[-1];
|
||||
el->el_line.cursor[-1] = (Char)c;
|
||||
el->el_line.cursor[-1] = c;
|
||||
return CC_REFRESH;
|
||||
} else
|
||||
return CC_ERROR;
|
||||
@ -285,7 +285,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
ed_next_char(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *lim = el->el_line.lastchar;
|
||||
wchar_t *lim = el->el_line.lastchar;
|
||||
|
||||
if (el->el_line.cursor >= lim ||
|
||||
(el->el_line.cursor == lim - 1 &&
|
||||
@ -708,7 +708,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
ed_search_prev_history(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
const Char *hp;
|
||||
const wchar_t *hp;
|
||||
int h;
|
||||
int found = 0;
|
||||
|
||||
@ -776,7 +776,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
ed_search_next_history(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
const Char *hp;
|
||||
const wchar_t *hp;
|
||||
int h;
|
||||
int found = 0;
|
||||
|
||||
@ -830,7 +830,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
ed_prev_line(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *ptr;
|
||||
wchar_t *ptr;
|
||||
int nchars = c_hpos(el);
|
||||
|
||||
/*
|
||||
@ -873,7 +873,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
ed_next_line(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *ptr;
|
||||
wchar_t *ptr;
|
||||
int nchars = c_hpos(el);
|
||||
|
||||
/*
|
||||
@ -907,7 +907,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
ed_command(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char tmpbuf[EL_BUFSIZ];
|
||||
wchar_t tmpbuf[EL_BUFSIZ];
|
||||
int tmplen;
|
||||
|
||||
tmplen = c_gets(el, tmpbuf, L"\n: ");
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: el.c,v 1.86 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: el.c,v 1.87 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)el.c 8.2 (Berkeley) 1/3/94";
|
||||
#else
|
||||
__RCSID("$NetBSD: el.c,v 1.86 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: el.c,v 1.87 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -205,7 +205,7 @@ el_wset(EditLine *el, int op, ...)
|
||||
el_pfunc_t p = va_arg(ap, el_pfunc_t);
|
||||
int c = va_arg(ap, int);
|
||||
|
||||
rv = prompt_set(el, p, (Char)c, op, 1);
|
||||
rv = prompt_set(el, p, (wchar_t)c, op, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@ el_wset(EditLine *el, int op, ...)
|
||||
break;
|
||||
|
||||
case EL_EDITOR:
|
||||
rv = map_set_editor(el, va_arg(ap, Char *));
|
||||
rv = map_set_editor(el, va_arg(ap, wchar_t *));
|
||||
break;
|
||||
|
||||
case EL_SIGNAL:
|
||||
@ -230,11 +230,11 @@ el_wset(EditLine *el, int op, ...)
|
||||
case EL_ECHOTC:
|
||||
case EL_SETTY:
|
||||
{
|
||||
const Char *argv[20];
|
||||
const wchar_t *argv[20];
|
||||
int i;
|
||||
|
||||
for (i = 1; i < (int)__arraycount(argv); i++)
|
||||
if ((argv[i] = va_arg(ap, Char *)) == NULL)
|
||||
if ((argv[i] = va_arg(ap, wchar_t *)) == NULL)
|
||||
break;
|
||||
|
||||
switch (op) {
|
||||
@ -273,8 +273,8 @@ el_wset(EditLine *el, int op, ...)
|
||||
|
||||
case EL_ADDFN:
|
||||
{
|
||||
Char *name = va_arg(ap, Char *);
|
||||
Char *help = va_arg(ap, Char *);
|
||||
wchar_t *name = va_arg(ap, wchar_t *);
|
||||
wchar_t *help = va_arg(ap, wchar_t *);
|
||||
el_func_t func = va_arg(ap, el_func_t);
|
||||
|
||||
rv = map_addfunc(el, name, help, func);
|
||||
@ -401,14 +401,14 @@ el_wget(EditLine *el, int op, ...)
|
||||
case EL_PROMPT_ESC:
|
||||
case EL_RPROMPT_ESC: {
|
||||
el_pfunc_t *p = va_arg(ap, el_pfunc_t *);
|
||||
Char *c = va_arg(ap, Char *);
|
||||
wchar_t *c = va_arg(ap, wchar_t *);
|
||||
|
||||
rv = prompt_get(el, p, c, op);
|
||||
break;
|
||||
}
|
||||
|
||||
case EL_EDITOR:
|
||||
rv = map_get_editor(el, va_arg(ap, const Char **));
|
||||
rv = map_get_editor(el, va_arg(ap, const wchar_t **));
|
||||
break;
|
||||
|
||||
case EL_SIGNAL:
|
||||
@ -512,7 +512,7 @@ el_source(EditLine *el, const char *fname)
|
||||
ssize_t slen;
|
||||
char *ptr;
|
||||
char *path = NULL;
|
||||
const Char *dptr;
|
||||
const wchar_t *dptr;
|
||||
int error = 0;
|
||||
|
||||
fp = NULL;
|
||||
@ -610,9 +610,9 @@ el_beep(EditLine *el)
|
||||
*/
|
||||
protected int
|
||||
/*ARGSUSED*/
|
||||
el_editmode(EditLine *el, int argc, const Char **argv)
|
||||
el_editmode(EditLine *el, int argc, const wchar_t **argv)
|
||||
{
|
||||
const Char *how;
|
||||
const wchar_t *how;
|
||||
|
||||
if (argv == NULL || argc != 2 || argv[1] == NULL)
|
||||
return -1;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: el.h,v 1.35 2016/03/23 22:27:48 christos Exp $ */
|
||||
/* $NetBSD: el.h,v 1.36 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -66,10 +66,10 @@ typedef struct coord_t { /* Position on the screen */
|
||||
} coord_t;
|
||||
|
||||
typedef struct el_line_t {
|
||||
Char *buffer; /* Input line */
|
||||
Char *cursor; /* Cursor position */
|
||||
Char *lastchar; /* Last character */
|
||||
const Char *limit; /* Max position */
|
||||
wchar_t *buffer; /* Input line */
|
||||
wchar_t *cursor; /* Cursor position */
|
||||
wchar_t *lastchar; /* Last character */
|
||||
const wchar_t *limit; /* Max position */
|
||||
} el_line_t;
|
||||
|
||||
/*
|
||||
@ -82,7 +82,7 @@ typedef struct el_state_t {
|
||||
int metanext; /* Is the next char a meta char */
|
||||
el_action_t lastcmd; /* Previous command */
|
||||
el_action_t thiscmd; /* this command */
|
||||
Char thisch; /* char that generated it */
|
||||
wchar_t thisch; /* char that generated it */
|
||||
} el_state_t;
|
||||
|
||||
/*
|
||||
@ -106,7 +106,7 @@ typedef struct el_state_t {
|
||||
#include "read.h"
|
||||
|
||||
struct editline {
|
||||
Char *el_prog; /* the program name */
|
||||
wchar_t *el_prog; /* the program name */
|
||||
FILE *el_infile; /* Stdio stuff */
|
||||
FILE *el_outfile; /* Stdio stuff */
|
||||
FILE *el_errfile; /* Stdio stuff */
|
||||
@ -116,8 +116,8 @@ struct editline {
|
||||
int el_flags; /* Various flags. */
|
||||
int el_errno; /* Local copy of errno */
|
||||
coord_t el_cursor; /* Cursor location */
|
||||
Char **el_display; /* Real screen image = what is there */
|
||||
Char **el_vdisplay; /* Virtual screen image = what we see */
|
||||
wchar_t **el_display; /* Real screen image = what is there */
|
||||
wchar_t **el_vdisplay; /* Virtual screen image = what we see */
|
||||
void *el_data; /* Client data */
|
||||
el_line_t el_line; /* The current line information */
|
||||
el_state_t el_state; /* Current editor state */
|
||||
@ -138,7 +138,7 @@ struct editline {
|
||||
LineInfo el_lgcylinfo; /* Legacy LineInfo buffer */
|
||||
};
|
||||
|
||||
protected int el_editmode(EditLine *, int, const Char **);
|
||||
protected int el_editmode(EditLine *, int, const wchar_t **);
|
||||
|
||||
#ifdef DEBUG
|
||||
#define EL_ABORT(a) do { \
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: eln.c,v 1.31 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: eln.c,v 1.32 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2009 The NetBSD Foundation, Inc.
|
||||
@ -27,7 +27,7 @@
|
||||
*/
|
||||
#include "config.h"
|
||||
#if !defined(lint) && !defined(SCCSID)
|
||||
__RCSID("$NetBSD: eln.c,v 1.31 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: eln.c,v 1.32 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
#include <errno.h>
|
||||
@ -365,7 +365,7 @@ el_line(EditLine *el)
|
||||
const LineInfoW *winfo = el_wline(el);
|
||||
LineInfo *info = &el->el_lgcylinfo;
|
||||
size_t offset;
|
||||
const Char *p;
|
||||
const wchar_t *p;
|
||||
|
||||
info->buffer = ct_encode_string(winfo->buffer, &el->el_lgcyconv);
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: emacs.c,v 1.33 2016/04/09 18:43:17 christos Exp $ */
|
||||
/* $NetBSD: emacs.c,v 1.34 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)emacs.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: emacs.c,v 1.33 2016/04/09 18:43:17 christos Exp $");
|
||||
__RCSID("$NetBSD: emacs.c,v 1.34 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -93,7 +93,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_delete_next_word(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *cp, *p, *kp;
|
||||
wchar_t *cp, *p, *kp;
|
||||
|
||||
if (el->el_line.cursor == el->el_line.lastchar)
|
||||
return CC_ERROR;
|
||||
@ -122,7 +122,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_yank(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *kp, *cp;
|
||||
wchar_t *kp, *cp;
|
||||
|
||||
if (el->el_chared.c_kill.last == el->el_chared.c_kill.buf)
|
||||
return CC_NORM;
|
||||
@ -158,7 +158,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_kill_line(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *kp, *cp;
|
||||
wchar_t *kp, *cp;
|
||||
|
||||
cp = el->el_line.buffer;
|
||||
kp = el->el_chared.c_kill.buf;
|
||||
@ -180,7 +180,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_kill_region(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *kp, *cp;
|
||||
wchar_t *kp, *cp;
|
||||
|
||||
if (!el->el_chared.c_kill.mark)
|
||||
return CC_ERROR;
|
||||
@ -213,7 +213,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_copy_region(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *kp, *cp;
|
||||
wchar_t *kp, *cp;
|
||||
|
||||
if (!el->el_chared.c_kill.mark)
|
||||
return CC_ERROR;
|
||||
@ -247,7 +247,7 @@ em_gosmacs_transpose(EditLine *el, wint_t c)
|
||||
/* must have at least two chars entered */
|
||||
c = el->el_line.cursor[-2];
|
||||
el->el_line.cursor[-2] = el->el_line.cursor[-1];
|
||||
el->el_line.cursor[-1] = (Char)c;
|
||||
el->el_line.cursor[-1] = c;
|
||||
return CC_REFRESH;
|
||||
} else
|
||||
return CC_ERROR;
|
||||
@ -287,7 +287,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_upper_case(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *cp, *ep;
|
||||
wchar_t *cp, *ep;
|
||||
|
||||
ep = c__next_word(el->el_line.cursor, el->el_line.lastchar,
|
||||
el->el_state.argument, ce__isword);
|
||||
@ -311,7 +311,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_capitol_case(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *cp, *ep;
|
||||
wchar_t *cp, *ep;
|
||||
|
||||
ep = c__next_word(el->el_line.cursor, el->el_line.lastchar,
|
||||
el->el_state.argument, ce__isword);
|
||||
@ -343,7 +343,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_lower_case(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *cp, *ep;
|
||||
wchar_t *cp, *ep;
|
||||
|
||||
ep = c__next_word(el->el_line.cursor, el->el_line.lastchar,
|
||||
el->el_state.argument, ce__isword);
|
||||
@ -381,7 +381,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_exchange_mark(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *cp;
|
||||
wchar_t *cp;
|
||||
|
||||
cp = el->el_line.cursor;
|
||||
el->el_line.cursor = el->el_chared.c_kill.mark;
|
||||
@ -442,7 +442,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
em_copy_prev_word(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *cp, *oldc, *dp;
|
||||
wchar_t *cp, *oldc, *dp;
|
||||
|
||||
if (el->el_line.cursor == el->el_line.buffer)
|
||||
return CC_ERROR;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: filecomplete.c,v 1.42 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: filecomplete.c,v 1.43 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
@ -31,7 +31,7 @@
|
||||
|
||||
#include "config.h"
|
||||
#if !defined(lint) && !defined(SCCSID)
|
||||
__RCSID("$NetBSD: filecomplete.c,v 1.42 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: filecomplete.c,v 1.43 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
#include <sys/types.h>
|
||||
@ -49,9 +49,7 @@ __RCSID("$NetBSD: filecomplete.c,v 1.42 2016/04/11 00:22:48 christos Exp $");
|
||||
#include "el.h"
|
||||
#include "filecomplete.h"
|
||||
|
||||
static const Char break_chars[] = { ' ', '\t', '\n', '"', '\\', '\'', '`', '@',
|
||||
'$', '>', '<', '=', ';', '|', '&', '{', '(', '\0' };
|
||||
|
||||
static const wchar_t break_chars[] = L" \t\n\"\\'`@$><=;|&{(";
|
||||
|
||||
/********************************/
|
||||
/* completion functions */
|
||||
@ -410,14 +408,14 @@ int
|
||||
fn_complete(EditLine *el,
|
||||
char *(*complet_func)(const char *, int),
|
||||
char **(*attempted_completion_function)(const char *, int, int),
|
||||
const Char *word_break, const Char *special_prefixes,
|
||||
const wchar_t *word_break, const wchar_t *special_prefixes,
|
||||
const char *(*app_func)(const char *), size_t query_items,
|
||||
int *completion_type, int *over, int *point, int *end)
|
||||
{
|
||||
const LineInfoW *li;
|
||||
Char *temp;
|
||||
wchar_t *temp;
|
||||
char **matches;
|
||||
const Char *ctemp;
|
||||
const wchar_t *ctemp;
|
||||
size_t len;
|
||||
int what_to_do = '\t';
|
||||
int retval = CC_NORM;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: filecomplete.h,v 1.9 2009/12/30 22:37:40 christos Exp $ */
|
||||
/* $NetBSD: filecomplete.h,v 1.10 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
||||
@ -34,7 +34,7 @@
|
||||
int fn_complete(EditLine *,
|
||||
char *(*)(const char *, int),
|
||||
char **(*)(const char *, int, int),
|
||||
const Char *, const Char *, const char *(*)(const char *), size_t,
|
||||
const wchar_t *, const wchar_t *, const char *(*)(const char *), size_t,
|
||||
int *, int *, int *, int *);
|
||||
|
||||
void fn_display_match_list(EditLine *, char **, size_t, size_t);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: hist.c,v 1.27 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: hist.c,v 1.28 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)hist.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: hist.c,v 1.27 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: hist.c,v 1.28 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -99,7 +99,7 @@ hist_set(EditLine *el, hist_fun_t fun, void *ptr)
|
||||
protected el_action_t
|
||||
hist_get(EditLine *el)
|
||||
{
|
||||
const Char *hp;
|
||||
const wchar_t *hp;
|
||||
int h;
|
||||
|
||||
if (el->el_history.eventno == 0) { /* if really the current line */
|
||||
@ -156,9 +156,9 @@ hist_get(EditLine *el)
|
||||
* process a history command
|
||||
*/
|
||||
protected int
|
||||
hist_command(EditLine *el, int argc, const Char **argv)
|
||||
hist_command(EditLine *el, int argc, const wchar_t **argv)
|
||||
{
|
||||
const Char *str;
|
||||
const wchar_t *str;
|
||||
int num;
|
||||
HistEventW ev;
|
||||
|
||||
@ -196,7 +196,7 @@ protected int
|
||||
/*ARGSUSED*/
|
||||
hist_enlargebuf(EditLine *el, size_t oldsz, size_t newsz)
|
||||
{
|
||||
Char *newbuf;
|
||||
wchar_t *newbuf;
|
||||
|
||||
newbuf = el_realloc(el->el_history.buf, newsz * sizeof(*newbuf));
|
||||
if (!newbuf)
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: hist.h,v 1.20 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: hist.h,v 1.21 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -43,9 +43,9 @@
|
||||
typedef int (*hist_fun_t)(void *, HistEventW *, int, ...);
|
||||
|
||||
typedef struct el_history_t {
|
||||
Char *buf; /* The history buffer */
|
||||
wchar_t *buf; /* The history buffer */
|
||||
size_t sz; /* Size of history buffer */
|
||||
Char *last; /* The last character */
|
||||
wchar_t *last; /* The last character */
|
||||
int eventno; /* Event we are looking for */
|
||||
void *ref; /* Argument for history fcns */
|
||||
hist_fun_t fun; /* Event access */
|
||||
@ -72,7 +72,7 @@ protected int hist_init(EditLine *);
|
||||
protected void hist_end(EditLine *);
|
||||
protected el_action_t hist_get(EditLine *);
|
||||
protected int hist_set(EditLine *, hist_fun_t, void *);
|
||||
protected int hist_command(EditLine *, int, const Char **);
|
||||
protected int hist_command(EditLine *, int, const wchar_t **);
|
||||
protected int hist_enlargebuf(EditLine *, size_t, size_t);
|
||||
protected wchar_t *hist_convert(EditLine *, int, void *);
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: history.c,v 1.54 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: history.c,v 1.55 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)history.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: history.c,v 1.54 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: history.c,v 1.55 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -58,6 +58,7 @@ static const char hist_cookie[] = "_HiStOrY_V2_\n";
|
||||
|
||||
#ifdef NARROWCHAR
|
||||
|
||||
#define Char char
|
||||
#define FUN(prefix, rest) prefix ## _ ## rest
|
||||
#define FUNW(type) type
|
||||
#define TYPE(type) type
|
||||
@ -72,6 +73,7 @@ static const char hist_cookie[] = "_HiStOrY_V2_\n";
|
||||
|
||||
#else
|
||||
|
||||
#define Char wchar_t
|
||||
#define FUN(prefix, rest) prefix ## _w ## rest
|
||||
#define FUNW(type) type ## _w
|
||||
#define TYPE(type) type ## W
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: keymacro.c,v 1.17 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: keymacro.c,v 1.18 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)key.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: keymacro.c,v 1.17 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: keymacro.c,v 1.18 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -73,7 +73,7 @@ __RCSID("$NetBSD: keymacro.c,v 1.17 2016/04/11 00:22:48 christos Exp $");
|
||||
* linked list of these node elements
|
||||
*/
|
||||
struct keymacro_node_t {
|
||||
Char ch; /* single character of key */
|
||||
wchar_t ch; /* single character of key */
|
||||
int type; /* node type */
|
||||
keymacro_value_t val; /* command code or pointer to str, */
|
||||
/* if this is a leaf */
|
||||
@ -81,16 +81,16 @@ struct keymacro_node_t {
|
||||
struct keymacro_node_t *sibling;/* ptr to another key with same prefix*/
|
||||
};
|
||||
|
||||
private int node_trav(EditLine *, keymacro_node_t *, Char *,
|
||||
private int node_trav(EditLine *, keymacro_node_t *, wchar_t *,
|
||||
keymacro_value_t *);
|
||||
private int node__try(EditLine *, keymacro_node_t *, const Char *,
|
||||
keymacro_value_t *, int);
|
||||
private int node__try(EditLine *, keymacro_node_t *,
|
||||
const wchar_t *, keymacro_value_t *, int);
|
||||
private keymacro_node_t *node__get(wint_t);
|
||||
private void node__free(keymacro_node_t *);
|
||||
private void node__put(EditLine *, keymacro_node_t *);
|
||||
private int node__delete(EditLine *, keymacro_node_t **,
|
||||
const Char *);
|
||||
private int node_lookup(EditLine *, const Char *,
|
||||
const wchar_t *);
|
||||
private int node_lookup(EditLine *, const wchar_t *,
|
||||
keymacro_node_t *, size_t);
|
||||
private int node_enum(EditLine *, keymacro_node_t *, size_t);
|
||||
|
||||
@ -142,7 +142,7 @@ keymacro_map_cmd(EditLine *el, int cmd)
|
||||
* Associate str with a key value
|
||||
*/
|
||||
protected keymacro_value_t *
|
||||
keymacro_map_str(EditLine *el, Char *str)
|
||||
keymacro_map_str(EditLine *el, wchar_t *str)
|
||||
{
|
||||
|
||||
el->el_keymacro.val.str = str;
|
||||
@ -174,7 +174,7 @@ keymacro_reset(EditLine *el)
|
||||
* The last character read is returned in *ch.
|
||||
*/
|
||||
protected int
|
||||
keymacro_get(EditLine *el, Char *ch, keymacro_value_t *val)
|
||||
keymacro_get(EditLine *el, wchar_t *ch, keymacro_value_t *val)
|
||||
{
|
||||
|
||||
return node_trav(el, el->el_keymacro.map, ch, val);
|
||||
@ -188,7 +188,8 @@ keymacro_get(EditLine *el, Char *ch, keymacro_value_t *val)
|
||||
* command, an out str or a unix command.
|
||||
*/
|
||||
protected void
|
||||
keymacro_add(EditLine *el, const Char *key, keymacro_value_t *val, int ntype)
|
||||
keymacro_add(EditLine *el, const wchar_t *key, keymacro_value_t *val,
|
||||
int ntype)
|
||||
{
|
||||
|
||||
if (key[0] == '\0') {
|
||||
@ -216,7 +217,7 @@ keymacro_add(EditLine *el, const Char *key, keymacro_value_t *val, int ntype)
|
||||
*
|
||||
*/
|
||||
protected void
|
||||
keymacro_clear(EditLine *el, el_action_t *map, const Char *in)
|
||||
keymacro_clear(EditLine *el, el_action_t *map, const wchar_t *in)
|
||||
{
|
||||
if (*in > N_KEYS) /* can't be in the map */
|
||||
return;
|
||||
@ -234,7 +235,7 @@ keymacro_clear(EditLine *el, el_action_t *map, const Char *in)
|
||||
* they exists.
|
||||
*/
|
||||
protected int
|
||||
keymacro_delete(EditLine *el, const Char *key)
|
||||
keymacro_delete(EditLine *el, const wchar_t *key)
|
||||
{
|
||||
|
||||
if (key[0] == '\0') {
|
||||
@ -255,7 +256,7 @@ keymacro_delete(EditLine *el, const Char *key)
|
||||
* Print entire el->el_keymacro.map if null
|
||||
*/
|
||||
protected void
|
||||
keymacro_print(EditLine *el, const Char *key)
|
||||
keymacro_print(EditLine *el, const wchar_t *key)
|
||||
{
|
||||
|
||||
/* do nothing if el->el_keymacro.map is empty and null key specified */
|
||||
@ -276,20 +277,19 @@ keymacro_print(EditLine *el, const Char *key)
|
||||
* found. May read in more characters.
|
||||
*/
|
||||
private int
|
||||
node_trav(EditLine *el, keymacro_node_t *ptr, Char *ch, keymacro_value_t *val)
|
||||
node_trav(EditLine *el, keymacro_node_t *ptr, wchar_t *ch,
|
||||
keymacro_value_t *val)
|
||||
{
|
||||
wchar_t wc;
|
||||
|
||||
if (ptr->ch == *ch) {
|
||||
/* match found */
|
||||
if (ptr->next) {
|
||||
/* key not complete so get next char */
|
||||
if (el_wgetc(el, &wc) != 1) {/* if EOF or error */
|
||||
if (el_wgetc(el, ch) != 1) {/* if EOF or error */
|
||||
val->cmd = ED_END_OF_FILE;
|
||||
return XK_CMD;
|
||||
/* PWP: Pretend we just read an end-of-file */
|
||||
}
|
||||
*ch = (Char)wc;
|
||||
return node_trav(el, ptr->next, ch, val);
|
||||
} else {
|
||||
*val = ptr->val;
|
||||
@ -315,7 +315,7 @@ node_trav(EditLine *el, keymacro_node_t *ptr, Char *ch, keymacro_value_t *val)
|
||||
* Find a node that matches *str or allocate a new one
|
||||
*/
|
||||
private int
|
||||
node__try(EditLine *el, keymacro_node_t *ptr, const Char *str,
|
||||
node__try(EditLine *el, keymacro_node_t *ptr, const wchar_t *str,
|
||||
keymacro_value_t *val, int ntype)
|
||||
{
|
||||
|
||||
@ -378,7 +378,7 @@ node__try(EditLine *el, keymacro_node_t *ptr, const Char *str,
|
||||
* Delete node that matches str
|
||||
*/
|
||||
private int
|
||||
node__delete(EditLine *el, keymacro_node_t **inptr, const Char *str)
|
||||
node__delete(EditLine *el, keymacro_node_t **inptr, const wchar_t *str)
|
||||
{
|
||||
keymacro_node_t *ptr;
|
||||
keymacro_node_t *prev_ptr = NULL;
|
||||
@ -465,7 +465,7 @@ node__get(wint_t ch)
|
||||
ptr = el_malloc(sizeof(*ptr));
|
||||
if (ptr == NULL)
|
||||
return NULL;
|
||||
ptr->ch = (Char)ch;
|
||||
ptr->ch = ch;
|
||||
ptr->type = XK_NOD;
|
||||
ptr->val.str = NULL;
|
||||
ptr->next = NULL;
|
||||
@ -488,7 +488,8 @@ node__free(keymacro_node_t *k)
|
||||
* Print if last node
|
||||
*/
|
||||
private int
|
||||
node_lookup(EditLine *el, const Char *str, keymacro_node_t *ptr, size_t cnt)
|
||||
node_lookup(EditLine *el, const wchar_t *str, keymacro_node_t *ptr,
|
||||
size_t cnt)
|
||||
{
|
||||
ssize_t used;
|
||||
|
||||
@ -583,7 +584,8 @@ node_enum(EditLine *el, keymacro_node_t *ptr, size_t cnt)
|
||||
* function specified by val
|
||||
*/
|
||||
protected void
|
||||
keymacro_kprint(EditLine *el, const Char *key, keymacro_value_t *val, int ntype)
|
||||
keymacro_kprint(EditLine *el, const wchar_t *key, keymacro_value_t *val,
|
||||
int ntype)
|
||||
{
|
||||
el_bindings_t *fp;
|
||||
char unparsbuf[EL_BUFSIZ];
|
||||
@ -634,10 +636,11 @@ keymacro_kprint(EditLine *el, const Char *key, keymacro_value_t *val, int ntype)
|
||||
* Make a printable version of the ey
|
||||
*/
|
||||
protected size_t
|
||||
keymacro__decode_str(const Char *str, char *buf, size_t len, const char *sep)
|
||||
keymacro__decode_str(const wchar_t *str, char *buf, size_t len,
|
||||
const char *sep)
|
||||
{
|
||||
char *b = buf, *eb = b + len;
|
||||
const Char *p;
|
||||
const wchar_t *p;
|
||||
|
||||
b = buf;
|
||||
if (sep[0] != '\0') {
|
||||
@ -649,8 +652,8 @@ keymacro__decode_str(const Char *str, char *buf, size_t len, const char *sep)
|
||||
goto add_endsep;
|
||||
}
|
||||
for (p = str; *p != 0; p++) {
|
||||
Char dbuf[VISUAL_WIDTH_MAX];
|
||||
Char *p2 = dbuf;
|
||||
wchar_t dbuf[VISUAL_WIDTH_MAX];
|
||||
wchar_t *p2 = dbuf;
|
||||
ssize_t l = ct_visual_char(dbuf, VISUAL_WIDTH_MAX, *p);
|
||||
while (l-- > 0) {
|
||||
ssize_t n = ct_encode_char(b, (size_t)(eb - b), *p2++);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: keymacro.h,v 1.3 2016/01/29 19:59:11 christos Exp $ */
|
||||
/* $NetBSD: keymacro.h,v 1.4 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -42,13 +42,13 @@
|
||||
|
||||
typedef union keymacro_value_t {
|
||||
el_action_t cmd; /* If it is a command the # */
|
||||
Char *str; /* If it is a string... */
|
||||
wchar_t *str; /* If it is a string... */
|
||||
} keymacro_value_t;
|
||||
|
||||
typedef struct keymacro_node_t keymacro_node_t;
|
||||
|
||||
typedef struct el_keymacro_t {
|
||||
Char *buf; /* Key print buffer */
|
||||
wchar_t *buf; /* Key print buffer */
|
||||
keymacro_node_t *map; /* Key map */
|
||||
keymacro_value_t val; /* Local conversion buffer */
|
||||
} el_keymacro_t;
|
||||
@ -61,16 +61,17 @@ typedef struct el_keymacro_t {
|
||||
protected int keymacro_init(EditLine *);
|
||||
protected void keymacro_end(EditLine *);
|
||||
protected keymacro_value_t *keymacro_map_cmd(EditLine *, int);
|
||||
protected keymacro_value_t *keymacro_map_str(EditLine *, Char *);
|
||||
protected keymacro_value_t *keymacro_map_str(EditLine *, wchar_t *);
|
||||
protected void keymacro_reset(EditLine *);
|
||||
protected int keymacro_get(EditLine *, Char *, keymacro_value_t *);
|
||||
protected void keymacro_add(EditLine *, const Char *, keymacro_value_t *, int);
|
||||
protected void keymacro_clear(EditLine *, el_action_t *, const Char *);
|
||||
protected int keymacro_delete(EditLine *, const Char *);
|
||||
protected void keymacro_print(EditLine *, const Char *);
|
||||
protected void keymacro_kprint(EditLine *, const Char *, keymacro_value_t *,
|
||||
int);
|
||||
protected size_t keymacro__decode_str(const Char *, char *, size_t,
|
||||
protected int keymacro_get(EditLine *, wchar_t *, keymacro_value_t *);
|
||||
protected void keymacro_add(EditLine *, const wchar_t *,
|
||||
keymacro_value_t *, int);
|
||||
protected void keymacro_clear(EditLine *, el_action_t *, const wchar_t *);
|
||||
protected int keymacro_delete(EditLine *, const wchar_t *);
|
||||
protected void keymacro_print(EditLine *, const wchar_t *);
|
||||
protected void keymacro_kprint(EditLine *, const wchar_t *,
|
||||
keymacro_value_t *, int);
|
||||
protected size_t keymacro__decode_str(const wchar_t *, char *, size_t,
|
||||
const char *);
|
||||
|
||||
#endif /* _h_el_keymacro */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: map.c,v 1.45 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: map.c,v 1.46 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)map.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: map.c,v 1.45 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: map.c,v 1.46 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -52,7 +52,7 @@ __RCSID("$NetBSD: map.c,v 1.45 2016/04/11 00:22:48 christos Exp $");
|
||||
#include "help.h"
|
||||
#include "parse.h"
|
||||
|
||||
private void map_print_key(EditLine *, el_action_t *, const Char *);
|
||||
private void map_print_key(EditLine *, el_action_t *, const wchar_t *);
|
||||
private void map_print_some_keys(EditLine *, el_action_t *, wint_t, wint_t);
|
||||
private void map_print_all_keys(EditLine *);
|
||||
private void map_init_nls(EditLine *);
|
||||
@ -981,7 +981,7 @@ map_init_nls(EditLine *el)
|
||||
private void
|
||||
map_init_meta(EditLine *el)
|
||||
{
|
||||
Char buf[3];
|
||||
wchar_t buf[3];
|
||||
int i;
|
||||
el_action_t *map = el->el_map.key;
|
||||
el_action_t *alt = el->el_map.alt;
|
||||
@ -999,7 +999,7 @@ map_init_meta(EditLine *el)
|
||||
} else
|
||||
map = alt;
|
||||
}
|
||||
buf[0] = (Char) i;
|
||||
buf[0] = (wchar_t)i;
|
||||
buf[2] = 0;
|
||||
for (i = 0200; i <= 0377; i++)
|
||||
switch (map[i]) {
|
||||
@ -1053,7 +1053,7 @@ protected void
|
||||
map_init_emacs(EditLine *el)
|
||||
{
|
||||
int i;
|
||||
Char buf[3];
|
||||
wchar_t buf[3];
|
||||
el_action_t *key = el->el_map.key;
|
||||
el_action_t *alt = el->el_map.alt;
|
||||
const el_action_t *emacs = el->el_map.emacs;
|
||||
@ -1084,7 +1084,7 @@ map_init_emacs(EditLine *el)
|
||||
* Set the editor
|
||||
*/
|
||||
protected int
|
||||
map_set_editor(EditLine *el, Char *editor)
|
||||
map_set_editor(EditLine *el, wchar_t *editor)
|
||||
{
|
||||
|
||||
if (wcscmp(editor, L"emacs") == 0) {
|
||||
@ -1103,7 +1103,7 @@ map_set_editor(EditLine *el, Char *editor)
|
||||
* Retrieve the editor
|
||||
*/
|
||||
protected int
|
||||
map_get_editor(EditLine *el, const Char **editor)
|
||||
map_get_editor(EditLine *el, const wchar_t **editor)
|
||||
{
|
||||
|
||||
if (editor == NULL)
|
||||
@ -1124,7 +1124,7 @@ map_get_editor(EditLine *el, const Char **editor)
|
||||
* Print the function description for 1 key
|
||||
*/
|
||||
private void
|
||||
map_print_key(EditLine *el, el_action_t *map, const Char *in)
|
||||
map_print_key(EditLine *el, el_action_t *map, const wchar_t *in)
|
||||
{
|
||||
char outbuf[EL_BUFSIZ];
|
||||
el_bindings_t *bp, *ep;
|
||||
@ -1150,12 +1150,12 @@ private void
|
||||
map_print_some_keys(EditLine *el, el_action_t *map, wint_t first, wint_t last)
|
||||
{
|
||||
el_bindings_t *bp, *ep;
|
||||
Char firstbuf[2], lastbuf[2];
|
||||
wchar_t firstbuf[2], lastbuf[2];
|
||||
char unparsbuf[EL_BUFSIZ], extrabuf[EL_BUFSIZ];
|
||||
|
||||
firstbuf[0] = (Char)first;
|
||||
firstbuf[0] = first;
|
||||
firstbuf[1] = 0;
|
||||
lastbuf[0] = (Char)last;
|
||||
lastbuf[0] = last;
|
||||
lastbuf[1] = 0;
|
||||
if (map[first] == ED_UNASSIGNED) {
|
||||
if (first == last) {
|
||||
@ -1246,15 +1246,15 @@ map_print_all_keys(EditLine *el)
|
||||
* Add/remove/change bindings
|
||||
*/
|
||||
protected int
|
||||
map_bind(EditLine *el, int argc, const Char **argv)
|
||||
map_bind(EditLine *el, int argc, const wchar_t **argv)
|
||||
{
|
||||
el_action_t *map;
|
||||
int ntype, rem;
|
||||
const Char *p;
|
||||
Char inbuf[EL_BUFSIZ];
|
||||
Char outbuf[EL_BUFSIZ];
|
||||
const Char *in = NULL;
|
||||
Char *out;
|
||||
const wchar_t *p;
|
||||
wchar_t inbuf[EL_BUFSIZ];
|
||||
wchar_t outbuf[EL_BUFSIZ];
|
||||
const wchar_t *in = NULL;
|
||||
wchar_t *out;
|
||||
el_bindings_t *bp, *ep;
|
||||
int cmd;
|
||||
int key;
|
||||
@ -1398,7 +1398,8 @@ map_bind(EditLine *el, int argc, const Char **argv)
|
||||
* add a user defined function
|
||||
*/
|
||||
protected int
|
||||
map_addfunc(EditLine *el, const Char *name, const Char *help, el_func_t func)
|
||||
map_addfunc(EditLine *el, const wchar_t *name, const wchar_t *help,
|
||||
el_func_t func)
|
||||
{
|
||||
void *p;
|
||||
size_t nf = el->el_map.nfunc + 1;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: map.h,v 1.10 2014/07/06 18:15:34 christos Exp $ */
|
||||
/* $NetBSD: map.h,v 1.11 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -41,9 +41,9 @@
|
||||
#define _h_el_map
|
||||
|
||||
typedef struct el_bindings_t { /* for the "bind" shell command */
|
||||
const Char *name; /* function name for bind command */
|
||||
const wchar_t *name; /* function name for bind command */
|
||||
int func; /* function numeric value */
|
||||
const Char *description; /* description of function */
|
||||
const wchar_t *description; /* description of function */
|
||||
} el_bindings_t;
|
||||
|
||||
|
||||
@ -65,13 +65,14 @@ typedef struct el_map_t {
|
||||
|
||||
#define N_KEYS 256
|
||||
|
||||
protected int map_bind(EditLine *, int, const Char **);
|
||||
protected int map_bind(EditLine *, int, const wchar_t **);
|
||||
protected int map_init(EditLine *);
|
||||
protected void map_end(EditLine *);
|
||||
protected void map_init_vi(EditLine *);
|
||||
protected void map_init_emacs(EditLine *);
|
||||
protected int map_set_editor(EditLine *, Char *);
|
||||
protected int map_get_editor(EditLine *, const Char **);
|
||||
protected int map_addfunc(EditLine *, const Char *, const Char *, el_func_t);
|
||||
protected int map_set_editor(EditLine *, wchar_t *);
|
||||
protected int map_get_editor(EditLine *, const wchar_t **);
|
||||
protected int map_addfunc(EditLine *, const wchar_t *, const wchar_t *,
|
||||
el_func_t);
|
||||
|
||||
#endif /* _h_el_map */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: parse.c,v 1.36 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: parse.c,v 1.37 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)parse.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: parse.c,v 1.36 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: parse.c,v 1.37 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -61,8 +61,8 @@ __RCSID("$NetBSD: parse.c,v 1.36 2016/04/11 00:22:48 christos Exp $");
|
||||
#include "parse.h"
|
||||
|
||||
private const struct {
|
||||
const Char *name;
|
||||
int (*func)(EditLine *, int, const Char **);
|
||||
const wchar_t *name;
|
||||
int (*func)(EditLine *, int, const wchar_t **);
|
||||
} cmds[] = {
|
||||
{ L"bind", map_bind },
|
||||
{ L"echotc", terminal_echotc },
|
||||
@ -79,9 +79,9 @@ private const struct {
|
||||
* Parse a line and dispatch it
|
||||
*/
|
||||
protected int
|
||||
parse_line(EditLine *el, const Char *line)
|
||||
parse_line(EditLine *el, const wchar_t *line)
|
||||
{
|
||||
const Char **argv;
|
||||
const wchar_t **argv;
|
||||
int argc;
|
||||
TokenizerW *tok;
|
||||
|
||||
@ -97,16 +97,16 @@ parse_line(EditLine *el, const Char *line)
|
||||
* Command dispatcher
|
||||
*/
|
||||
public int
|
||||
el_wparse(EditLine *el, int argc, const Char *argv[])
|
||||
el_wparse(EditLine *el, int argc, const wchar_t *argv[])
|
||||
{
|
||||
const Char *ptr;
|
||||
const wchar_t *ptr;
|
||||
int i;
|
||||
|
||||
if (argc < 1)
|
||||
return -1;
|
||||
ptr = wcschr(argv[0], L':');
|
||||
if (ptr != NULL) {
|
||||
Char *tprog;
|
||||
wchar_t *tprog;
|
||||
size_t l;
|
||||
|
||||
if (ptr == argv[0])
|
||||
@ -139,9 +139,9 @@ el_wparse(EditLine *el, int argc, const Char *argv[])
|
||||
* the appropriate character or -1 if the escape is not valid
|
||||
*/
|
||||
protected int
|
||||
parse__escape(const Char **ptr)
|
||||
parse__escape(const wchar_t **ptr)
|
||||
{
|
||||
const Char *p;
|
||||
const wchar_t *p;
|
||||
wint_t c;
|
||||
|
||||
p = *ptr;
|
||||
@ -179,8 +179,8 @@ parse__escape(const Char **ptr)
|
||||
case 'U': /* Unicode \U+xxxx or \U+xxxxx format */
|
||||
{
|
||||
int i;
|
||||
const Char hex[] = L"0123456789ABCDEF";
|
||||
const Char *h;
|
||||
const wchar_t hex[] = L"0123456789ABCDEF";
|
||||
const wchar_t *h;
|
||||
++p;
|
||||
if (*p++ != '+')
|
||||
return -1;
|
||||
@ -238,10 +238,10 @@ parse__escape(const Char **ptr)
|
||||
/* parse__string():
|
||||
* Parse the escapes from in and put the raw string out
|
||||
*/
|
||||
protected Char *
|
||||
parse__string(Char *out, const Char *in)
|
||||
protected wchar_t *
|
||||
parse__string(wchar_t *out, const wchar_t *in)
|
||||
{
|
||||
Char *rv = out;
|
||||
wchar_t *rv = out;
|
||||
int n;
|
||||
|
||||
for (;;)
|
||||
@ -254,7 +254,7 @@ parse__string(Char *out, const Char *in)
|
||||
case '^':
|
||||
if ((n = parse__escape(&in)) == -1)
|
||||
return NULL;
|
||||
*out++ = (Char)n;
|
||||
*out++ = (wchar_t)n;
|
||||
break;
|
||||
|
||||
case 'M':
|
||||
@ -277,7 +277,7 @@ parse__string(Char *out, const Char *in)
|
||||
* or -1 if one is not found
|
||||
*/
|
||||
protected int
|
||||
parse_cmd(EditLine *el, const Char *cmd)
|
||||
parse_cmd(EditLine *el, const wchar_t *cmd)
|
||||
{
|
||||
el_bindings_t *b = el->el_map.help;
|
||||
size_t i;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: parse.h,v 1.7 2009/12/30 22:37:40 christos Exp $ */
|
||||
/* $NetBSD: parse.h,v 1.8 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -40,9 +40,9 @@
|
||||
#ifndef _h_el_parse
|
||||
#define _h_el_parse
|
||||
|
||||
protected int parse_line(EditLine *, const Char *);
|
||||
protected int parse__escape(const Char **);
|
||||
protected Char *parse__string(Char *, const Char *);
|
||||
protected int parse_cmd(EditLine *, const Char *);
|
||||
protected int parse_line(EditLine *, const wchar_t *);
|
||||
protected int parse__escape(const wchar_t **);
|
||||
protected wchar_t *parse__string(wchar_t *, const wchar_t *);
|
||||
protected int parse_cmd(EditLine *, const wchar_t *);
|
||||
|
||||
#endif /* _h_el_parse */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: prompt.c,v 1.23 2016/02/16 15:53:48 christos Exp $ */
|
||||
/* $NetBSD: prompt.c,v 1.24 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)prompt.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: prompt.c,v 1.23 2016/02/16 15:53:48 christos Exp $");
|
||||
__RCSID("$NetBSD: prompt.c,v 1.24 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -47,17 +47,17 @@ __RCSID("$NetBSD: prompt.c,v 1.23 2016/02/16 15:53:48 christos Exp $");
|
||||
#include <stdio.h>
|
||||
#include "el.h"
|
||||
|
||||
private Char *prompt_default(EditLine *);
|
||||
private Char *prompt_default_r(EditLine *);
|
||||
private wchar_t *prompt_default(EditLine *);
|
||||
private wchar_t *prompt_default_r(EditLine *);
|
||||
|
||||
/* prompt_default():
|
||||
* Just a default prompt, in case the user did not provide one
|
||||
*/
|
||||
private Char *
|
||||
private wchar_t *
|
||||
/*ARGSUSED*/
|
||||
prompt_default(EditLine *el __attribute__((__unused__)))
|
||||
{
|
||||
static Char a[3] = {'?', ' ', '\0'};
|
||||
static wchar_t a[3] = L"? ";
|
||||
|
||||
return a;
|
||||
}
|
||||
@ -66,11 +66,11 @@ prompt_default(EditLine *el __attribute__((__unused__)))
|
||||
/* prompt_default_r():
|
||||
* Just a default rprompt, in case the user did not provide one
|
||||
*/
|
||||
private Char *
|
||||
private wchar_t *
|
||||
/*ARGSUSED*/
|
||||
prompt_default_r(EditLine *el __attribute__((__unused__)))
|
||||
{
|
||||
static Char a[1] = {'\0'};
|
||||
static wchar_t a[1] = L"";
|
||||
|
||||
return a;
|
||||
}
|
||||
@ -83,7 +83,7 @@ protected void
|
||||
prompt_print(EditLine *el, int op)
|
||||
{
|
||||
el_prompt_t *elp;
|
||||
Char *p;
|
||||
wchar_t *p;
|
||||
int ignore = 0;
|
||||
|
||||
if (op == EL_PROMPT)
|
||||
@ -146,7 +146,7 @@ prompt_end(EditLine *el __attribute__((__unused__)))
|
||||
* Install a prompt printing function
|
||||
*/
|
||||
protected int
|
||||
prompt_set(EditLine *el, el_pfunc_t prf, Char c, int op, int wide)
|
||||
prompt_set(EditLine *el, el_pfunc_t prf, wchar_t c, int op, int wide)
|
||||
{
|
||||
el_prompt_t *p;
|
||||
|
||||
@ -178,7 +178,7 @@ prompt_set(EditLine *el, el_pfunc_t prf, Char c, int op, int wide)
|
||||
* Retrieve the prompt printing function
|
||||
*/
|
||||
protected int
|
||||
prompt_get(EditLine *el, el_pfunc_t *prf, Char *c, int op)
|
||||
prompt_get(EditLine *el, el_pfunc_t *prf, wchar_t *c, int op)
|
||||
{
|
||||
el_prompt_t *p;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: prompt.h,v 1.13 2016/02/17 19:47:49 christos Exp $ */
|
||||
/* $NetBSD: prompt.h,v 1.14 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -40,18 +40,18 @@
|
||||
#ifndef _h_el_prompt
|
||||
#define _h_el_prompt
|
||||
|
||||
typedef Char *(*el_pfunc_t)(EditLine *);
|
||||
typedef wchar_t *(*el_pfunc_t)(EditLine *);
|
||||
|
||||
typedef struct el_prompt_t {
|
||||
el_pfunc_t p_func; /* Function to return the prompt */
|
||||
coord_t p_pos; /* position in the line after prompt */
|
||||
Char p_ignore; /* character to start/end literal */
|
||||
wchar_t p_ignore; /* character to start/end literal */
|
||||
int p_wide;
|
||||
} el_prompt_t;
|
||||
|
||||
protected void prompt_print(EditLine *, int);
|
||||
protected int prompt_set(EditLine *, el_pfunc_t, Char, int, int);
|
||||
protected int prompt_get(EditLine *, el_pfunc_t *, Char *, int);
|
||||
protected int prompt_set(EditLine *, el_pfunc_t, wchar_t, int, int);
|
||||
protected int prompt_get(EditLine *, el_pfunc_t *, wchar_t *, int);
|
||||
protected int prompt_init(EditLine *);
|
||||
protected void prompt_end(EditLine *);
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: read.c,v 1.89 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: read.c,v 1.90 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)read.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: read.c,v 1.89 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: read.c,v 1.90 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -59,7 +59,7 @@ __RCSID("$NetBSD: read.c,v 1.89 2016/04/11 00:22:48 christos Exp $");
|
||||
|
||||
private int read__fixio(int, int);
|
||||
private int read_char(EditLine *, wchar_t *);
|
||||
private int read_getcmd(EditLine *, el_action_t *, Char *);
|
||||
private int read_getcmd(EditLine *, el_action_t *, wchar_t *);
|
||||
private void read_pop(c_macro_t *);
|
||||
|
||||
/* read_init():
|
||||
@ -187,7 +187,7 @@ read__fixio(int fd __attribute__((__unused__)), int e)
|
||||
* Push a macro
|
||||
*/
|
||||
public void
|
||||
el_wpush(EditLine *el, const Char *str)
|
||||
el_wpush(EditLine *el, const wchar_t *str)
|
||||
{
|
||||
c_macro_t *ma = &el->el_chared.c_macro;
|
||||
|
||||
@ -207,20 +207,18 @@ el_wpush(EditLine *el, const Char *str)
|
||||
* Character values > 255 are not looked up in the map, but inserted.
|
||||
*/
|
||||
private int
|
||||
read_getcmd(EditLine *el, el_action_t *cmdnum, Char *ch)
|
||||
read_getcmd(EditLine *el, el_action_t *cmdnum, wchar_t *ch)
|
||||
{
|
||||
static const Char meta = (Char)0x80;
|
||||
static const wchar_t meta = (wchar_t)0x80;
|
||||
el_action_t cmd;
|
||||
wchar_t wc;
|
||||
int num;
|
||||
|
||||
el->el_errno = 0;
|
||||
do {
|
||||
if ((num = el_wgetc(el, &wc)) != 1) {/* if EOF or error */
|
||||
if ((num = el_wgetc(el, ch)) != 1) {/* if EOF or error */
|
||||
el->el_errno = num == 0 ? 0 : errno;
|
||||
return 0; /* not OKCMD */
|
||||
}
|
||||
*ch = (Char)wc;
|
||||
|
||||
#ifdef KANJI
|
||||
if ((*ch & meta)) {
|
||||
@ -441,14 +439,14 @@ read_finish(EditLine *el)
|
||||
sig_clr(el);
|
||||
}
|
||||
|
||||
public const Char *
|
||||
public const wchar_t *
|
||||
el_wgets(EditLine *el, int *nread)
|
||||
{
|
||||
int retval;
|
||||
el_action_t cmdnum = 0;
|
||||
int num; /* how many chars we have read at NL */
|
||||
wchar_t wc;
|
||||
Char ch, *cp;
|
||||
wchar_t ch, *cp;
|
||||
int crlf = 0;
|
||||
int nrb;
|
||||
#ifdef FIONREAD
|
||||
@ -464,7 +462,7 @@ el_wgets(EditLine *el, int *nread)
|
||||
|
||||
cp = el->el_line.buffer;
|
||||
while ((num = (*el->el_read.read_char)(el, &wc)) == 1) {
|
||||
*cp = (Char)wc;
|
||||
*cp = wc;
|
||||
/* make sure there is space for next character */
|
||||
if (cp + 1 >= el->el_line.limit) {
|
||||
idx = (size_t)(cp - el->el_line.buffer);
|
||||
@ -517,7 +515,7 @@ el_wgets(EditLine *el, int *nread)
|
||||
terminal__flush(el);
|
||||
|
||||
while ((num = (*el->el_read.read_char)(el, &wc)) == 1) {
|
||||
*cp = (Char)wc;
|
||||
*cp = wc;
|
||||
/* make sure there is space next character */
|
||||
if (cp + 1 >= el->el_line.limit) {
|
||||
idx = (size_t)(cp - el->el_line.buffer);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: refresh.c,v 1.47 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: refresh.c,v 1.48 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)refresh.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: refresh.c,v 1.47 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: refresh.c,v 1.48 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -52,16 +52,16 @@ __RCSID("$NetBSD: refresh.c,v 1.47 2016/04/11 00:22:48 christos Exp $");
|
||||
|
||||
private void re_nextline(EditLine *);
|
||||
private void re_addc(EditLine *, wint_t);
|
||||
private void re_update_line(EditLine *, Char *, Char *, int);
|
||||
private void re_insert (EditLine *, Char *, int, int, Char *, int);
|
||||
private void re_delete(EditLine *, Char *, int, int, int);
|
||||
private void re_update_line(EditLine *, wchar_t *, wchar_t *, int);
|
||||
private void re_insert (EditLine *, wchar_t *, int, int, wchar_t *, int);
|
||||
private void re_delete(EditLine *, wchar_t *, int, int, int);
|
||||
private void re_fastputc(EditLine *, wint_t);
|
||||
private void re_clear_eol(EditLine *, int, int, int);
|
||||
private void re__strncopy(Char *, Char *, size_t);
|
||||
private void re__copy_and_pad(Char *, const Char *, size_t);
|
||||
private void re__strncopy(wchar_t *, wchar_t *, size_t);
|
||||
private void re__copy_and_pad(wchar_t *, const wchar_t *, size_t);
|
||||
|
||||
#ifdef DEBUG_REFRESH
|
||||
private void re_printstr(EditLine *, const char *, Char *, Char *);
|
||||
private void re_printstr(EditLine *, const char *, wchar_t *, wchar_t *);
|
||||
#define __F el->el_errfile
|
||||
#define ELRE_ASSERT(a, b, c) do \
|
||||
if (/*CONSTCOND*/ a) { \
|
||||
@ -75,7 +75,7 @@ private void re_printstr(EditLine *, const char *, Char *, Char *);
|
||||
* Print a string on the debugging pty
|
||||
*/
|
||||
private void
|
||||
re_printstr(EditLine *el, const char *str, Char *f, Char *t)
|
||||
re_printstr(EditLine *el, const char *str, wchar_t *f, wchar_t *t)
|
||||
{
|
||||
|
||||
ELRE_DEBUG(1, (__F, "%s:\"", str));
|
||||
@ -104,7 +104,7 @@ re_nextline(EditLine *el)
|
||||
*/
|
||||
if (el->el_refresh.r_cursor.v + 1 >= el->el_terminal.t_size.v) {
|
||||
int i, lins = el->el_terminal.t_size.v;
|
||||
Char *firstline = el->el_vdisplay[0];
|
||||
wchar_t *firstline = el->el_vdisplay[0];
|
||||
|
||||
for(i = 1; i < lins; i++)
|
||||
el->el_vdisplay[i - 1] = el->el_vdisplay[i];
|
||||
@ -126,7 +126,7 @@ re_nextline(EditLine *el)
|
||||
private void
|
||||
re_addc(EditLine *el, wint_t c)
|
||||
{
|
||||
switch (ct_chr_class((Char)c)) {
|
||||
switch (ct_chr_class(c)) {
|
||||
case CHTYPE_TAB: /* expand the tab */
|
||||
for (;;) {
|
||||
re_putc(el, ' ', 1);
|
||||
@ -145,9 +145,9 @@ re_addc(EditLine *el, wint_t c)
|
||||
re_putc(el, c, 1);
|
||||
break;
|
||||
default: {
|
||||
Char visbuf[VISUAL_WIDTH_MAX];
|
||||
wchar_t visbuf[VISUAL_WIDTH_MAX];
|
||||
ssize_t i, n =
|
||||
ct_visual_char(visbuf, VISUAL_WIDTH_MAX, (Char)c);
|
||||
ct_visual_char(visbuf, VISUAL_WIDTH_MAX, c);
|
||||
for (i = 0; n-- > 0; ++i)
|
||||
re_putc(el, visbuf[i], 1);
|
||||
break;
|
||||
@ -171,7 +171,7 @@ re_putc(EditLine *el, wint_t c, int shift)
|
||||
re_putc(el, ' ', 1);
|
||||
|
||||
el->el_vdisplay[el->el_refresh.r_cursor.v]
|
||||
[el->el_refresh.r_cursor.h] = (Char)c;
|
||||
[el->el_refresh.r_cursor.h] = c;
|
||||
/* assumes !shift is only used for single-column chars */
|
||||
i = w;
|
||||
while (--i > 0)
|
||||
@ -201,7 +201,7 @@ protected void
|
||||
re_refresh(EditLine *el)
|
||||
{
|
||||
int i, rhdiff;
|
||||
Char *cp, *st;
|
||||
wchar_t *cp, *st;
|
||||
coord_t cur;
|
||||
#ifdef notyet
|
||||
size_t termsz;
|
||||
@ -360,9 +360,9 @@ re_goto_bottom(EditLine *el)
|
||||
private void
|
||||
/*ARGSUSED*/
|
||||
re_insert(EditLine *el __attribute__((__unused__)),
|
||||
Char *d, int dat, int dlen, Char *s, int num)
|
||||
wchar_t *d, int dat, int dlen, wchar_t *s, int num)
|
||||
{
|
||||
Char *a, *b;
|
||||
wchar_t *a, *b;
|
||||
|
||||
if (num <= 0)
|
||||
return;
|
||||
@ -411,9 +411,9 @@ re_insert(EditLine *el __attribute__((__unused__)),
|
||||
private void
|
||||
/*ARGSUSED*/
|
||||
re_delete(EditLine *el __attribute__((__unused__)),
|
||||
Char *d, int dat, int dlen, int num)
|
||||
wchar_t *d, int dat, int dlen, int num)
|
||||
{
|
||||
Char *a, *b;
|
||||
wchar_t *a, *b;
|
||||
|
||||
if (num <= 0)
|
||||
return;
|
||||
@ -443,7 +443,7 @@ re_delete(EditLine *el __attribute__((__unused__)),
|
||||
* Like strncpy without padding.
|
||||
*/
|
||||
private void
|
||||
re__strncopy(Char *a, Char *b, size_t n)
|
||||
re__strncopy(wchar_t *a, wchar_t *b, size_t n)
|
||||
{
|
||||
|
||||
while (n-- && *b)
|
||||
@ -502,11 +502,11 @@ new: eddie> Oh, my little buggy says to me, as lurgid as
|
||||
#define MIN_END_KEEP 4
|
||||
|
||||
private void
|
||||
re_update_line(EditLine *el, Char *old, Char *new, int i)
|
||||
re_update_line(EditLine *el, wchar_t *old, wchar_t *new, int i)
|
||||
{
|
||||
Char *o, *n, *p, c;
|
||||
Char *ofd, *ols, *oe, *nfd, *nls, *ne;
|
||||
Char *osb, *ose, *nsb, *nse;
|
||||
wchar_t *o, *n, *p, c;
|
||||
wchar_t *ofd, *ols, *oe, *nfd, *nls, *ne;
|
||||
wchar_t *osb, *ose, *nsb, *nse;
|
||||
int fx, sx;
|
||||
size_t len;
|
||||
|
||||
@ -972,7 +972,7 @@ re_update_line(EditLine *el, Char *old, Char *new, int i)
|
||||
* Copy string and pad with spaces
|
||||
*/
|
||||
private void
|
||||
re__copy_and_pad(Char *dst, const Char *src, size_t width)
|
||||
re__copy_and_pad(wchar_t *dst, const wchar_t *src, size_t width)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
@ -995,7 +995,7 @@ re__copy_and_pad(Char *dst, const Char *src, size_t width)
|
||||
protected void
|
||||
re_refresh_cursor(EditLine *el)
|
||||
{
|
||||
Char *cp;
|
||||
wchar_t *cp;
|
||||
int h, v, th, w;
|
||||
|
||||
if (el->el_line.cursor >= el->el_line.lastchar) {
|
||||
@ -1058,12 +1058,12 @@ re_refresh_cursor(EditLine *el)
|
||||
private void
|
||||
re_fastputc(EditLine *el, wint_t c)
|
||||
{
|
||||
int w = wcwidth((Char)c);
|
||||
int w = wcwidth(c);
|
||||
while (w > 1 && el->el_cursor.h + w > el->el_terminal.t_size.h)
|
||||
re_fastputc(el, ' ');
|
||||
|
||||
terminal__putc(el, c);
|
||||
el->el_display[el->el_cursor.v][el->el_cursor.h++] = (Char)c;
|
||||
el->el_display[el->el_cursor.v][el->el_cursor.h++] = c;
|
||||
while (--w > 0)
|
||||
el->el_display[el->el_cursor.v][el->el_cursor.h++]
|
||||
= MB_FILL_CHAR;
|
||||
@ -1080,7 +1080,7 @@ re_fastputc(EditLine *el, wint_t c)
|
||||
*/
|
||||
if (el->el_cursor.v + 1 >= el->el_terminal.t_size.v) {
|
||||
int i, lins = el->el_terminal.t_size.v;
|
||||
Char *firstline = el->el_display[0];
|
||||
wchar_t *firstline = el->el_display[0];
|
||||
|
||||
for(i = 1; i < lins; i++)
|
||||
el->el_display[i - 1] = el->el_display[i];
|
||||
@ -1111,7 +1111,7 @@ re_fastputc(EditLine *el, wint_t c)
|
||||
protected void
|
||||
re_fastaddc(EditLine *el)
|
||||
{
|
||||
Char c;
|
||||
wchar_t c;
|
||||
int rhdiff;
|
||||
|
||||
c = el->el_line.cursor[-1];
|
||||
@ -1135,9 +1135,9 @@ re_fastaddc(EditLine *el)
|
||||
break;
|
||||
case CHTYPE_ASCIICTL:
|
||||
case CHTYPE_NONPRINT: {
|
||||
Char visbuf[VISUAL_WIDTH_MAX];
|
||||
wchar_t visbuf[VISUAL_WIDTH_MAX];
|
||||
ssize_t i, n =
|
||||
ct_visual_char(visbuf, VISUAL_WIDTH_MAX, (Char)c);
|
||||
ct_visual_char(visbuf, VISUAL_WIDTH_MAX, c);
|
||||
for (i = 0; n-- > 0; ++i)
|
||||
re_fastputc(el, visbuf[i]);
|
||||
break;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: search.c,v 1.42 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: search.c,v 1.43 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)search.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: search.c,v 1.42 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: search.c,v 1.43 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -110,7 +110,7 @@ regerror(const char *msg)
|
||||
* Return if string matches pattern
|
||||
*/
|
||||
protected int
|
||||
el_match(const Char *str, const Char *pat)
|
||||
el_match(const wchar_t *str, const wchar_t *pat)
|
||||
{
|
||||
static ct_buffer_t conv;
|
||||
#if defined (REGEX)
|
||||
@ -157,7 +157,7 @@ el_match(const Char *str, const Char *pat)
|
||||
* return True if the pattern matches the prefix
|
||||
*/
|
||||
protected int
|
||||
c_hmatch(EditLine *el, const Char *str)
|
||||
c_hmatch(EditLine *el, const wchar_t *str)
|
||||
{
|
||||
#ifdef SDEBUG
|
||||
(void) fprintf(el->el_errfile, "match `%s' with `%s'\n",
|
||||
@ -206,13 +206,11 @@ c_setpat(EditLine *el)
|
||||
protected el_action_t
|
||||
ce_inc_search(EditLine *el, int dir)
|
||||
{
|
||||
static const Char STRfwd[] = {'f', 'w', 'd', '\0'},
|
||||
STRbck[] = {'b', 'c', 'k', '\0'};
|
||||
static Char pchar = ':';/* ':' = normal, '?' = failed */
|
||||
static Char endcmd[2] = {'\0', '\0'};
|
||||
Char *ocursor = el->el_line.cursor, oldpchar = pchar, ch;
|
||||
const Char *cp;
|
||||
wchar_t wch;
|
||||
static const wchar_t STRfwd[] = L"fwd", STRbck[] = L"bck";
|
||||
static wchar_t pchar = L':'; /* ':' = normal, '?' = failed */
|
||||
static wchar_t endcmd[2] = {'\0', '\0'};
|
||||
wchar_t *ocursor = el->el_line.cursor, oldpchar = pchar, ch;
|
||||
const wchar_t *cp;
|
||||
|
||||
el_action_t ret = CC_NORM;
|
||||
|
||||
@ -251,11 +249,9 @@ ce_inc_search(EditLine *el, int dir)
|
||||
*el->el_line.lastchar = '\0';
|
||||
re_refresh(el);
|
||||
|
||||
if (el_wgetc(el, &wch) != 1)
|
||||
if (el_wgetc(el, &ch) != 1)
|
||||
return ed_end_of_file(el, 0);
|
||||
|
||||
ch = (Char)wch;
|
||||
|
||||
switch (el->el_map.current[(unsigned char) ch]) {
|
||||
case ED_INSERT:
|
||||
case ED_DIGIT:
|
||||
@ -457,8 +453,8 @@ ce_inc_search(EditLine *el, int dir)
|
||||
protected el_action_t
|
||||
cv_search(EditLine *el, int dir)
|
||||
{
|
||||
Char ch;
|
||||
Char tmpbuf[EL_BUFSIZ];
|
||||
wchar_t ch;
|
||||
wchar_t tmpbuf[EL_BUFSIZ];
|
||||
ssize_t tmplen;
|
||||
|
||||
#ifdef ANCHOR
|
||||
@ -531,9 +527,9 @@ cv_search(EditLine *el, int dir)
|
||||
protected el_action_t
|
||||
ce_search_line(EditLine *el, int dir)
|
||||
{
|
||||
Char *cp = el->el_line.cursor;
|
||||
Char *pattern = el->el_search.patbuf;
|
||||
Char oc, *ocp;
|
||||
wchar_t *cp = el->el_line.cursor;
|
||||
wchar_t *pattern = el->el_search.patbuf;
|
||||
wchar_t oc, *ocp;
|
||||
#ifdef ANCHOR
|
||||
ocp = &pattern[1];
|
||||
oc = *ocp;
|
||||
@ -599,7 +595,7 @@ cv_repeat_srch(EditLine *el, wint_t c)
|
||||
protected el_action_t
|
||||
cv_csearch(EditLine *el, int direction, wint_t ch, int count, int tflag)
|
||||
{
|
||||
Char *cp;
|
||||
wchar_t *cp;
|
||||
|
||||
if (ch == 0)
|
||||
return CC_ERROR;
|
||||
@ -610,7 +606,7 @@ cv_csearch(EditLine *el, int direction, wint_t ch, int count, int tflag)
|
||||
}
|
||||
|
||||
/* Save for ';' and ',' commands */
|
||||
el->el_search.chacha = (Char)ch;
|
||||
el->el_search.chacha = ch;
|
||||
el->el_search.chadir = direction;
|
||||
el->el_search.chatflg = (char)tflag;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: search.h,v 1.12 2016/02/16 15:53:48 christos Exp $ */
|
||||
/* $NetBSD: search.h,v 1.13 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -41,19 +41,19 @@
|
||||
#define _h_el_search
|
||||
|
||||
typedef struct el_search_t {
|
||||
Char *patbuf; /* The pattern buffer */
|
||||
wchar_t *patbuf; /* The pattern buffer */
|
||||
size_t patlen; /* Length of the pattern buffer */
|
||||
int patdir; /* Direction of the last search */
|
||||
int chadir; /* Character search direction */
|
||||
Char chacha; /* Character we are looking for */
|
||||
wchar_t chacha; /* Character we are looking for */
|
||||
char chatflg; /* 0 if f, 1 if t */
|
||||
} el_search_t;
|
||||
|
||||
|
||||
protected int el_match(const Char *, const Char *);
|
||||
protected int el_match(const wchar_t *, const wchar_t *);
|
||||
protected int search_init(EditLine *);
|
||||
protected void search_end(EditLine *);
|
||||
protected int c_hmatch(EditLine *, const Char *);
|
||||
protected int c_hmatch(EditLine *, const wchar_t *);
|
||||
protected void c_setpat(EditLine *);
|
||||
protected el_action_t ce_inc_search(EditLine *, int);
|
||||
protected el_action_t cv_search(EditLine *, int);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: terminal.c,v 1.27 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: terminal.c,v 1.28 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)term.c 8.2 (Berkeley) 4/30/95";
|
||||
#else
|
||||
__RCSID("$NetBSD: terminal.c,v 1.27 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: terminal.c,v 1.28 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -426,7 +426,7 @@ private int
|
||||
terminal_alloc_display(EditLine *el)
|
||||
{
|
||||
int i;
|
||||
Char **b;
|
||||
wchar_t **b;
|
||||
coord_t *c = &el->el_terminal.t_size;
|
||||
|
||||
b = el_malloc(sizeof(*b) * (size_t)(c->v + 1));
|
||||
@ -471,8 +471,8 @@ done:
|
||||
private void
|
||||
terminal_free_display(EditLine *el)
|
||||
{
|
||||
Char **b;
|
||||
Char **bufp;
|
||||
wchar_t **b;
|
||||
wchar_t **bufp;
|
||||
|
||||
b = el->el_display;
|
||||
el->el_display = NULL;
|
||||
@ -654,7 +654,7 @@ mc_again:
|
||||
* Assumes MB_FILL_CHARs are present to keep the column count correct
|
||||
*/
|
||||
protected void
|
||||
terminal_overwrite(EditLine *el, const Char *cp, size_t n)
|
||||
terminal_overwrite(EditLine *el, const wchar_t *cp, size_t n)
|
||||
{
|
||||
if (n == 0)
|
||||
return;
|
||||
@ -680,7 +680,7 @@ terminal_overwrite(EditLine *el, const Char *cp, size_t n)
|
||||
if (EL_HAS_MAGIC_MARGINS) {
|
||||
/* force the wrap to avoid the "magic"
|
||||
* situation */
|
||||
Char c;
|
||||
wchar_t c;
|
||||
if ((c = el->el_display[el->el_cursor.v]
|
||||
[el->el_cursor.h]) != '\0') {
|
||||
terminal_overwrite(el, &c, (size_t)1);
|
||||
@ -744,7 +744,7 @@ terminal_deletechars(EditLine *el, int num)
|
||||
* Assumes MB_FILL_CHARs are present to keep column count correct
|
||||
*/
|
||||
protected void
|
||||
terminal_insertwrite(EditLine *el, Char *cp, int num)
|
||||
terminal_insertwrite(EditLine *el, wchar_t *cp, int num)
|
||||
{
|
||||
if (num <= 0)
|
||||
return;
|
||||
@ -1056,18 +1056,18 @@ private void
|
||||
terminal_reset_arrow(EditLine *el)
|
||||
{
|
||||
funckey_t *arrow = el->el_terminal.t_fkey;
|
||||
static const Char strA[] = {033, '[', 'A', '\0'};
|
||||
static const Char strB[] = {033, '[', 'B', '\0'};
|
||||
static const Char strC[] = {033, '[', 'C', '\0'};
|
||||
static const Char strD[] = {033, '[', 'D', '\0'};
|
||||
static const Char strH[] = {033, '[', 'H', '\0'};
|
||||
static const Char strF[] = {033, '[', 'F', '\0'};
|
||||
static const Char stOA[] = {033, 'O', 'A', '\0'};
|
||||
static const Char stOB[] = {033, 'O', 'B', '\0'};
|
||||
static const Char stOC[] = {033, 'O', 'C', '\0'};
|
||||
static const Char stOD[] = {033, 'O', 'D', '\0'};
|
||||
static const Char stOH[] = {033, 'O', 'H', '\0'};
|
||||
static const Char stOF[] = {033, 'O', 'F', '\0'};
|
||||
static const wchar_t strA[] = L"\033[A";
|
||||
static const wchar_t strB[] = L"\033[B";
|
||||
static const wchar_t strC[] = L"\033[C";
|
||||
static const wchar_t strD[] = L"\033[D";
|
||||
static const wchar_t strH[] = L"\033[H";
|
||||
static const wchar_t strF[] = L"\033[F";
|
||||
static const wchar_t stOA[] = L"\033OA";
|
||||
static const wchar_t stOB[] = L"\033OB";
|
||||
static const wchar_t stOC[] = L"\033OC";
|
||||
static const wchar_t stOD[] = L"\033OD";
|
||||
static const wchar_t stOH[] = L"\033OH";
|
||||
static const wchar_t stOF[] = L"\033OF";
|
||||
|
||||
keymacro_add(el, strA, &arrow[A_K_UP].fun, arrow[A_K_UP].type);
|
||||
keymacro_add(el, strB, &arrow[A_K_DN].fun, arrow[A_K_DN].type);
|
||||
@ -1103,7 +1103,7 @@ terminal_reset_arrow(EditLine *el)
|
||||
* Set an arrow key binding
|
||||
*/
|
||||
protected int
|
||||
terminal_set_arrow(EditLine *el, const Char *name, keymacro_value_t *fun,
|
||||
terminal_set_arrow(EditLine *el, const wchar_t *name, keymacro_value_t *fun,
|
||||
int type)
|
||||
{
|
||||
funckey_t *arrow = el->el_terminal.t_fkey;
|
||||
@ -1123,7 +1123,7 @@ terminal_set_arrow(EditLine *el, const Char *name, keymacro_value_t *fun,
|
||||
* Clear an arrow key binding
|
||||
*/
|
||||
protected int
|
||||
terminal_clear_arrow(EditLine *el, const Char *name)
|
||||
terminal_clear_arrow(EditLine *el, const wchar_t *name)
|
||||
{
|
||||
funckey_t *arrow = el->el_terminal.t_fkey;
|
||||
int i;
|
||||
@ -1141,7 +1141,7 @@ terminal_clear_arrow(EditLine *el, const Char *name)
|
||||
* Print the arrow key bindings
|
||||
*/
|
||||
protected void
|
||||
terminal_print_arrow(EditLine *el, const Char *name)
|
||||
terminal_print_arrow(EditLine *el, const wchar_t *name)
|
||||
{
|
||||
int i;
|
||||
funckey_t *arrow = el->el_terminal.t_fkey;
|
||||
@ -1176,8 +1176,8 @@ terminal_bind_arrow(EditLine *el)
|
||||
terminal_reset_arrow(el);
|
||||
|
||||
for (i = 0; i < A_K_NKEYS; i++) {
|
||||
Char wt_str[VISUAL_WIDTH_MAX];
|
||||
Char *px;
|
||||
wchar_t wt_str[VISUAL_WIDTH_MAX];
|
||||
wchar_t *px;
|
||||
size_t n;
|
||||
|
||||
p = el->el_terminal.t_str[arrow[i].key];
|
||||
@ -1253,7 +1253,7 @@ terminal__putc(EditLine *el, wint_t c)
|
||||
ssize_t i;
|
||||
if (c == (wint_t)MB_FILL_CHAR)
|
||||
return 0;
|
||||
i = ct_encode_char(buf, (size_t)MB_LEN_MAX, (Char)c);
|
||||
i = ct_encode_char(buf, (size_t)MB_LEN_MAX, c);
|
||||
if (i <= 0)
|
||||
return (int)i;
|
||||
buf[i] = '\0';
|
||||
@ -1276,8 +1276,8 @@ terminal__flush(EditLine *el)
|
||||
protected void
|
||||
terminal_writec(EditLine *el, wint_t c)
|
||||
{
|
||||
Char visbuf[VISUAL_WIDTH_MAX +1];
|
||||
ssize_t vcnt = ct_visual_char(visbuf, VISUAL_WIDTH_MAX, (Char)c);
|
||||
wchar_t visbuf[VISUAL_WIDTH_MAX +1];
|
||||
ssize_t vcnt = ct_visual_char(visbuf, VISUAL_WIDTH_MAX, c);
|
||||
if (vcnt < 0)
|
||||
vcnt = 0;
|
||||
visbuf[vcnt] = '\0';
|
||||
@ -1292,7 +1292,7 @@ terminal_writec(EditLine *el, wint_t c)
|
||||
protected int
|
||||
/*ARGSUSED*/
|
||||
terminal_telltc(EditLine *el, int argc __attribute__((__unused__)),
|
||||
const Char **argv __attribute__((__unused__)))
|
||||
const wchar_t **argv __attribute__((__unused__)))
|
||||
{
|
||||
const struct termcapstr *t;
|
||||
char **ts;
|
||||
@ -1334,7 +1334,7 @@ terminal_telltc(EditLine *el, int argc __attribute__((__unused__)),
|
||||
protected int
|
||||
/*ARGSUSED*/
|
||||
terminal_settc(EditLine *el, int argc __attribute__((__unused__)),
|
||||
const Char **argv)
|
||||
const wchar_t **argv)
|
||||
{
|
||||
const struct termcapstr *ts;
|
||||
const struct termcapval *tv;
|
||||
@ -1467,10 +1467,10 @@ terminal_gettc(EditLine *el, int argc __attribute__((__unused__)), char **argv)
|
||||
protected int
|
||||
/*ARGSUSED*/
|
||||
terminal_echotc(EditLine *el, int argc __attribute__((__unused__)),
|
||||
const Char **argv)
|
||||
const wchar_t **argv)
|
||||
{
|
||||
char *cap, *scap;
|
||||
Char *ep;
|
||||
wchar_t *ep;
|
||||
int arg_need, arg_cols, arg_rows;
|
||||
int verbose = 0, silent = 0;
|
||||
char *area;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: terminal.h,v 1.7 2016/02/16 15:53:48 christos Exp $ */
|
||||
/* $NetBSD: terminal.h,v 1.8 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -41,7 +41,7 @@
|
||||
#define _h_el_terminal
|
||||
|
||||
typedef struct { /* Symbolic function key bindings */
|
||||
const Char *name; /* name of the key */
|
||||
const wchar_t *name; /* name of the key */
|
||||
int key; /* Index in termcap table */
|
||||
keymacro_value_t fun; /* Function bound to it */
|
||||
int type; /* Type of function */
|
||||
@ -83,8 +83,8 @@ typedef struct {
|
||||
protected void terminal_move_to_line(EditLine *, int);
|
||||
protected void terminal_move_to_char(EditLine *, int);
|
||||
protected void terminal_clear_EOL(EditLine *, int);
|
||||
protected void terminal_overwrite(EditLine *, const Char *, size_t);
|
||||
protected void terminal_insertwrite(EditLine *, Char *, int);
|
||||
protected void terminal_overwrite(EditLine *, const wchar_t *, size_t);
|
||||
protected void terminal_insertwrite(EditLine *, wchar_t *, int);
|
||||
protected void terminal_deletechars(EditLine *, int);
|
||||
protected void terminal_clear_screen(EditLine *);
|
||||
protected void terminal_beep(EditLine *);
|
||||
@ -92,16 +92,17 @@ protected int terminal_change_size(EditLine *, int, int);
|
||||
protected int terminal_get_size(EditLine *, int *, int *);
|
||||
protected int terminal_init(EditLine *);
|
||||
protected void terminal_bind_arrow(EditLine *);
|
||||
protected void terminal_print_arrow(EditLine *, const Char *);
|
||||
protected int terminal_clear_arrow(EditLine *, const Char *);
|
||||
protected int terminal_set_arrow(EditLine *, const Char *, keymacro_value_t *, int);
|
||||
protected void terminal_print_arrow(EditLine *, const wchar_t *);
|
||||
protected int terminal_clear_arrow(EditLine *, const wchar_t *);
|
||||
protected int terminal_set_arrow(EditLine *, const wchar_t *,
|
||||
keymacro_value_t *, int);
|
||||
protected void terminal_end(EditLine *);
|
||||
protected void terminal_get(EditLine *, const char **);
|
||||
protected int terminal_set(EditLine *, const char *);
|
||||
protected int terminal_settc(EditLine *, int, const Char **);
|
||||
protected int terminal_settc(EditLine *, int, const wchar_t **);
|
||||
protected int terminal_gettc(EditLine *, int, char **);
|
||||
protected int terminal_telltc(EditLine *, int, const Char **);
|
||||
protected int terminal_echotc(EditLine *, int, const Char **);
|
||||
protected int terminal_telltc(EditLine *, int, const wchar_t **);
|
||||
protected int terminal_echotc(EditLine *, int, const wchar_t **);
|
||||
protected void terminal_writec(EditLine *, wint_t);
|
||||
protected int terminal__putc(EditLine *, wint_t);
|
||||
protected void terminal__flush(EditLine *);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: tokenizer.c,v 1.25 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: tokenizer.c,v 1.26 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)tokenizer.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: tokenizer.c,v 1.25 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: tokenizer.c,v 1.26 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -68,12 +68,14 @@ typedef enum {
|
||||
#define tok_realloc(a, b) realloc(a, b)
|
||||
|
||||
#ifdef NARROWCHAR
|
||||
#define Char char
|
||||
#define FUN(prefix, rest) prefix ## _ ## rest
|
||||
#define TYPE(type) type
|
||||
#define STR(x) x
|
||||
#define Strchr(s, c) strchr(s, c)
|
||||
#define tok_strdup(s) strdup(s)
|
||||
#else
|
||||
#define Char wchar_t
|
||||
#define FUN(prefix, rest) prefix ## _w ## rest
|
||||
#define TYPE(type) type ## W
|
||||
#define STR(x) L ## x
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: tty.c,v 1.61 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: tty.c,v 1.62 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)tty.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: tty.c,v 1.61 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: tty.c,v 1.62 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -896,7 +896,7 @@ tty_bind_char(EditLine *el, int force)
|
||||
|
||||
unsigned char *t_n = el->el_tty.t_c[ED_IO];
|
||||
unsigned char *t_o = el->el_tty.t_ed.c_cc;
|
||||
Char new[2], old[2];
|
||||
wchar_t new[2], old[2];
|
||||
const ttymap_t *tp;
|
||||
el_action_t *map, *alt;
|
||||
const el_action_t *dmap, *dalt;
|
||||
@ -913,8 +913,8 @@ tty_bind_char(EditLine *el, int force)
|
||||
}
|
||||
|
||||
for (tp = tty_map; tp->nch != (wint_t)-1; tp++) {
|
||||
new[0] = (Char)t_n[tp->nch];
|
||||
old[0] = (Char)t_o[tp->och];
|
||||
new[0] = (wchar_t)t_n[tp->nch];
|
||||
old[0] = (wchar_t)t_o[tp->och];
|
||||
if (new[0] == old[0] && !force)
|
||||
continue;
|
||||
/* Put the old default binding back, and set the new binding */
|
||||
@ -1148,12 +1148,13 @@ tty_noquotemode(EditLine *el)
|
||||
*/
|
||||
protected int
|
||||
/*ARGSUSED*/
|
||||
tty_stty(EditLine *el, int argc __attribute__((__unused__)), const Char **argv)
|
||||
tty_stty(EditLine *el, int argc __attribute__((__unused__)),
|
||||
const wchar_t **argv)
|
||||
{
|
||||
const ttymodes_t *m;
|
||||
char x;
|
||||
int aflag = 0;
|
||||
const Char *s, *d;
|
||||
const wchar_t *s, *d;
|
||||
char name[EL_BUFSIZ];
|
||||
struct termios *tios = &el->el_tty.t_ex;
|
||||
int z = EX_IO;
|
||||
@ -1237,7 +1238,7 @@ tty_stty(EditLine *el, int argc __attribute__((__unused__)), const Char **argv)
|
||||
return 0;
|
||||
}
|
||||
while (argv && (s = *argv++)) {
|
||||
const Char *p;
|
||||
const wchar_t *p;
|
||||
switch (*s) {
|
||||
case '+':
|
||||
case '-':
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: tty.h,v 1.19 2016/02/27 18:13:21 christos Exp $ */
|
||||
/* $NetBSD: tty.h,v 1.20 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -458,7 +458,7 @@ typedef unsigned char ttychar_t[NN_IO][C_NCC];
|
||||
|
||||
protected int tty_init(EditLine *);
|
||||
protected void tty_end(EditLine *);
|
||||
protected int tty_stty(EditLine *, int, const Char **);
|
||||
protected int tty_stty(EditLine *, int, const wchar_t **);
|
||||
protected int tty_rawmode(EditLine *);
|
||||
protected int tty_cookedmode(EditLine *);
|
||||
protected int tty_quotemode(EditLine *);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: vi.c,v 1.58 2016/04/11 00:22:48 christos Exp $ */
|
||||
/* $NetBSD: vi.c,v 1.59 2016/04/11 00:50:13 christos Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -37,7 +37,7 @@
|
||||
#if 0
|
||||
static char sccsid[] = "@(#)vi.c 8.1 (Berkeley) 6/4/93";
|
||||
#else
|
||||
__RCSID("$NetBSD: vi.c,v 1.58 2016/04/11 00:22:48 christos Exp $");
|
||||
__RCSID("$NetBSD: vi.c,v 1.59 2016/04/11 00:50:13 christos Exp $");
|
||||
#endif
|
||||
#endif /* not lint && not SCCSID */
|
||||
|
||||
@ -648,7 +648,7 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
vi_kill_line_prev(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
Char *kp, *cp;
|
||||
wchar_t *kp, *cp;
|
||||
|
||||
cp = el->el_line.buffer;
|
||||
kp = el->el_chared.c_kill.buf;
|
||||
@ -809,10 +809,10 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
vi_match(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
const Char match_chars[] = L"()[]{}";
|
||||
Char *cp;
|
||||
const wchar_t match_chars[] = L"()[]{}";
|
||||
wchar_t *cp;
|
||||
size_t delta, i, count;
|
||||
Char o_ch, c_ch;
|
||||
wchar_t o_ch, c_ch;
|
||||
|
||||
*el->el_line.lastchar = '\0'; /* just in case */
|
||||
|
||||
@ -1006,7 +1006,7 @@ vi_histedit(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
char tempfile[] = "/tmp/histedit.XXXXXXXXXX";
|
||||
char *cp = NULL;
|
||||
size_t len;
|
||||
Char *line = NULL;
|
||||
wchar_t *line = NULL;
|
||||
|
||||
if (el->el_state.doingarg) {
|
||||
if (vi_to_history_line(el, 0) == CC_ERROR)
|
||||
@ -1083,11 +1083,11 @@ protected el_action_t
|
||||
/*ARGSUSED*/
|
||||
vi_history_word(EditLine *el, wint_t c __attribute__((__unused__)))
|
||||
{
|
||||
const Char *wp = HIST_FIRST(el);
|
||||
const Char *wep, *wsp;
|
||||
const wchar_t *wp = HIST_FIRST(el);
|
||||
const wchar_t *wep, *wsp;
|
||||
int len;
|
||||
Char *cp;
|
||||
const Char *lim;
|
||||
wchar_t *cp;
|
||||
const wchar_t *lim;
|
||||
|
||||
if (wp == NULL)
|
||||
return CC_ERROR;
|
||||
|
Loading…
Reference in New Issue
Block a user