diff --git a/Inc/argparser.h b/Inc/argparser.h index 7f9786b..2f88d72 100644 --- a/Inc/argparser.h +++ b/Inc/argparser.h @@ -17,8 +17,7 @@ enum ERROR { SPECIAL_CASE_HELP }; -enum OPTTYPE -{ +enum OPTTYPE { FLAG = 0, STRING, INT @@ -79,7 +78,6 @@ private: private: const char* m_program_name; const char* m_description; - const char** m_argv; uint16_t m_opt_index; uint16_t m_pos_index; std::vector m_options; diff --git a/Makefile b/Makefile index 2d619d5..012ada3 100644 --- a/Makefile +++ b/Makefile @@ -52,7 +52,7 @@ test_installed: $(CXX) test.cpp $(CXXFLAGS) -l$(LIB_NAME) -o $(BUILD_DIR)/test -$(BUILD_DIR)/test -install: +install: all $(CP) $(BUILD_DIR)/$(LIB_FILE_NAME) $(INSTALL_DIR) $(CP) $(HEADERS) $(HEADER_INSTALL_DIR) @@ -63,4 +63,4 @@ uninstall: clean: $(RM) -r $(BUILD_DIR) -.PHONY: test install uninstall clean +.PHONY: all test install uninstall clean diff --git a/Src/argparser.cpp b/Src/argparser.cpp index 05f31b6..d3cfc30 100644 --- a/Src/argparser.cpp +++ b/Src/argparser.cpp @@ -36,7 +36,7 @@ bool Option::found() } PositionalArgument::PositionalArgument(const char* name, bool required, OPTTYPE type /* = STRING */) - : m_name(name), m_type(type), m_req(required) + : m_name(name), m_type(type), m_req(required), m_found(false) { if (type == FLAG) { std::cout << "Warning OPTTYPE 'FLAG' is not meant to be used with positional arguments" << std::endl; @@ -51,7 +51,7 @@ bool PositionalArgument::found() } Parser::Parser(const char* program_name) - : m_program_name(program_name), m_description(nullptr), m_options() {} + : m_program_name(program_name), m_description(nullptr), m_options(), m_positional_args() {} void Parser::set_description(const char* description) { @@ -68,8 +68,9 @@ void Parser::add_positional_argument(PositionalArgument* arg) m_positional_args.push_back(arg); } -ERROR Parser::parse(int argc, char ** argv) +ERROR Parser::parse(int argc, char** argv) { + m_pos_index = 0; for (m_opt_index = 1; m_opt_index < argc; m_opt_index++) { if (argv[m_opt_index][0] == '-' && argv[m_opt_index][1] == '-') {