date and time created 88/10/19 11:50:43 by bostic
[unix-history] / usr / src / old / rxformat / rxformat.c
index 2e5d163..08a572f 100644 (file)
@@ -1,45 +1,75 @@
-/*     rxformat.c      4.2     83/04/28        */
+/*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved.  The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ */
+
+#ifndef lint
+char copyright[] =
+"@(#) Copyright (c) 1980 Regents of the University of California.\n\
+ All rights reserved.\n";
+#endif not lint
+
+#ifndef lint
+static char sccsid[] = "@(#)rxformat.c 5.4 (Berkeley) %G%";
+#endif not lint
 
 #include <stdio.h>
 #include <sys/file.h>
 #include <errno.h>
 
 #include <stdio.h>
 #include <sys/file.h>
 #include <errno.h>
-#include "/sys/vaxuba/rxreg.h"
+#include <vaxuba/rxreg.h>
+
+char devname[] = "/dev/rrx?a";
 
 /*
 
 /*
- * format floppy disks on RX02
+ * Format RX02 floppy disks.
  */
  */
+
 main(argc, argv)
        int argc;
        char *argv[];
 {
        int fd, idens = 0, filarg = 1;
 main(argc, argv)
        int argc;
        char *argv[];
 {
        int fd, idens = 0, filarg = 1;
+       int i, c;
 
 
-       if (argc < 2)
+       if (argc < 2 || argc > 3)
                usage();
        if (argc == 3) { 
                if (strncmp(argv[1],"-d",2) != 0)
                        usage();
                idens++;
                usage();
        if (argc == 3) { 
                if (strncmp(argv[1],"-d",2) != 0)
                        usage();
                idens++;
-               filarg = 2;
+               filarg++;
+       }
+       devname[8] = argv[filarg][7];
+       if ((fd = open(devname, O_RDWR)) < 0) {
+               perror(devname);
+               exit(1);
        }
        }
-       if ((fd = open(argv[filarg], FRDWR, 0666)) < NULL) {
-               perror(argv[filarg]);
-               exit (0);
+       if (isatty(fileno(stdin))) {
+               printf("Format %s to %s density (y/n)? ",
+                       argv[filarg], idens ? "double" : "single");
+               i = c = getchar();
+               while (c != '\n' && c != EOF)
+                       c = getchar();
+               if (i != 'y')
+                       exit(0);
+       } else
+               printf("Formatting %s to %s density\n",
+                       argv[filarg], idens ? "double" : "single");
+       /* 
+        * Change the ioctl command when dkio.h has
+        * been finished.
+        */
+       if (ioctl(fd, RXIOC_FORMAT, &idens) == 0)
+               exit(0);
+       else {
+               perror(devname);
+               exit(1);
        }
        }
-       printf("Format %s to", *(argv[filarg]));
-       if (idens)
-               printf(" double density (y/n) ?");
-       else
-               printf(" single density (y/n) ?");
-       if (getchar() != 'y')
-               exit (0);
-       if (ioctl(fd, RXIOC_FORMAT, &idens) != NULL)
-               perror(argv[2]);
-       close (fd);
 }
 
 usage()
 {
        fprintf(stderr, "usage: rxformat [-d] /dev/rx?\n");
 }
 
 usage()
 {
        fprintf(stderr, "usage: rxformat [-d] /dev/rx?\n");
-       exit (0);
+       exit(1);
 }
 }