mirror of
https://salsa.debian.org/srivasta/make-dfsg.git
synced 2025-01-30 16:41:44 +00:00
* read.c (get_next_mword): [SV 49865] Make fallthrough explicit.
This commit is contained in:
parent
72af7ce8af
commit
80861cce43
1 changed files with 29 additions and 29 deletions
58
read.c
58
read.c
|
@ -2629,7 +2629,7 @@ readline (struct ebuffer *ebuf)
|
|||
static enum make_word_type
|
||||
get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
|
||||
{
|
||||
enum make_word_type wtype = w_bogus;
|
||||
enum make_word_type wtype;
|
||||
char *p = buffer, *beg;
|
||||
char c;
|
||||
|
||||
|
@ -2639,41 +2639,42 @@ get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
|
|||
|
||||
beg = p;
|
||||
c = *(p++);
|
||||
|
||||
/* Look at the start of the word to see if it's simple. */
|
||||
switch (c)
|
||||
{
|
||||
case '\0':
|
||||
wtype = w_eol;
|
||||
break;
|
||||
goto done;
|
||||
|
||||
case ';':
|
||||
wtype = w_semicolon;
|
||||
break;
|
||||
goto done;
|
||||
|
||||
case '=':
|
||||
wtype = w_varassign;
|
||||
break;
|
||||
goto done;
|
||||
|
||||
case ':':
|
||||
wtype = w_colon;
|
||||
switch (*p)
|
||||
if (*p == '=')
|
||||
{
|
||||
case ':':
|
||||
++p;
|
||||
if (p[1] != '=')
|
||||
wtype = w_dcolon;
|
||||
else
|
||||
{
|
||||
wtype = w_varassign;
|
||||
++p;
|
||||
}
|
||||
break;
|
||||
|
||||
case '=':
|
||||
++p;
|
||||
wtype = w_varassign;
|
||||
break;
|
||||
wtype = w_varassign; /* := */
|
||||
}
|
||||
break;
|
||||
else if (*p == ':')
|
||||
{
|
||||
++p;
|
||||
if (p[1] == '=')
|
||||
{
|
||||
++p;
|
||||
wtype = w_varassign; /* ::= */
|
||||
}
|
||||
else
|
||||
wtype = w_dcolon;
|
||||
}
|
||||
else
|
||||
wtype = w_colon;
|
||||
goto done;
|
||||
|
||||
case '+':
|
||||
case '?':
|
||||
|
@ -2681,20 +2682,19 @@ get_next_mword (char *buffer, char *delim, char **startp, unsigned int *length)
|
|||
if (*p == '=')
|
||||
{
|
||||
++p;
|
||||
wtype = w_varassign;
|
||||
break;
|
||||
wtype = w_varassign; /* += or ?= or != */
|
||||
goto done;
|
||||
}
|
||||
/* FALLTHROUGH */
|
||||
|
||||
default:
|
||||
if (delim && strchr (delim, c))
|
||||
wtype = w_static;
|
||||
break;
|
||||
{
|
||||
wtype = w_static;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
/* Did we find something? If so, return now. */
|
||||
if (wtype != w_bogus)
|
||||
goto done;
|
||||
|
||||
/* This is some non-operator word. A word consists of the longest
|
||||
string of characters that doesn't contain whitespace, one of [:=#],
|
||||
or [?+!]=, or one of the chars in the DELIM string. */
|
||||
|
|
Loading…
Reference in a new issue