diff options
author | kay.sievers@vrfy.org <kay.sievers@vrfy.org> | 2004-11-10 10:19:39 +0100 |
---|---|---|
committer | Greg KH <gregkh@suse.de> | 2005-04-26 22:21:20 -0700 |
commit | 31fd340352236c06c30a85fa9fbdbfbbd10bd439 (patch) | |
tree | 40bb22076ccb6fd31bf8732a79d7aa800c67710a | |
parent | 38753167e4e49879f97003f075158cc642bf0b0d (diff) |
[PATCH] make udevinfo's -r option also workimg for symlink queries
[kay@pim udev.kay]$ ./udevinfo -r -q symlink -p /class/video4linux/video0
/dev/camera0 /dev/kamera0 /dev/videocam0 /dev/webcam0
[kay@pim udev.kay]$ ./udevinfo -q symlink -p /class/video4linux/video0
camera0 kamera0 videocam0 webcam0
-rw-r--r-- | udevinfo.8 | 5 | ||||
-rw-r--r-- | udevinfo.c | 17 |
2 files changed, 18 insertions, 4 deletions
diff --git a/udevinfo.8 b/udevinfo.8 index 599a0033f8..bbcc3d8f49 100644 --- a/udevinfo.8 +++ b/udevinfo.8 @@ -19,9 +19,10 @@ Print the version information. .B \-r Print the .B udev_root -directory. When used in conjunction with a query for the node name, the +directory. When used in conjunction with a query for the node name or the +symlink names, the .B udev_root -will be prepended. +will be prepended to query result. .TP .BI \-q " query_type" Query the database for specified value of a created device node or network diff --git a/udevinfo.c b/udevinfo.c index 8fab86ca8c..290a09e880 100644 --- a/udevinfo.c +++ b/udevinfo.c @@ -266,7 +266,7 @@ static int process_options(void) int root = 0; int attributes = 0; enum query_type query = NONE; - char result[NAME_SIZE] = ""; + char result[1024] = ""; char path[NAME_SIZE] = ""; char name[NAME_SIZE] = ""; char temp[NAME_SIZE]; @@ -401,7 +401,20 @@ print: break; case SYMLINK: - strfieldcpy(result, udev.symlink); + if (root) { + int slen; + char *spos; + char slink[NAME_SIZE]; + + pos = result; + foreach_strpart(udev.symlink, " \n\r", spos, slen) { + strncpy(slink, spos, slen); + slink[slen] = '\0'; + pos += sprintf(pos, "%s/%s ", udev_root, slink); + } + } else { + strfieldcpy(result, udev.symlink); + } break; case PATH: |