Release 950606

Tue Jun  6 12:11:41 1995  Alexandre Julliard  (julliard@sunsite.unc.edu)

	* [controls/menu.c]
	Fixed bug with drawing multi-column menus with vertical separator.

	* [debugger/debug.l]
	Fixed NULL-pointer reference after readline().

	* [if1632/winprocs.spec] [miscemu/int21.c] [miscemu/interrupts.c]
	Added interrupt vector emulation. Allows to retrieve an interrupt
	vector and jump to it without crashing.

	* [loader/ldt.c]
	Moved ldt.c to memory directory.

	* [loader/task.c]
	Implemented LockCurrentTask() and GetInstanceData().

	* [objects/bitblt.c]
	Fixed a bug that caused StretchBlt() to use wrong colors when
	stretching a monochrome bitmap to a color display.

	* [objects/bitmap.c]
	Fixed a segmented pointer bug in CreateBitmapIndirect().

	* [tools/build.c]
	Added possibility to have arguments for register functions; used
	by interrupt vectors to remove the flags from the stack.
	Generate a new function CallTo32_LargeStack(), that allows calling
	a 32-bit function using the original 32-bit stack, for functions
	that need more that 64k of stack.

Tue May 30 10:29:56 1995  Martin von Loewis  <martin@informatik.hu-berlin.de>

	* [if1632/shell.spec] [misc/shell.c]
	DoEnvironmentSubst: fixed prototype

	* [if1632/gdi.spec] [objects/palette.c]
	SetSystemPaletteUse: new function

	* [if1632/kernel.spec] [loader/resource.c]
	DirectResAlloc: new function

	* [if1632/user.spec] [windows/keyboard.c]
	SetKeyboardState: new function

Mon May 29 12:58:28 1995   Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
        
	* [tools/build.c]
        Prevent interrupts from destroying the args for a 32 bit function
        by loading the correct value into %esp directly after %ss.

	* [loader/ne_image.c] [loader/module.c]
	The new instance must be created earlier in LoadModule(), so that
	fixups referencing it will be handled correctly.
        Initialize the local heap for a DGROUP in NE_LoadSegment().
	
	* [objects/dib.c]
	Like RLE8 bitmaps, RLE4 bitmaps don't always end with a proper code.
	This used to crash Wine. Fixed.

        * [objects/text.c]
	Fix possible null pointer dereference in debugging output.
	
	* [misc/commdlg.c]
	Handle user input in the edit control better. Some bugs fixed.
	
	* [memory/local.c]
	Started implementing moveable blocks. This is unfinished (!), but
	at least it does not seem to break things.

Wed May 24 13:26:36 1995   Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
        
	* [loader/module.c]
	LoadModule(): DLLs occasionally have a data segment, and they work
	much better if it is loaded :-)
	LoadLibrary(): pass HMODULE instead of HINSTANCE to NE_InitializeDLLs.
	FindModule(): also strip off the last backslash of the pathnames
	(Winhelp tried to load C:\WINDOWS\SYSTEM\COMMDLG.DLL).
	GetModuleHandle(): just call MODULE_FindModule, it does the same job,
	only better.
	
	* [loader/ne_image.c]
	LocalInit() the heap of a DLL in NE_InitDLL. (This is probably
	not really correct, it seems that all programs and DLLs try to do
	this themselves. But they pass weird parameters.)
	NE_InitializeDLLs should also call NE_InitDLL for the passed hModule.
	
	* [loader/task.c] [misc/user.c]
	Finish global initializations in InitTask instead of InitApp, or
	all the DLLs will be initialized in InitTask without any available
	window classes!
diff --git a/include/callback.h b/include/callback.h
index 0510758..3a2dba3 100644
--- a/include/callback.h
+++ b/include/callback.h
@@ -14,6 +14,9 @@
 
 #ifndef WINELIB
 
+extern int CallTo32_LargeStack( int (*func)(), int nbargs, ... );
+
+
 /* List of the 16-bit callback functions. This list is used  */
 /* by the build program to generate the file if1632/call16.S */
 
diff --git a/include/miscemu.h b/include/miscemu.h
index 1cc6fcc..4f8b378 100644
--- a/include/miscemu.h
+++ b/include/miscemu.h
@@ -1,6 +1,9 @@
 #ifndef __WINE_MISCEMU_H
 #define __WINE_MISCEMU_H
 
+#include "wintypes.h"
+#include "wine.h"
+
 extern int do_int10(struct sigcontext_struct *);
 extern int do_int13(struct sigcontext_struct *);
 extern int do_int15(struct sigcontext_struct *);
@@ -12,6 +15,7 @@
 extern int do_int2a(struct sigcontext_struct *);
 extern int do_int2f(struct sigcontext_struct *);
 extern int do_int31(struct sigcontext_struct *);
+extern int do_int5c(struct sigcontext_struct *);
 
 extern void inportb(struct sigcontext_struct *context);
 extern void inport(struct sigcontext_struct *context);
@@ -24,6 +28,10 @@
 
 extern void IntBarf(int i, struct sigcontext_struct *context);
 
+extern BOOL INT_Init(void);
+extern SEGPTR INT_GetHandler( BYTE intnum );
+extern void INT_SetHandler( BYTE intnum, SEGPTR handler );
+
 extern void INT21_Init(void);
 
 #endif /* __WINE_MISCEMU_H */
diff --git a/include/stackframe.h b/include/stackframe.h
index 8196461..3295e83 100644
--- a/include/stackframe.h
+++ b/include/stackframe.h
@@ -55,6 +55,7 @@
   /* Saved 32-bit stack */
 extern DWORD IF1632_Saved32_esp;
 extern SEGPTR IF1632_Stack32_base;
+extern DWORD IF1632_Original32_esp;
 
 #define CURRENT_STACK16 \
     ((STACK16FRAME *)PTR_SEG_OFF_TO_LIN(IF1632_Saved16_ss,IF1632_Saved16_sp))
diff --git a/include/task.h b/include/task.h
index e78f6d5..cbd28ae 100644
--- a/include/task.h
+++ b/include/task.h
@@ -21,9 +21,9 @@
     WORD   nextParagraph;    /* Segment of next paragraph */
     BYTE   reserved1;
     BYTE   dispatcher[5];    /* Long call to DOS */
-    DWORD  savedint22;       /* Saved int 22h handler */
-    DWORD  savedint23;       /* Saved int 23h handler */
-    DWORD  savedint24;       /* Saved int 24h handler */
+    SEGPTR savedint22;       /* Saved int 22h handler */
+    SEGPTR savedint23;       /* Saved int 23h handler */
+    SEGPTR savedint24;       /* Saved int 24h handler */
     WORD   parentPSP;        /* Selector of parent PSP */
     BYTE   fileHandles[20];  /* Open file handles */
     HANDLE environment;      /* Selector of environment */
diff --git a/include/windows.h b/include/windows.h
index 76ec59d..7230f39 100644
--- a/include/windows.h
+++ b/include/windows.h
@@ -2836,7 +2836,7 @@
 Fc(int,GetClassName,HWND,a,LPSTR,b,short,c)
 Fc(int,GetClipboardFormatName,WORD,a,LPSTR,b,short,c)
 Fc(int,GetEnvironment,LPSTR,a,LPSTR,b,WORD,c)
-Fc(int,GetInstanceData,HANDLE,a,NPSTR,b,int,c)
+Fc(int,GetInstanceData,HANDLE,a,WORD,b,int,c)
 Fc(int,GetKeyNameText,LONG,a,LPSTR,b,int,c)
 Fc(int,GetModuleFileName,HANDLE,a,LPSTR,b,short,c)
 Fc(int,GetObject,HANDLE,a,int,b,LPSTR,c)