\*****************************************************************************/
#include "windoze_helper.h"
-///#include "array.h"
-///#include "build_configuration.h"
-///#include "convert_utf.h"
-///#include "function.h"
-///#include "mutex.h"
-///#include "portable.h"
-///#include "set.h"
-///#include "version_record.h"
#include <configuration/application_configuration.h>
+#include <loggers/program_wide_logger.h>
///#include <errno.h>
///#include <stdlib.h>
*/
using namespace basis;
+using namespace loggers;
using namespace structures;
using namespace configuration;
#undef static_class_name
#define static_class_name() "windoze_helper"
+#define LOG(s) CLASS_EMERGENCY_LOG(program_wide_logger::get(), s)
+
/*
//#define DEBUG_PORTABLE
// uncomment for noisy debugging.
}
#endif
-// used as a return value when the name cannot be determined.
-#ifndef EMBEDDED_BUILD
- #define SET_BOGUS_NAME(error) { \
- COMPLAIN(error); \
- if (output) { \
- fclose(output); \
- unlink(tmpfile.s()); \
- } \
- istring home_dir = env_string("HOME"); \
- to_return = home_dir + "/failed_to_determine.exe"; \
- }
-#else
- #define SET_BOGUS_NAME(error) { \
- COMPLAIN(error); \
- to_return = "unknown"; \
- }
-#endif
-
-istring application_name()
-{
- FUNCDEF("application_name");
- istring to_return;
-#ifdef __UNIX__
- to_return = get_cmdline_from_proc();
-#elif defined(__WIN32__)
- flexichar low_buff[MAX_ABS_PATH + 1];
- GetModuleFileName(NIL, low_buff, MAX_ABS_PATH - 1);
- istring buff = from_unicode_temp(low_buff);
- buff.to_lower(); // we lower-case the name since windows seems to UC it.
- to_return = buff;
-#elif defined(EMBEDDED_BUILD)
- SET_BOGUS_NAME("embedded_exe");
-#else
- #pragma error("hmmm: no means of finding app name is implemented.")
- SET_BOGUS_NAME("not_implemented_for_this_OS");
-#endif
- return to_return;
-}
-
istring module_name(const void *module_handle)
{
#ifdef __UNIX__
return to_return;
}
-istring env_string(const istring &variable_name)
-{
-#ifdef __WIN32__
- char *value = getenv(variable_name.upper().observe());
- // dos & os/2 require upper case for the name, so we just do it that way.
-#else
- char *value = getenv(variable_name.observe());
- // reasonable OSes support mixed-case environment variables.
-#endif
- istring to_return;
- if (value)
- to_return = istring(value);
- return to_return;
-}
-
-bool set_environ(const istring &variable_name, const istring &value)
-{
- int ret = 0;
-#ifdef __WIN32__
- ret = putenv((variable_name + "=" + value).s());
-#else
- ret = setenv(variable_name.s(), value.s(), true);
-#endif
- return !ret;
-}
-
timeval fill_timeval_ms(int duration)
{
timeval time_out; // timeval has tv_sec=seconds, tv_usec=microseconds.
case WIN_XP: return "WIN_XP";
case WIN_SRV2K3: return "WIN_SRV2K3";
case WIN_VISTA: return "WIN_VISTA";
- case WIN_SRV2K8: return "WIN_SRV2K8";
+ case WIN_7: return "WIN_7";
+ case WIN_8: return "WIN_8";
+ case WIN_10: return "WIN_10";
default: return "UNKNOWN_OS";
}
}
known_operating_systems determine_OS()
{
+ FUNCDEF("determine_OS");
version osver = application_configuration::get_OS_version();
if ( (osver.v_major() == 4) && (osver.v_minor() == 0) ) {
if (osver.v_revision() == VER_PLATFORM_WIN32_WINDOWS) return WIN_95;
return WIN_SRV2K3;
} else if ( (osver.v_major() == 6) && (osver.v_minor() == 0) ) {
return WIN_VISTA;
+// } else if ( (osver.v_major() == 6) && (osver.v_minor() == 1) ) {
+// return WIN_SRV2K8;
} else if ( (osver.v_major() == 6) && (osver.v_minor() == 1) ) {
- return WIN_SRV2K8;
+ return WIN_7;
+ } else if ( (osver.v_major() == 6) && (osver.v_minor() == 2) ) {
+ return WIN_8;
+ } else if ( (osver.v_major() == 10) && (osver.v_minor() == 0) ) {
+ return WIN_10;
}
+
+//temp
+LOG(a_sprintf("got a major OS of %d and minor OS of %d", osver.v_major(), osver.v_minor()));
+
return UNKNOWN_OS;
}