Newsgroups: rec.arts.int-fiction
Path: news.duke.edu!newsgate.duke.edu!nntp-out.monmouth.com!newspeer.monmouth.com!newspeer1.nac.net!news.mv.net!world!buzzard
From: buzzard@world.std.com (Sean T Barrett)
Subject: Re: [inform] no status line tip
Message-ID: <G5I3B4.9us@world.std.com>
Date: Wed, 13 Dec 2000 09:49:52 GMT
References: <G5GC6D.3nM@world.std.com> <slrn93d115.1ge.ahunter@chrysoprase.localdomain>
Organization: The World Public Access UNIX, Brookline, MA
Lines: 49
Xref: news.duke.edu rec.arts.int-fiction:81433

Andrew Hunter <ahunter@chrysoprase.logicalshift.org.uk> wrote:
>In article <G5GC6D.3nM@world.std.com>, Sean T Barrett wrote:
>>[ DrawStatusLine;
>>   @split_window 0;
>>   @set_window 0;
>>   style roman;
>>];
>
>Hm, the libraries I've looked at tend to finish up with an
>@erase_window $ffff, which should get rid of the upper window.
>If it doesn't, then that's presumably
>a bug in your interpreter (at least, if it wants to claim compliance to
>the Z-Machine standard)

Well, (a) clearly it *is* a consequence of the normal
DrawStatusLine that it leaves the system in that sort of
state--that it doesn't care what the current split state
is, it sets the current window, and it puts the style back
roman; so it seems wise to go ahead and force that state,
since it's possible that some library could rely on it
(perhaps unintentionally).

(b) the library I'm using either does @erase_window -1 or
@erase_window 1, and I didn't really feel like tracing all
the way through to figure it out.  So maybe it's an
interp bug in wzip and MaxZip, but probably not.

For reference the code in the library I'm using is:

   if (Menu_Mode==traditional) @erase_window -1;
   else
   #ifdef V6DEFS_H;
    StatusWin.Erase();
   #ifnot;
    @erase_window 1;
   #endif;
   #ifdef V6DEFS_H;
   MainWin.Activate();
   ActiveZWinStyle.Activate();
   #ifnot;
   font on; @set_cursor 1 1;
   #endif;
   if (deadflag==0 && inflag==0)
   {
    DrawStatusline();
    <<Look>>;
   }

SeanB
