NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bin/57072: nvi error "Error: move: l(24 + 0) c(80 + 0)"



The following reply was made to PR bin/57072; it has been noted by GNATS.

From: Rin Okuyama <rokuyama.rk%gmail.com@localhost>
To: gnats-bugs%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost,
 Simon Burge <simonb%netbsd.org@localhost>
Cc: Brett Lymn <blymn%NetBSD.org@localhost>
Subject: Re: bin/57072: nvi error "Error: move: l(24 + 0) c(80 + 0)"
Date: Tue, 25 Oct 2022 21:52:59 +0900

 (blymn@ added to cc:)
 
 On 2022/10/24 11:55, Simon Burge wrote:
 >> Description:
 > 	nvi gives the an error like
 > 		Error: move: l(24 + 0) c(80 + 0)
 > 	under certain conditions where it tries to write a long
 > 	status line after an operation (eg, file write).
 >> How-To-Repeat:
 > 	On a window that is 80 characters wide and:
 > 	  jot 10 > /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 > 	  vi /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 > 	and type:
 > 	  :w
 
 I'm not sure whether nvi is not guilty here, but it seems that nvi hits
 a curses bug or its undefined behavior.
 
 If nvi is built with ncursesw from pkgsrc by this patch:
 
 https://gist.github.com/rokuyama/233bae41dc5cef273dfb73a64423a7fd
 
 the error does not occur.
 
 With extra CTRACE output by this patch:
 
 https://gist.github.com/rokuyama/1a7ea9f534805a302cc23c453cbf01fa
 
 the error turned out to occur as follows. For 80x24 xterm screen:
 
 (1) nvi outputs a 80-column message:
 
 /tmp/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: 10 lines, 21 characters.
 
 at the bottom line, i.e., (y, x) = (23, 0).
 
 (2) Cursor moves to (23, 80), and this (y, x) is returned to getsyx().
 
 (3) move(y, x) fails since x == win->maxx.
 
 Here is full CTRACE for nvi:
 
 http://www.netbsd.org/~rin/nvi-ctrace.20221025.gz
 
 Thanks,
 rin
 


Home | Main Index | Thread Index | Old Index