]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
partx: support -o +<attr> for adding attribute to output fields
authorMilan Broz <mbroz@redhat.com>
Thu, 26 Jul 2012 14:41:30 +0000 (16:41 +0200)
committerKarel Zak <kzak@redhat.com>
Thu, 26 Jul 2012 14:41:39 +0000 (16:41 +0200)
Signed-off-by: Milan Broz <mbroz@redhat.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
disk-utils/partx.c

index 923ca98b0a29d5b0d07df8425e2ff1201117092a..9764478f808a3c3020ac52bd4dee33a459b25aa3 100644 (file)
@@ -643,6 +643,7 @@ int main(int argc, char **argv)
        char *type = NULL;
        char *device = NULL; /* pointer to argv[], ie: /dev/sda1 */
        char *wholedisk = NULL; /* allocated, ie: /dev/sda */
+       char *outarg = NULL;
        dev_t disk_devno = 0, part_devno = 0;
 
        static const struct option long_opts[] = {
@@ -700,11 +701,7 @@ int main(int argc, char **argv)
                                errx(EXIT_FAILURE, _("failed to parse --nr <M-N> range"));
                        break;
                case 'o':
-                       ncolumns = string_to_idarray(optarg,
-                                               columns, ARRAY_SIZE(columns),
-                                               column_name_to_id);
-                       if (ncolumns < 0)
-                               return EXIT_FAILURE;
+                       outarg = optarg;
                        break;
                case 'P':
                        tt_flags |= TT_FL_EXPORT;
@@ -748,6 +745,11 @@ int main(int argc, char **argv)
                columns[ncolumns++] = COL_UUID;
        }
 
+       if (what == ACT_SHOW && outarg &&
+           string_add_to_idarray(outarg, columns, ARRAY_SIZE(columns),
+                                  &ncolumns, column_name_to_id) < 0)
+               return EXIT_FAILURE;
+
        /*
         * Note that 'partx /dev/sda1' == 'partx /dev/sda1 /dev/sda'
         * so assume that the device and/or disk are always the last