From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kay Sievers Date: Thu, 11 Mar 2004 00:15:02 +0000 Subject: [PATCH] callout part selector tweak Message-Id: <20040311001502.GB31657@vrfy.org> MIME-Version: 1 Content-Type: multipart/mixed; boundary="CdrF4e02JqNVZeln" List-Id: To: linux-hotplug@vger.kernel.org --CdrF4e02JqNVZeln Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Martin Schwenke asked for this feature and posted a patch: The following patch almost let's me have the following configuration: PROGRAM="/sbin/aliaser %b %k %n %M %m", RESULT="?*", NAME="%c{1}", SYMLINK="%c{2+}" allowing me to specify an arbitrary number of symlinks by saying "giveme the second and later words"." Here is the actual version with tests and a few words in the man page. thanks, Kay --CdrF4e02JqNVZeln Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename="02-result-selector-plus.patch" ===== namedev.c 1.128 vs edited ===== --- 1.128/namedev.c Thu Mar 11 00:55:33 2004 +++ edited/namedev.c Thu Mar 11 00:56:32 2004 @@ -190,6 +190,7 @@ int i; char c; char *spos; + char *rest; int slen; struct sysfs_attribute *tmpattr; @@ -244,7 +245,7 @@ /* get part part of the result string */ i = 0; if (attr != NULL) - i = atoi(attr); + i = strtoul(attr, &rest, 10); if (i > 0) { foreach_strpart(udev->program_result, " \n\r", spos, slen) { i--; @@ -255,7 +256,10 @@ dbg("requested part of result string not found"); break; } - strfieldcpymax(temp2, spos, slen+1); + if (rest[0] == '+') + strfieldcpy(temp2, spos); + else + strfieldcpymax(temp2, spos, slen+1); strfieldcatmax(string, temp2, maxsize); dbg("substitute part of result string '%s'", temp2); } else { ===== udev.8 1.52 vs edited ===== --- 1.52/udev.8 Wed Mar 10 21:04:30 2004 +++ edited/udev.8 Thu Mar 11 01:06:56 2004 @@ -253,7 +253,10 @@ .br A single part of the string, separated by a space character may be selected by specifying the part number as a attribute: -.BI %c{ part } +.BI %c{ N } +If the number is followed by the + char this part plus +all remaining parts of the result string are substituted: +.BI %c{ N+ } .TP .BI %s{ filename } The content of a sysfs attribute. ===== test/udev-test.pl 1.43 vs edited ===== --- 1.43/test/udev-test.pl Thu Mar 11 00:55:33 2004 +++ edited/test/udev-test.pl Thu Mar 11 00:56:35 2004 @@ -307,6 +307,15 @@ EOF }, { + desc => "program result substitution (numbered part of+)", + subsys => "block", + devpath => "block/sda/sda3", + expected => "link3" , + conf => < "invalid program for device with no bus", subsys => "tty", devpath => "class/tty/console", --CdrF4e02JqNVZeln-- ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel