linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kay Sievers <kay.sievers@vrfy.org>
To: linux-hotplug@vger.kernel.org
Subject: udev - activate formt length attribute
Date: Sat, 28 Feb 2004 03:10:29 +0000	[thread overview]
Message-ID: <20040228031029.GA32032@vrfy.org> (raw)

[-- 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",

             reply	other threads:[~2004-02-28  3:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-28  3:10 Kay Sievers [this message]
2004-02-28  6:54 ` udev - activate formt length attribute Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040228031029.GA32032@vrfy.org \
    --to=kay.sievers@vrfy.org \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).