if (isdigit(*str[0])) {
num = (int) strtoul(*str, &tail, 10);
- if (tail != NULL) {
+ if (num > 0) {
*str = tail;
dbg("format length=%i", num);
return num;
char *pos2;
char *pos3;
char *attr;
- int num;
+ int len;
int i;
char c;
struct sysfs_attribute *tmpattr;
if (pos != NULL) {
pos[0] = '\0';
tail = pos+1;
- num = get_format_len(&tail);
+ len = get_format_len(&tail);
c = tail[0];
strfieldcpy(temp, tail+1);
tail = temp;
if (strlen(udev->program_result) == 0)
break;
/* get part part of the result string */
- i = num; /* num syntax is deprecated and will be removed */
+ i = 0;
if (attr != NULL)
i = atoi(attr);
if (i > 0) {
dbg("unknown substitution type '%%%c'", c);
break;
}
+ /* truncate to specified length */
+ if (len > 0)
+ pos[len] = '\0';
+
strnfieldcat(string, tail, maxsize);
}
}
if (match_rule(dev, class_dev, udev, sysfs_device) == 0) {
if (dev->name[0] == '\0' && dev->symlink[0] == '\0') {
info("configured rule in '%s' at line %i applied, '%s' is ignored",
- udev_rules_filename, dev->config_line, udev->kernel_name);
+ dev->config_file, dev->config_line, udev->kernel_name);
return -1;
}
char temp[NAME_MAX];
info("configured rule in '%s' at line %i applied, added symlink '%s'",
- udev_rules_filename, dev->config_line, dev->symlink);
+ dev->config_file, dev->config_line, dev->symlink);
/* do not clobber dev */
strfieldcpy(temp, dev->symlink);
apply_format(udev, temp, sizeof(temp),
if (dev->name[0] != '\0') {
info("configured rule in '%s' at line %i applied, '%s' becomes '%s'",
- udev_rules_filename, dev->config_line, udev->kernel_name, dev->name);
+ dev->config_file, dev->config_line, udev->kernel_name, dev->name);
strfieldcpy(udev->name, dev->name);
goto found;
}