Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals  

Args.c

Go to the documentation of this file.
00001 /******************************************************************
00002         ANet_Daemon/Common/Args.c
00003         Argument utilities for the ANet daemon.
00004         
00005         Part of the ANet project.
00006         
00007         Distributed under GPL: http://www.gnu.org/copyleft/gpl.html
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 

Generated on Sun Dec 23 15:20:37 2001 for ANet by doxygen 1.2.12 written by Dimitri van Heesch, © 1997-2001

SourceForge
Logo