00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include "Args.h"
00011
00029
00030
00036 void MakeArgumentString(int argc, char ** argv, char * outArgs, int argsSize)
00037 {
00038 char * ptr;
00039 int i, j;
00040
00041 j = 0;
00042 for(i = 0; i < argc && j < argsSize; i++, j++)
00043 {
00044 for(ptr = argv[i]; *ptr; ptr++, j++)
00045 outArgs[j] = *ptr;
00046 outArgs[j] = ' ';
00047 }
00048 outArgs[j - 1] = '\0';
00049 }
00050
00052
00062 int GetArgument(char * inString, char * inArg, char * outVal, int valSize)
00063 {
00064 int retval = 1;
00065 char * ptr;
00066 int inArgLen, len, i;
00067
00068 inArgLen = strlen(inArg);
00069 len = strlen(inString);
00070
00071 ptr = inString;
00072 while(*ptr)
00073 {
00074 if (*ptr == '-')
00075 {
00076 ptr++;
00077
00078 if (*ptr == '-')
00079 {
00080 ptr++;
00081 if (inArgLen > 1 && !strncmp(ptr, inArg, inArgLen))
00082 {
00083 retval = 0;
00084 ptr += inArgLen;
00085
00086 while (*ptr && *ptr == ' ')
00087 ptr++;
00088
00089 if (*ptr && *ptr == '-')
00090 {
00091 return retval;
00092 }
00093 else if (*ptr && *ptr == '\'')
00094 {
00095 ptr++;
00096 for(i = 0; *ptr && *ptr != '\''; i++, ptr++)
00097 outVal[i] = *ptr;
00098 }
00099 else if (*ptr && *ptr == '\"')
00100 {
00101 ptr++;
00102 for(i = 0; *ptr && *ptr != '\"'; i++, ptr++)
00103 outVal[i] = *ptr;
00104 }
00105 else if (*ptr)
00106 {
00107 for(i = 0; *ptr && *ptr != ' '; i++, ptr++)
00108 outVal[i] = *ptr;
00109 }
00110 }
00111
00112 }
00113 else if (inArgLen == 1)
00114 {
00115 while (*ptr && *ptr != ' ')
00116 {
00117 if (*ptr == inArg[0])
00118 {
00119 ptr++;
00120 retval = 0;
00121 continue;
00122 }
00123 ptr++;
00124 }
00125 if (retval)
00126 continue;
00127
00128 while (*ptr && *ptr == ' ')
00129 ptr++;
00130
00131 if (*ptr && *ptr == '-')
00132 {
00133 return retval;
00134 }
00135 else if (*ptr && *ptr == '\'')
00136 {
00137 ptr++;
00138 for(i = 0; *ptr && *ptr != '\''; i++, ptr++)
00139 outVal[i] = *ptr;
00140 }
00141 else if (*ptr && *ptr == '\"')
00142 {
00143 ptr++;
00144 for(i = 0; *ptr && *ptr != '\"'; i++, ptr++)
00145 outVal[i] = *ptr;
00146 }
00147 else if (*ptr)
00148 {
00149 for(i = 0; *ptr && *ptr != ' '; i++, ptr++)
00150 outVal[i] = *ptr;
00151 }
00152 }
00153 }
00154 ptr++;
00155 }
00156
00157 return retval;
00158 }
00159