133685Sbostic /* 233685Sbostic * Copyright (c) 1988 Regents of the University of California. 333685Sbostic * All rights reserved. 433685Sbostic * 533685Sbostic * Redistribution and use in source and binary forms are permitted 633685Sbostic * provided that this notice is preserved and that due credit is given 733685Sbostic * to the University of California at Berkeley. The name of the University 833685Sbostic * may not be used to endorse or promote products derived from this 933685Sbostic * software without specific prior written permission. This software 1033685Sbostic * is provided ``as is'' without express or implied warranty. 1133685Sbostic */ 1233685Sbostic 1333685Sbostic #ifndef lint 1433685Sbostic char copyright[] = 1533685Sbostic "@(#) Copyright (c) 1988 Regents of the University of California.\n\ 1633685Sbostic All rights reserved.\n"; 1733685Sbostic #endif /* not lint */ 1833685Sbostic 1933685Sbostic #ifndef lint 20*34849Sminshall static char sccsid[] = "@(#)main.c 1.7 (Berkeley) 06/27/88"; 2133685Sbostic #endif /* not lint */ 2233685Sbostic 2332381Sminshall #include <sys/types.h> 2432381Sminshall 2532381Sminshall #include "ring.h" 2632381Sminshall 2732145Sminshall #include "externs.h" 2832145Sminshall #include "defines.h" 2932145Sminshall 3032145Sminshall /* 3132145Sminshall * Initialize variables. 3232145Sminshall */ 3332145Sminshall 3432145Sminshall void 3532145Sminshall tninit() 3632145Sminshall { 3732145Sminshall init_terminal(); 3832145Sminshall 3932145Sminshall init_network(); 4032145Sminshall 4132145Sminshall init_telnet(); 4232531Sminshall 4332531Sminshall init_sys(); 4434302Sminshall 4534302Sminshall init_3270(); 4632145Sminshall } 4732145Sminshall 4832145Sminshall 4932145Sminshall /* 5032145Sminshall * main. Parse arguments, invoke the protocol or command parser. 5132145Sminshall */ 5232145Sminshall 5332145Sminshall 54*34849Sminshall int 5532145Sminshall main(argc, argv) 5632145Sminshall int argc; 5732145Sminshall char *argv[]; 5832145Sminshall { 5932145Sminshall tninit(); /* Clear out things */ 6032145Sminshall 6132145Sminshall TerminalSaveState(); 6232145Sminshall 6332145Sminshall prompt = argv[0]; 6432145Sminshall while ((argc > 1) && (argv[1][0] == '-')) { 6532145Sminshall if (!strcmp(argv[1], "-d")) { 6632145Sminshall debug = 1; 6732145Sminshall } else if (!strcmp(argv[1], "-n")) { 6832145Sminshall if ((argc > 1) && (argv[2][0] != '-')) { /* get file name */ 6932145Sminshall NetTrace = fopen(argv[2], "w"); 7032145Sminshall argv++; 7132145Sminshall argc--; 7232145Sminshall if (NetTrace == NULL) { 7332145Sminshall NetTrace = stdout; 7432145Sminshall } 7532145Sminshall } 7632145Sminshall } else { 7732145Sminshall #if defined(TN3270) && defined(unix) 7832145Sminshall if (!strcmp(argv[1], "-t")) { 7932145Sminshall if ((argc > 1) && (argv[2][0] != '-')) { /* get file name */ 8032145Sminshall transcom = tline; 8132145Sminshall (void) strcpy(transcom, argv[1]); 8232145Sminshall argv++; 8332145Sminshall argc--; 8432145Sminshall } 8532145Sminshall } else if (!strcmp(argv[1], "-noasynch")) { 8632145Sminshall noasynch = 1; 8732145Sminshall } else 8832145Sminshall #endif /* defined(TN3270) && defined(unix) */ 8932145Sminshall if (argv[1][1] != '\0') { 9032145Sminshall fprintf(stderr, "Unknown option *%s*.\n", argv[1]); 9132145Sminshall } 9232145Sminshall } 9332145Sminshall argc--; 9432145Sminshall argv++; 9532145Sminshall } 9632145Sminshall if (argc != 1) { 9732145Sminshall if (setjmp(toplevel) != 0) 9832145Sminshall Exit(0); 99*34849Sminshall if (tn(argc, argv) == 1) { 100*34849Sminshall return 0; 101*34849Sminshall } else { 102*34849Sminshall return 1; 103*34849Sminshall } 10432145Sminshall } 105*34849Sminshall (void) setjmp(toplevel); 10632145Sminshall for (;;) { 10732145Sminshall #if !defined(TN3270) 10832145Sminshall command(1); 10932145Sminshall #else /* !defined(TN3270) */ 11032145Sminshall if (!shell_active) { 11132145Sminshall command(1); 11232145Sminshall } else { 11332145Sminshall #if defined(TN3270) 11432145Sminshall shell_continue(); 11532145Sminshall #endif /* defined(TN3270) */ 11632145Sminshall } 11732145Sminshall #endif /* !defined(TN3270) */ 11832145Sminshall } 11932145Sminshall } 120