1*32381Sminshall #include <sys/types.h> 2*32381Sminshall 3*32381Sminshall #include "ring.h" 4*32381Sminshall 532145Sminshall #include "externs.h" 632145Sminshall #include "defines.h" 732145Sminshall 832145Sminshall /* 932145Sminshall * Initialize variables. 1032145Sminshall */ 1132145Sminshall 1232145Sminshall void 1332145Sminshall tninit() 1432145Sminshall { 1532145Sminshall init_terminal(); 1632145Sminshall 1732145Sminshall init_network(); 1832145Sminshall 1932145Sminshall init_telnet(); 2032145Sminshall } 2132145Sminshall 2232145Sminshall 2332145Sminshall /* 2432145Sminshall * main. Parse arguments, invoke the protocol or command parser. 2532145Sminshall */ 2632145Sminshall 2732145Sminshall 2832145Sminshall void 2932145Sminshall main(argc, argv) 3032145Sminshall int argc; 3132145Sminshall char *argv[]; 3232145Sminshall { 3332145Sminshall tninit(); /* Clear out things */ 3432145Sminshall 3532145Sminshall TerminalSaveState(); 3632145Sminshall 3732145Sminshall prompt = argv[0]; 3832145Sminshall while ((argc > 1) && (argv[1][0] == '-')) { 3932145Sminshall if (!strcmp(argv[1], "-d")) { 4032145Sminshall debug = 1; 4132145Sminshall } else if (!strcmp(argv[1], "-n")) { 4232145Sminshall if ((argc > 1) && (argv[2][0] != '-')) { /* get file name */ 4332145Sminshall NetTrace = fopen(argv[2], "w"); 4432145Sminshall argv++; 4532145Sminshall argc--; 4632145Sminshall if (NetTrace == NULL) { 4732145Sminshall NetTrace = stdout; 4832145Sminshall } 4932145Sminshall } 5032145Sminshall } else { 5132145Sminshall #if defined(TN3270) && defined(unix) 5232145Sminshall if (!strcmp(argv[1], "-t")) { 5332145Sminshall if ((argc > 1) && (argv[2][0] != '-')) { /* get file name */ 5432145Sminshall transcom = tline; 5532145Sminshall (void) strcpy(transcom, argv[1]); 5632145Sminshall argv++; 5732145Sminshall argc--; 5832145Sminshall } 5932145Sminshall } else if (!strcmp(argv[1], "-noasynch")) { 6032145Sminshall noasynch = 1; 6132145Sminshall } else 6232145Sminshall #endif /* defined(TN3270) && defined(unix) */ 6332145Sminshall if (argv[1][1] != '\0') { 6432145Sminshall fprintf(stderr, "Unknown option *%s*.\n", argv[1]); 6532145Sminshall } 6632145Sminshall } 6732145Sminshall argc--; 6832145Sminshall argv++; 6932145Sminshall } 7032145Sminshall if (argc != 1) { 7132145Sminshall if (setjmp(toplevel) != 0) 7232145Sminshall Exit(0); 7332145Sminshall tn(argc, argv); 7432145Sminshall } 7532145Sminshall setjmp(toplevel); 7632145Sminshall for (;;) { 7732145Sminshall #if !defined(TN3270) 7832145Sminshall command(1); 7932145Sminshall #else /* !defined(TN3270) */ 8032145Sminshall if (!shell_active) { 8132145Sminshall command(1); 8232145Sminshall } else { 8332145Sminshall #if defined(TN3270) 8432145Sminshall shell_continue(); 8532145Sminshall #endif /* defined(TN3270) */ 8632145Sminshall } 8732145Sminshall #endif /* !defined(TN3270) */ 8832145Sminshall } 8932145Sminshall } 90