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