Module Name: src
Committed By: christos
Date: Fri Feb 12 15:36:08 UTC 2016
Modified Files:
src/lib/libedit: el.h eln.c read.c
Log Message:
GC IGNORE_EXTCHARS and simplify code (Ingo Schwarze)
To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.26 src/lib/libedit/el.h
cvs rdiff -u -r1.19 -r1.20 src/lib/libedit/eln.c
cvs rdiff -u -r1.75 -r1.76 src/lib/libedit/read.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/el.h
diff -u src/lib/libedit/el.h:1.25 src/lib/libedit/el.h:1.26
--- src/lib/libedit/el.h:1.25 Fri Jul 29 19:44:44 2011
+++ src/lib/libedit/el.h Fri Feb 12 10:36:08 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: el.h,v 1.25 2011/07/29 23:44:44 christos Exp $ */
+/* $NetBSD: el.h,v 1.26 2016/02/12 15:36:08 christos Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -58,7 +58,6 @@
#define EDIT_DISABLED 0x04
#define UNBUFFERED 0x08
#define CHARSET_IS_UTF8 0x10
-#define IGNORE_EXTCHARS 0x20 /* Ignore characters read > 0xff */
#define NARROW_HISTORY 0x40
#define NARROW_READ 0x80
Index: src/lib/libedit/eln.c
diff -u src/lib/libedit/eln.c:1.19 src/lib/libedit/eln.c:1.20
--- src/lib/libedit/eln.c:1.19 Mon May 18 11:07:04 2015
+++ src/lib/libedit/eln.c Fri Feb 12 10:36:08 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: eln.c,v 1.19 2015/05/18 15:07:04 christos Exp $ */
+/* $NetBSD: eln.c,v 1.20 2016/02/12 15:36:08 christos Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
*/
#include "config.h"
#if !defined(lint) && !defined(SCCSID)
-__RCSID("$NetBSD: eln.c,v 1.19 2015/05/18 15:07:04 christos Exp $");
+__RCSID("$NetBSD: eln.c,v 1.20 2016/02/12 15:36:08 christos Exp $");
#endif /* not lint && not SCCSID */
#include "histedit.h"
@@ -50,12 +50,7 @@ el_getc(EditLine *el, char *cp)
int num_read;
wchar_t wc = 0;
- if (!(el->el_flags & CHARSET_IS_UTF8))
- el->el_flags |= IGNORE_EXTCHARS;
num_read = el_wgetc (el, &wc);
- if (!(el->el_flags & CHARSET_IS_UTF8))
- el->el_flags &= ~IGNORE_EXTCHARS;
-
if (num_read > 0)
*cp = (char)wc;
return num_read;
@@ -76,8 +71,6 @@ el_gets(EditLine *el, int *nread)
{
const wchar_t *tmp;
- if (!(el->el_flags & CHARSET_IS_UTF8))
- el->el_flags |= IGNORE_EXTCHARS;
tmp = el_wgets(el, nread);
if (tmp != NULL) {
size_t nwread = 0;
@@ -85,8 +78,6 @@ el_gets(EditLine *el, int *nread)
nwread += ct_enc_width(tmp[i]);
*nread = (int)nwread;
}
- if (!(el->el_flags & CHARSET_IS_UTF8))
- el->el_flags &= ~IGNORE_EXTCHARS;
return ct_encode_string(tmp, &el->el_lgcyconv);
}
Index: src/lib/libedit/read.c
diff -u src/lib/libedit/read.c:1.75 src/lib/libedit/read.c:1.76
--- src/lib/libedit/read.c:1.75 Fri Feb 12 10:11:09 2016
+++ src/lib/libedit/read.c Fri Feb 12 10:36:08 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: read.c,v 1.75 2016/02/12 15:11:09 christos Exp $ */
+/* $NetBSD: read.c,v 1.76 2016/02/12 15:36:08 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.75 2016/02/12 15:11:09 christos Exp $");
+__RCSID("$NetBSD: read.c,v 1.76 2016/02/12 15:36:08 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -305,7 +305,6 @@ read_char(EditLine *el, Char *cp)
int tried = 0;
char cbuf[MB_LEN_MAX];
size_t cbp = 0;
- int bytes = 0;
int save_errno = errno;
again:
@@ -341,12 +340,11 @@ read_char(EditLine *el, Char *cp)
#ifdef WIDECHAR
do {
mbstate_t mbs;
- size_t rbytes;
again_lastbyte:
++cbp;
/* This only works because UTF8 is stateless */
memset(&mbs, 0, sizeof(mbs));
- switch (rbytes = ct_mbrtowc(cp, cbuf, cbp, &mbs)) {
+ switch (ct_mbrtowc(cp, cbuf, cbp, &mbs)) {
case (size_t)-1:
if (cbp > 1) {
/*
@@ -377,20 +375,14 @@ again_lastbyte:
goto again;
default:
/* Valid character, process it. */
- bytes = (int)rbytes;
break;
}
} while (/*CONSTCOND*/0);
#else
- *cp = (Char)(unsigned char)cbuf[0];
+ *cp = (Char)(unsigned char)cbuf[0];
#endif
- if ((el->el_flags & IGNORE_EXTCHARS) && bytes > 1) {
- cbp = 0; /* skip this character */
- goto again;
- }
-
- return (int)num_read;
+ return 1;
}
/* read_pop():