use skip_whitespace where appropriate
authorDenis Vlasenko <vda.linux@googlemail.com>
Wed, 25 Oct 2006 12:46:03 +0000 (12:46 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Wed, 25 Oct 2006 12:46:03 +0000 (12:46 -0000)
editors/awk.c
editors/sed.c
miscutils/dc.c
modutils/modprobe.c
networking/ifupdown.c
networking/wget.c
shell/bbsh.c
util-linux/mount.c

index e91c37678a8e036b4525a64dc072350551300af6..b776dd7965088a0ec4ef28ae709b2c5a3843475f 100644 (file)
@@ -1470,7 +1470,7 @@ static int awk_split(char *s, node *spl, char **slist)
                }
        } else {                                /* space split */
                while (*s) {
-                       while (isspace(*s)) s++;
+                       s = skip_whitespace(s);
                        if (! *s) break;
                        n++;
                        while (*s && !isspace(*s))
index 30f35ce223963e06f6ef1f7f5be9b4dff6353b7c..e261415712a28388337b4c43c44fef70cd5b5ef4 100644 (file)
 
 /* Each sed command turns into one of these structures. */
 typedef struct sed_cmd_s {
-    /* Ordered by alignment requirements: currently 36 bytes on x86 */
+       /* Ordered by alignment requirements: currently 36 bytes on x86 */
 
-    /* address storage */
-    regex_t *beg_match;        /* sed -e '/match/cmd' */
-    regex_t *end_match;        /* sed -e '/match/,/end_match/cmd' */
-    regex_t *sub_match;        /* For 's/sub_match/string/' */
-    int beg_line;              /* 'sed 1p'   0 == apply commands to all lines */
-    int end_line;              /* 'sed 1,3p' 0 == one line only. -1 = last line ($) */
+       /* address storage */
+       regex_t *beg_match;     /* sed -e '/match/cmd' */
+       regex_t *end_match;     /* sed -e '/match/,/end_match/cmd' */
+       regex_t *sub_match;     /* For 's/sub_match/string/' */
+       int beg_line;           /* 'sed 1p'   0 == apply commands to all lines */
+       int end_line;           /* 'sed 1,3p' 0 == one line only. -1 = last line ($) */
 
-    FILE *file;                        /* File (sw) command writes to, -1 for none. */
-    char *string;              /* Data string for (saicytb) commands. */
+       FILE *file;             /* File (sw) command writes to, -1 for none. */
+       char *string;           /* Data string for (saicytb) commands. */
 
-    unsigned short which_match;                /* (s) Which match to replace (0 for all) */
+       unsigned short which_match;     /* (s) Which match to replace (0 for all) */
 
-    /* Bitfields (gcc won't group them if we don't) */
-    unsigned int invert:1;                     /* the '!' after the address */
-    unsigned int in_match:1;           /* Next line also included in match? */
-    unsigned int no_newline:1;         /* Last line written by (sw) had no '\n' */
-    unsigned int sub_p:1;                      /* (s) print option */
+       /* Bitfields (gcc won't group them if we don't) */
+       unsigned int invert:1;          /* the '!' after the address */
+       unsigned int in_match:1;        /* Next line also included in match? */
+       unsigned int no_newline:1;      /* Last line written by (sw) had no '\n' */
+       unsigned int sub_p:1;           /* (s) print option */
 
-    /* GENERAL FIELDS */
-    char cmd;                          /* The command char: abcdDgGhHilnNpPqrstwxy:={} */
-    struct sed_cmd_s *next;    /* Next command (linked list, NULL terminated) */
+       /* GENERAL FIELDS */
+       char cmd;               /* The command char: abcdDgGhHilnNpPqrstwxy:={} */
+       struct sed_cmd_s *next; /* Next command (linked list, NULL terminated) */
 } sed_cmd_t;
 
 static const char *const semicolon_whitespace = "; \n\r\t\v";
@@ -162,7 +162,7 @@ void sed_free_and_close_stuff(void)
 
 static void cleanup_outname(void)
 {
-  if(bbg.outname) unlink(bbg.outname);
+       if(bbg.outname) unlink(bbg.outname);
 }
 
 /* strdup, replacing "\n" with '\n', and "\delimiter" with 'delimiter' */
@@ -343,36 +343,36 @@ static int parse_subst_cmd(sed_cmd_t *sed_cmd, char *substr)
                if(isspace(substr[idx])) continue;
 
                switch (substr[idx]) {
-                       /* Replace all occurrences */
-                       case 'g':
-                               if (match[0] != '^') sed_cmd->which_match = 0;
-                               break;
-                       /* Print pattern space */
-                       case 'p':
-                               sed_cmd->sub_p = 1;
-                               break;
-                       /* Write to file */
-                       case 'w':
-                       {
-                               char *temp;
-                               idx+=parse_file_cmd(sed_cmd,substr+idx,&temp);
+               /* Replace all occurrences */
+               case 'g':
+                       if (match[0] != '^') sed_cmd->which_match = 0;
+                       break;
+               /* Print pattern space */
+               case 'p':
+                       sed_cmd->sub_p = 1;
+                       break;
+               /* Write to file */
+               case 'w':
+               {
+                       char *temp;
+                       idx+=parse_file_cmd(sed_cmd,substr+idx,&temp);
 
-                               break;
-                       }
-                       /* Ignore case (gnu exension) */
-                       case 'I':
-                               cflags |= REG_ICASE;
-                               break;
-                       /* Comment */
-                       case '#':
-                               while(substr[++idx]);
-                               /* Fall through */
-                       /* End of command */
-                       case ';':
-                       case '}':
-                               goto out;
-                       default:
-                               bb_error_msg_and_die("bad option in substitution expression");
+                       break;
+               }
+               /* Ignore case (gnu exension) */
+               case 'I':
+                       cflags |= REG_ICASE;
+                       break;
+               /* Comment */
+               case '#':
+                       while(substr[++idx]);
+                       /* Fall through */
+               /* End of command */
+               case ';':
+               case '}':
+                       goto out;
+               default:
+                       bb_error_msg_and_die("bad option in substitution expression");
                }
        }
 out:
@@ -420,7 +420,7 @@ static char *parse_cmd_args(sed_cmd_t *sed_cmd, char *cmdstr)
        } else if (strchr(":btT", sed_cmd->cmd)) {
                int length;
 
-               while(isspace(*cmdstr)) cmdstr++;
+               cmdstr = skip_whitespace(cmdstr);
                length = strcspn(cmdstr, semicolon_whitespace);
                if (length) {
                        sed_cmd->string = xstrndup(cmdstr, length);
@@ -517,7 +517,7 @@ static void add_cmd(char *cmdstr)
                }
 
                /* skip whitespace before the command */
-               while (isspace(*cmdstr)) cmdstr++;
+               cmdstr = skip_whitespace(cmdstr);
 
                /* Check for inversion flag */
                if (*cmdstr == '!') {
@@ -525,7 +525,7 @@ static void add_cmd(char *cmdstr)
                        cmdstr++;
 
                        /* skip whitespace before the command */
-                       while (isspace(*cmdstr)) cmdstr++;
+                       cmdstr = skip_whitespace(cmdstr);
                }
 
                /* last part (mandatory) will be a command */
@@ -724,7 +724,7 @@ static int puts_maybe_newline(char *s, FILE *file, int missing_newline, int no_n
        fputs(s,file);
        if(!no_newline) fputc('\n',file);
 
-    if(ferror(file)) {
+       if(ferror(file)) {
                xfunc_error_retval = 4;  /* It's what gnu sed exits with... */
                bb_error_msg_and_die(bb_msg_write_error);
        }
@@ -1167,40 +1167,43 @@ int sed_main(int argc, char **argv)
                FILE *file;
 
                for (i = optind; i < argc; i++) {
+                       struct stat statbuf;
+                       int nonstdoutfd;
+
                        if(!strcmp(argv[i], "-") && !bbg.in_place) {
                                add_input_file(stdin);
                                process_files();
-                       } else {
-                               file = bb_wfopen(argv[i], "r");
-                               if (file) {
-                                       if(bbg.in_place) {
-                                               struct stat statbuf;
-                                               int nonstdoutfd;
-
-                                               bbg.outname=xstrndup(argv[i],strlen(argv[i])+6);
-                                               strcat(bbg.outname,"XXXXXX");
-                                               if(-1==(nonstdoutfd=mkstemp(bbg.outname)))
-                                                       bb_error_msg_and_die("no temp file");
-                                               bbg.nonstdout=fdopen(nonstdoutfd,"w");
-
-                                               /* Set permissions of output file */
-
-                                               fstat(fileno(file),&statbuf);
-                                               fchmod(nonstdoutfd,statbuf.st_mode);
-                                               add_input_file(file);
-                                               process_files();
-                                               fclose(bbg.nonstdout);
-
-                                               bbg.nonstdout=stdout;
-                                               unlink(argv[i]);
-                                               rename(bbg.outname,argv[i]);
-                                               free(bbg.outname);
-                                               bbg.outname=0;
-                                       } else add_input_file(file);
-                               } else {
-                                       status = EXIT_FAILURE;
-                               }
+                               continue;
                        }
+                       file = bb_wfopen(argv[i], "r");
+                       if (!file) {
+                               status = EXIT_FAILURE;
+                               continue;
+                       }
+                       if(!bbg.in_place) {
+                               add_input_file(file);
+                               continue;
+                       }
+
+                       bbg.outname=xstrndup(argv[i],strlen(argv[i])+6);
+                       strcat(bbg.outname,"XXXXXX");
+                       if(-1==(nonstdoutfd=mkstemp(bbg.outname)))
+                               bb_error_msg_and_die("no temp file");
+                       bbg.nonstdout=fdopen(nonstdoutfd,"w");
+
+                       /* Set permissions of output file */
+
+                       fstat(fileno(file),&statbuf);
+                       fchmod(nonstdoutfd,statbuf.st_mode);
+                       add_input_file(file);
+                       process_files();
+                       fclose(bbg.nonstdout);
+
+                       bbg.nonstdout=stdout;
+                       unlink(argv[i]);
+                       rename(bbg.outname,argv[i]);
+                       free(bbg.outname);
+                       bbg.outname=0;
                }
                if(bbg.input_file_count>bbg.current_input_file) process_files();
        }
index fd5390143f2a59959e9cd84daab04f31d4699a3d..7b6405754bcf6398d534a17219e2cc59e4b154d6 100644 (file)
@@ -179,10 +179,10 @@ static void stack_machine(const char *argument)
  */
 static char *get_token(char **buffer)
 {
-       char *start   = NULL;
-       char *current = *buffer;
+       char *start = NULL;
+       char *current;
 
-       while (isspace(*current)) { current++; }
+       current = skip_whitespace(*buffer);
        if (*current != 0) {
                start = current;
                while (!isspace(*current) && *current != 0) { current++; }
index ba24791f977c1b0927ea10a028c1448eea6d725d..5d62ae5df814da735ad9cf429ed187ee08450953 100644 (file)
@@ -76,15 +76,13 @@ static int parse_tag_value ( char *buffer, char **ptag, char **pvalue )
 {
        char *tag, *value;
 
-       while ( isspace ( *buffer ))
-               buffer++;
+       buffer = skip_whitespace ( buffer );
        tag = value = buffer;
        while ( !isspace ( *value ))
                if (!*value) return 0;
                else value++;
        *value++ = 0;
-       while ( isspace ( *value ))
-               value++;
+       value = skip_whitespace ( value );
        if (!*value) return 0;
 
        *ptag = tag;
@@ -311,11 +309,9 @@ static void include_conf ( struct dep_t **first, struct dep_t **current, char *b
                                }
                        }
                        else if (( strncmp ( buffer, "include", 7 ) == 0 ) && isspace ( buffer [7] )) {
+                               int fdi; char *filename;
 
-                               int fdi; char *filename = buffer + 8;
-
-                               while ( isspace ( *filename ))
-                                       filename++;
+                               filename = skip_whitespace ( buffer + 8 );
 
                                if (( fdi = open ( filename, O_RDONLY )) >= 0 ) {
                                        include_conf(first, current, buffer, buflen, fdi);
index 45407f9f4d03d259b6cfa2bfdb5ac78cd1f73d74..ede2f8997a46980e09a8959ab92dec3cac79500b 100644 (file)
@@ -572,10 +572,7 @@ static char *next_word(char **buf)
        }
 
        /* Skip over leading whitespace */
-       word = *buf;
-       while (isspace(*word)) {
-               ++word;
-       }
+       word = skip_whitespace(*buf);
 
        /* Skip over comments */
        if (*word == '#') {
@@ -712,9 +709,7 @@ static struct interfaces_file_t *read_interfaces(const char *filename)
                        }
 
                        /* ship any trailing whitespace */
-                       while (isspace(*buf_ptr)) {
-                               ++buf_ptr;
-                       }
+                       buf_ptr = skip_whitespace(buf_ptr);
 
                        if (buf_ptr[0] != '\0') {
                                bb_error_msg("too many parameters \"%s\"", buf);
index a0d3e15e83c90bf066ea14cc59335c1a013588e2..090b58d9a3df3cf7550d1c8ef6e5d455f3784097 100644 (file)
@@ -302,7 +302,7 @@ int wget_main(int argc, char **argv)
 
                        s = buf;
                        while (*s != '\0' && !isspace(*s)) ++s;
-                       while (isspace(*s)) ++s;
+                       s = skip_whitespace(s);
                        // FIXME: no error check
                        // xatou wouldn't work: "200 OK"
                        status = atoi(s);
index 77e186d35b1790bb1dca83c1f8e79e53bfb85b29..791983a3af24522fd9435a078199ea4673ad42dc 100644 (file)
@@ -119,7 +119,7 @@ static char *parse_pipeline(char *cmdline, struct pipeline *line)
                char *end;
 
                // Skip leading whitespace and detect end of line.
-               while (isspace(*start)) start++;
+               start = skip_whitespace(start);
                if (!*start || *start=='#') {
                        if (ENABLE_BBSH_JOBCTL) line->cmdlinelen = start-cmdline;
                        return 0;
index 5ced48feabbccd7326862d69ee2240098444d7f5..2c5e231773d9c4a920161dc68ad821e779d1e53a 100644 (file)
@@ -203,8 +203,7 @@ static llist_t *get_block_backed_filesystems(void)
                while ((buf = xmalloc_getline(f)) != 0) {
                        if (!strncmp(buf, "nodev", 5) && isspace(buf[5]))
                                continue;
-                       fs = buf;
-                       while (isspace(*fs)) fs++;
+                       fs = skip_whitespace(buf);
                        if (*fs=='#' || *fs=='*' || !*fs) continue;
 
                        llist_add_to_end(&list, xstrdup(fs));