summaryrefslogtreecommitdiffstats
path: root/fdisks/fdiskdoslabel.c
diff options
context:
space:
mode:
authorKarel Zak2013-06-11 15:05:03 +0200
committerKarel Zak2013-09-16 16:47:00 +0200
commitbd0d850b3e43531f72d36293291df6b086f8fdbc (patch)
tree77a9eb1a588550c9c2fc79baa9496fa1397034f3 /fdisks/fdiskdoslabel.c
parentfdisk: (dos) use ask API for new partition dialog (diff)
downloadkernel-qcow2-util-linux-bd0d850b3e43531f72d36293291df6b086f8fdbc.tar.gz
kernel-qcow2-util-linux-bd0d850b3e43531f72d36293291df6b086f8fdbc.tar.xz
kernel-qcow2-util-linux-bd0d850b3e43531f72d36293291df6b086f8fdbc.zip
fdisk: (dos) remove remaining read_{int,char}() functions
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'fdisks/fdiskdoslabel.c')
-rw-r--r--fdisks/fdiskdoslabel.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/fdisks/fdiskdoslabel.c b/fdisks/fdiskdoslabel.c
index 8b6bac756..6dec745e8 100644
--- a/fdisks/fdiskdoslabel.c
+++ b/fdisks/fdiskdoslabel.c
@@ -997,11 +997,12 @@ static int dos_add_partition(
if (j >= 0)
rc = add_partition(cxt, j, t);
} else {
- char c, line[LINE_LENGTH];
+ char buf[16];
+ char c, prompt[LINE_LENGTH];
int dflt;
dflt = (free_primary == 1 && !extended_offset) ? 'e' : 'p';
- snprintf(line, sizeof(line),
+ snprintf(prompt, sizeof(prompt),
_("Partition type:\n"
" p primary (%zd primary, %d extended, %zd free)\n"
"%s\n"
@@ -1011,11 +1012,15 @@ static int dos_add_partition(
extended_offset ? _(" l logical (numbered from 5)") : _(" e extended"),
dflt);
- c = tolower(read_chars(cxt, line));
- if (c == '\n') {
+ rc = get_user_reply(cxt, prompt, buf, sizeof(buf));
+ if (rc)
+ return rc;
+ if (!buf[0]) {
c = dflt;
printf(_("Using default response %c\n"), c);
- }
+ } else
+ c = tolower(buf[0]);
+
if (c == 'p') {
int j = get_partition_unused_primary(cxt);
if (j >= 0)
@@ -1405,6 +1410,7 @@ void dos_move_begin(struct fdisk_context *cxt, int i)
struct pte *pe = &ptes[i];
struct partition *p = pe->part_table;
unsigned int new, free_start, curr_start, last;
+ uintmax_t res = 0;
size_t x;
assert(cxt);
@@ -1441,8 +1447,10 @@ void dos_move_begin(struct fdisk_context *cxt, int i)
last = get_partition_start(pe) + get_nr_sects(p) - 1;
- new = read_int(cxt, free_start, curr_start, last, free_start,
- _("New beginning of data")) - pe->offset;
+ if (fdisk_ask_number(cxt, free_start, curr_start, last,
+ _("New beginning of data"), &res))
+ return;
+ new = res - pe->offset;
if (new != get_nr_sects(p)) {
unsigned int sects = get_nr_sects(p) + get_start_sect(p) - new;