summaryrefslogtreecommitdiff
path: root/src/evemu.c
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@bitmath.org>2011-04-20 11:06:05 +0200
committerHenrik Rydberg <rydberg@bitmath.org>2011-04-20 11:12:56 +0200
commita34e5eef0cdea38397542a0a430be336f5087981 (patch)
tree0c80b183457d02fbc1f1d7861d865119728736d9 /src/evemu.c
parent3deb1e767bfd609e999e7a4de11b6856cbb1e954 (diff)
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 <rydberg@bitmath.org>
Diffstat (limited to 'src/evemu.c')
-rw-r--r--src/evemu.c6
1 files changed, 2 insertions, 4 deletions
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)
219 SYSCALL(rc = ioctl(fd, EVIOCGNAME(sizeof(dev->name)), dev->name)); 219 SYSCALL(rc = ioctl(fd, EVIOCGNAME(sizeof(dev->name)), dev->name));
220 if (rc < 0) 220 if (rc < 0)
221 return rc; 221 return rc;
222 for (i = 0; i < sizeof(dev->name); i++)
223 if (isspace(dev->name[i]))
224 dev->name[i] = '-';
225 222
226 SYSCALL(rc = ioctl(fd, EVIOCGID, &dev->id)); 223 SYSCALL(rc = ioctl(fd, EVIOCGID, &dev->id));
227 if (rc < 0) 224 if (rc < 0)
@@ -339,7 +336,8 @@ int evemu_read(struct evemu_device *dev, FILE *fp)
339 336
340 memset(dev, 0, sizeof(*dev)); 337 memset(dev, 0, sizeof(*dev));
341 338
342 ret = fscanf(fp, "N: %s\n", dev->name); 339 /* limited by UINPUT_MAX_NAME_SIZE */
340 ret = fscanf(fp, "N: %79[^\n]\n", dev->name);
343 if (ret <= 0) 341 if (ret <= 0)
344 return ret; 342 return ret;
345 343