On Mon, Dec 14, 2009 at 13:37, Johannes Stezenbach <js@xxxxxxxxx> wrote: > On Mon, Dec 14, 2009 at 11:34:31AM +0100, Kay Sievers wrote: >> On Mon, Dec 14, 2009 at 11:28, Johannes Stezenbach <js@xxxxxxxxx> wrote: >> > On Mon, Dec 14, 2009 at 10:14:50AM +0100, Martin Pitt wrote: >> >> >> >> A gotcha that I see here is that the force_release only ever gets >> >> appended to. I. e. whenever we run udevtrigger, we'd append the same >> >> keys again. POSIX shell doesn't have elaborate substring matching >> >> capabilities like bash's ${x/pattern/string}, so it might not be too >> >> easy to check if we already have a key in POSIX sh. (But please don't >> >> call grep in a loop; let's rather rewrite this bit in C). There might >> >> be some trickery with splitting by IFS=, into an array or so, if you >> >> want to keep using sh? >> > >> > The problem is that force_release is preset by the kernel, so >> > in order to do what you want we need either >> > a) pass both old and new key list on "change" >> > b) save initial force_release value to a file on "add" >> > and use the file on "change" >> >> It should just not mangle the sysfs string if the value is already >> contained. Why would you need to store anything between a "change" and >> "add" event? Both events are handled the same way, and the two >> independent events run one after each other. > > I don't understand. I only append to the force_release attribute > because the kernel already removes duplicates. Ah, cool. > However, what does not work this way is to remove scancodes from > force_release. I thought that was what Martin wanted to accomplish > on the "change" event. I don't think we really need to care about that. It thought it was only the pattern ACTION="add|change", which is pretty common. >> I guess the logic to append a value to the sysfs string only if needed >> should be done in a tine C program, or a sed script with a RUN+= call >> directly to sed maybe can be used ... > > sed cannot do hex to decimal conversion, but awk could be used. Ah, that may be fine, if that works with a single commandline passed by RUN. Thanks, Kay -- To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html