/*
*  screen(1) filter to simulate the speed of a physical serial terminal
*/

#include <stdlib.h>
#include <unistd.h>
#include <termios.h>
#include "tsc_usleep.h"

#define DEFBAUD 9600


int main(int argc, char **argv)
{
   struct termios tty;
   int baud, delay;
   unsigned char c;

   tcgetattr(STDOUT_FILENO, &tty);
   cfmakeraw(&tty);
   tcsetattr(STDOUT_FILENO, TCSANOW, &tty);

   baud = DEFBAUD;
   if (argc > 1) baud = atoi(argv[1]);
   delay = 1000000 / ((double)baud / 10.);

   while (read(0, &c, 1) > 0) {
       tsc_usleep(delay);
       write(1, &c, 1);
   }

   return 0;
}