static int toggle_trace() { if(extra_option("funcs")) EiC_traceFunc = !EiC_traceFunc; else EiC_traceFunc = 0; if(EiC_traceFunc) EiC_traceON = 1; else EiC_traceON = !EiC_traceON; return EiC_traceON; }
static int toggle_listcode() { if(extra_option("linenums")) EiC_lineNums = !EiC_lineNums; else EiC_lineNums = 0; if(EiC_lineNums) EiC_listcodeON = 1; else EiC_listcodeON = !EiC_listcodeON; return EiC_listcodeON; }
int main( int argc, char *argv[] ) { int opt, file_count = 0; pname = basename(argv[0]); if ( argc < 2 ) { Puterr( "insufficient arguments\n" ); exit(1); } prefix[0] = '\0'; /* No prefix and forced file name off by default */ logfile[0] = '\0'; /* No activity log file by default */ force = newer = relaxed = today = verbose = quiet = qterm = FALSE; make_dir = TRUE; onesec = ONESEC; retry_limit = RETRY_MAX; if (optind==0) /* 16-bit */ ++optind; /* Skip over command name */ if ( *argv[optind] == '/' ) { /*-- Check for a device over-ride ----*/ if ( ( mdm = open( argv[1], O_RDWR ) ) == -1 ) { Puterr( "unable to open device '%s'\n", argv[1] ); exit( 1 ); } ++optind; /* Skip over specified device name */ } else { /*-- No device override so use stdin/stdout to communicate ----*/ struct stat statbuf; strcpy( device, ttyname( 0 ) ); if( fstat( 0, &statbuf ) != -1 && S_ISSOCK(statbuf.st_mode) ) { socket = 1; mdm = 0; } else if ( ( mdm = open( device, O_RDWR ) ) == -1 ) { Puterr( "unable to open stdin as r/w\n" ); exit( 1 ); } use_stdin = TRUE; } signal( SIGALRM, (void *)&timeout ); init_mdm(); /* Setup the selected modem port and initialize */ /* any variables associated with the protocol. */ if ( ( *argv[optind] | ' ' ) == 'r') sending = FALSE; else if ( ( *argv[optind] | ' ' ) == 's' && argc > 2 ) sending = TRUE; else { Puterr( "Invalid argument '%s' (must be 'se' or 're')\n", argv[optind] ); exit( 1 ); } ++optind; /*---- Ready for command line options ----*/ while( ( opt = getopt( argc, argv, "FmnqrtuvVQf:l:p:s:" ) ) != -1 ) { switch( opt ) { case 'F': flashfile = TRUE; break; case 'f': strcpy( prefix, optarg ); force = TRUE; break; case 'l': strcpy( logfile, optarg ); break; case 'm': make_dir = FALSE; break; case 'n': newer = TRUE; break; case 'r': relaxed = TRUE; onesec <<= 2; /* Timeouts 4 times larger */ retry_limit <<= 1; /* Twice as many retries */ break; case 's': sub_packet_size = atoi( optarg ); sub_packet_size >>= 3; /* Divide by 8 for sub_packet */ if ( !sub_packet_size ) { Puterr( "packet size too small\n" ); exit( 1 ); } if ( sub_packet_size > MAXSIZE ) { Puterr( "packet size too large (max %d)\n", MAXSIZE*8); exit( 1 ); } break; case 't': today = TRUE; break; case 'u': unlink_file = TRUE; break; case 'V': case 'v': verbose = TRUE; break; case 'q': quiet = TRUE; break; case 'Q': qterm = TRUE; break; case 'p': strcpy( prefix, optarg ); break; case '?': if ( !extra_option( (char *)&optopt ) ) { Puterr( "unknown option '%s'\n", optopt ); exit( 1 ); } break; default: ++file_count; /* Count filenames */ continue; /* but don't null them */ } } if ( file_count > 1 ) multi_send_check(); /* Check if multi-send OK */ final_init(); /* Last changes before starting */ #ifndef __QNXNTO__ if ( !use_stdin ) dev_mode( 0, 0, _DEV_MODES ); /* Raw console input for abort requests */ #endif if ( sending ) send_files( argc - optind, (signed char **)(argv + optind) ); else receive_files( argc - optind, (signed char **)(argv + optind) ); done( 0 ); /* Protocol dependant termination routine */ return 0; }