/* * Wait for specified input from device. * $Id$ * Copyright (c) 1997 by Tycho Softworks. * For conditions on redistribution and reuse see product license. */ #include #include int waitfor(int fd, uchar *list, size_t len, int timeout, ulong max) { int key; int idx = 0; uchar *mem = (uchar *)malloc(len); while(max--) { key = inkey(fd, timeout); if(key < 0) return key; if(idx < len) mem[idx++] = (uchar)(key & 0xff); else { for(idx = 0; idx < len; ++idx) mem[idx] = mem[idx + 1]; mem[len - 1] = (uchar)(key & 0xff); } if(!memcmp(mem, list, len)) return 0; } return -1; }