1*32145Sminshall #include "externs.h" 2*32145Sminshall #include "defines.h" 3*32145Sminshall 4*32145Sminshall /* 5*32145Sminshall * Initialize variables. 6*32145Sminshall */ 7*32145Sminshall 8*32145Sminshall void 9*32145Sminshall tninit() 10*32145Sminshall { 11*32145Sminshall #if defined(TN3270) 12*32145Sminshall Sent3270TerminalType = 0; 13*32145Sminshall Ifrontp = Ibackp = Ibuf; 14*32145Sminshall #endif /* defined(TN3270) */ 15*32145Sminshall 16*32145Sminshall init_terminal(); 17*32145Sminshall 18*32145Sminshall init_network(); 19*32145Sminshall 20*32145Sminshall init_telnet(); 21*32145Sminshall 22*32145Sminshall #if defined(TN3270) 23*32145Sminshall init_ctlr(); /* Initialize some things */ 24*32145Sminshall init_keyboard(); 25*32145Sminshall init_screen(); 26*32145Sminshall init_system(); 27*32145Sminshall #endif /* defined(TN3270) */ 28*32145Sminshall } 29*32145Sminshall 30*32145Sminshall 31*32145Sminshall /* 32*32145Sminshall * main. Parse arguments, invoke the protocol or command parser. 33*32145Sminshall */ 34*32145Sminshall 35*32145Sminshall 36*32145Sminshall void 37*32145Sminshall main(argc, argv) 38*32145Sminshall int argc; 39*32145Sminshall char *argv[]; 40*32145Sminshall { 41*32145Sminshall tninit(); /* Clear out things */ 42*32145Sminshall 43*32145Sminshall TerminalSaveState(); 44*32145Sminshall 45*32145Sminshall prompt = argv[0]; 46*32145Sminshall while ((argc > 1) && (argv[1][0] == '-')) { 47*32145Sminshall if (!strcmp(argv[1], "-d")) { 48*32145Sminshall debug = 1; 49*32145Sminshall } else if (!strcmp(argv[1], "-n")) { 50*32145Sminshall if ((argc > 1) && (argv[2][0] != '-')) { /* get file name */ 51*32145Sminshall NetTrace = fopen(argv[2], "w"); 52*32145Sminshall argv++; 53*32145Sminshall argc--; 54*32145Sminshall if (NetTrace == NULL) { 55*32145Sminshall NetTrace = stdout; 56*32145Sminshall } 57*32145Sminshall } 58*32145Sminshall } else { 59*32145Sminshall #if defined(TN3270) && defined(unix) 60*32145Sminshall if (!strcmp(argv[1], "-t")) { 61*32145Sminshall if ((argc > 1) && (argv[2][0] != '-')) { /* get file name */ 62*32145Sminshall transcom = tline; 63*32145Sminshall (void) strcpy(transcom, argv[1]); 64*32145Sminshall argv++; 65*32145Sminshall argc--; 66*32145Sminshall } 67*32145Sminshall } else if (!strcmp(argv[1], "-noasynch")) { 68*32145Sminshall noasynch = 1; 69*32145Sminshall } else 70*32145Sminshall #endif /* defined(TN3270) && defined(unix) */ 71*32145Sminshall if (argv[1][1] != '\0') { 72*32145Sminshall fprintf(stderr, "Unknown option *%s*.\n", argv[1]); 73*32145Sminshall } 74*32145Sminshall } 75*32145Sminshall argc--; 76*32145Sminshall argv++; 77*32145Sminshall } 78*32145Sminshall if (argc != 1) { 79*32145Sminshall if (setjmp(toplevel) != 0) 80*32145Sminshall Exit(0); 81*32145Sminshall tn(argc, argv); 82*32145Sminshall } 83*32145Sminshall setjmp(toplevel); 84*32145Sminshall for (;;) { 85*32145Sminshall #if !defined(TN3270) 86*32145Sminshall command(1); 87*32145Sminshall #else /* !defined(TN3270) */ 88*32145Sminshall if (!shell_active) { 89*32145Sminshall command(1); 90*32145Sminshall } else { 91*32145Sminshall #if defined(TN3270) 92*32145Sminshall shell_continue(); 93*32145Sminshall #endif /* defined(TN3270) */ 94*32145Sminshall } 95*32145Sminshall #endif /* !defined(TN3270) */ 96*32145Sminshall } 97*32145Sminshall } 98