
#include "k.h"

/*
 *      Various KERMIT utilities.
 */

/* converts a control character to a printable one by adding a space */
char tochar(ch)
char ch;
{
        return(ch + ' ');                 /* make sure not a control char */
}


/* undoes tochar */
char unchar(ch)
char ch;
{
        return(ch - ' ');                               /* restore char */
}


/*
 * turns a control character into a printable character by toggling the
 * control bit (ie. ^A becomes A and A becomes ^A).
 */
char ctl(ch)
char ch;
{
        return(ch ^ 64);                      /* toggle the "control" bit */
}


/* fill the array data with the appropriate send-init paramaters */
spar(data)
char data[];
{
        data[0] = tochar(MAXPACK);          /* biggest packet I can receive */
        data[1] = tochar(MYTIME);           /* when I want to be timed out */
        data[2] = tochar(MYPAD);            /* how much padding I need */
        data[3] = ctl(MYPCHAR);             /* padding character I want */
        data[4] = tochar(MYEOL);            /* end-of-line character I want */
        data[5] = MYQUOTE;                  /* quote character I send */
}


/* get the other host's send-init parameters */
rpar(data)
char data[];
{
        spsiz = unchar(data[0]);              /* maximum send packet size */
        timint = unchar(data[1]);             /* when I should time out */
        pad = unchar(data[2]);                /* number of pads to send */
        padchar = ctl(data[3]);               /* padding character to send */
        eol = unchar(data[4]);                /* EOL character I must send */
        quote = data[5];                      /* incoming data quote char */
}
