BSD 4_4_Lite1 release
[unix-history] / usr / src / bin / dd / position.c
index 48ee66d..9375b1e 100644 (file)
@@ -1,25 +1,54 @@
 /*-
 /*-
- * Copyright (c) 1991 The Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1991, 1993, 1994
+ *     The Regents of the University of California.  All rights reserved.
  *
  * This code is derived from software contributed to Berkeley by
  * Keith Muller of the University of California, San Diego and Lance
  * Visser of Convex Computer Corporation.
  *
  *
  * This code is derived from software contributed to Berkeley by
  * Keith Muller of the University of California, San Diego and Lance
  * Visser of Convex Computer Corporation.
  *
- * %sccs.include.redist.c%
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)position.c 5.3 (Berkeley) %G%";
+static char sccsid[] = "@(#)position.c 8.3 (Berkeley) 4/2/94";
 #endif /* not lint */
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/ioctl.h>
 #include <sys/mtio.h>
 #endif /* not lint */
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/ioctl.h>
 #include <sys/mtio.h>
+
+#include <err.h>
 #include <errno.h>
 #include <errno.h>
-#include <unistd.h>
 #include <string.h>
 #include <string.h>
+#include <unistd.h>
+
 #include "dd.h"
 #include "extern.h"
 
 #include "dd.h"
 #include "extern.h"
 
@@ -32,12 +61,12 @@ static char sccsid[] = "@(#)position.c      5.3 (Berkeley) %G%";
 void
 pos_in()
 {
 void
 pos_in()
 {
-       register int bcnt, cnt, nr, warned;
+       int bcnt, cnt, nr, warned;
 
        /* If not a character, pipe or tape device, try to seek on it. */
        if (!(in.flags & (ISCHR|ISPIPE|ISTAPE))) {
                if (lseek(in.fd, (off_t)(in.offset * in.dbsz), SEEK_CUR) == -1)
 
        /* If not a character, pipe or tape device, try to seek on it. */
        if (!(in.flags & (ISCHR|ISPIPE|ISTAPE))) {
                if (lseek(in.fd, (off_t)(in.offset * in.dbsz), SEEK_CUR) == -1)
-                       err("%s: %s", in.name, strerror(errno));
+                       err(1, "%s", in.name);
                return;
        }
 
                return;
        }
 
@@ -63,7 +92,7 @@ pos_in()
                                --files_cnt;
                                continue;
                        }
                                --files_cnt;
                                continue;
                        }
-                       err("skip reached end of input");
+                       errx(1, "skip reached end of input");
                }
 
                /*
                }
 
                /*
@@ -73,21 +102,21 @@ pos_in()
                 */
                if (ddflags & C_NOERROR) {
                        if (!warned) {
                 */
                if (ddflags & C_NOERROR) {
                        if (!warned) {
-                               warn("%s: %s", in.name, strerror(errno));
+                               warn("%s", in.name);
                                warned = 1;
                                warned = 1;
-                               summary(0);
+                               summary();
                        }
                        continue;
                }
                        }
                        continue;
                }
-               err("%s: %s", in.name, strerror(errno));
+               err(1, "%s", in.name);
        }
 }
 
 void
 pos_out()
 {
        }
 }
 
 void
 pos_out()
 {
-       register int cnt, n;
        struct mtop t_op;
        struct mtop t_op;
+       int cnt, n;
 
        /*
         * If not a tape, try seeking on the file.  Seeking on a pipe is
 
        /*
         * If not a tape, try seeking on the file.  Seeking on a pipe is
@@ -97,7 +126,7 @@ pos_out()
        if (!(out.flags & ISTAPE)) {
                if (lseek(out.fd,
                    (off_t)out.offset * out.dbsz, SEEK_SET) == -1)
        if (!(out.flags & ISTAPE)) {
                if (lseek(out.fd,
                    (off_t)out.offset * out.dbsz, SEEK_SET) == -1)
-                       err("%s: %s", out.name, strerror(errno));
+                       err(1, "%s", out.name);
                return;
        }
 
                return;
        }
 
@@ -107,7 +136,7 @@ pos_out()
                t_op.mt_count = out.offset;
 
                if (ioctl(out.fd, MTIOCTOP, &t_op) < 0)
                t_op.mt_count = out.offset;
 
                if (ioctl(out.fd, MTIOCTOP, &t_op) < 0)
-                       err("%s: %s", out.name, strerror(errno));
+                       err(1, "%s", out.name);
                return;
        }
 
                return;
        }
 
@@ -117,7 +146,7 @@ pos_out()
                        continue;
 
                if (n < 0)
                        continue;
 
                if (n < 0)
-                       err("%s: %s", out.name, strerror(errno));
+                       err(1, "%s", out.name);
 
                /*
                 * If reach EOF, fill with NUL characters; first, back up over
 
                /*
                 * If reach EOF, fill with NUL characters; first, back up over
@@ -127,11 +156,11 @@ pos_out()
                t_op.mt_op = MTBSR;
                t_op.mt_count = 1;
                if (ioctl(out.fd, MTIOCTOP, &t_op) == -1)
                t_op.mt_op = MTBSR;
                t_op.mt_count = 1;
                if (ioctl(out.fd, MTIOCTOP, &t_op) == -1)
-                       err("%s: %s", out.name, strerror(errno));
+                       err(1, "%s", out.name);
 
                while (cnt++ < out.offset)
                        if ((n = write(out.fd, out.db, out.dbsz)) != out.dbsz)
 
                while (cnt++ < out.offset)
                        if ((n = write(out.fd, out.db, out.dbsz)) != out.dbsz)
-                               err("%s: %s", out.name, strerror(errno));
+                               err(1, "%s", out.name);
                break;
        }
 }
                break;
        }
 }