- minor changes and chkconfig compatibility header in the init script.

git-svn-id: svn+ssh://svn.code.sf.net/p/spacenav/code/spacenavd@16 ef983eb1-d774-4af8-acfd-baaf7b16a646
pull/1/head
John Tsiombikas 2008-04-02 00:44:58 +00:00
rodzic 3dc652084e
commit c94780c916
2 zmienionych plików z 39 dodań i 18 usunięć

Wyświetl plik

@ -1,4 +1,10 @@
#!/bin/sh
#
# spacenavd free driver for 3Dconnexion 6dof devices
#
# chkconfig: 2345 99 99
# description: A free user space driver for 3Dconnexion input devices,\
# compatible with the proprietary 3dxsrv daemon.
DAEMON=/usr/local/bin/spacenavd

Wyświetl plik

@ -811,7 +811,7 @@ int open_dev(const char *path)
if(ioctl(dev_fd, EVIOCGNAME(sizeof(dev_name)), dev_name) == -1) {
perror("EVIOCGNAME ioctl failed\n");
return -1;
strcpy(dev_name, "unknown");
}
if(ioctl(dev_fd, EVIOCGBIT(0, sizeof(evtype_mask)), evtype_mask) == -1) {
@ -870,28 +870,43 @@ char *get_dev_path(void)
}
while(fgets(buf, sizeof buf, fp)) {
if(buf[0] == 'I') {
switch(buf[0]) {
case 'I':
valid_vendor = strstr(buf, "Vendor=046d") != 0;
} else if(buf[0] == 'N') {
break;
case 'N':
valid_str = strstr(buf, "3Dconnexion") != 0;
} else if(buf[0] == 'H' && valid_str && valid_vendor) {
char *ptr, *start;
break;
case 'H':
if(valid_str && valid_vendor) {
char *ptr, *start;
if(!(start = strchr(buf, '='))) {
continue;
}
start++;
if(!(start = strchr(buf, '='))) {
continue;
}
start++;
if((ptr = strchr(start, ' '))) {
*ptr = 0;
}
if((ptr = strchr(start, '\n'))) {
*ptr = 0;
}
if((ptr = strchr(start, ' '))) {
*ptr = 0;
}
if((ptr = strchr(start, '\n'))) {
*ptr = 0;
}
snprintf(path, sizeof(path), "/dev/input/%s", start);
fclose(fp);
return path;
snprintf(path, sizeof(path), "/dev/input/%s", start);
fclose(fp);
return path;
}
break;
case '\n':
valid_vendor = valid_str = 0;
break;
default:
break;
}
}