[Anet-checkins] CVS: ANet/ANet_Daemon/Common Args.c,NONE,1.1 Args.h,NONE,1.1
Status: Abandoned
Brought to you by:
benad
From: Benoit N. <be...@us...> - 2001-12-01 01:48:13
|
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); |