Date: Sun, 26 Mar 1995 21:19:45 -0600 (CST) From: bob@obiwan.pmr.com (Bob Willcox) To: ache@astral.msk.su (Andrey A. Chernov Black Mage) Cc: freebsd-current@freefall.cdrom.com Subject: Re: tgetnum wierdness on -current Message-ID: <m0rt5LG-00030fC@obiwan.pmr.com> In-Reply-To: <XLIWYTlCT1@astral.msk.su> from "Andrey A. Chernov, Black Mage" at Mar 27, 95 06:50:58 am
next in thread | previous in thread | raw e-mail | index | archive | help
Andrey A. Chernov, Black Mage wrote:
>
> In message <m0rt26U-000300C@obiwan.pmr.com> Bob Willcox writes:
> >Except that here my xterm termcap entry specifies line number as
> >24, yet tgetnum("li") returns 65 when executed in a remote xterm,
> >regardless of window size or termcap setting.
>
> What do you mean by "executed in a remote xterm"?
> As I understand, you need to check environment (TERM,TERMCAP)
> and termcap file on _remote_ system...
>From an xterm on one system (running FreeBSD 1.1.5.1) I am rlogining
into another system (running FreeBSD -current built today). The
termcap file on the remote (-current) system looks ok and has a
line count of 24 (li#24). However, if I do a tgetnum("li") (or
the tput li command) the output value is 65. From a virtual console
or xterm on the -current system I get the correct output from
tgetnum("li").
>
> >On a related problem I'm having, the ioctl call in setterm() in
> >curses is failing on the second and subquent calls to setterm().
> >(This is why I saw the tgetnum("li") problem.) It works ok the
> >first time, but resizing the window exposes the failure when the
> >application does another initscr(). The application (and curses)
> >then thinks the window has 65 rows and misbehaves accordingly.
>
> I don't think that application can use several initscr()s, only one.
> But you can use several endwin()s freely, next refresh() must
> restore screen modes after endwin().
The application in question is files-2.2p1 that I am trying to port
to run on FreeBSD. Whenever it receives a SIGWINCH signal it
terminates the current window by calling endwin() then reinstates
it by calling initscr(). It also calls wrefresh() for each of its
logical windows plus a number of other initializations.
I can email you the file that handles all of this if you would like
(its about 1000 lines). I have had little experience with curses
and can't really tell if what is being done is ligitmate or not.
--
Bob Willcox ...!{rutgers|ames}!cs.utexas.edu!uudell!obiwan!bob
Austin, TX or: @uudell.us.dell.com:obiwan!bob
512-258-4224 (home), 512-838-3914 (work) or: obiwan%bob@uunet.uu.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?m0rt5LG-00030fC>
