summaryrefslogtreecommitdiff
path: root/udevinfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'udevinfo.c')
-rw-r--r--udevinfo.c17
1 files changed, 15 insertions, 2 deletions
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: