From 5736aa9039e290655a2484d65e3da9ab4033863d Mon Sep 17 00:00:00 2001 From: markm Date: Thu, 27 Feb 2003 18:04:54 +0000 Subject: WARNS=4 fixes. This would be WARNS=9 if we were -std=99 instead of -ansi, due to 'long long'. Reviewed by: green (slightly earlier version) --- bin/dd/Makefile | 3 +-- bin/dd/args.c | 47 ++++++++++++++++++++++++----------------------- bin/dd/conv.c | 8 +++++--- bin/dd/dd.c | 9 +++++---- bin/dd/dd.h | 14 +++++++------- bin/dd/extern.h | 6 ++---- bin/dd/misc.c | 9 +++++---- bin/dd/position.c | 1 + 8 files changed, 50 insertions(+), 47 deletions(-) (limited to 'bin/dd') diff --git a/bin/dd/Makefile b/bin/dd/Makefile index 7edf221..892ca8d 100644 --- a/bin/dd/Makefile +++ b/bin/dd/Makefile @@ -3,8 +3,7 @@ PROG= dd SRCS= args.c conv.c conv_tab.c dd.c misc.c position.c -WARNS= 0 -WFORMAT=0 +WARNS?= 4 MAINTAINER= green@FreeBSD.org diff --git a/bin/dd/args.c b/bin/dd/args.c index 490e33d..9d2aa6a 100644 --- a/bin/dd/args.c +++ b/bin/dd/args.c @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -67,7 +68,7 @@ static void f_obs(char *); static void f_of(char *); static void f_seek(char *); static void f_skip(char *); -static u_quad_t get_num(const char *); +static uintmax_t get_num(const char *); static off_t get_off_t(const char *); static const struct arg { @@ -167,8 +168,10 @@ jcl(char **argv) /* * Bail out if the calculation of a file offset would overflow. */ - if (in.offset > QUAD_MAX / in.dbsz || out.offset > QUAD_MAX / out.dbsz) - errx(1, "seek offsets cannot be larger than %qd", QUAD_MAX); + if (in.offset > OFF_MAX / (ssize_t)in.dbsz || + out.offset > OFF_MAX / (ssize_t)out.dbsz) + errx(1, "seek offsets cannot be larger than %jd", + (intmax_t)OFF_MAX); } static int @@ -182,7 +185,7 @@ c_arg(const void *a, const void *b) static void f_bs(char *arg) { - u_quad_t res; + uintmax_t res; res = get_num(arg); if (res < 1 || res > SSIZE_MAX) @@ -193,7 +196,7 @@ f_bs(char *arg) static void f_cbs(char *arg) { - u_quad_t res; + uintmax_t res; res = get_num(arg); if (res < 1 || res > SSIZE_MAX) @@ -204,15 +207,15 @@ f_cbs(char *arg) static void f_count(char *arg) { - u_quad_t res; + intmax_t res; - res = get_num(arg); - if ((quad_t)res < 0) + res = (intmax_t)get_num(arg); + if (res < 0) errx(1, "count cannot be negative"); if (res == 0) - cpy_cnt = -1; + cpy_cnt = (uintmax_t)-1; else - cpy_cnt = (quad_t)res; + cpy_cnt = (uintmax_t)res; } static void @@ -221,18 +224,18 @@ f_files(char *arg) files_cnt = get_num(arg); if (files_cnt < 1) - errx(1, "files must be between 1 and %qd", QUAD_MAX); + errx(1, "files must be between 1 and %jd", (uintmax_t)-1); } static void f_ibs(char *arg) { - u_quad_t res; + uintmax_t res; if (!(ddflags & C_BS)) { res = get_num(arg); if (res < 1 || res > SSIZE_MAX) - errx(1, "ibs must be between 1 and %d", SSIZE_MAX); + errx(1, "ibs must be between 1 and %zd", SSIZE_MAX); in.dbsz = (size_t)res; } } @@ -247,12 +250,12 @@ f_if(char *arg) static void f_obs(char *arg) { - u_quad_t res; + uintmax_t res; if (!(ddflags & C_BS)) { res = get_num(arg); if (res < 1 || res > SSIZE_MAX) - errx(1, "obs must be between 1 and %d", SSIZE_MAX); + errx(1, "obs must be between 1 and %zd", SSIZE_MAX); out.dbsz = (size_t)res; } } @@ -329,7 +332,7 @@ c_conv(const void *a, const void *b) } /* - * Convert an expression of the following forms to a u_quad_t. + * Convert an expression of the following forms to a uintmax_t. * 1) A positive decimal number. * 2) A positive decimal number followed by a b (mult by 512). * 3) A positive decimal number followed by a k (mult by 1 << 10). @@ -340,10 +343,10 @@ c_conv(const void *a, const void *b) * separated by x (also * for backwards compatibility), specifying * the product of the indicated values. */ -static u_quad_t +static uintmax_t get_num(const char *val) { - u_quad_t num, mult, prevnum; + uintmax_t num, mult, prevnum; char *expr; errno = 0; @@ -406,14 +409,12 @@ erange: * Convert an expression of the following forms to an off_t. This is the * same as get_num(), but it uses signed numbers. * - * The major problem here is that an off_t may not necessarily be a quad_t. - * The right thing to do would be to use intmax_t when available and then - * cast down to an off_t, if possible. + * The major problem here is that an off_t may not necessarily be a intmax_t. */ static off_t get_off_t(const char *val) { - quad_t num, mult, prevnum; + intmax_t num, mult, prevnum; char *expr; errno = 0; @@ -457,7 +458,7 @@ get_off_t(const char *val) break; case '*': /* Backward compatible. */ case 'x': - mult = (quad_t)get_off_t(expr + 1); + mult = (intmax_t)get_off_t(expr + 1); prevnum = num; num *= mult; if ((prevnum > 0) == (num > 0) && num / mult == prevnum) diff --git a/bin/dd/conv.c b/bin/dd/conv.c index 734513a..a31e520 100644 --- a/bin/dd/conv.c +++ b/bin/dd/conv.c @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include "dd.h" @@ -171,7 +172,8 @@ block(void) ++st.trunc; /* Toss characters to a newline. */ - for (; in.dbcnt && *inp++ != '\n'; --in.dbcnt); + for (; in.dbcnt && *inp++ != '\n'; --in.dbcnt) + ; if (!in.dbcnt) intrunc = 1; else @@ -223,8 +225,8 @@ unblock(void) /* Translation and case conversion. */ if ((t = ctab) != NULL) - for (cnt = in.dbrcnt, inp = in.dbp; cnt--;) - *--inp = t[*inp]; + for (inp = in.dbp - (cnt = in.dbrcnt); cnt--; ++inp) + *inp = t[*inp]; /* * Copy records (max cbsz size chunks) into the output buffer. The * translation has to already be done or we might not recognize the diff --git a/bin/dd/dd.c b/bin/dd/dd.c index 78558d2..92274f2 100644 --- a/bin/dd/dd.c +++ b/bin/dd/dd.c @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -77,11 +78,11 @@ static void setup(void); IO in, out; /* input/output state */ STAT st; /* statistics */ void (*cfunc)(void); /* conversion function */ -u_quad_t cpy_cnt; /* # of blocks to copy */ +uintmax_t cpy_cnt; /* # of blocks to copy */ static off_t pending = 0; /* pending seek if sparse */ -u_int ddflags; /* conversion options */ +u_int ddflags = 0; /* conversion options */ size_t cbsz; /* conversion block size */ -quad_t files_cnt = 1; /* # of files to copy */ +uintmax_t files_cnt = 1; /* # of files to copy */ const u_char *ctab; /* conversion table */ int @@ -247,7 +248,7 @@ dd_in(void) case 0: break; default: - if (st.in_full + st.in_part >= (u_quad_t)cpy_cnt) + if (st.in_full + st.in_part >= (uintmax_t)cpy_cnt) return; break; } diff --git a/bin/dd/dd.h b/bin/dd/dd.h index caf161b..c6211d9 100644 --- a/bin/dd/dd.h +++ b/bin/dd/dd.h @@ -62,13 +62,13 @@ typedef struct { } IO; typedef struct { - u_quad_t in_full; /* # of full input blocks */ - u_quad_t in_part; /* # of partial input blocks */ - u_quad_t out_full; /* # of full output blocks */ - u_quad_t out_part; /* # of partial output blocks */ - u_quad_t trunc; /* # of truncated records */ - u_quad_t swab; /* # of odd-length swab blocks */ - u_quad_t bytes; /* # of bytes written */ + uintmax_t in_full; /* # of full input blocks */ + uintmax_t in_part; /* # of partial input blocks */ + uintmax_t out_full; /* # of full output blocks */ + uintmax_t out_part; /* # of partial output blocks */ + uintmax_t trunc; /* # of truncated records */ + uintmax_t swab; /* # of odd-length swab blocks */ + uintmax_t bytes; /* # of bytes written */ double start; /* start time of dd */ } STAT; diff --git a/bin/dd/extern.h b/bin/dd/extern.h index 8bbb357..e835462 100644 --- a/bin/dd/extern.h +++ b/bin/dd/extern.h @@ -38,8 +38,6 @@ * $FreeBSD$ */ -#include - void block(void); void block_close(void); void dd_out(int); @@ -57,10 +55,10 @@ void unblock_close(void); extern IO in, out; extern STAT st; extern void (*cfunc)(void); -extern u_quad_t cpy_cnt; +extern uintmax_t cpy_cnt; extern size_t cbsz; extern u_int ddflags; -extern quad_t files_cnt; +extern uintmax_t files_cnt; extern const u_char *ctab; extern const u_char a2e_32V[], a2e_POSIX[]; extern const u_char e2a_32V[], e2a_POSIX[]; diff --git a/bin/dd/misc.c b/bin/dd/misc.c index f95a811..e142009 100644 --- a/bin/dd/misc.c +++ b/bin/dd/misc.c @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -68,21 +69,21 @@ summary(void) secs = 1e-6; /* Use snprintf(3) so that we don't reenter stdio(3). */ (void)snprintf(buf, sizeof(buf), - "%qu+%qu records in\n%qu+%qu records out\n", + "%ju+%ju records in\n%ju+%ju records out\n", st.in_full, st.in_part, st.out_full, st.out_part); (void)write(STDERR_FILENO, buf, strlen(buf)); if (st.swab) { - (void)snprintf(buf, sizeof(buf), "%qu odd length swab %s\n", + (void)snprintf(buf, sizeof(buf), "%ju odd length swab %s\n", st.swab, (st.swab == 1) ? "block" : "blocks"); (void)write(STDERR_FILENO, buf, strlen(buf)); } if (st.trunc) { - (void)snprintf(buf, sizeof(buf), "%qu truncated %s\n", + (void)snprintf(buf, sizeof(buf), "%ju truncated %s\n", st.trunc, (st.trunc == 1) ? "block" : "blocks"); (void)write(STDERR_FILENO, buf, strlen(buf)); } (void)snprintf(buf, sizeof(buf), - "%qu bytes transferred in %.6f secs (%.0f bytes/sec)\n", + "%ju bytes transferred in %.6f secs (%.0f bytes/sec)\n", st.bytes, secs, st.bytes / secs); (void)write(STDERR_FILENO, buf, strlen(buf)); } diff --git a/bin/dd/position.c b/bin/dd/position.c index 51eafde..6476f41 100644 --- a/bin/dd/position.c +++ b/bin/dd/position.c @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include "dd.h" -- cgit v1.1