Module Name:    src
Committed By:   christos
Date:           Mon Nov 28 18:25:26 UTC 2016

Modified Files:
        src/lib/libcurses: addbytes.c

Log Message:
If we are inserting spaces to account for a tab, move the x position of the
cursor, otherwise this is a no-op (Carsten Kunze)


To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 src/lib/libcurses/addbytes.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/libcurses/addbytes.c
diff -u src/lib/libcurses/addbytes.c:1.43 src/lib/libcurses/addbytes.c:1.44
--- src/lib/libcurses/addbytes.c:1.43	Sat Oct 22 17:55:06 2016
+++ src/lib/libcurses/addbytes.c	Mon Nov 28 13:25:26 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: addbytes.c,v 1.43 2016/10/22 21:55:06 christos Exp $	*/
+/*	$NetBSD: addbytes.c,v 1.44 2016/11/28 18:25:26 christos Exp $	*/
 
 /*
  * Copyright (c) 1987, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)addbytes.c	8.4 (Berkeley) 5/4/94";
 #else
-__RCSID("$NetBSD: addbytes.c,v 1.43 2016/10/22 21:55:06 christos Exp $");
+__RCSID("$NetBSD: addbytes.c,v 1.44 2016/11/28 18:25:26 christos Exp $");
 #endif
 #endif				/* not lint */
 
@@ -217,9 +217,11 @@ _cursesi_addbyte(WINDOW *win, __LINE **l
 		case '\t':
 			tabsize = win->screen->TABSIZE;
 			PSYNCH_OUT;
-			for (i = 0; i < (tabsize - (*x % tabsize)); i++) {
+			newx = tabsize - (*x % tabsize);
+			for (i = 0; i < newx; i++) {
 				if (waddbytes(win, blank, 1) == ERR)
 					return (ERR);
+				(*x)++;
 			}
 			PSYNCH_IN;
 			return (OK);
@@ -380,9 +382,11 @@ _cursesi_addwchar(WINDOW *win, __LINE **
 			cc.elements = 1;
 			cc.attributes = win->wattr;
 			tabsize = win->screen->TABSIZE;
-			for (i = 0; i < tabsize - (*x % tabsize); i++) {
+			newx = tabsize - (*x % tabsize);
+			for (i = 0; i < newx; i++) {
 				if (wadd_wch(win, &cc) == ERR)
 					return ERR;
+				(*x)++;
 			}
 			return OK;
 		}

Reply via email to