3e4 /* waitstr waits for a given string from stdin */ #include #include #include #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; } . 0