/* 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;
}