home *** CD-ROM | disk | FTP | other *** search
/ kermit.columbia.edu / kermit.columbia.edu.tar / kermit.columbia.edu / victor9000 / vickermit.h < prev    next >
C/C++ Source or Header  |  1991-04-17  |  2KB  |  76 lines

  1. /*
  2.  *    K e r m i t  File Transfer Utility
  3.  *
  4.  *    Unix Kermit, Columbia University, 1983
  5.  *
  6.  *    usage: kermit [csr][dlbe line baud escapechar] [f1 f2 ...]
  7.  *
  8.  *    where c=connect, s=send [files], r=receive, d=debug,
  9.  *    l=tty line, b=baud rate, e=escape char (decimal ascii code).
  10.  *    For "host" mode Kermit, format is either "kermit r" to
  11.  *    receive files, or "kermit s f1 f2 ..." to send f1 .. fn.
  12.  *
  13.  */
  14.  
  15. #include <stdio.h>
  16. #include <sgtty.h>
  17. #include <signal.h>
  18. #include <setjmp.h>
  19.  
  20. #define DBUGSW 0
  21.  
  22. #define MAXPACK        94    /* Maximum packet size */
  23. #define SOH        1    /* Start of header */
  24. #define SP        32    /* ASCII space */
  25. #define DEL        127    /* Delete (rubout) */
  26. #define CTRLD        4
  27. #define BRKCHR        CTRLD    /* default break-connection character */
  28.  
  29. #define MAXTRY        5    /* Times to retry a packet */
  30.  
  31. #define MYQUOTE        '#'    /* Quote character I will use */
  32. #define MYPAD        0    /* Number of padding characters I will need */
  33. #define MYPCHAR        0    /* Padding character I need */
  34. #define MYEOL        '\n'    /* End-Of-Line character I need */
  35. #define MYTIME        5    /* Seconds after which I should be timed out */
  36. #define MAXTIM        20    /* Maximum timeout interval */
  37. #define MINTIM        2    /* Minumum timeout interval */
  38.  
  39. #define TRUE        -1
  40. #define FALSE        0
  41.  
  42. /*
  43.  *    Global Variables
  44.  */
  45.  
  46. int    size,            /* Size of present data */
  47.     n,            /* Message number */
  48.     rpsiz,            /* Maximum receive packet size */
  49.     spsiz,            /* Maximum send packet size */
  50.     pad,            /* How much padding to send */
  51.     timint,            /* Timeout for foreign host on sends */
  52.     numtry,            /* Times this packet retried */
  53.     oldtry,            /* Times previous packet retried */
  54.     fd,            /* file pointer of file to read/write */
  55.     remfd,            /* file pointer of the host's tty */
  56.     remspd,            /* speed of this tty */
  57.     host,            /* -1 means we're a host-mode kermit */
  58.     debug;            /* -1 means debugging */
  59.  
  60. char    state,            /* Present state of the automaton */
  61.     padchar,        /* Padding character to send */
  62.     eol,            /* End-Of-Line character to send */
  63.     escchr,            /* Connect command escape character */
  64.     quote,            /* Quote character in incoming data */
  65.     **filelist,        /* list of files to be sent */
  66.     *filnam,        /* current file name */
  67.     recpkt[MAXPACK],    /* Receive packet buffer */
  68.     packet[MAXPACK];    /* Packet buffer */
  69.  
  70. jmp_buf    env;            /* environment ptr for timeout longjump */
  71.  
  72. struct sgttyb
  73.     rawmode,        /* host tty "raw" mode */
  74.     cookedmode,        /* host tty "normal" mode */
  75.     remttymode;        /* remote tty line "raw" mode */
  76.