works
[smouse] / src / dev_smag.c
index f96ae5d..5d0e6cd 100644 (file)
@@ -76,16 +76,20 @@ static int opendev(const char *dev)
                return -1;      /* failed to get a response */
        }
 
-       ser_printf(fd, "vQ\r");
+       ser_block(fd);
 
-       while(ser_getline_block(fd, buf, sizeof buf) && buf[0] != 'v');
+       ser_printf(fd, "vQ\r");
+       do {
+               ser_getline(fd, buf, sizeof buf);
+       } while(buf[0] != 'v');
 
-       printf("DBG: \"%s\"\n", buf);
        if(buf[0] != 'v' || !strstr(buf, "MAGELLAN")) {
                fprintf(stderr, "unknown device: \"%s\"\n", buf + 1);
                ser_close(fd);
                return -1;
        }
+
+       ser_nonblock(fd);
        return fd;
 }