Char -> wchar_t from Ingo Schwarze.

This commit is contained in:
christos 2016-04-11 00:50:13 +00:00
parent 6b3f51ca99
commit 0594af8028
32 changed files with 391 additions and 394 deletions

View File

@ -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.

View File

@ -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 *);

View File

@ -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;

View File

@ -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 */

View File

@ -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: ");

View File

@ -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;

View File

@ -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 { \

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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)

View File

@ -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 *);

View File

@ -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

View File

@ -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++);

View File

@ -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 */

View File

@ -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;

View File

@ -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 */

View File

@ -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;

View File

@ -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 */

View File

@ -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;

View File

@ -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 *);

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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 *);

View File

@ -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

View File

@ -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 '-':

View File

@ -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 *);

View File

@ -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;