blob: 81a2ba2d6b85c15a1baa0ef1a0e238e1b2dccd48 [file] [log] [blame]
Fixes from brltty trunk:
- Use the correct environment variable names in the generated part of
the udev rules file.
- Add command line flag to exclude devices that are generic (e.g.
usb->serial chips that don't have specific vendor/product IDs)
--- a/updusbdevs
+++ b/updusbdevs
@@ -319,14 +319,19 @@
return "<!-- $comment -->"
}
-proc makeLines_android {vendor product drivers descriptions} {
+proc makeLines_android {vendor product drivers descriptions exclude} {
set lines [list]
foreach description $descriptions {
lappend lines [makeComment_android $description]
}
- lappend lines "<usb-device vendor-id=\"$vendor\" product-id=\"$product\" />"
+ set line "<usb-device vendor-id=\"$vendor\" product-id=\"$product\" />"
+ if {$exclude} {
+ set line [makeComment_android $line]
+ }
+ lappend lines $line
+
return $lines
}
@@ -334,14 +339,19 @@
return "# $comment"
}
-proc makeLines_hotplug {vendor product drivers descriptions} {
+proc makeLines_hotplug {vendor product drivers descriptions exclude} {
set lines [list]
foreach description $descriptions {
lappend lines [makeComment_hotplug $description]
}
- lappend lines [format "brltty-%s 0x%04x 0x%04x 0x%04x" [join $drivers ","] 3 $vendor $product]
+ set line [format "brltty-%s 0x%04x 0x%04x 0x%04x" [join $drivers ","] 3 $vendor $product]
+ if {$exclude} {
+ set line [makeComment_hotplug $line]
+ }
+ lappend lines $line
+
return $lines
}
@@ -349,14 +359,19 @@
return "# $comment"
}
-proc makeLines_udev {vendor product drivers descriptions} {
+proc makeLines_udev {vendor product drivers descriptions exclude} {
set lines [list]
foreach description $descriptions {
lappend lines [makeComment_udev $description]
}
- lappend lines [format "ENV\{PRODUCT\}==\"%x/%x/*\", ENV\{BRLTTY_DRIVER\}=\"%s\", GOTO=\"brltty_usb_run\"" $vendor $product [join $drivers ","]]
+ set line [format "ENV\{PRODUCT\}==\"%x/%x/*\", ENV\{BRLTTY_BRAILLE_DRIVER\}=\"%s\", GOTO=\"brltty_usb_run\"" $vendor $product [join $drivers ","]]
+ if {$exclude} {
+ set line [makeComment_udev $line]
+ }
+ lappend lines $line
+
return $lines
}
@@ -364,14 +379,21 @@
return "; $comment"
}
-proc makeLines_windows {vendor product drivers descriptions} {
+proc makeLines_windows {vendor product drivers descriptions exclude} {
set lines [list]
- lappend lines [format "\"\$1: %s\"=LIBUSB_DEV, USB\\VID_%04X&PID_%04X" [join $descriptions ", "] $vendor $product]
+ set line [format "\"\$1: %s\"=LIBUSB_DEV, USB\\VID_%04X&PID_%04X" [join $descriptions ", "] $vendor $product]
+
+ if {$exclude} {
+ set line [makeComment_windows $line]
+ }
+
+ lappend lines $line
return $lines
}
proc makeLines {linesArray schemes deviceTable} {
global genericDevices
+ upvar #0 optionValues(nogeneric) excludeGenericDevices
foreach scheme $schemes {
set makeLines makeLines_$scheme
@@ -400,6 +422,8 @@
lappend descriptions "[dict get $deviceEntry name] \[[dict get $deviceEntry model]\]"
}
+ set exclude 0
+
if {[dict get $productEntry generic]} {
lappend lines [$makeComment "Generic Identifier"]
set generic [dict get $genericDevices $identifier]
@@ -412,9 +436,11 @@
lappend lines [$makeComment "$header: [dict get $generic $property]"]
}
}
+
+ set exclude $excludeGenericDevices
}
- eval [list lappend lines] [$makeLines $vendor $product [lsort -unique $codes] [lsort $descriptions]]
+ eval [list lappend lines] [$makeLines $vendor $product [lsort -unique $codes] [lsort $descriptions] $exclude]
lappend lines ""
}
}
@@ -598,9 +624,10 @@
}]
set optionDefinitions {
- {quiet counter}
- {verbose counter}
- {test flag}
+ {quiet counter}
+ {verbose counter}
+ {test flag}
+ {nogeneric flag}
}
if {![processOptions optionValues argv $optionDefinitions]} {