Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 20 additions & 20 deletions anyoption.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@

AnyOption::AnyOption() { init(); }

AnyOption::AnyOption(int maxopt) { init(maxopt, maxopt); }
AnyOption::AnyOption(unsigned int maxopt) { init(maxopt, maxopt); }

AnyOption::AnyOption(int maxopt, int maxcharopt) { init(maxopt, maxcharopt); }
AnyOption::AnyOption(unsigned int maxopt, unsigned int maxcharopt) { init(maxopt, maxcharopt); }

AnyOption::~AnyOption() {
if (mem_allocated)
Expand All @@ -74,7 +74,7 @@ AnyOption::~AnyOption() {

void AnyOption::init() { init(DEFAULT_MAXOPTS, DEFAULT_MAXOPTS); }

void AnyOption::init(int maxopt, int maxcharopt) {
void AnyOption::init(unsigned int maxopt, unsigned int maxcharopt) {

max_options = maxopt;
max_char_options = maxcharopt;
Expand Down Expand Up @@ -123,8 +123,8 @@ void AnyOption::init(int maxopt, int maxcharopt) {
}

bool AnyOption::alloc() {
int i = 0;
int size = 0;
unsigned int i = 0;
unsigned int size = 0;

if (mem_allocated)
return true;
Expand Down Expand Up @@ -200,7 +200,7 @@ bool AnyOption::doubleOptStorage() {
return false;
}
/* init new storage */
for (int i = max_options; i < 2 * max_options; i++) {
for (unsigned int i = max_options; i < 2 * max_options; i++) {
options[i] = NULL;
optiontype[i] = 0;
optionindex[i] = -1;
Expand Down Expand Up @@ -232,7 +232,7 @@ bool AnyOption::doubleCharStorage() {
return false;
}
/* init new storage */
for (int i = max_char_options; i < 2 * max_char_options; i++) {
for (unsigned int i = max_char_options; i < 2 * max_char_options; i++) {
optionchars[i] = '0';
optchartype[i] = 0;
optcharindex[i] = -1;
Expand All @@ -249,7 +249,7 @@ bool AnyOption::doubleUsageStorage() {
free(usage_saved);
return false;
}
for (int i = max_usage_lines; i < 2 * max_usage_lines; i++)
for (unsigned int i = max_usage_lines; i < 2 * max_usage_lines; i++)
usage[i] = NULL;
max_usage_lines = 2 * max_usage_lines;
return true;
Expand Down Expand Up @@ -499,7 +499,7 @@ void AnyOption::processOptions() {
return;
}

void AnyOption::processCommandArgs(int max_args) {
void AnyOption::processCommandArgs(unsigned int max_args) {
max_legal_args = max_args;
processCommandArgs();
}
Expand Down Expand Up @@ -612,7 +612,7 @@ int AnyOption::parseGNU(char *arg) {
}

int AnyOption::matchOpt(char *opt) {
for (int i = 0; i < option_counter; i++) {
for (unsigned int i = 0; i < option_counter; i++) {
if (strcmp(options[i], opt) == 0) {
if (optiontype[i] == COMMON_OPT ||
optiontype[i] == COMMAND_OPT) { /* found option return index */
Expand Down Expand Up @@ -655,9 +655,9 @@ bool AnyOption::matchChar(char c) {
bool AnyOption::valueStoreOK() {
if (!set) {
if (g_value_counter > 0) {
const int size = g_value_counter * sizeof(char *);
values = (char **)malloc(size);
for (int i = 0; i < g_value_counter; i++)
const unsigned int size = g_value_counter * sizeof(char *);
values = new char *[size];
for (unsigned int i = 0; i < g_value_counter; i++)
values[i] = NULL;
set = true;
}
Expand All @@ -672,7 +672,7 @@ char *AnyOption::getValue(const char *option) {
if (!valueStoreOK())
return NULL;

for (int i = 0; i < option_counter; i++) {
for (unsigned int i = 0; i < option_counter; i++) {
if (strcmp(options[i], option) == 0)
return values[optionindex[i]];
}
Expand All @@ -682,7 +682,7 @@ char *AnyOption::getValue(const char *option) {
bool AnyOption::getFlag(const char *option) {
if (!valueStoreOK())
return false;
for (int i = 0; i < option_counter; i++) {
for (unsigned int i = 0; i < option_counter; i++) {
if (strcmp(options[i], option) == 0)
return findFlag(values[optionindex[i]]);
}
Expand Down Expand Up @@ -725,7 +725,7 @@ bool AnyOption::findFlag(char *val) {
bool AnyOption::setValue(const char *option, char *value) {
if (!valueStoreOK())
return false;
for (int i = 0; i < option_counter; i++) {
for (unsigned int i = 0; i < option_counter; i++) {
if (strcmp(options[i], option) == 0) {
size_t length = (strlen(value) + 1) * sizeof(char);
allocValues(optionindex[i], length);
Expand All @@ -739,7 +739,7 @@ bool AnyOption::setValue(const char *option, char *value) {
bool AnyOption::setFlagOn(const char *option) {
if (!valueStoreOK())
return false;
for (int i = 0; i < option_counter; i++) {
for (unsigned int i = 0; i < option_counter; i++) {
if (strcmp(options[i], option) == 0) {
size_t length = (strlen(TRUE_FLAG) + 1) * sizeof(char);
allocValues(optionindex[i], length);
Expand Down Expand Up @@ -927,7 +927,7 @@ void AnyOption::valuePairs(char *type, char *value) {
}
}
/* if no char options matched */
for (int i = 0; i < option_counter; i++) {
for (unsigned int i = 0; i < option_counter; i++) {
if (strcmp(options[i], type) == 0) { /* match */
if (optiontype[i] == COMMON_OPT || optiontype[i] == FILE_OPT) {
setValue(type, chomp(value));
Expand All @@ -953,7 +953,7 @@ void AnyOption::justValue(char *type) {
}
}
/* if no char options matched */
for (int i = 0; i < option_counter; i++) {
for (unsigned int i = 0; i < option_counter; i++) {
if (strcmp(options[i], type) == 0) { /* match */
if (optiontype[i] == COMMON_FLAG || optiontype[i] == FILE_FLAG) {
setFlagOn(type);
Expand All @@ -980,7 +980,7 @@ void AnyOption::printUsage() {
if (once) {
once = false;
cout << endl;
for (int i = 0; i < usage_lines; i++)
for (unsigned int i = 0; i < usage_lines; i++)
cout << usage[i] << endl;
cout << endl;
}
Expand Down
20 changes: 10 additions & 10 deletions anyoption.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ class AnyOption {
public: /* the public interface */
AnyOption();

explicit AnyOption(int maxoptions);
explicit AnyOption(int maxoptions, int maxcharoptions);
explicit AnyOption(unsigned int maxoptions);
explicit AnyOption(unsigned int maxoptions, unsigned int maxcharoptions);
~AnyOption();

/*
Expand Down Expand Up @@ -127,7 +127,7 @@ class AnyOption {
*/
void processOptions();
void processCommandArgs();
void processCommandArgs(int max_args);
void processCommandArgs(unsigned int max_args);
bool processFile();

/*
Expand Down Expand Up @@ -171,17 +171,17 @@ class AnyOption {

int *new_argv; /* arguments sans options (index to argv) */
int new_argc; /* argument count sans the options */
int max_legal_args; /* ignore extra arguments */
unsigned int max_legal_args; /* ignore extra arguments */

/* option strings storage + indexing */
int max_options; /* maximum number of options */
unsigned int max_options; /* maximum number of options */
const char **options; /* storage */
int *optiontype; /* type - common, command, file */
int *optionindex; /* index into value storage */
int option_counter; /* counter for added options */
unsigned int option_counter; /* counter for added options */

/* option chars storage + indexing */
int max_char_options; /* maximum number options */
unsigned int max_char_options; /* maximum number options */
char *optionchars; /* storage */
int *optchartype; /* type - common, command, file */
int *optcharindex; /* index into value storage */
Expand All @@ -193,8 +193,8 @@ class AnyOption {

/* help and usage */
const char **usage; /* usage */
int max_usage_lines; /* max usage lines reserved */
int usage_lines; /* number of usage lines */
unsigned int max_usage_lines; /* max usage lines reserved */
unsigned int usage_lines; /* number of usage lines */

bool command_set; /* if argc/argv were provided */
bool file_set; /* if a filename was provided */
Expand Down Expand Up @@ -223,7 +223,7 @@ class AnyOption {

private: /* the hidden utils */
void init();
void init(int maxopt, int maxcharopt);
void init(unsigned int maxopt, unsigned int maxcharopt);
bool alloc();
void allocValues(int index, size_t length);
void cleanup();
Expand Down