示例#1
0
void
AnyOption::processOptions()
{
    if(! valueStoreOK()) {
        return;
    }
}
示例#2
0
bool AnyOption::processFile ()
    {
        if ( ! (valueStoreOK() && FileSet()) )
            return false;

        return (consumeFile(readFile()));
    }
示例#3
0
bool AnyOption::getFlag (char option) {
        if (!valueStoreOK ())
                return false;
        for (int i = 0; i < optchar_counter; i++) {
                if (optionchars[i] == option)
                        return findFlag (values[optcharindex[i]]);
        }
        return false;
}
示例#4
0
char *AnyOption::getValue (char option) {
        if (!valueStoreOK ())
                return NULL;
        for (int i = 0; i < optchar_counter; i++) {
                if (optionchars[i] == option)
                        return values[optcharindex[i]];
        }
        return NULL;
}
示例#5
0
bool AnyOption::getFlag (const char *option) {
        if (!valueStoreOK ())
                return false;
        for (int i = 0; i < option_counter; i++) {
                if (strcmp (options[i], option) == 0)
                        return findFlag (values[optionindex[i]]);
        }
        return false;
}
示例#6
0
/*
 * public get methods
 */
char *AnyOption::getValue (const char *option) {
        if (!valueStoreOK ())
                return NULL;

        for (int i = 0; i < option_counter; i++) {
                if (strcmp (options[i], option) == 0)
                        return values[optionindex[i]];
        }
        return NULL;
}
示例#7
0
bool AnyOption::setFlagOn (char option) {
        if (!valueStoreOK ())
                return false;
        for (int i = 0; i < optchar_counter; i++) {
                if (optionchars[i] == option) {
                        values[optcharindex[i]] = (char *)malloc ((strlen (TRUE_FLAG) + 1) * sizeof (char));
                        strcpy (values[optcharindex[i]], TRUE_FLAG);
                        return true;
                }
        }
        return false;
}
示例#8
0
/*
 * private set methods
 */
bool AnyOption::setValue (const char *option, char *value) {
        if (!valueStoreOK ())
                return false;
        for (int i = 0; i < option_counter; i++) {
                if (strcmp (options[i], option) == 0) {
                        values[optionindex[i]] = (char *)malloc ((strlen (value) + 1) * sizeof (char));
                        strcpy (values[optionindex[i]], value);
                        return true;
                }
        }
        return false;
}
示例#9
0
bool
AnyOption::setValue( char option , char *value )
{
	if( !valueStoreOK() )
		return false;
        for( int i = 0 ; i < optchar_counter ; i++ ){
                if( optionchars[i] == option ){
                        values[ optcharindex[i] ] = (char*) malloc((strlen(value)+1)*sizeof(char));
                        strcpy_s( values[ optcharindex[i] ], strlen(value)+1,  value );
			return true;
		}
        }
        return false;
}
示例#10
0
bool
AnyOption::setFlagOn( const char *option )
{
	if( !valueStoreOK() )
		return false;
        for( int i = 0 ; i < option_counter ; i++ ){
                if( strcmp( options[i], option ) == 0 ){
                        values[ optionindex[i] ] = (char*) malloc((strlen(TRUE_FLAG)+1)*sizeof(char));
                        strcpy_s( values[ optionindex[i] ], strlen(TRUE_FLAG)+1 ,  TRUE_FLAG );
			return true;
		}
        }
        return false;
}
示例#11
0
/*
 * public get methods 
 */
char*
AnyOption::getValue( const char *option )
{
	if( !valueStoreOK() ) {
		cout << "Error while reading the parameter: " << option << endl;
		return NULL;
	}

	for( int i = 0 ; i < option_counter ; i++ ){
		if( strcmp( options[i], option ) == 0 )
			return values[ optionindex[i] ];
	}
		
	cout << "Error while reading the parameter: " << option << endl;
	return NULL;
}
示例#12
0
void
AnyOption::processCommandArgs()
{
    if(!(valueStoreOK() && CommandSet())) {
        return;
    }

    if(max_legal_args == 0) {
        max_legal_args = argc;
    }
    new_argv = (int*) malloc((max_legal_args+1) * sizeof(int));
    for(int i = 1 ; i < argc ; i++) { /* ignore first argv */
        if(argv[i][0] == long_opt_prefix[0] &&
           argv[i][1] == long_opt_prefix[1]) {  /* long GNU option */
            int match_at = parseGNU(argv[i]+2);   /* skip -- */
            if(match_at >= 0 && i < argc-1) { /* found match */
                setValue(options[match_at], argv[++i]);
            }
        } else if(argv[i][0] ==  opt_prefix_char) {   /* POSIX char */
            if(POSIX()) {
                char ch =  parsePOSIX(argv[i]+1);  /* skip - */
                if(ch != '0' && i < argc-1) { /* matching char */
                    setValue(ch,  argv[++i]);
                }
            } else { /* treat it as GNU option with a - */
                int match_at = parseGNU(argv[i]+1);   /* skip - */
                if(match_at >= 0 && i < argc-1) { /* found match */
                    setValue(options[match_at], argv[++i]);
                }
            }
        } else { /* not option but an argument keep index */
            if(new_argc < max_legal_args) {
                new_argv[ new_argc ] = i ;
                new_argc++;
            } else { /* ignore extra arguments */
                printVerbose("Ignoring extra argument: ");
                printVerbose(argv[i]);
                printVerbose();
                printAutoUsage();
            }
            printVerbose("Unknown command argument option : ");
            printVerbose(argv[i]);
            printVerbose();
            printAutoUsage();
        }
    }
}
示例#13
0
char*
AnyOption::getValue( char option )
{
	if( !valueStoreOK() ) {

		cout << "Error while reading the parameter: " << option << endl;
		return NULL;
	}

	for( int i = 0 ; i < optchar_counter ; i++ ){
		if( optionchars[i] == option )
			return values[ optcharindex[i] ];
	}
		
	cout << "Error while reading the parameter: " << option << endl;
	return NULL;
}