# HG changeset patch
# User insilmaril
# Date 1196866683 0
# Node ID 4998bb082c735db8e55c447c72407eff2230c81c
# Parent  92bebad145d277c6d0e598ca14f79d8f769c4427
Added files from Andrew Ng for Windows

diff -r 92bebad145d2 -r 4998bb082c73 icons/vym.ico
Binary file icons/vym.ico has changed
diff -r 92bebad145d2 -r 4998bb082c73 mkdtemp.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkdtemp.cpp	Wed Dec 05 14:58:03 2007 +0000
@@ -0,0 +1,67 @@
+#include <stdint.h>
+#include <string.h>
+#include <errno.h>
+#include <io.h>
+#include <sys/time.h>
+
+extern "C" {
+pid_t getpid (void);
+}
+
+char *
+mkdtemp(char *tmpl)
+{
+    // Implementation based on GLIBC implementation.
+
+    static const char letters[] =
+        "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+
+    static uint64_t value;
+
+    const unsigned int ATTEMPTS_MIN = (62 * 62 * 62);
+
+    int save_errno = errno;
+
+    size_t len = strlen(tmpl);
+    if (len < 6 || strcmp(&tmpl[len - 6], "XXXXXX"))
+    {
+        errno = EINVAL;
+        return NULL;
+    }
+
+    char *XXXXXX = &tmpl[len - 6];
+
+    uint64_t random_time_bits = time(NULL);
+
+    value += (random_time_bits ^ getpid());
+
+    unsigned int count;
+    for (count = 0; count < ATTEMPTS_MIN; value += 7777, ++count)
+    {
+        uint64_t v = value;
+
+        XXXXXX[0] = letters[v % 62];
+        v /= 62;
+        XXXXXX[1] = letters[v % 62];
+        v /= 62;
+        XXXXXX[2] = letters[v % 62];
+        v /= 62;
+        XXXXXX[3] = letters[v % 62];
+        v /= 62;
+        XXXXXX[4] = letters[v % 62];
+        v /= 62;
+        XXXXXX[5] = letters[v % 62];
+
+		if (mkdir(tmpl) == 0)
+        {
+            errno = save_errno;
+			return tmpl;
+        }
+
+		if (errno != EEXIST)
+			return NULL;
+    }
+
+    errno = EEXIST;
+    return NULL;
+}
diff -r 92bebad145d2 -r 4998bb082c73 mkdtemp.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mkdtemp.h	Wed Dec 05 14:58:03 2007 +0000
@@ -0,0 +1,6 @@
+#ifndef MKDTEMP_H
+#define MKDTEMP_H
+
+extern char *mkdtemp(char *_template);
+
+#endif
diff -r 92bebad145d2 -r 4998bb082c73 vym.rc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vym.rc	Wed Dec 05 14:58:03 2007 +0000
@@ -0,0 +1,1 @@
+IDI_ICON1		ICON		DISCARDABLE	"icons/vym.ico"