summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sbin/fdisk/cmd.c6
-rw-r--r--sbin/fdisk/misc.c65
-rw-r--r--sbin/fdisk/misc.h5
3 files changed, 35 insertions, 41 deletions
diff --git a/sbin/fdisk/cmd.c b/sbin/fdisk/cmd.c
index dc7e30e9d0c..db54b48b300 100644
--- a/sbin/fdisk/cmd.c
+++ b/sbin/fdisk/cmd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cmd.c,v 1.56 2012/07/09 17:07:35 krw Exp $ */
+/* $OpenBSD: cmd.c,v 1.57 2012/07/09 17:19:55 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -199,7 +199,7 @@ Xedit(cmd_t *cmd, disk_t *disk, mbr_t *mbr, mbr_t *tt, int offset)
do {
pp->bs = getuint(disk, "offset",
"Starting sector for this partition.", d,
- disk->real->size, 0, DO_CONVERSIONS);
+ disk->real->size);
if (pp->bs == UINT_MAX)
printf("Invalid offset.\n");
} while (pp->bs == UINT_MAX);
@@ -212,7 +212,7 @@ Xedit(cmd_t *cmd, disk_t *disk, mbr_t *mbr, mbr_t *tt, int offset)
d = pp->ns;
do {
pp->ns = getuint(disk, "size", "Size of the partition.",
- d, m, pp->bs, DO_CONVERSIONS);
+ d, m);
if (pp->ns == UINT_MAX || pp->ns == 0)
printf("Invalid size.\n");
} while (pp->ns == UINT_MAX || pp->ns == 0);
diff --git a/sbin/fdisk/misc.c b/sbin/fdisk/misc.c
index 1563e3e0e4b..e594f623a7b 100644
--- a/sbin/fdisk/misc.c
+++ b/sbin/fdisk/misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.c,v 1.27 2012/07/09 17:07:35 krw Exp $ */
+/* $OpenBSD: misc.c,v 1.28 2012/07/09 17:19:55 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -236,7 +236,7 @@ putlong(void *p, u_int32_t l)
*/
u_int32_t
getuint(disk_t *disk, char *prompt, char *helpstring, u_int32_t oval,
- u_int32_t maxval, u_int32_t offset, int flags)
+ u_int32_t maxval)
{
char buf[BUFSIZ], *endptr, *p, operator = '\0';
u_int32_t rval = oval;
@@ -247,9 +247,6 @@ getuint(disk_t *disk, char *prompt, char *helpstring, u_int32_t oval,
secpercyl = disk->real->sectors * disk->real->heads;
- /* We only care about the remainder */
- offset = offset % secpercyl;
-
buf[0] = '\0';
do {
printf("%s: [%u] ", prompt, oval);
@@ -267,36 +264,34 @@ getuint(disk_t *disk, char *prompt, char *helpstring, u_int32_t oval,
} else {
/* deal with units */
if (buf[0] != '\0' && n > 0) {
- if ((flags & DO_CONVERSIONS)) {
- switch (tolower(buf[n-1])) {
-
- case 'c':
- mult = secpercyl;
- buf[--n] = '\0';
- break;
- case 'b':
- mult = -secsize;
- buf[--n] = '\0';
- break;
- case 's':
- buf[--n] = '\0';
- break;
- case 'k':
- if (secsize > 1024)
- mult = -secsize / 1024;
- else
- mult = 1024 / secsize;
- buf[--n] = '\0';
- break;
- case 'm':
- mult = 1048576 / secsize;
- buf[--n] = '\0';
- break;
- case 'g':
- mult = 1073741824 / secsize;
- buf[--n] = '\0';
- break;
- }
+ switch (tolower(buf[n-1])) {
+
+ case 'c':
+ mult = secpercyl;
+ buf[--n] = '\0';
+ break;
+ case 'b':
+ mult = -secsize;
+ buf[--n] = '\0';
+ break;
+ case 's':
+ buf[--n] = '\0';
+ break;
+ case 'k':
+ if (secsize > 1024)
+ mult = -secsize / 1024;
+ else
+ mult = 1024 / secsize;
+ buf[--n] = '\0';
+ break;
+ case 'm':
+ mult = 1048576 / secsize;
+ buf[--n] = '\0';
+ break;
+ case 'g':
+ mult = 1073741824 / secsize;
+ buf[--n] = '\0';
+ break;
}
/* Did they give us an operator? */
diff --git a/sbin/fdisk/misc.h b/sbin/fdisk/misc.h
index 45a02215100..cf86e87052f 100644
--- a/sbin/fdisk/misc.h
+++ b/sbin/fdisk/misc.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.h,v 1.15 2012/07/09 17:07:35 krw Exp $ */
+/* $OpenBSD: misc.h,v 1.16 2012/07/09 17:19:55 krw Exp $ */
/*
* Copyright (c) 1997 Tobias Weingartner
@@ -46,7 +46,6 @@ extern struct unit_type unit_types[];
#define ASK_HEX 0x01
#define ASK_DEC 0x02
#define UNIT_TYPE_DEFAULT 1
-#define DO_CONVERSIONS 0x00000001
/* Prototypes */
int unit_lookup(char *);
@@ -58,7 +57,7 @@ u_int16_t getshort(void *);
u_int32_t getlong(void *);
void putshort(void *, u_int16_t);
void putlong(void *, u_int32_t);
-u_int32_t getuint(disk_t *, char *, char *, u_int32_t, u_int32_t, u_int32_t, int);
+u_int32_t getuint(disk_t *, char *, char *, u_int32_t, u_int32_t);
#endif /* _MISC_H */