void AnyOption::processOptions() { if(! valueStoreOK()) { return; } }
bool AnyOption::processFile () { if ( ! (valueStoreOK() && FileSet()) ) return false; return (consumeFile(readFile())); }
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; }
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; }
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; }
/* * 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; }
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; }
/* * 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; }
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; }
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; }
/* * 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; }
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(); } } }
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; }