Release 961222

Sun Dec 22 13:30:18 1996  Alexandre Julliard  <julliard@lrc.epfl.ch>

	* [graphics/metafiledrv/init.c] [graphisc/metafiledrv/mapping.c]
	Added mapping functions.

	* [if1632/gdi.spec] [objects/*.c] [include/windows.h]
	Added a lot of Win32 functions.

	* [memory/heap.c]
	Added HEAP_strdupAtoW and HEAP_strdupWtoA.

	* [misc/lstr.c] [memory/string.c]
	Moved OEM<->Ansi conversion to string.c. Fixed a couple of bugs.

	* [object/font.c]
	Avoid uppercasing font names.

	* [windows/hook.c]
	Set ds = ss before calling hook procedure.

Sat Dec 21 21:44:17 1996  Alex Korobka <alex@trantor.pharm.sunysb.edu>

	* [objects/color.c]
	Use colors allocated by other clients. 

	* [windows/caret.c]
	Set default blink time to 500.

	* [windows/win.c] [windows/event.c]
	Delete X context before XDestroyWindow().

	* [windows/keyboard.c]
	Fixed GetKeyState() once more.

Fri Dec 20 08:26:33 1996  Eric Youngdale <eric@sub2304.jic.com>

	* [debugger/*.c]
	Lots of built-in debugger improvements: parse Win32 EXEs debug
 	information, display local variables, source files and line
 	numbers, get symbols directly from the Wine executable, etc.

Tue Dec 17 22:39:42 1996  Philippe De Muyter  <phdm@info.ucl.ac.be>

	* [misc/winsock_async.c]
 	Extern declaration added for h_errno.

Tue Dec 17 21:29:34 1996  Albrecht Kleine  <kleine@ak.sax.de>

	* [windows/message.c]
	Added two more CBT hook calls: HCBT_CLICKSKIPPED/HCBT_KEYSKIPPED.
diff --git a/misc/shell.c b/misc/shell.c
index 263b9d8..486e733 100644
--- a/misc/shell.c
+++ b/misc/shell.c
@@ -9,6 +9,7 @@
 #include "windows.h"
 #include "file.h"
 #include "shell.h"
+#include "heap.h"
 #include "module.h"
 #include "neexe.h"
 #include "resource.h"
@@ -771,7 +772,7 @@
   LPSTR   lpstr = str;
   LPSTR   lpbstr = lpBuffer;
 
-  AnsiToOem(str,str);
+  CharToOem32A(str,str);
 
   dprintf_reg(stddeb,"DoEnvSubst: accept %s", str);
 
@@ -824,7 +825,7 @@
 
   dprintf_reg(stddeb," return %s\n", str);
 
-  OemToAnsi(str,str);
+  OemToChar32A(str,str);
   free(lpBuffer);
 
   /*  Return str length in the LOWORD
@@ -873,7 +874,8 @@
 	LPWSTR	*argv,s,t;
 	int	i;
 
-	cmdline = (LPWSTR)STRING32_strdupW(cmdline); /* to get writeable copy */
+        /* to get writeable copy */
+	cmdline = HEAP_strdupW( GetProcessHeap(), 0, cmdline);
 	s=cmdline;i=0;
 	while (*s) {
 		/* space */
@@ -886,13 +888,13 @@
 		}
 		s++;
 	}
-	argv=(LPWSTR*)xmalloc(sizeof(LPWSTR)*(i+1));
+	argv=(LPWSTR*)HeapAlloc( GetProcessHeap(), 0, sizeof(LPWSTR)*(i+1) );
 	s=t=cmdline;
 	i=0;
 	while (*s) {
 		if (*s==0x0020) {
 			*s=0;
-			argv[i++]=(LPWSTR)STRING32_strdupW(t);
+			argv[i++]=HEAP_strdupW( GetProcessHeap(), 0, t );
 			*s=0x0020;
 			while (*s && *s==0x0020)
 				s++;
@@ -905,8 +907,8 @@
 		s++;
 	}
 	if (*t)
-		argv[i++]=(LPWSTR)STRING32_strdupW(t);
-	free(cmdline);
+		argv[i++]=(LPWSTR)HEAP_strdupW( GetProcessHeap(), 0, t );
+	HeapFree( GetProcessHeap(), 0, cmdline );
 	argv[i]=NULL;
 	*numargs=i;
 	return argv;