1*31454Sminshall /* 2*31454Sminshall * getmore - get another buffer from the host. 3*31454Sminshall */ 4*31454Sminshall 5*31454Sminshall void 6*31454Sminshall getmore(buffer) 7*31454Sminshall char buffer[]; 8*31454Sminshall { 9*31454Sminshall static int next_out = 0, next_in = -1; 10*31454Sminshall 11*31454Sminshall while (seq_out != next_out) { 12*31454Sminshall set_seq(++next_in); 13*31454Sminshall enter_key(); 14*31454Sminshall wait_for_unlocked(); 15*31454Sminshall seq_out = get_seq_out(); 16*31454Sminshall if (seq_out > next_out) { /* OOPS */ 17*31454Sminshall fprintf(stderr, "Sequence number error: expected 0x%d, got 0x%d.\n", 18*31454Sminshall next_out, seq_out); 19*31454Sminshall pf3_key(); 20*31454Sminshall exit(3); 21*31454Sminshall } 22*31454Sminshall } 23*31454Sminshall } 24*31454Sminshall 25*31454Sminshall 26*31454Sminshall main(argc, argv) 27*31454Sminshall int argc; 28*31454Sminshall char *argv[]; 29*31454Sminshall { 30*31454Sminshall int data_length, input_length; 31*31454Sminshall char ascii[8]; /* Lots of room */ 32*31454Sminshall char data_array[2000]; 33*31454Sminshall FILE *outfile; 34*31454Sminshall 35*31454Sminshall if (argc < 2) { 36*31454Sminshall fprintf(stderr, "usage: %s local.file remote.file [remote.options]\n"); 37*31454Sminshall exit(1); 38*31454Sminshall } 39*31454Sminshall 40*31454Sminshall /* Open the local file */ 41*31454Sminshall if ((outfile = fopen(argv[1], "w") == NULL) { 42*31454Sminshall perror("fopen"); 43*31454Sminshall exit(2); 44*31454Sminshall } 45*31454Sminshall 46*31454Sminshall /* build the command line */ 47*31454Sminshall data = data_array; 48*31454Sminshall strcpy(data, "TNCOMP"); 49*31454Sminshall data += strlen(data); 50*31454Sminshall while (argc--) { 51*31454Sminshall *data++ = ' '; 52*31454Sminshall strcpy(data, *argv); 53*31454Sminshall data += strlen(*argv); 54*31454Sminshall argv++; 55*31454Sminshall } 56*31454Sminshall 57*31454Sminshall /* send it across */ 58*31454Sminshall 59*31454Sminshall while (!memcmp(data, " EOF", 4)) { 60*31454Sminshall if (data_length == 0) { 61*31454Sminshall data_length = getmore(data_array); 62*31454Sminshall data = data_array; 63*31454Sminshall } 64*31454Sminshall memcpy(ascii, data, 4); 65*31454Sminshall data+= 4; 66*31454Sminshall ascii[4] = 0; 67*31454Sminshall input_length = atoi(ascii); 68*31454Sminshall if ((input_length > 1) || (input_length != 1) || (data[0] != ' ')) { 69*31454Sminshall if (fwrite(data, sizeof (char), input_length, outfile) == NULL) { 70*31454Sminshall perror("fwrite"); 71*31454Sminshall exit(9); 72*31454Sminshall } 73*31454Sminshall } 74*31454Sminshall printf("\n"); 75*31454Sminshall data += input_length; 76*31454Sminshall data_length -= input_length; 77*31454Sminshall } 78*31454Sminshall } 79