Update of /cvsroot/anet/ANet/ANet_Daemon/Common
In directory usw-pr-cvs1:/tmp/cvs-serv1955/Common
Added Files:
Args.c Args.h
Log Message:
Added argument string parser/generator
--- NEW FILE: Args.c ---
#include "Args.h"
/*
int main(int argc, char ** argv)
{
char * inString;
char * ptr;
char * argument;
int i, argsSize;
argsSize = 0;
for(i = 0; i < argc; i++)
{
for(ptr = argv[i]; *ptr; ptr++, argsSize++);
argsSize++;
}
printf("argsSize = %d\n", argsSize);
if (!(inString = malloc(argsSize)))
return -1;
MakeArgumentString(argc, argv, inString, argsSize);
printf("The argument string is [%s]\n", inString);
if (!(argument = malloc(80)))
return -1;
if (GetArgument(inString, "d", argument, 80) != 0)
printf("Argument -d is not passed\n");
else
printf("argument -d is [%s]\n", argument);
free(argument);
if (!(argument = malloc(80)))
return -1;
if (GetArgument(inString, "c", argument, 80) != 0)
printf("Argument -c is not passed\n");
else
printf("argument -c is [%s]\n", argument);
free(inString);
return 0;
}
*/
void MakeArgumentString(int argc, char ** argv, char * outArgs, int argsSize)
{
char * ptr;
int i, j;
j = 0;
for(i = 0; i < argc && j < argsSize; i++, j++)
{
for(ptr = argv[i]; *ptr; ptr++, j++)
outArgs[j] = *ptr;
outArgs[j] = ' ';
}
outArgs[j - 1] = '\0';
}
int GetArgument(char * inString, char * inArg, char * outVal, int valSize)
{
int retval = 1;
char * ptr;
int inArgLen, len, i;
inArgLen = strlen(inArg);
len = strlen(inString);
ptr = inString;
while(*ptr)
{
if (*ptr == '-')
{
ptr++;
if (*ptr == '-')
{
ptr++;
if (inArgLen > 1 && !strncmp(ptr, inArg, inArgLen))
{
retval = 0;
ptr += inArgLen;
while (*ptr && *ptr == ' ')
ptr++;
if (*ptr && *ptr == '-')
{
return retval;
}
else if (*ptr && *ptr == '\'')
{
ptr++;
for(i = 0; *ptr && *ptr != '\''; i++, ptr++)
outVal[i] = *ptr;
}
else if (*ptr && *ptr == '\"')
{
ptr++;
for(i = 0; *ptr && *ptr != '\"'; i++, ptr++)
outVal[i] = *ptr;
}
else if (*ptr)
{
for(i = 0; *ptr && *ptr != ' '; i++, ptr++)
outVal[i] = *ptr;
}
}
}
else if (inArgLen == 1)
{
while (*ptr && *ptr != ' ')
{
if (*ptr == inArg[0])
{
ptr++;
retval = 0;
continue;
}
ptr++;
}
if (retval)
continue;
while (*ptr && *ptr == ' ')
ptr++;
if (*ptr && *ptr == '-')
{
return retval;
}
else if (*ptr && *ptr == '\'')
{
ptr++;
for(i = 0; *ptr && *ptr != '\''; i++, ptr++)
outVal[i] = *ptr;
}
else if (*ptr && *ptr == '\"')
{
ptr++;
for(i = 0; *ptr && *ptr != '\"'; i++, ptr++)
outVal[i] = *ptr;
}
else if (*ptr)
{
for(i = 0; *ptr && *ptr != ' '; i++, ptr++)
outVal[i] = *ptr;
}
}
}
ptr++;
}
return retval;
}
--- NEW FILE: Args.h ---
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void MakeArgumentString(int argc, char ** argv, char * outArgs, int argsSize);
int GetArgument(char * inString, char * inArg, char * outVal, int valSize);
|