#include <stdlib.h>
#include <sys/types.h>
-#ifdef __UNIX__
+#ifndef _MSC_VER
#include <unistd.h>
#include <sys/times.h>
#endif
-#ifdef __WIN32__
+#ifdef _MSC_VER
#define _WINSOCKAPI_ // make windows.h happy about winsock.
+ // winsock support...
+// #undef FD_SETSIZE
+// #define FD_SETSIZE 1000
+ // if you don't set this, you can only select on a default of 64 sockets.
+ #include <winsock2.h>
#include <windows.h>
#include <mmsystem.h>
#endif
namespace basis {
-astring environment::get(const astring &variable_name)
+astring environment::TMP()
{
+ const static astring TMP_VARIABLE_NAME("TMP");
+ astring to_return = get(TMP_VARIABLE_NAME);
+ if (!to_return) {
+ // they did not see fit to set this in the environment. let's make something up.
#ifdef __WIN32__
+ // windows default does not necessarily exist.
+ to_return = "c:/tmp";
+#else
+ // most reasonable OSes have a /tmp directory.
+ to_return = "/tmp";
+#endif
+ if (!!to_return) set("TMP", to_return);
+ }
+ return to_return;
+}
+
+astring environment::get(const astring &variable_name)
+{
+#ifdef _MSC_VER
char *value = getenv(variable_name.upper().observe());
// dos & os/2 require upper case for the name, so we just do it that way.
#else
bool environment::set(const astring &variable_name, const astring &value)
{
int ret = 0;
-#ifdef __WIN32__
+#ifdef _MSC_VER
astring assignment = variable_name + "=" + value;
ret = _putenv(assignment.s());
#else
basis::un_int environment::system_uptime()
{
-#ifdef __WIN32__
+#ifdef _MSC_VER
return timeGetTime();
#else
static clock_t __ctps = sysconf(_SC_CLK_TCK); // clock ticks per second.