/* getdirs.c -- (part of efr) Copyright © 1989 by William F. Hammond */ /* -- get user instructions from reader window */ #ifndef TDM_H #include "tdm.h" #endif /*********************************************************************/ UBYTE getdirs(dstr, skipptr) UBYTE *dstr; /* prompt string pointer */ WORD *skipptr; /* for return info */ { struct IntuiMessage *msg; static UBYTE smallprompt[] = " Skip N = "; UBYTE gdch; ULONG flags; WORD gskip; int dsl; gdch = '\0'; savestyle = SetSoftStyle(rp, (ULONG)FS_NORMAL, enable); while (gdch == '\0') /* this loop enables some input rejection */ { gskip = 0; SetDrMd(rp, (LONG)JAM2); Move(rp, 0L, (LONG)maxrowpix); ClearScreen(rp); SetDrMd(rp, (LONG)(JAM2|INVERSVID)); dsl = strlen(dstr); Text(rp, dstr, (LONG)dsl); flags = VANILLAKEY; Wait(1L << mw->UserPort->mp_SigBit); while(msg = (struct IntuiMessage *)GetMsg(mw->UserPort)) { if(msg->Class == VANILLAKEY) gdch = (UBYTE)msg->Code; ReplyMsg(msg); } if(gdch == CTRL_C) gdch = 'q'; if ( (gdch | 0x20) == 's') { gdch = 's'; /* simplify further testing */ gskip = (WORD)(numget(smallprompt)); } if ((gdch == 's') && (gskip == 0)) gdch = '\0'; /*refuse zero skip*/ } /*** loop (gdch == '\0') ***/ Move(rp, 0L, (LONG)maxrowpix); ClearScreen(rp); *skipptr = gskip; return gdch; }