]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libfdisk: add fdisk_context_enable_details()
authorKarel Zak <kzak@redhat.com>
Thu, 2 May 2013 09:23:25 +0000 (11:23 +0200)
committerKarel Zak <kzak@redhat.com>
Mon, 16 Sep 2013 14:46:53 +0000 (16:46 +0200)
Signed-off-by: Karel Zak <kzak@redhat.com>
fdisks/fdisk.c
libfdisk/src/context.c
libfdisk/src/fdiskP.h
libfdisk/src/libfdisk.h

index 3da40b6a986d5e8ab85945b59d73dd3642755017..570d61defbf53ecb885137e656f453ee094b276b 100644 (file)
@@ -810,6 +810,8 @@ expert_command_prompt(struct fdisk_context *cxt)
 
        assert(cxt);
 
+       fdisk_context_enable_details(cxt, 1);
+
        while(1) {
                assert(cxt->label);
 
@@ -875,6 +877,7 @@ expert_command_prompt(struct fdisk_context *cxt)
                case 'q':
                        handle_quit(cxt);
                case 'r':
+                       fdisk_context_enable_details(cxt, 0);
                        return;
                case 's':
                        user_sectors = read_int(cxt, 1, cxt->geom.sectors, 63, 0,
index 7569e5b5257edecfab9fbf938c605a407648ac37..e77274bae19ac2223d697a3921e05c88b92f3235 100644 (file)
@@ -237,6 +237,27 @@ int fdisk_context_set_ask(struct fdisk_context *cxt,
        return 0;
 }
 
+/**
+ * fdisk_context_enable_details:
+ * cxt: context
+ * enable: true/flase
+ *
+ * Enables or disables "details" display mode.
+ *
+ * Returns: 0 on success, < 0 on error.
+ */
+int fdisk_context_enable_details(struct fdisk_context *cxt, int enable)
+{
+       assert(cxt);
+       cxt->display_details = enable ? 1 : 0;
+       return 0;
+}
+
+int fdisk_context_display_details(struct fdisk_context *cxt)
+{
+       assert(cxt);
+       return cxt->display_details == 1;
+}
 
 /*
  * @str: "cylinder" or "sector".
index c4d61b6c56a7d5904f070302074579c87f976fc7..ff4c31bd2f09275579c1039ce200121cef21fecc 100644 (file)
@@ -259,7 +259,8 @@ struct fdisk_context {
        unsigned long sector_size;      /* logical size */
        unsigned long alignment_offset;
 
-       int display_in_cyl_units;       /* for obscure labels */
+       unsigned int display_in_cyl_units : 1,  /* for obscure labels */
+                    display_details : 1;       /* expert display mode */
 
        /* alignment */
        unsigned long grain;            /* alignment unit */
@@ -285,6 +286,10 @@ struct fdisk_context {
 extern int __fdisk_context_switch_label(struct fdisk_context *cxt,
                                    struct fdisk_label *lb);
 
+extern int fdisk_context_use_cylinders(struct fdisk_context *cxt);
+extern int fdisk_context_display_details(struct fdisk_context *cxt);
+
+
 /* alignment.c */
 extern sector_t fdisk_topology_get_first_lba(struct fdisk_context *cxt);
 extern unsigned long fdisk_topology_get_grain(struct fdisk_context *cxt);
index 343eece81f5fb218a21afe40c8f3cdd220e23876..b7c2735d136b7acbc65080ea4fb77390cdc2d330 100644 (file)
@@ -89,9 +89,10 @@ extern int fdisk_context_switch_label(struct fdisk_context *cxt,
 
 extern int fdisk_context_set_unit(struct fdisk_context *cxt, const char *str);
 extern const char *fdisk_context_get_unit(struct fdisk_context *cxt, int n);
-extern int fdisk_context_use_cylinders(struct fdisk_context *cxt);
 extern unsigned int fdisk_context_get_units_per_sector(struct fdisk_context *cxt);
 
+extern int fdisk_context_enable_details(struct fdisk_context *cxt, int enable);
+
 /* parttype.c */
 extern struct fdisk_parttype *fdisk_get_parttype_from_code(struct fdisk_context *cxt,
                                 unsigned int code);