Module Name: src
Committed By: christos
Date: Sat Apr 9 18:43:18 UTC 2016
Modified Files:
src/lib/libedit: chared.c chartype.c chartype.h common.c el.c eln.c
emacs.c hist.c keymacro.c map.c read.c refresh.c search.c
terminal.c tty.c vi.c
Log Message:
More WIDECHAR elimination (Ingo Schwarze)
To generate a diff of this commit:
cvs rdiff -u -r1.49 -r1.50 src/lib/libedit/chared.c
cvs rdiff -u -r1.24 -r1.25 src/lib/libedit/chartype.c
cvs rdiff -u -r1.26 -r1.27 src/lib/libedit/chartype.h
cvs rdiff -u -r1.40 -r1.41 src/lib/libedit/common.c src/lib/libedit/search.c
cvs rdiff -u -r1.84 -r1.85 src/lib/libedit/el.c
cvs rdiff -u -r1.29 -r1.30 src/lib/libedit/eln.c
cvs rdiff -u -r1.32 -r1.33 src/lib/libedit/emacs.c
cvs rdiff -u -r1.25 -r1.26 src/lib/libedit/hist.c src/lib/libedit/terminal.c
cvs rdiff -u -r1.15 -r1.16 src/lib/libedit/keymacro.c
cvs rdiff -u -r1.43 -r1.44 src/lib/libedit/map.c
cvs rdiff -u -r1.87 -r1.88 src/lib/libedit/read.c
cvs rdiff -u -r1.45 -r1.46 src/lib/libedit/refresh.c
cvs rdiff -u -r1.59 -r1.60 src/lib/libedit/tty.c
cvs rdiff -u -r1.55 -r1.56 src/lib/libedit/vi.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libedit/chared.c
diff -u src/lib/libedit/chared.c:1.49 src/lib/libedit/chared.c:1.50
--- src/lib/libedit/chared.c:1.49 Wed Feb 24 09:29:21 2016
+++ src/lib/libedit/chared.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: chared.c,v 1.49 2016/02/24 14:29:21 christos Exp $ */
+/* $NetBSD: chared.c,v 1.50 2016/04/09 18:43:17 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.49 2016/02/24 14:29:21 christos Exp $");
+__RCSID("$NetBSD: chared.c,v 1.50 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -205,7 +205,7 @@ c_delbefore1(EditLine *el)
protected int
ce__isword(wint_t p)
{
- return Isalnum(p) || Strchr(STR("*?_-.[]~="), p) != NULL;
+ return iswalnum(p) || Strchr(STR("*?_-.[]~="), p) != NULL;
}
@@ -215,9 +215,9 @@ ce__isword(wint_t p)
protected int
cv__isword(wint_t p)
{
- if (Isalnum(p) || p == '_')
+ if (iswalnum(p) || p == L'_')
return 1;
- if (Isgraph(p))
+ if (iswgraph(p))
return 2;
return 0;
}
@@ -229,7 +229,7 @@ cv__isword(wint_t p)
protected int
cv__isWord(wint_t p)
{
- return !Isspace(p);
+ return !iswspace(p);
}
@@ -292,7 +292,7 @@ cv_next_word(EditLine *el, Char *p, Char
* trailing whitespace! This is not what 'w' does..
*/
if (n || el->el_chared.c_vcmd.action != (DELETE|INSERT))
- while ((p < high) && Isspace(*p))
+ while ((p < high) && iswspace(*p))
p++;
}
@@ -314,7 +314,7 @@ cv_prev_word(Char *p, Char *low, int n,
p--;
while (n--) {
- while ((p > low) && Isspace(*p))
+ while ((p > low) && iswspace(*p))
p--;
test = (*wtest)(*p);
while ((p >= low) && (*wtest)(*p) == test)
@@ -379,7 +379,7 @@ cv__endword(Char *p, Char *high, int n,
p++;
while (n--) {
- while ((p < high) && Isspace(*p))
+ while ((p < high) && iswspace(*p))
p++;
test = (*wtest)(*p);
Index: src/lib/libedit/chartype.c
diff -u src/lib/libedit/chartype.c:1.24 src/lib/libedit/chartype.c:1.25
--- src/lib/libedit/chartype.c:1.24 Wed Mar 23 18:27:48 2016
+++ src/lib/libedit/chartype.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: chartype.c,v 1.24 2016/03/23 22:27:48 christos Exp $ */
+/* $NetBSD: chartype.c,v 1.25 2016/04/09 18:43:17 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.24 2016/03/23 22:27:48 christos Exp $");
+__RCSID("$NetBSD: chartype.c,v 1.25 2016/04/09 18:43:17 christos Exp $");
#endif /* not lint && not SCCSID */
#include <ctype.h>
@@ -123,7 +123,7 @@ ct_decode_string(const char *s, ct_buffe
if (!s)
return NULL;
- len = ct_mbstowcs(NULL, s, (size_t)0);
+ len = mbstowcs(NULL, s, (size_t)0);
if (len == (size_t)-1)
return NULL;
@@ -131,7 +131,7 @@ ct_decode_string(const char *s, ct_buffe
if (ct_conv_wbuff_resize(conv, len + CT_BUFSIZ) == -1)
return NULL;
- ct_mbstowcs(conv->wbuff, s, conv->wsize);
+ mbstowcs(conv->wbuff, s, conv->wsize);
return conv->wbuff;
}
@@ -198,24 +198,15 @@ ct_encode_char(char *dst, size_t len, Ch
ssize_t l = 0;
if (len < ct_enc_width(c))
return -1;
- l = ct_wctomb(dst, c);
+ l = wctomb(dst, c);
if (l < 0) {
- ct_wctomb_reset;
+ wctomb(NULL, L'\0');
l = 0;
}
return l;
}
-size_t
-ct_mbrtowc(wchar_t *wc, const char *s, size_t n)
-{
- mbstate_t mbs;
- /* This only works because UTF-8 is stateless */
- memset(&mbs, 0, sizeof(mbs));
- return mbrtowc(wc, s, n, &mbs);
-}
-
protected const Char *
ct_visual_string(const Char *s)
{
@@ -344,9 +335,9 @@ ct_chr_class(Char c)
return CHTYPE_TAB;
else if (c == '\n')
return CHTYPE_NL;
- else if (IsASCII(c) && Iscntrl(c))
+ else if (c < 0x100 && iswcntrl(c))
return CHTYPE_ASCIICTL;
- else if (Isprint(c))
+ else if (iswprint(c))
return CHTYPE_PRINT;
else
return CHTYPE_NONPRINT;
Index: src/lib/libedit/chartype.h
diff -u src/lib/libedit/chartype.h:1.26 src/lib/libedit/chartype.h:1.27
--- src/lib/libedit/chartype.h:1.26 Wed Mar 23 18:27:48 2016
+++ src/lib/libedit/chartype.h Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: chartype.h,v 1.26 2016/03/23 22:27:48 christos Exp $ */
+/* $NetBSD: chartype.h,v 1.27 2016/04/09 18:43:17 christos Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -51,56 +51,19 @@
#warning Build environment does not support non-BMP characters
#endif
-#define ct_wctob wctob
-#define ct_wctomb wctomb
-#define ct_wctomb_reset wctomb(0,0)
-#define ct_wcstombs wcstombs
-#define ct_mbstowcs mbstowcs
-
#define Char wchar_t
#define FUN(prefix,rest) prefix ## _w ## rest
#define FUNW(type) type ## _w
#define TYPE(type) type ## W
-#define FSTR "%ls"
-#define FSTARSTR "%.*ls"
#define STR(x) L ## x
-#define UC(c) c
-#define Isalpha(x) iswalpha(x)
-#define Isalnum(x) iswalnum(x)
-#define Isgraph(x) iswgraph(x)
-#define Isspace(x) iswspace(x)
-#define Isdigit(x) iswdigit(x)
-#define Iscntrl(x) iswcntrl(x)
-#define Isprint(x) iswprint(x)
-
-#define Isupper(x) iswupper(x)
-#define Islower(x) iswlower(x)
-#define Toupper(x) towupper(x)
-#define Tolower(x) towlower(x)
-
-#define IsASCII(x) (x < 0x100)
#define Strlen(x) wcslen(x)
#define Strchr(s,c) wcschr(s,c)
-#define Strrchr(s,c) wcsrchr(s,c)
-#define Strstr(s,v) wcsstr(s,v)
#define Strdup(x) wcsdup(x)
-#define Strcpy(d,s) wcscpy(d,s)
#define Strncpy(d,s,n) wcsncpy(d,s,n)
#define Strncat(d,s,n) wcsncat(d,s,n)
-
#define Strcmp(s,v) wcscmp(s,v)
#define Strncmp(s,v,n) wcsncmp(s,v,n)
-#define Strcspn(s,r) wcscspn(s,r)
-
-#define Strtol(p,e,b) wcstol(p,e,b)
-
-static inline int
-Width(wchar_t c)
-{
- int w = wcwidth(c);
- return w < 0 ? 0 : w;
-}
#else /* NARROW */
@@ -150,8 +113,6 @@ protected int ct_conv_wbuff_resize(ct_bu
protected ssize_t ct_encode_char(char *, size_t, Char);
protected size_t ct_enc_width(Char);
-#define ct_free_argv(s) el_free(s)
-
#else
#define ct_encode_string(s, b) (s)
#define ct_decode_string(s, b) (s)
@@ -199,7 +160,4 @@ protected const Char *ct_visual_string(c
protected int ct_chr_class(Char c);
#endif
-size_t ct_mbrtowc(wchar_t *, const char *, size_t);
-
-
#endif /* _chartype_f */
Index: src/lib/libedit/common.c
diff -u src/lib/libedit/common.c:1.40 src/lib/libedit/common.c:1.41
--- src/lib/libedit/common.c:1.40 Wed Mar 2 14:24:20 2016
+++ src/lib/libedit/common.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: common.c,v 1.40 2016/03/02 19:24:20 christos Exp $ */
+/* $NetBSD: common.c,v 1.41 2016/04/09 18:43:17 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.40 2016/03/02 19:24:20 christos Exp $");
+__RCSID("$NetBSD: common.c,v 1.41 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -148,8 +148,7 @@ ed_delete_next_char(EditLine *el, wint_t
#ifdef DEBUG_EDIT
#define EL el->el_line
(void) fprintf(el->el_errfile,
- "\nD(b: %p(" FSTR ") c: %p(" FSTR ") last: %p(" FSTR
- ") limit: %p(" FSTR ")\n",
+ "\nD(b: %p(%ls) c: %p(%ls) last: %p(%ls) limit: %p(%ls)\n",
EL.buffer, EL.buffer, EL.cursor, EL.cursor, EL.lastchar,
EL.lastchar, EL.limit, EL.limit);
#endif
@@ -242,7 +241,7 @@ ed_move_to_beg(EditLine *el, wint_t c __
if (el->el_map.type == MAP_VI) {
/* We want FIRST non space character */
- while (Isspace(*el->el_line.cursor))
+ while (iswspace(*el->el_line.cursor))
el->el_line.cursor++;
if (el->el_chared.c_vcmd.action != NOP) {
cv_delfini(el);
@@ -384,7 +383,7 @@ protected el_action_t
ed_digit(EditLine *el, wint_t c)
{
- if (!Isdigit(c))
+ if (!iswdigit(c))
return CC_ERROR;
if (el->el_state.doingarg) {
@@ -412,7 +411,7 @@ protected el_action_t
ed_argument_digit(EditLine *el, wint_t c)
{
- if (!Isdigit(c))
+ if (!iswdigit(c))
return CC_ERROR;
if (el->el_state.doingarg) {
Index: src/lib/libedit/search.c
diff -u src/lib/libedit/search.c:1.40 src/lib/libedit/search.c:1.41
--- src/lib/libedit/search.c:1.40 Wed Mar 23 18:27:48 2016
+++ src/lib/libedit/search.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: search.c,v 1.40 2016/03/23 22:27:48 christos Exp $ */
+/* $NetBSD: search.c,v 1.41 2016/04/09 18:43:17 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.40 2016/03/23 22:27:48 christos Exp $");
+__RCSID("$NetBSD: search.c,v 1.41 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -124,7 +124,7 @@ el_match(const Char *str, const Char *pa
extern int re_exec(const char *);
#endif
- if (Strstr(str, pat) != 0)
+ if (wcsstr(str, pat) != 0)
return 1;
#if defined(REGEX)
Index: src/lib/libedit/el.c
diff -u src/lib/libedit/el.c:1.84 src/lib/libedit/el.c:1.85
--- src/lib/libedit/el.c:1.84 Wed Mar 23 18:27:48 2016
+++ src/lib/libedit/el.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: el.c,v 1.84 2016/03/23 22:27:48 christos Exp $ */
+/* $NetBSD: el.c,v 1.85 2016/04/09 18:43:17 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.84 2016/03/23 22:27:48 christos Exp $");
+__RCSID("$NetBSD: el.c,v 1.85 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -558,7 +558,7 @@ el_source(EditLine *el, const char *fnam
if (!dptr)
continue;
/* loop until first non-space char or EOL */
- while (*dptr != '\0' && Isspace(*dptr))
+ while (*dptr != '\0' && iswspace(*dptr))
dptr++;
if (*dptr == '#')
continue; /* ignore, this is a comment line */
@@ -626,7 +626,7 @@ el_editmode(EditLine *el, int argc, cons
el->el_flags |= EDIT_DISABLED;
}
else {
- (void) fprintf(el->el_errfile, "edit: Bad value `" FSTR "'.\n",
+ (void) fprintf(el->el_errfile, "edit: Bad value `%ls'.\n",
how);
return -1;
}
Index: src/lib/libedit/eln.c
diff -u src/lib/libedit/eln.c:1.29 src/lib/libedit/eln.c:1.30
--- src/lib/libedit/eln.c:1.29 Wed Mar 23 18:27:48 2016
+++ src/lib/libedit/eln.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: eln.c,v 1.29 2016/03/23 22:27:48 christos Exp $ */
+/* $NetBSD: eln.c,v 1.30 2016/04/09 18:43:17 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.29 2016/03/23 22:27:48 christos Exp $");
+__RCSID("$NetBSD: eln.c,v 1.30 2016/04/09 18:43:17 christos Exp $");
#endif /* not lint && not SCCSID */
#include <errno.h>
@@ -47,7 +47,7 @@ el_getc(EditLine *el, char *cp)
*cp = '\0';
if (num_read <= 0)
return num_read;
- num_read = ct_wctob(wc);
+ num_read = wctob(wc);
if (num_read == EOF) {
errno = ERANGE;
return -1;
@@ -96,7 +96,7 @@ el_parse(EditLine *el, int argc, const c
if (!wargv)
return -1;
ret = el_wparse(el, argc, wargv);
- ct_free_argv(wargv);
+ el_free(wargv);
return ret;
}
@@ -206,7 +206,7 @@ el_set(EditLine *el, int op, ...)
default:
ret = -1;
}
- ct_free_argv(wargv);
+ el_free(wargv);
break;
}
@@ -228,7 +228,7 @@ el_set(EditLine *el, int op, ...)
/* XXX: The two strdup's leak */
ret = map_addfunc(el, Strdup(wargv[0]), Strdup(wargv[1]),
func);
- ct_free_argv(wargv);
+ el_free(wargv);
break;
}
case EL_HIST: { /* hist_fun_t, const char * */
Index: src/lib/libedit/emacs.c
diff -u src/lib/libedit/emacs.c:1.32 src/lib/libedit/emacs.c:1.33
--- src/lib/libedit/emacs.c:1.32 Tue Feb 16 17:53:14 2016
+++ src/lib/libedit/emacs.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: emacs.c,v 1.32 2016/02/16 22:53:14 christos Exp $ */
+/* $NetBSD: emacs.c,v 1.33 2016/04/09 18:43:17 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.32 2016/02/16 22:53:14 christos Exp $");
+__RCSID("$NetBSD: emacs.c,v 1.33 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -293,8 +293,8 @@ em_upper_case(EditLine *el, wint_t c __a
el->el_state.argument, ce__isword);
for (cp = el->el_line.cursor; cp < ep; cp++)
- if (Islower(*cp))
- *cp = Toupper(*cp);
+ if (iswlower(*cp))
+ *cp = towupper(*cp);
el->el_line.cursor = ep;
if (el->el_line.cursor > el->el_line.lastchar)
@@ -317,16 +317,16 @@ em_capitol_case(EditLine *el, wint_t c _
el->el_state.argument, ce__isword);
for (cp = el->el_line.cursor; cp < ep; cp++) {
- if (Isalpha(*cp)) {
- if (Islower(*cp))
- *cp = Toupper(*cp);
+ if (iswalpha(*cp)) {
+ if (iswlower(*cp))
+ *cp = towupper(*cp);
cp++;
break;
}
}
for (; cp < ep; cp++)
- if (Isupper(*cp))
- *cp = Tolower(*cp);
+ if (iswupper(*cp))
+ *cp = towlower(*cp);
el->el_line.cursor = ep;
if (el->el_line.cursor > el->el_line.lastchar)
@@ -349,8 +349,8 @@ em_lower_case(EditLine *el, wint_t c __a
el->el_state.argument, ce__isword);
for (cp = el->el_line.cursor; cp < ep; cp++)
- if (Isupper(*cp))
- *cp = Tolower(*cp);
+ if (iswupper(*cp))
+ *cp = towlower(*cp);
el->el_line.cursor = ep;
if (el->el_line.cursor > el->el_line.lastchar)
Index: src/lib/libedit/hist.c
diff -u src/lib/libedit/hist.c:1.25 src/lib/libedit/hist.c:1.26
--- src/lib/libedit/hist.c:1.25 Wed Mar 23 18:27:48 2016
+++ src/lib/libedit/hist.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: hist.c,v 1.25 2016/03/23 22:27:48 christos Exp $ */
+/* $NetBSD: hist.c,v 1.26 2016/04/09 18:43:17 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.25 2016/03/23 22:27:48 christos Exp $");
+__RCSID("$NetBSD: hist.c,v 1.26 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -177,7 +177,7 @@ hist_command(EditLine *el, int argc, con
if (argc != 3)
return -1;
- num = (int)Strtol(argv[2], NULL, 0);
+ num = (int)wcstol(argv[2], NULL, 0);
if (Strcmp(argv[1], STR("size")) == 0)
return FUNW(history)(el->el_history.ref, &ev, H_SETSIZE, num);
Index: src/lib/libedit/terminal.c
diff -u src/lib/libedit/terminal.c:1.25 src/lib/libedit/terminal.c:1.26
--- src/lib/libedit/terminal.c:1.25 Wed Mar 23 18:27:48 2016
+++ src/lib/libedit/terminal.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: terminal.c,v 1.25 2016/03/23 22:27:48 christos Exp $ */
+/* $NetBSD: terminal.c,v 1.26 2016/04/09 18:43:17 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.25 2016/03/23 22:27:48 christos Exp $");
+__RCSID("$NetBSD: terminal.c,v 1.26 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -1378,7 +1378,7 @@ terminal_settc(EditLine *el, int argc __
el->el_terminal.t_val[tv - tval] = 0;
else {
(void) fprintf(el->el_errfile,
- "" FSTR ": Bad value `%s'.\n", argv[0], how);
+ "%ls: Bad value `%s'.\n", argv[0], how);
return -1;
}
terminal_setflags(el);
@@ -1392,7 +1392,7 @@ terminal_settc(EditLine *el, int argc __
i = strtol(how, &ep, 10);
if (*ep != '\0') {
(void) fprintf(el->el_errfile,
- "" FSTR ": Bad value `%s'.\n", argv[0], how);
+ "%ls: Bad value `%s'.\n", argv[0], how);
return -1;
}
el->el_terminal.t_val[tv - tval] = (int) i;
@@ -1543,7 +1543,7 @@ terminal_echotc(EditLine *el, int argc _
if (!scap || scap[0] == '\0') {
if (!silent)
(void) fprintf(el->el_errfile,
- "echotc: Termcap parameter `" FSTR "' not found.\n",
+ "echotc: Termcap parameter `%ls' not found.\n",
*argv);
return -1;
}
@@ -1586,7 +1586,7 @@ terminal_echotc(EditLine *el, int argc _
if (*argv && *argv[0]) {
if (!silent)
(void) fprintf(el->el_errfile,
- "echotc: Warning: Extra argument `" FSTR "'.\n",
+ "echotc: Warning: Extra argument `%ls'.\n",
*argv);
return -1;
}
@@ -1601,11 +1601,11 @@ terminal_echotc(EditLine *el, int argc _
return -1;
}
arg_cols = 0;
- i = Strtol(*argv, &ep, 10);
+ i = wcstol(*argv, &ep, 10);
if (*ep != '\0' || i < 0) {
if (!silent)
(void) fprintf(el->el_errfile,
- "echotc: Bad value `" FSTR "' for rows.\n",
+ "echotc: Bad value `%ls' for rows.\n",
*argv);
return -1;
}
@@ -1614,7 +1614,7 @@ terminal_echotc(EditLine *el, int argc _
if (*argv && *argv[0]) {
if (!silent)
(void) fprintf(el->el_errfile,
- "echotc: Warning: Extra argument `" FSTR
+ "echotc: Warning: Extra argument `%ls"
"'.\n", *argv);
return -1;
}
@@ -1635,11 +1635,11 @@ terminal_echotc(EditLine *el, int argc _
"echotc: Warning: Missing argument.\n");
return -1;
}
- i = Strtol(*argv, &ep, 10);
+ i = wcstol(*argv, &ep, 10);
if (*ep != '\0' || i < 0) {
if (!silent)
(void) fprintf(el->el_errfile,
- "echotc: Bad value `" FSTR "' for cols.\n",
+ "echotc: Bad value `%ls' for cols.\n",
*argv);
return -1;
}
@@ -1651,11 +1651,11 @@ terminal_echotc(EditLine *el, int argc _
"echotc: Warning: Missing argument.\n");
return -1;
}
- i = Strtol(*argv, &ep, 10);
+ i = wcstol(*argv, &ep, 10);
if (*ep != '\0' || i < 0) {
if (!silent)
(void) fprintf(el->el_errfile,
- "echotc: Bad value `" FSTR "' for rows.\n",
+ "echotc: Bad value `%ls' for rows.\n",
*argv);
return -1;
}
@@ -1663,14 +1663,14 @@ terminal_echotc(EditLine *el, int argc _
if (*ep != '\0') {
if (!silent)
(void) fprintf(el->el_errfile,
- "echotc: Bad value `" FSTR "'.\n", *argv);
+ "echotc: Bad value `%ls'.\n", *argv);
return -1;
}
argv++;
if (*argv && *argv[0]) {
if (!silent)
(void) fprintf(el->el_errfile,
- "echotc: Warning: Extra argument `" FSTR
+ "echotc: Warning: Extra argument `%ls"
"'.\n", *argv);
return -1;
}
Index: src/lib/libedit/keymacro.c
diff -u src/lib/libedit/keymacro.c:1.15 src/lib/libedit/keymacro.c:1.16
--- src/lib/libedit/keymacro.c:1.15 Wed Mar 23 18:27:48 2016
+++ src/lib/libedit/keymacro.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: keymacro.c,v 1.15 2016/03/23 22:27:48 christos Exp $ */
+/* $NetBSD: keymacro.c,v 1.16 2016/04/09 18:43:17 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.15 2016/03/23 22:27:48 christos Exp $");
+__RCSID("$NetBSD: keymacro.c,v 1.16 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -265,7 +265,7 @@ keymacro_print(EditLine *el, const Char
el->el_keymacro.buf[0] = '"';
if (node_lookup(el, key, el->el_keymacro.map, (size_t)1) <= -1)
/* key is not bound */
- (void) fprintf(el->el_errfile, "Unbound extended key \"" FSTR
+ (void) fprintf(el->el_errfile, "Unbound extended key \"%ls"
"\"\n", key);
return;
}
@@ -549,7 +549,7 @@ node_enum(EditLine *el, keymacro_node_t
el->el_keymacro.buf[++cnt] = '\0';
(void) fprintf(el->el_errfile,
"Some extended keys too long for internal print buffer");
- (void) fprintf(el->el_errfile, " \"" FSTR "...\"\n",
+ (void) fprintf(el->el_errfile, " \"%ls...\"\n",
el->el_keymacro.buf);
return 0;
}
@@ -602,7 +602,7 @@ keymacro_kprint(EditLine *el, const Char
case XK_CMD:
for (fp = el->el_map.help; fp->name; fp++)
if (val->cmd == fp->func) {
- ct_wcstombs(unparsbuf, fp->name, sizeof(unparsbuf));
+ wcstombs(unparsbuf, fp->name, sizeof(unparsbuf));
unparsbuf[sizeof(unparsbuf) -1] = '\0';
(void) fprintf(el->el_outfile, fmt,
ct_encode_string(key, &el->el_scratch), unparsbuf);
Index: src/lib/libedit/map.c
diff -u src/lib/libedit/map.c:1.43 src/lib/libedit/map.c:1.44
--- src/lib/libedit/map.c:1.43 Wed Feb 17 14:47:49 2016
+++ src/lib/libedit/map.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: map.c,v 1.43 2016/02/17 19:47:49 christos Exp $ */
+/* $NetBSD: map.c,v 1.44 2016/04/09 18:43:17 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.43 2016/02/17 19:47:49 christos Exp $");
+__RCSID("$NetBSD: map.c,v 1.44 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -970,7 +970,7 @@ map_init_nls(EditLine *el)
el_action_t *map = el->el_map.key;
for (i = 0200; i <= 0377; i++)
- if (Isprint(i))
+ if (iswprint(i))
map[i] = ED_INSERT;
}
@@ -1135,7 +1135,7 @@ map_print_key(EditLine *el, el_action_t
for (bp = el->el_map.help; bp < ep; bp++)
if (bp->func == map[(unsigned char) *in]) {
(void) fprintf(el->el_outfile,
- "%s\t->\t" FSTR "\n", outbuf, bp->name);
+ "%s\t->\t%ls\n", outbuf, bp->name);
return;
}
} else
@@ -1172,7 +1172,7 @@ map_print_some_keys(EditLine *el, el_act
if (first == last) {
(void) keymacro__decode_str(firstbuf, unparsbuf,
sizeof(unparsbuf), STRQQ);
- (void) fprintf(el->el_outfile, "%-15s-> " FSTR "\n",
+ (void) fprintf(el->el_outfile, "%-15s-> %ls\n",
unparsbuf, bp->name);
} else {
(void) keymacro__decode_str(firstbuf, unparsbuf,
@@ -1180,7 +1180,7 @@ map_print_some_keys(EditLine *el, el_act
(void) keymacro__decode_str(lastbuf, extrabuf,
sizeof(extrabuf), STRQQ);
(void) fprintf(el->el_outfile,
- "%-4s to %-7s-> " FSTR "\n",
+ "%-4s to %-7s-> %ls\n",
unparsbuf, extrabuf, bp->name);
}
return;
@@ -1300,12 +1300,12 @@ map_bind(EditLine *el, int argc, const C
ep = &el->el_map.help[el->el_map.nfunc];
for (bp = el->el_map.help; bp < ep; bp++)
(void) fprintf(el->el_outfile,
- "" FSTR "\n\t" FSTR "\n",
+ "%ls\n\t%ls\n",
bp->name, bp->description);
return 0;
default:
(void) fprintf(el->el_errfile,
- "" FSTR ": Invalid switch `%lc'.\n",
+ "%ls: Invalid switch `%lc'.\n",
argv[0], (wint_t)p[1]);
}
else
@@ -1319,7 +1319,7 @@ map_bind(EditLine *el, int argc, const C
in = argv[argc++];
else if ((in = parse__string(inbuf, argv[argc++])) == NULL) {
(void) fprintf(el->el_errfile,
- "" FSTR ": Invalid \\ or ^ in instring.\n",
+ "%ls: Invalid \\ or ^ in instring.\n",
argv[0]);
return -1;
}
@@ -1355,7 +1355,7 @@ map_bind(EditLine *el, int argc, const C
case XK_EXE:
if ((out = parse__string(outbuf, argv[argc])) == NULL) {
(void) fprintf(el->el_errfile,
- "" FSTR ": Invalid \\ or ^ in outstring.\n", argv[0]);
+ "%ls: Invalid \\ or ^ in outstring.\n", argv[0]);
return -1;
}
if (key)
@@ -1368,7 +1368,7 @@ map_bind(EditLine *el, int argc, const C
case XK_CMD:
if ((cmd = parse_cmd(el, argv[argc])) == -1) {
(void) fprintf(el->el_errfile,
- "" FSTR ": Invalid command `" FSTR "'.\n",
+ "%ls: Invalid command `%ls'.\n",
argv[0], argv[argc]);
return -1;
}
Index: src/lib/libedit/read.c
diff -u src/lib/libedit/read.c:1.87 src/lib/libedit/read.c:1.88
--- src/lib/libedit/read.c:1.87 Wed Mar 23 18:27:48 2016
+++ src/lib/libedit/read.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: read.c,v 1.87 2016/03/23 22:27:48 christos Exp $ */
+/* $NetBSD: read.c,v 1.88 2016/04/09 18:43:17 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.87 2016/03/23 22:27:48 christos Exp $");
+__RCSID("$NetBSD: read.c,v 1.88 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -308,9 +308,12 @@ read_char(EditLine *el, wchar_t *cp)
}
for (;;) {
+ mbstate_t mbs;
++cbp;
- switch (ct_mbrtowc(cp, cbuf, cbp)) {
+ /* This only works because UTF8 is stateless. */
+ memset(&mbs, 0, sizeof(mbs));
+ switch (mbrtowc(cp, cbuf, cbp, &mbs)) {
case (size_t)-1:
if (cbp > 1) {
/*
@@ -575,7 +578,7 @@ FUN(el,gets)(EditLine *el, int *nread)
break;
if (b->name)
(void) fprintf(el->el_errfile,
- "Executing " FSTR "\n", b->name);
+ "Executing %ls\n", b->name);
else
(void) fprintf(el->el_errfile,
"Error command = %d\n", cmdnum);
@@ -589,7 +592,7 @@ FUN(el,gets)(EditLine *el, int *nread)
el->el_chared.c_redo.pos < el->el_chared.c_redo.lim) {
if (cmdnum == VI_DELETE_PREV_CHAR &&
el->el_chared.c_redo.pos != el->el_chared.c_redo.buf
- && Isprint(el->el_chared.c_redo.pos[-1]))
+ && iswprint(el->el_chared.c_redo.pos[-1]))
el->el_chared.c_redo.pos--;
else
*el->el_chared.c_redo.pos++ = ch;
Index: src/lib/libedit/refresh.c
diff -u src/lib/libedit/refresh.c:1.45 src/lib/libedit/refresh.c:1.46
--- src/lib/libedit/refresh.c:1.45 Wed Mar 2 14:24:20 2016
+++ src/lib/libedit/refresh.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: refresh.c,v 1.45 2016/03/02 19:24:20 christos Exp $ */
+/* $NetBSD: refresh.c,v 1.46 2016/04/09 18:43:17 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.45 2016/03/02 19:24:20 christos Exp $");
+__RCSID("$NetBSD: refresh.c,v 1.46 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -162,8 +162,10 @@ re_addc(EditLine *el, wint_t c)
protected void
re_putc(EditLine *el, wint_t c, int shift)
{
- int i, w = Width(c);
+ int i, w = wcwidth(c);
ELRE_DEBUG(1, (__F, "printing %5x '%lc'\r\n", c, c));
+ if (w == -1)
+ w = 0;
while (shift && (el->el_refresh.r_cursor.h + w > el->el_terminal.t_size.h))
re_putc(el, ' ', 1);
@@ -205,7 +207,7 @@ re_refresh(EditLine *el)
size_t termsz;
#endif
- ELRE_DEBUG(1, (__F, "el->el_line.buffer = :" FSTR ":\r\n",
+ ELRE_DEBUG(1, (__F, "el->el_line.buffer = :%ls:\r\n",
el->el_line.buffer));
/* reset the Drawing cursor */
@@ -251,7 +253,7 @@ re_refresh(EditLine *el)
for (cp = st; cp < el->el_line.lastchar; cp++) {
if (cp == el->el_line.cursor) {
- int w = Width(*cp);
+ int w = wcwidth(*cp);
/* save for later */
cur.h = el->el_refresh.r_cursor.h;
cur.v = el->el_refresh.r_cursor.v;
@@ -1021,7 +1023,7 @@ re_refresh_cursor(EditLine *el)
continue;
break;
default:
- w = Width(*cp);
+ w = wcwidth(*cp);
if (w > 1 && h + w > th) { /* won't fit on line */
h = 0;
v++;
@@ -1037,7 +1039,7 @@ re_refresh_cursor(EditLine *el)
}
/* if we have a next character, and it's a doublewidth one, we need to
* check whether we need to linebreak for it to fit */
- if (cp < el->el_line.lastchar && (w = Width(*cp)) > 1)
+ if (cp < el->el_line.lastchar && (w = wcwidth(*cp)) > 1)
if (h + w > th) {
h = 0;
v++;
@@ -1056,7 +1058,7 @@ re_refresh_cursor(EditLine *el)
private void
re_fastputc(EditLine *el, wint_t c)
{
- int w = Width((Char)c);
+ int w = wcwidth((Char)c);
while (w > 1 && el->el_cursor.h + w > el->el_terminal.t_size.h)
re_fastputc(el, ' ');
Index: src/lib/libedit/tty.c
diff -u src/lib/libedit/tty.c:1.59 src/lib/libedit/tty.c:1.60
--- src/lib/libedit/tty.c:1.59 Mon Mar 21 21:34:32 2016
+++ src/lib/libedit/tty.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: tty.c,v 1.59 2016/03/22 01:34:32 christos Exp $ */
+/* $NetBSD: tty.c,v 1.60 2016/04/09 18:43:17 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.59 2016/03/22 01:34:32 christos Exp $");
+__RCSID("$NetBSD: tty.c,v 1.60 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -919,15 +919,17 @@ tty_bind_char(EditLine *el, int force)
continue;
/* Put the old default binding back, and set the new binding */
keymacro_clear(el, map, old);
- map[UC(old[0])] = dmap[UC(old[0])];
+ map[(unsigned char)old[0]] = dmap[(unsigned char)old[0]];
keymacro_clear(el, map, new);
/* MAP_VI == 1, MAP_EMACS == 0... */
- map[UC(new[0])] = tp->bind[el->el_map.type];
+ map[(unsigned char)new[0]] = tp->bind[el->el_map.type];
if (dalt) {
keymacro_clear(el, alt, old);
- alt[UC(old[0])] = dalt[UC(old[0])];
+ alt[(unsigned char)old[0]] =
+ dalt[(unsigned char)old[0]];
keymacro_clear(el, alt, new);
- alt[UC(new[0])] = tp->bind[el->el_map.type + 1];
+ alt[(unsigned char)new[0]] =
+ tp->bind[el->el_map.type + 1];
}
}
}
@@ -1257,7 +1259,7 @@ tty_stty(EditLine *el, int argc __attrib
if (!m->m_name) {
(void) fprintf(el->el_errfile,
- "%s: Invalid argument `" FSTR "'.\n", name, d);
+ "%s: Invalid argument `%ls'.\n", name, d);
return -1;
}
if (p) {
Index: src/lib/libedit/vi.c
diff -u src/lib/libedit/vi.c:1.55 src/lib/libedit/vi.c:1.56
--- src/lib/libedit/vi.c:1.55 Wed Mar 2 14:24:20 2016
+++ src/lib/libedit/vi.c Sat Apr 9 14:43:17 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: vi.c,v 1.55 2016/03/02 19:24:20 christos Exp $ */
+/* $NetBSD: vi.c,v 1.56 2016/04/09 18:43:17 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.55 2016/03/02 19:24:20 christos Exp $");
+__RCSID("$NetBSD: vi.c,v 1.56 2016/04/09 18:43:17 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -103,7 +103,7 @@ cv_paste(EditLine *el, wint_t c)
if (k->buf == NULL || len == 0)
return CC_ERROR;
#ifdef DEBUG_PASTE
- (void) fprintf(el->el_errfile, "Paste: \"" FSTARSTR "\"\n", (int)len,
+ (void) fprintf(el->el_errfile, "Paste: \"%.*ls\"\n", (int)len,
k->buf);
#endif
@@ -261,10 +261,10 @@ vi_change_case(EditLine *el, wint_t c)
for (i = 0; i < el->el_state.argument; i++) {
c = *el->el_line.cursor;
- if (Isupper(c))
- *el->el_line.cursor = Tolower(c);
- else if (Islower(c))
- *el->el_line.cursor = Toupper(c);
+ if (iswupper(c))
+ *el->el_line.cursor = towlower(c);
+ else if (iswlower(c))
+ *el->el_line.cursor = towupper(c);
if (++el->el_line.cursor >= el->el_line.lastchar) {
el->el_line.cursor--;
@@ -816,7 +816,7 @@ vi_match(EditLine *el, wint_t c __attrib
*el->el_line.lastchar = '\0'; /* just in case */
- i = Strcspn(el->el_line.cursor, match_chars);
+ i = wcscspn(el->el_line.cursor, match_chars);
o_ch = el->el_line.cursor[i];
if (o_ch == 0)
return CC_ERROR;
@@ -1026,7 +1026,7 @@ vi_histedit(EditLine *el, wint_t c __att
goto error;
Strncpy(line, el->el_line.buffer, len);
line[len] = '\0';
- ct_wcstombs(cp, line, TMP_BUFSIZ - 1);
+ wcstombs(cp, line, TMP_BUFSIZ - 1);
cp[TMP_BUFSIZ - 1] = '\0';
len = strlen(cp);
write(fd, cp, len);
@@ -1048,7 +1048,7 @@ vi_histedit(EditLine *el, wint_t c __att
if (st > 0) {
cp[st] = '\0';
len = (size_t)(el->el_line.limit - el->el_line.buffer);
- len = ct_mbstowcs(el->el_line.buffer, cp, len);
+ len = mbstowcs(el->el_line.buffer, cp, len);
if (len > 0 && el->el_line.buffer[len - 1] == '\n')
--len;
}
@@ -1094,12 +1094,12 @@ vi_history_word(EditLine *el, wint_t c _
wep = wsp = 0;
do {
- while (Isspace(*wp))
+ while (iswspace(*wp))
wp++;
if (*wp == 0)
break;
wsp = wp;
- while (*wp && !Isspace(*wp))
+ while (*wp && !iswspace(*wp))
wp++;
wep = wp;
} while ((!el->el_state.doingarg || --el->el_state.argument > 0)