- strcpy(udev->name, dev->name);
- if (isdigit(class_dev->path[strlen(class_dev->path)-1])) {
- temp = &class_dev->path[strlen(class_dev->path)-1];
- strcat(udev->name, temp);
- }
- if (dev->mode != 0) {
- udev->mode = dev->mode;
- strcpy(udev->owner, dev->owner);
- strcpy(udev->group, dev->group);
- }
- dbg_parse("file '%s' with value '%s' becomes '%s' - owner = %s, group = %s, mode = %#o",
- dev->sysfs_file, dev->sysfs_value, udev->name,
- dev->owner, dev->group, dev->mode);
- goto done;
- break;
- }
- case NUMBER:
- {
- char path[SYSFS_PATH_MAX];
- char *temp;
-
- found = 0;
- if (!class_dev->sysdevice)
- continue;
- strcpy(path, class_dev->sysdevice->path);
- temp = strrchr(path, '/');
- dbg_parse("NUMBER path = '%s'", path);
- dbg_parse("NUMBER temp = '%s' id = '%s'", temp, dev->id);
- if (strstr(temp, dev->id) != NULL) {
- found = 1;
- } else {
- *temp = 0x00;
- temp = strrchr(path, '/');
- dbg_parse("NUMBERY temp = '%s' id = '%s'", temp, dev->id);
- if (strstr(temp, dev->id) != NULL)
- found = 1;
- }
- if (!found)
- continue;
-
- strcpy(udev->name, dev->name);
- if (dev->mode != 0) {
- udev->mode = dev->mode;
- strcpy(udev->owner, dev->owner);
- strcpy(udev->group, dev->group);
- }
- dbg_parse("device id '%s' becomes '%s' - owner = %s, group = %s, mode = %#o",
- dev->id, udev->name,
- dev->owner, dev->group, dev->mode);
- goto done;
- break;
- }
- case TOPOLOGY:
- {
- char path[SYSFS_PATH_MAX];
- char *temp;
-
- if (!class_dev->sysdevice)
- continue;
- found = 0;
- strcpy(path, class_dev->sysdevice->path);
- temp = strrchr(path, '/');
- dbg_parse("TOPOLOGY path = '%s'", path);
- dbg_parse("TOPOLOGY temp = '%s' place = '%s'", temp, dev->place);
- if (strstr(temp, dev->place) != NULL) {
- found = 1;
- } else {
- *temp = 0x00;
- temp = strrchr(path, '/');
- dbg_parse("TOPOLOGY temp = '%s' place = '%s'", temp, dev->place);
- if (strstr(temp, dev->place) != NULL)
- found = 1;
- }
- if (!found)
- continue;
-
- strcpy(udev->name, dev->name);
- if (dev->mode != 0) {
- udev->mode = dev->mode;
- strcpy(udev->owner, dev->owner);
- strcpy(udev->group, dev->group);
- }
- dbg_parse("device at '%s' becomes '%s' - owner = %s, group = %s, mode = %#o",
- dev->place, udev->name,
- dev->owner, dev->group, dev->mode);
- goto done;
- break;
- }
- case KERNEL_NAME:
- default:
- break;
- }
- }