/* waitstr  waits for a given string from stdin */

#include <stdio.h>
#include <string.h>
#include <unistd.h>


#define FALSE   0
#define TRUE    1

char scanstr[80];
int echo = FALSE;


main(int argc, char **argv)
{
       int c;

       if(argc == 1)
               return;

       if(! getopts(argc, argv))
               exit(1);

       memset(scanstr, 0x20, 80);           /* Fill with spaces first */

       while(1) {
               c = fgetc(stdin);
               if(echo) fputc(c, stdout);

               strcpy(scanstr,&scanstr[1]);
                       scanstr[79] = (char)c;
               if(strstr(scanstr, argv[optind]))
                       break;
       }
       return 0;
}


getopts(int argc, char **argv)
{
       int c;
       opterr = 0;

       while((c = getopt(argc, argv, "e")) != -1) {
               switch(c) {
                       case 'e':
                               echo = TRUE;
                               break;
                       case '?':
                               if(isprint(optopt))
                                       fprintf(stderr, "Unknown option '-%c'.\n", optopt);
                               else
                                       fprintf(stderr, "Unknown option character '\\x%x'.\n", optopt);
                               return 0;
                       default:
                               abort();
               }
       }
       return 1;
}