On Sat, 9 May 2009, Joachim Schipper wrote:

> On Sat, May 09, 2009 at 02:27:08PM +0200, Mark Kettenis wrote:
> > > Date: Sat, 9 May 2009 12:20:25 +0200
> > > From: Joachim Schipper <[email protected]>
> > > 
> > > The bioctl(8) man page helpfully suggests dd for zeroing out the
> > > disklabel etc. on the new disk. However, the command doesn't work, since
> > > OpenBSD's dd doesn't understand '1M'.
> > 
> > Uh, indeed it doesn't, but it does understand '1m'.
> 
> Yeah, sorry. Still, it should be fixed.

I think we should fix dd(1).

Index: args.c
===================================================================
RCS file: /cvs/src/bin/dd/args.c,v
retrieving revision 1.17
diff -u -p -r1.17 args.c
--- args.c      1 Nov 2006 05:46:20 -0000       1.17
+++ args.c      10 May 2009 22:51:38 -0000
@@ -341,6 +341,7 @@ get_bsz(char *val)
                errx(1, "%s: illegal numeric value", oper);
 
        switch(*expr) {
+       case 'B':
        case 'b':
                t = num;
                num *= 512;
@@ -348,6 +349,7 @@ get_bsz(char *val)
                        goto erange;
                ++expr;
                break;
+       case 'K':
        case 'k':
                t = num;
                num *= 1024;
@@ -355,6 +357,7 @@ get_bsz(char *val)
                        goto erange;
                ++expr;
                break;
+       case 'M':
        case 'm':
                t = num;
                num *= 1048576;
@@ -362,6 +365,7 @@ get_bsz(char *val)
                        goto erange;
                ++expr;
                break;
+       case 'W':
        case 'w':
                t = num;
                num *= sizeof(int);
@@ -411,6 +415,7 @@ get_off(char *val)
                errx(1, "%s: illegal numeric value", oper);
 
        switch(*expr) {
+       case 'B':
        case 'b':
                t = num;
                num *= 512;
@@ -418,6 +423,7 @@ get_off(char *val)
                        goto erange;
                ++expr;
                break;
+       case 'K':
        case 'k':
                t = num;
                num *= 1024;
@@ -425,6 +431,7 @@ get_off(char *val)
                        goto erange;
                ++expr;
                break;
+       case 'M':
        case 'm':
                t = num;
                num *= 1048576;
@@ -432,6 +439,7 @@ get_off(char *val)
                        goto erange;
                ++expr;
                break;
+       case 'W':
        case 'w':
                t = num;
                num *= sizeof(int);

Reply via email to