#include <textual/parser_bits.h>
#include <loggers/program_wide_logger.h>
+#include <stdio.h>
+//temp
+
#undef LOG
#define LOG(s) CLASS_EMERGENCY_LOG(program_wide_logger::get(), s)
// the default is a dash (-), while for DOS most programs use forward-slash
// (/). Adding more characters is trivial; just add a character to the list
// before the sentinel of '\0'.
-#if defined(_MSC_VER) || defined(__MINGW32__)
+#if defined(_MSC_VER) || defined(__MINGW32__) || defined(__WIN32__)
static char option_prefixes[] = { '-', '/', '\0' };
#elif defined(__UNIX__)
static char option_prefixes[] = { '-', '\0' };
string_array command_line::get_command_line()
{
-// FUNCDEF("get_command_line");
+ FUNCDEF("get_command_line");
string_array listo_cmds;
// the temporary string below can be given a flat formatting of the commands
// and it will be popped out into a list of arguments.
astring temporary;
-#ifdef __UNIX__
+#if defined(__UNIX__) || defined(__GNU_WINDOWS__)
if (!_global_argc || !_global_argv) {
// our global parameters have not been set, so we must calculate them.
temporary = application_configuration::get_cmdline_from_proc();
// we don't need a long string to be parsed; the list is ready.
return listo_cmds;
}
-#elif defined(__WIN32__)
+#elif defined(_MSC_VER)
// we have easy access to the original list of commands.
for (int i = 0; i < _global_argc; i++) {
// add a string entry for each argument.
bool command_line::get_value(char option_character, astring &value,
bool case_sense) const
{
+ FUNCDEF("get_value");
value = "";
int posn = 0; // where we find the flag.
if (!find(option_character, posn, case_sense)) return false;
value = "";
int posn = 0; // where we find the flag.
if (!find(option_string, posn, case_sense)) return false;
+//printf("found the flag! at %d\n", posn);
// get the value after the flag, if there is such.
posn++; // this is where we think our flag's value lives.
if (posn >= entries()) return false;
+//printf("next posn is still okay at %d\n", posn);
// there's still an entry after where we found our flag; grab it.
command_parameter cp = get(posn);
+//printf("comm parm has text %s\n", cp.text().s());
if (cp.type() != command_parameter::VALUE) return false;
// finally; we've found an appropriate text value.
value = cp.text();
+//printf("assigning value %s\n", value.s());
return true;
}