Fixed multiple warnings in parser

This commit is contained in:
Armin Novak 2017-11-14 13:54:05 +01:00
parent 26d079e53b
commit 0aa5a83536

View File

@ -52,31 +52,19 @@ int CommandLineParseArgumentsA(int argc, LPCSTR* argv, COMMAND_LINE_ARGUMENT_A*
int i, j;
int status;
int count;
int length;
int index;
BOOL match;
BOOL found;
BOOL argument;
BOOL escaped;
size_t length;
BOOL notescaped;
char* sigil;
int sigil_length;
int sigil_index;
size_t sigil_length;
char* keyword;
int keyword_length;
int keyword_index;
SSIZE_T keyword_length;
SSIZE_T keyword_index;
char* separator;
int separator_length;
int separator_index;
char* value;
int value_length;
int value_index;
int toggle;
status = 0;
match = FALSE;
found = FALSE;
argument = FALSE;
escaped = TRUE;
notescaped = FALSE;
if (!argv)
@ -90,8 +78,8 @@ int CommandLineParseArgumentsA(int argc, LPCSTR* argv, COMMAND_LINE_ARGUMENT_A*
for (i = 1; i < argc; i++)
{
index = i;
escaped = TRUE;
BOOL found = FALSE;
BOOL escaped = TRUE;
if (preFilter)
{
@ -110,10 +98,8 @@ int CommandLineParseArgumentsA(int argc, LPCSTR* argv, COMMAND_LINE_ARGUMENT_A*
}
}
sigil_index = 0;
sigil_length = 0;
sigil = (char*) &argv[i][sigil_index];
length = (int) strlen(argv[i]);
sigil = (char*) argv[i];
length = strlen(argv[i]);
if ((sigil[0] == '/') && (flags & COMMAND_LINE_SIGIL_SLASH))
{
@ -162,12 +148,12 @@ int CommandLineParseArgumentsA(int argc, LPCSTR* argv, COMMAND_LINE_ARGUMENT_A*
{
if ((flags & COMMAND_LINE_IGN_UNKNOWN_KEYWORD))
continue;
return COMMAND_LINE_ERROR_NO_KEYWORD;
}
keyword_index = sigil_index + sigil_length;
keyword_index = sigil_length;
keyword = (char*) &argv[i][keyword_index];
toggle = -1;
if (flags & COMMAND_LINE_SIGIL_ENABLE_DISABLE)
@ -196,31 +182,24 @@ int CommandLineParseArgumentsA(int argc, LPCSTR* argv, COMMAND_LINE_ARGUMENT_A*
if (separator)
{
separator_length = 1;
separator_index = (int)(separator - argv[i]);
keyword_length = (int)(separator - keyword);
value_index = separator_index + separator_length;
SSIZE_T separator_index = (separator - argv[i]);
SSIZE_T value_index = separator_index + 1;
keyword_length = (separator - keyword);
value = (char*) &argv[i][value_index];
value_length = (length - value_index);
}
else
{
separator_length = 0;
separator_index = -1;
keyword_length = (length - keyword_index);
value_index = -1;
value = NULL;
value_length = 0;
}
if (!escaped)
continue;
found = FALSE;
for (j = 0; options[j].Name != NULL; j++)
{
match = FALSE;
BOOL match = FALSE;
if (strncmp(options[j].Name, keyword, keyword_length) == 0)
{
@ -241,10 +220,11 @@ int CommandLineParseArgumentsA(int argc, LPCSTR* argv, COMMAND_LINE_ARGUMENT_A*
continue;
found = match;
options[j].Index = index;
options[j].Index = i;
if ((flags & COMMAND_LINE_SEPARATOR_SPACE) && ((i + 1) < argc))
{
BOOL argument;
int value_present = 1;
if (flags & COMMAND_LINE_SIGIL_DASH)
@ -270,20 +250,14 @@ int CommandLineParseArgumentsA(int argc, LPCSTR* argv, COMMAND_LINE_ARGUMENT_A*
argument = TRUE;
else
argument = FALSE;
if (value_present && argument)
{
i++;
value_index = 0;
length = (int) strlen(argv[i]);
value = (char*) &argv[i][value_index];
value_length = (length - value_index);
value = (char*) argv[i];
}
else if (!value_present && (options[j].Flags & COMMAND_LINE_VALUE_OPTIONAL))
{
value_index = 0;
value = NULL;
value_length = 0;
}
else if (!value_present && argument)
return COMMAND_LINE_ERROR;
@ -299,9 +273,7 @@ int CommandLineParseArgumentsA(int argc, LPCSTR* argv, COMMAND_LINE_ARGUMENT_A*
if (value && (options[j].Flags & COMMAND_LINE_VALUE_FLAG))
{
i--;
value_index = -1;
value = NULL;
value_length = 0;
}
}
@ -362,7 +334,6 @@ int CommandLineParseArgumentsA(int argc, LPCSTR* argv, COMMAND_LINE_ARGUMENT_A*
else if (options[j].Flags & COMMAND_LINE_PRINT_BUILDCONFIG)
return COMMAND_LINE_STATUS_PRINT_BUILDCONFIG;
}
if (!found && (flags & COMMAND_LINE_IGN_UNKNOWN_KEYWORD) == 0)
return COMMAND_LINE_ERROR_NO_KEYWORD;
}
@ -406,7 +377,7 @@ int CommandLineClearArgumentsW(COMMAND_LINE_ARGUMENT_W* options)
COMMAND_LINE_ARGUMENT_A* CommandLineFindArgumentA(COMMAND_LINE_ARGUMENT_A* options, LPCSTR Name)
{
size_t i;
int i;
for (i = 0; options[i].Name != NULL; i++)
{
@ -425,7 +396,7 @@ COMMAND_LINE_ARGUMENT_A* CommandLineFindArgumentA(COMMAND_LINE_ARGUMENT_A* optio
COMMAND_LINE_ARGUMENT_W* CommandLineFindArgumentW(COMMAND_LINE_ARGUMENT_W* options, LPCWSTR Name)
{
size_t i;
int i;
for (i = 0; options[i].Name != NULL; i++)
{
@ -446,9 +417,6 @@ COMMAND_LINE_ARGUMENT_A* CommandLineFindNextArgumentA(COMMAND_LINE_ARGUMENT_A* a
{
COMMAND_LINE_ARGUMENT_A* nextArgument;
if (!argument)
return NULL;
nextArgument = &argument[1];
if (nextArgument->Name == NULL)