From 042c70beed197fbe0b81523d9ddd12b4fa4b8af0 Mon Sep 17 00:00:00 2001 From: Tom Lear Date: Wed, 20 Jul 2011 13:17:16 +0300 Subject: ignore gaps in the input device numbering This bug can be reproduced on any architecture, plug in 2 usb mice, then unplug the first one... there's your gap in event device numbers. http://bugs.debian.org/326149 --- lsinput.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lsinput.c b/lsinput.c index 45f50e5..b500d03 100644 --- a/lsinput.c +++ b/lsinput.c @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -10,14 +11,19 @@ static void list_devices(void) { int i,fd; + char filename[32]; + struct stat statbuf; for (i = 0; i < 32; i++) { - /* try to open */ - fd = device_open(i,1); - if (-1 == fd) - return; - device_info(fd); - close(fd); + snprintf(filename,sizeof(filename), "/dev/input/event%d",i); + if (stat(filename, &statbuf) == 0) { + /* try to open */ + fd = device_open(i,1); + if (-1 == fd) + return; + device_info(fd); + close(fd); + } } return; } -- cgit