- Migrate CRTDLL to MSVCRT.
- Many fixes and a load of new functions.
diff --git a/dlls/msvcrt/misc.c b/dlls/msvcrt/misc.c
new file mode 100644
index 0000000..11fe343
--- /dev/null
+++ b/dlls/msvcrt/misc.c
@@ -0,0 +1,85 @@
+/*
+ * msvcrt.dll misc functions
+ *
+ * Copyright 2000 Jon Griffiths
+ */
+
+#include "msvcrt.h"
+
+DEFAULT_DEBUG_CHANNEL(msvcrt);
+
+typedef INT (__cdecl *MSVCRT_comp_func)(LPCVOID, LPCVOID );
+
+/*********************************************************************
+ * _beep (MSVCRT.@)
+ */
+void __cdecl MSVCRT__beep( unsigned int freq, unsigned int duration)
+{
+ TRACE(":Freq %d, Duration %d\n",freq,duration);
+ Beep(freq, duration);
+}
+
+extern int rand(void);
+
+/*********************************************************************
+ * rand (MSVCRT.@)
+ */
+INT __cdecl MSVCRT_rand()
+{
+ return (rand() & 0x7fff);
+}
+
+/*********************************************************************
+ * _sleep (MSVCRT.@)
+ */
+VOID __cdecl MSVCRT__sleep(ULONG timeout)
+{
+ TRACE("MSVCRT__sleep for %ld milliseconds\n",timeout);
+ Sleep((timeout)?timeout:1);
+}
+
+/*********************************************************************
+ * _lfind (MSVCRT.@)
+ */
+void* __cdecl MSVCRT__lfind(const void * match, const void * start,
+unsigned int * array_size,unsigned int elem_size, MSVCRT_comp_func cf)
+{
+ unsigned int size = *array_size;
+ if (size)
+ do
+ {
+ if (cf(match, start) == 0)
+ return (void *)start; /* found */
+ start += elem_size;
+ } while (--size);
+ return NULL;
+}
+
+/*********************************************************************
+ * _lsearch (MSVCRT.@)
+ */
+void * __cdecl MSVCRT__lsearch(const void * match,void * start,
+unsigned int * array_size,unsigned int elem_size, MSVCRT_comp_func cf)
+{
+ unsigned int size = *array_size;
+ if (size)
+ do
+ {
+ if (cf(match, start) == 0)
+ return start; /* found */
+ start += elem_size;
+ } while (--size);
+
+ /* not found, add to end */
+ memcpy(start, match, elem_size);
+ array_size[0]++;
+ return start;
+}
+
+/*********************************************************************
+ * _chkesp (MSVCRT.@)
+ */
+void __cdecl MSVCRT__chkesp(void)
+{
+
+}