Module Name: src Committed By: christos Date: Thu Dec 5 22:21:53 UTC 2024
Modified Files: src/lib/libedit: literal.c refresh.c Log Message: Don't eat 0 width characters, print them. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/lib/libedit/literal.c cvs rdiff -u -r1.59 -r1.60 src/lib/libedit/refresh.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/literal.c diff -u src/lib/libedit/literal.c:1.5 src/lib/libedit/literal.c:1.6 --- src/lib/libedit/literal.c:1.5 Tue Jul 23 09:10:11 2019 +++ src/lib/libedit/literal.c Thu Dec 5 17:21:53 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: literal.c,v 1.5 2019/07/23 13:10:11 christos Exp $ */ +/* $NetBSD: literal.c,v 1.6 2024/12/05 22:21:53 christos Exp $ */ /*- * Copyright (c) 2017 The NetBSD Foundation, Inc. @@ -31,7 +31,7 @@ #include "config.h" #if !defined(lint) && !defined(SCCSID) -__RCSID("$NetBSD: literal.c,v 1.5 2019/07/23 13:10:11 christos Exp $"); +__RCSID("$NetBSD: literal.c,v 1.6 2024/12/05 22:21:53 christos Exp $"); #endif /* not lint && not SCCSID */ /* @@ -85,7 +85,7 @@ literal_add(EditLine *el, const wchar_t w = wcwidth(end[1]); /* column width of the visible char */ *wp = (int)w; - if (w <= 0) /* we require something to be printed */ + if (w < 0) /* non-printable characters are negative */ return 0; len = (size_t)(end - buf); Index: src/lib/libedit/refresh.c diff -u src/lib/libedit/refresh.c:1.59 src/lib/libedit/refresh.c:1.60 --- src/lib/libedit/refresh.c:1.59 Sun Jun 30 13:11:27 2024 +++ src/lib/libedit/refresh.c Thu Dec 5 17:21:53 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: refresh.c,v 1.59 2024/06/30 17:11:27 christos Exp $ */ +/* $NetBSD: refresh.c,v 1.60 2024/12/05 22:21:53 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.59 2024/06/30 17:11:27 christos Exp $"); +__RCSID("$NetBSD: refresh.c,v 1.60 2024/12/05 22:21:53 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -168,7 +168,7 @@ re_putliteral(EditLine *el, const wchar_ int i, w; c = literal_add(el, begin, end, &w); - if (c == 0 || w <= 0) + if (c == 0 || w < 0) return; el->el_vdisplay[cur->v][cur->h] = c; @@ -178,7 +178,7 @@ re_putliteral(EditLine *el, const wchar_ while (--i > 0) el->el_vdisplay[cur->v][cur->h + i] = MB_FILL_CHAR; - cur->h += w; + cur->h += w ? w : 1; if (cur->h >= sizeh) { /* assure end of line */ el->el_vdisplay[cur->v][sizeh] = '\0'; @@ -212,7 +212,7 @@ re_putc(EditLine *el, wint_t c, int shif if (!shift) return; - cur->h += w; /* advance to next place */ + cur->h += w ? w : 1; /* advance to next place */ if (cur->h >= sizeh) { /* assure end of line */ el->el_vdisplay[cur->v][sizeh] = '\0';