main() { startup(); while(ActionStackIsNotEmpty()) { if(!ExecuteNextAction()) break; } fclose(outfile); CursorOn(); ScClr(); } startup() { /* This configures the screen into the various windows */ ConScr("a",0,0,80,25,adnorm,Nullbox,Nullgut); ConScr("ab00a1a",0,0,80,1,awhbl,Nullbox,Nullgut); /* This sets up the individual fields */ StEditSpecMember(hdrmems[custname_edit],hdrmast,"ab00a1a", (CustNameMaxLength + 1)); StInputOffset(hdrmems[custname_edit],1); StValtype(hdrmems[custname_edit],KiVNone); StIsRequiredField(hdrmems[custname_edit]); SetUserStConnection(hdrmems[custname_edit],"C %s\n"); StEditSpecMember(hdrmems[custaddr_edit],hdrmast,"ab00a2a", (CustAddrMaxLength + 1)); StInputOffset(hdrmems[custaddr_edit],1); StValtype(hdrmems[custaddr_edit],KiVNone); StIsRequiredField(hdrmems[custaddr_edit]); SetUserStConnection(hdrmems[custaddr_edit],"A %s\n"); StackAction("another"); return(1); } int another() /* Do another invoice? */ { int yes; end_keystroke = ENTER; /* signal this routine has run */ yes = num_invoices ? yesno(" Do another invoice?") : 1; if (yes) { fputs("N\n",outfile); StackAction("header"); } else UnstackAction(); return(1); }