checking in the recent efforts at optimizing clam
[feisty_meow.git] / nucleus / library / application / command_line.cpp
index de6d611092a0a53c1397920f8e5cbf48e794b1ef..2bc6dbfa9b6ea9da11ef7d4bfc0834438048ec50 100644 (file)
@@ -25,9 +25,6 @@
 #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)
 
@@ -70,17 +67,9 @@ command_parameter &command_parameter::operator =
 //////////////
 
 // option_prefixes: the list of valid prefixes for options on a command line.
-// these are the characters that precede command line arguments.  For Unix,
-// 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__)
-  static char option_prefixes[] = { '-', '/', '\0' };
-#elif defined(__UNIX__)
-  static char option_prefixes[] = { '-', '\0' };
-#else
-  #error "I don't know what kind of operating system this is."
-#endif
+// these are the characters that precede command line arguments.  we have
+// dropped any but the linux default of dash ('-').
+static char option_prefixes[] = { '-', '\0' };
 
 bool it_is_a_prefix_char(char to_test)
 {
@@ -121,10 +110,11 @@ command_line::command_line(const astring &full_line)
   astring accumulator;
   string_array string_list;
   bool in_quote = false;
-//hmmm: this is not quote right yet.
+//hmmm: this is not quite right yet.
 //      use the separate command line method, but get it to run iteratively
 //      so we can keep pulling them apart?  maybe it already does!
 //      separate is better because it handles escaped quotes.
+//hmmm: does above complaint parse?  what's not right yet?
   for (int i = 0; i < full_line.length(); i++) {
     char to_examine = full_line.get(i);
     if (to_examine == '"') {
@@ -244,7 +234,7 @@ string_array command_line::get_command_line()
   // 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();
@@ -257,13 +247,15 @@ string_array command_line::get_command_line()
     // 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.
     listo_cmds += _global_argv[i];
   }
   return listo_cmds;
+*/
 #else
   COMPLAIN_CMDS("this OS doesn't support getting the command line.");
   return listo_cmds;