All of lore.kernel.org
 help / color / mirror / Atom feed
* udev - activate formt length attribute
@ 2004-02-28  3:10 Kay Sievers
  2004-02-28  6:54 ` Greg KH
  0 siblings, 1 reply; 2+ messages in thread
From: Kay Sievers @ 2004-02-28  3:10 UTC (permalink / raw)
  To: linux-hotplug

[-- Attachment #1: Type: text/plain, Size: 491 bytes --]

We carried the the old callout part selector syntax for two releases
now after it was replaced by the new %c{1} syntax. So here we remove
the old syntax and use the code to possibly specify the maximum count
of chars to insert into the string. It will work with all of our format
chars.
I don't know if somebody will use it, but the code is already there :)

's%3s{vendor}' returns "IBM" now, instead of "IBM-ESXS".

Also added is a test for it and a few words in the man page.

thanks,
Kay

[-- Attachment #2: 01-activate-length-modifier.patch --]
[-- Type: text/plain, Size: 2189 bytes --]

===== namedev.c 1.117 vs edited =====
--- 1.117/namedev.c	Sat Feb 28 03:41:27 2004
+++ edited/namedev.c	Sat Feb 28 03:25:12 2004
@@ -220,7 +220,7 @@
 	char *pos2;
 	char *pos3;
 	char *attr;
-	int num;
+	int len;
 	int i;
 	char c;
 	struct sysfs_attribute *tmpattr;
@@ -232,7 +232,7 @@
 		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;
@@ -274,7 +274,7 @@
 			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) {
@@ -317,6 +317,10 @@
 			dbg("unknown substitution type '%%%c'", c);
 			break;
 		}
+		/* truncate to specified length */
+		if (len > 0)
+			pos[len] = '\0';
+
 		strnfieldcat(string, tail, maxsize);
 	}
 }
===== udev.8 1.43 vs edited =====
--- 1.43/udev.8	Thu Feb 26 22:29:49 2004
+++ edited/udev.8	Sat Feb 28 03:59:04 2004
@@ -209,7 +209,7 @@
 .TP
 .B %n
 The "kernel number" of the device.
-for example, 'sda3' has a "kernel number" of '3'
+For example, 'sda3' has a "kernel number" of '3'.
 .TP
 .B %k
 The "kernel name" for the device.
@@ -239,7 +239,11 @@
 The content of a sysfs attribute.
 .TP
 .B %%
-The '%' char itself.
+The '%' character itself.
+.P
+The count of charcters to insert may be limited by specifying
+the format length value. For example, '%3s{file}' will only insert
+the first three characters of the sysfs attribute.
 .P
 .RI "A sample " udev.rules " might look like this:"
 .sp
===== test/udev-test.pl 1.39 vs edited =====
--- 1.39/test/udev-test.pl	Thu Feb 26 22:29:48 2004
+++ edited/test/udev-test.pl	Sat Feb 28 03:36:01 2004
@@ -194,6 +194,15 @@
 EOF
 	},
 	{
+		desc     => "test NAME substitution chars (with length limit)",
+		subsys   => "block",
+		devpath  => "block/sda/sda3",
+		expected => "M8-m3-n3-b0:0-sIBM" ,
+		conf     => <<EOF
+BUS="scsi", PLACE="0:0:0:0", NAME="M%M-m%m-n%n-b%3b-s%3s{vendor}"
+EOF
+	},
+	{
 		desc     => "old style SYSFS_ attribute",
 		subsys   => "block",
 		devpath  => "block/sda",

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: udev - activate formt length attribute
  2004-02-28  3:10 udev - activate formt length attribute Kay Sievers
@ 2004-02-28  6:54 ` Greg KH
  0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2004-02-28  6:54 UTC (permalink / raw)
  To: linux-hotplug

On Sat, Feb 28, 2004 at 04:10:29AM +0100, Kay Sievers wrote:
> We carried the the old callout part selector syntax for two releases
> now after it was replaced by the new %c{1} syntax. So here we remove
> the old syntax and use the code to possibly specify the maximum count
> of chars to insert into the string. It will work with all of our format
> chars.
> I don't know if somebody will use it, but the code is already there :)
> 
> 's%3s{vendor}' returns "IBM" now, instead of "IBM-ESXS".
> 
> Also added is a test for it and a few words in the man page.

Applied, thanks.

greg k-h


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id\x1356&alloc_id438&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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-02-28  6:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-28  3:10 udev - activate formt length attribute Kay Sievers
2004-02-28  6:54 ` Greg KH

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.