preparatory patch for -Wwrite-strings #1
authorDenis Vlasenko <vda.linux@googlemail.com>
Mon, 29 Jan 2007 22:51:00 +0000 (22:51 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Mon, 29 Jan 2007 22:51:00 +0000 (22:51 -0000)
17 files changed:
applets/applets.c
archival/tar.c
coreutils/cat.c
coreutils/date.c
coreutils/du.c
coreutils/expr.c
coreutils/fold.c
coreutils/head.c
coreutils/ln.c
coreutils/md5_sha1_sum.c
coreutils/printf.c
coreutils/tail.c
coreutils/yes.c
editors/awk.c
editors/ed.c
include/libbb.h
libbb/find_root_device.c

index a974743da438242ebbbc319ad6390e70bb304c7e..8a17cbf0b86c5060125e4b4e1d714097e1de10e4 100644 (file)
@@ -106,7 +106,7 @@ static char *get_trimmed_slice(char *s, char *e)
 }
 
 
-#define parse_error(x)  { err=x; goto pe_label; }
+#define parse_error(x)  do { errmsg = x; goto pe_label; } while(0)
 
 /* Don't depend on the tools to combine strings. */
 static const char config_file[] = CONFIG_FILE;
@@ -130,7 +130,7 @@ static void parse_config_file(void)
        struct BB_suid_config *sct;
        struct BB_applet *applet;
        FILE *f;
-       char *err;
+       const char *errmsg;
        char *s;
        char *e;
        int i, lc, section;
@@ -307,7 +307,7 @@ static void parse_config_file(void)
 
  pe_label:
        fprintf(stderr, "Parse error in %s, line %d: %s\n",
-                       config_file, lc, err);
+                       config_file, lc, errmsg);
 
        fclose(f);
        /* Release any allocated memory before returning. */
index ca59643e59e728845a07bed4cba2018e8dfb0bbd..6c15f65c93bf0b40902d08814544145d28f5a193 100644 (file)
@@ -504,7 +504,7 @@ static int writeTarFile(const int tar_fd, const int verboseFlag,
                int gzipDataPipe[2] = { -1, -1 };
                int gzipStatusPipe[2] = { -1, -1 };
                volatile int vfork_exec_errno = 0;
-               char *zip_exec = (gzip == 1) ? "gzip" : "bzip2";
+               const char *zip_exec = (gzip == 1) ? "gzip" : "bzip2";
 
                if (pipe(gzipDataPipe) < 0 || pipe(gzipStatusPipe) < 0)
                        bb_perror_msg_and_die("pipe");
index 2b7c6035f83eaa2c5fb61c2cb9ad503ac67dbf00..7a34891e8e250c91df63e933644a57d76697dc5c 100644 (file)
@@ -14,7 +14,7 @@
 
 int bb_cat(char **argv)
 {
-       static char *const argv_dash[] = { "-", NULL };
+       static const char *const argv_dash[] = { "-", NULL };
        FILE *f;
        int retval = EXIT_SUCCESS;
 
index a6690e8bdee8429168f026706ce77fde8e5ff9dd..034a18b9825f7c8ac489e91735ee6288fb233295 100644 (file)
@@ -41,7 +41,7 @@ static void xputenv(char *s)
 static void maybe_set_utc(int opt)
 {
        if (opt & DATE_OPT_UTC)
-               xputenv("TZ=UTC0");
+               xputenv((char*)"TZ=UTC0");
 }
 
 int date_main(int argc, char **argv)
@@ -218,7 +218,7 @@ format_utc:
                        i = 22;
                        goto format_utc;
                } else /* default case */
-                       date_fmt = "%a %b %e %H:%M:%S %Z %Y";
+                       date_fmt = (char*)"%a %b %e %H:%M:%S %Z %Y";
        }
 
        if (*date_fmt == '\0') {
@@ -228,7 +228,7 @@ format_utc:
                /* Handle special conversions */
 
                if (strncmp(date_fmt, "%f", 2) == 0) {
-                       date_fmt = "%Y.%m.%d-%H:%M:%S";
+                       date_fmt = (char*)"%Y.%m.%d-%H:%M:%S";
                }
 
                /* Generate output string */
index a1ca5b59b6cd73c2bedc9667ca471451ff6b05fa..a4b3c817e683cbeb1acd5d51cc64088645b57c6c 100644 (file)
@@ -222,7 +222,7 @@ int du_main(int argc, char **argv)
        /* go through remaining args (if any) */
        argv += optind;
        if (optind >= argc) {
-               *--argv = ".";
+               *--argv = (char*)".";
                if (slink_depth == 1) {
                        slink_depth = 0;
                }
index 51e553dc6baaab5a21e30b9df937815f6d5085d7..469d467bfe19a18f074a40548c6970c0a2f78b5f 100644 (file)
@@ -67,8 +67,8 @@ static char **args;
 static VALUE *docolon(VALUE * sv, VALUE * pv);
 static VALUE *eval(void);
 static VALUE *int_value(arith_t i);
-static VALUE *str_value(char *s);
-static int nextarg(char *str);
+static VALUE *str_value(const char *s);
+static int nextarg(const char *str);
 static int null(VALUE * v);
 static int toarith(VALUE * v);
 static void freev(VALUE * v);
@@ -110,7 +110,7 @@ static VALUE *int_value(arith_t i)
 
 /* Return a VALUE for S.  */
 
-static VALUE *str_value(char *s)
+static VALUE *str_value(const char *s)
 {
        VALUE *v;
 
@@ -172,7 +172,7 @@ static int toarith(VALUE * v)
 /* Return nonzero if the next token matches STR exactly.
    STR must not be NULL.  */
 
-static int nextarg(char *str)
+static int nextarg(const char *str)
 {
        if (*args == NULL)
                return 0;
index fd7298169bf97bd51c000eb01a459164a7bafa44..490882f6dffabf4666a51977f46533fe442cf4c5 100644 (file)
@@ -66,7 +66,7 @@ int fold_main(int argc, char **argv)
 
        argv += optind;
        if (!*argv) {
-               *--argv = "-";
+               *--argv = (char*)"-";
        }
 
        do {
index 56e7a960cde2e710943a4683643fc2aca4f3e383..59b4d552c44102d4535ce1397c9849706eee3217 100644 (file)
@@ -92,7 +92,7 @@ int head_main(int argc, char **argv)
 
        argv += optind;
        if (!*argv) {
-               *--argv = "-";
+               *--argv = (char*)"-";
        }
 
        fmt = header_fmt_str + 1;
index 231a3bf0383e447f89fcf1bd74572e3eb59feeb7..a307e5579eca1d52d061287b144dc8aad7a3b587 100644 (file)
@@ -26,7 +26,7 @@ int ln_main(int argc, char **argv)
        char *last;
        char *src_name;
        char *src;
-       char *suffix = "~";
+       char *suffix = (char*)"~";
        struct stat statbuf;
        int (*link_func)(const char *, const char *);
 
index 014ecefd0df24821d04d43284f18348871de0c00..d945ce7e03425b3fb6635b9646c8982485e6b369 100644 (file)
@@ -102,7 +102,7 @@ int md5_sha1_sum_main(int argc, char **argv)
        }
 
        if (argc == optind) {
-               argv[argc++] = "-";
+               argv[argc++] = (char*)"-";
        }
 
        if (ENABLE_FEATURE_MD5_SHA1_SUM_CHECK && (flags & FLAG_CHECK)) {
index 0e818354fed21e8d30c35c9d3aa7111c9c508079..924499b29511b5e25e7429584717376f8841fe42 100644 (file)
 
 static int print_formatted(char *format, int argc, char **argv);
 static void print_direc(char *start, size_t length,
-                       int field_width, int precision, char *argument);
+               int field_width, int precision, const char *argument);
 
-typedef void (*converter)(char *arg, void *result);
+typedef void (*converter)(const char *arg, void *result);
 
-static void multiconvert(char *arg, void *result, converter convert)
+static void multiconvert(const char *arg, void *result, converter convert)
 {
        char s[16];
        if (*arg == '"' || *arg == '\'') {
@@ -58,15 +58,15 @@ static void multiconvert(char *arg, void *result, converter convert)
                fputs(arg, stderr);
 }
 
-static void conv_strtoul(char *arg, void *result)
+static void conv_strtoul(const char *arg, void *result)
 {
        *(unsigned long*)result = bb_strtoul(arg, NULL, 10);
 }
-static void conv_strtol(char *arg, void *result)
+static void conv_strtol(const char *arg, void *result)
 {
        *(long*)result = bb_strtol(arg, NULL, 10);
 }
-static void conv_strtod(char *arg, void *result)
+static void conv_strtod(const char *arg, void *result)
 {
        char *end;
        /* Well, this one allows leading whitespace... so what */
@@ -75,21 +75,21 @@ static void conv_strtod(char *arg, void *result)
        if (end[0]) errno = ERANGE;
 }
 
-static unsigned long my_xstrtoul(char *arg)
+static unsigned long my_xstrtoul(const char *arg)
 {
        unsigned long result;
        multiconvert(arg, &result, conv_strtoul);
        return result;
 }
 
-static long my_xstrtol(char *arg)
+static long my_xstrtol(const char *arg)
 {
        long result;
        multiconvert(arg, &result, conv_strtol);
        return result;
 }
 
-static double my_xstrtod(char *arg)
+static double my_xstrtod(const char *arg)
 {
        double result;
        multiconvert(arg, &result, conv_strtod);
@@ -239,7 +239,7 @@ static int print_formatted(char *format, int argc, char **argv)
 
 static void
 print_direc(char *start, size_t length, int field_width, int precision,
-                       char *argument)
+               const char *argument)
 {
        char *p;                /* Null-terminated copy of % directive. */
 
index f1ba04ec6358c4884a20af478a1fb3068ade2ce4..2a16453091e5cd85d332f3c88d605f32303937a2 100644 (file)
@@ -91,7 +91,7 @@ int tail_main(int argc, char **argv)
        if (argc >= 2 && (argv[1][0] == '+' || argv[1][0] == '-')
         && isdigit(argv[1][1])
        ) {
-               argv[0] = "-n";
+               argv[0] = (char*)"-n";
                argv--;
                argc++;
        }
index 894506a89d53f60e99f9f188cd0bac5b7eab92fe..fc6e611e64ce3977f729a6708317066def8d5213 100644 (file)
@@ -22,7 +22,7 @@ int yes_main(int argc, char **argv)
        const char *fmt;
        char **first_arg;
 
-       *argv = "y";
+       *argv = (char*)"y";
        if (argc != 1) {
                ++argv;
        }
index d6dcd9578ceabda54407aa139fef8b2288b78641..ae7ca23d4cb67aa1f3495a0a785560c790b30faa 100644 (file)
@@ -47,7 +47,7 @@ typedef struct var_s {
 typedef struct chain_s {
        struct node_s *first;
        struct node_s *last;
-       char *programname;
+       const char *programname;
 } chain;
 
 /* Function */
@@ -399,7 +399,7 @@ static int nextrec, nextfile;
 static node *break_ptr, *continue_ptr;
 static rstream *iF;
 static xhash *vhash, *ahash, *fdhash, *fnhash;
-static char *programname;
+static const char *programname;
 static short lineno;
 static int is_f0_split;
 static int nfields;
@@ -703,7 +703,7 @@ static var *setvar_i(var *v, double value)
        return v;
 }
 
-static char *getvar_s(var *v)
+static const char *getvar_s(var *v)
 {
        /* if v is numeric and has no cached string, convert it to string */
        if ((v->type & (VF_NUMBER | VF_CACHED)) == VF_NUMBER) {
@@ -995,7 +995,7 @@ static node *new_node(uint32_t info)
        return n;
 }
 
-static node *mk_re_node(char *s, node *n, regex_t *re)
+static node *mk_re_node(const char *s, node *n, regex_t *re)
 {
        n->info = OC_REGEXP;
        n->l.re = re;
@@ -1347,7 +1347,7 @@ static void parse_program(char *p)
 
 /* -------- program execution part -------- */
 
-static node *mk_splitter(char *s, tsplitter *spl)
+static node *mk_splitter(const char *s, tsplitter *spl)
 {
        regex_t *re, *ire;
        node *n;
@@ -1375,7 +1375,7 @@ static node *mk_splitter(char *s, tsplitter *spl)
 static regex_t *as_regex(node *op, regex_t *preg)
 {
        var *v;
-       char *s;
+       const char *s;
 
        if ((op->info & OPCLSMASK) == OC_REGEXP) {
                return icase ? op->r.ire : op->l.re;
@@ -1419,7 +1419,7 @@ static void fsrealloc(int size)
        nfields = size;
 }
 
-static int awk_split(char *s, node *spl, char **slist)
+static int awk_split(const char *s, node *spl, char **slist)
 {
        int l, n = 0;
        char c[4];
@@ -1427,7 +1427,8 @@ static int awk_split(char *s, node *spl, char **slist)
        regmatch_t pmatch[2];
 
        /* in worst case, each char would be a separate field */
-       *slist = s1 = xstrndup(s, strlen(s) * 2 + 3);
+       *slist = s1 = xzalloc(strlen(s) * 2 + 3);
+       strcpy(s1, s);
 
        c[0] = c[1] = (char)spl->info;
        c[2] = c[3] = '\0';
@@ -1436,8 +1437,9 @@ static int awk_split(char *s, node *spl, char **slist)
        if ((spl->info & OPCLSMASK) == OC_REGEXP) {             /* regex split */
                while (*s) {
                        l = strcspn(s, c+2);
-                       if (regexec(icase ? spl->r.ire : spl->l.re, s, 1, pmatch, 0) == 0 &&
-                       pmatch[0].rm_so <= l) {
+                       if (regexec(icase ? spl->r.ire : spl->l.re, s, 1, pmatch, 0) == 0
+                        && pmatch[0].rm_so <= l
+                       ) {
                                l = pmatch[0].rm_so;
                                if (pmatch[0].rm_eo == 0) { l++; pmatch[0].rm_eo++; }
                        } else {
@@ -1510,7 +1512,8 @@ static void split_f0(void)
 static void handle_special(var *v)
 {
        int n;
-       char *b, *sep, *s;
+       char *b;
+       const char *sep, *s;
        int sl, l, len, i, bsize;
 
        if (!(v->type & VF_SPECIAL))
@@ -1737,7 +1740,8 @@ static int fmt_num(char *b, int size, const char *format, double n, int int_as_i
 static char *awk_printf(node *n)
 {
        char *b = NULL;
-       char *fmt, *s, *s1, *f;
+       char *fmt, *s, *f;
+       const char *s1;
        int i, j, incr, bsize;
        char c, c1;
        var *v, *arg;
@@ -1793,10 +1797,11 @@ static char *awk_printf(node *n)
  * all matches. If src or dst is NULL, use $0. If ex=TRUE, enable
  * subexpression matching (\1-\9)
  */
-static int awk_sub(node *rn, char *repl, int nm, var *src, var *dest, int ex)
+static int awk_sub(node *rn, const char *repl, int nm, var *src, var *dest, int ex)
 {
        char *ds = NULL;
-       char *sp, *s;
+       const char *s;
+       const char *sp;
        int c, i, j, di, rl, so, eo, nbs, n, dssize;
        regmatch_t pmatch[10];
        regex_t sreg, *re;
@@ -1865,7 +1870,7 @@ static var *exec_builtin(node *op, var *res)
        var *tv;
        node *an[4];
        var  *av[4];
-       char *as[4];
+       const char *as[4];
        regmatch_t pmatch[2];
        regex_t sreg, *re;
        static tsplitter tspl;
@@ -1998,8 +2003,10 @@ static var *exec_builtin(node *op, var *res)
                        tt = getvar_i(av[1]);
                else
                        time(&tt);
-               s = (nargs > 0) ? as[0] : "%a %b %d %H:%M:%S %Z %Y";
-               i = strftime(buf, MAXVARFMT, s, localtime(&tt));
+               //s = (nargs > 0) ? as[0] : "%a %b %d %H:%M:%S %Z %Y";
+               i = strftime(buf, MAXVARFMT,
+                       ((nargs > 0) ? as[0] : "%a %b %d %H:%M:%S %Z %Y"),
+                       localtime(&tt));
                buf[i] = '\0';
                setvar_s(res, buf);
                break;
@@ -2054,7 +2061,7 @@ static var *evaluate(node *op, var *res)
        var *v1;
        union {
                var *v;
-               char *s;
+               const char *s;
                double d;
                int i;
        } L, R;
@@ -2168,7 +2175,7 @@ static var *evaluate(node *op, var *res)
                        } else {        /* OC_PRINTF */
                                L.s = awk_printf(op1);
                                fputs(L.s, X.F);
-                               free(L.s);
+                               free((char*)L.s);
                        }
                        fflush(X.F);
                        break;
@@ -2610,7 +2617,7 @@ static rstream *next_input_file(void)
 {
        static rstream rsm;
        FILE *F = NULL;
-       char *fname, *ind;
+       const char *fname, *ind;
        static int files_happen = FALSE;
 
        if (rsm.F) fclose(rsm.F);
index 3aca7591224410289fc1479ddda78818f64c7022..5a48fbe75e9acc9f4a9e5b19d345a5f4b0354356 100644 (file)
@@ -401,7 +401,7 @@ static void subCommand(const char * cmd, int num1, int num2)
        if (cp)
                *cp++ = '\0';
        else
-               cp = "";
+               cp = (char*)"";
 
        while (*cp) switch (*cp++) {
                case 'g':
index 540170cdd225caadf049b20fad4c259d4301bcbc..6f195cf46ebd93b3c49960b041b00745ac708d7e 100644 (file)
@@ -239,7 +239,7 @@ extern int recursive_action(const char *fileName, int recurse,
        void* userData, int depth);
 extern int device_open(const char *device, int mode);
 extern int get_console_fd(void);
-extern char *find_block_device(char *path);
+extern char *find_block_device(const char *path);
 /* bb_copyfd_XX print read/write errors and return -1 if they occur */
 extern off_t bb_copyfd_eof(int fd1, int fd2);
 extern off_t bb_copyfd_size(int fd1, int fd2, off_t size);
index 1d74d1ea822c17741b33b04783528051be9ac147..ea360eae540509c43568135bc473f9dc407546cf 100644 (file)
@@ -9,7 +9,7 @@
 
 #include "libbb.h"
 
-char *find_block_device(char *path)
+char *find_block_device(const char *path)
 {
        DIR *dir;
        struct dirent *entry;