From a34e5eef0cdea38397542a0a430be336f5087981 Mon Sep 17 00:00:00 2001 From: Henrik Rydberg Date: Wed, 20 Apr 2011 11:06:05 +0200 Subject: Allow spaces in device names The current code only reads a single word as the device name, and the extract function replaces spaces with hyphens to match that. This patch modifies the scan code to allow for a full line of name data, and removes the name modification during extraction. Signed-off-by: Henrik Rydberg --- src/evemu.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/evemu.c') diff --git a/src/evemu.c b/src/evemu.c index 4b20576..21187af 100644 --- a/src/evemu.c +++ b/src/evemu.c @@ -219,9 +219,6 @@ int evemu_extract(struct evemu_device *dev, int fd) SYSCALL(rc = ioctl(fd, EVIOCGNAME(sizeof(dev->name)), dev->name)); if (rc < 0) return rc; - for (i = 0; i < sizeof(dev->name); i++) - if (isspace(dev->name[i])) - dev->name[i] = '-'; SYSCALL(rc = ioctl(fd, EVIOCGID, &dev->id)); if (rc < 0) @@ -339,7 +336,8 @@ int evemu_read(struct evemu_device *dev, FILE *fp) memset(dev, 0, sizeof(*dev)); - ret = fscanf(fp, "N: %s\n", dev->name); + /* limited by UINPUT_MAX_NAME_SIZE */ + ret = fscanf(fp, "N: %79[^\n]\n", dev->name); if (ret <= 0) return ret; -- cgit v1.2.3