Release 950122

Sun Jan 22 18:55:33 1995  Alexandre Julliard  (julliard@lamisun.epfl.ch)

	* [loader/resource.c] [objects/dib.c]
	Fixed icon loading and drawing, now that BitBlt() works correctly.
	
	* [objects/clipping.c] [objects/region.c]
	Implemented elliptic regions with a set of rectangle. This greatly
	simplifies the region code and should boost clipping performance.

	* [objects/color.c]
	Fixed bug that caused seg-fault on 24bpp displays.

	* [objects/bitblt.c]
	Fixed bug when shrinking a bitmap to more than half its size.

	* [windows/graphics.c]
	Fixed bugs in PaintRgn() and Polyline().

	* [windows/nonclient.c] [windows/painting.c] [windows/winpos.c]
	Fixed some problems with window background painting.

Thu Jan 12 12:20:25 PST 1995 Ross Biro (biro@yggdrasil.com)

       * [tools/build.c]
       * [tools/newbuild.c]
       * [Imakefile]
       * [include/wine.h]
       * [loader/call.S]
       * [loader/selector.c]
       * [include/segmem.h]
       * [misc/main.c]
       Changed selector code and 16/32 bit xfer code so that wine
       no longer has to be loaded low in memory.  Changed wine
       to work with ELF binary formats under Linux.
       
Sat Sep 17 11:08:49 1994  Eric Youngdale  (eric@esp22)

	* [debugger/db_disasm.c]
	New instruction disassembler - borrowed from Mach kernel.  Has a
	BSD style of license as opposed to the gdb code we were previously
	using which was under the GPL.

Mon Jan  9 18:27:11 1995  Alexandre Julliard  (julliard@lamisun.epfl.ch)

	* [Imakefile]
	Compiling with -Wall flag.

	* [*/*]
	Fixes to minimize the number of compilation warnings.

	* [objects/bitblt.c]
	Fixed BitBlt() and used the same code to rewrite PatBlt() and
	StretchBlt(). The three *Blt() functions should now be correct in
	every case (famous last words).

	* [objects/brush.c] [objects/dither.c]
	Merged the two files into brush.c

	* [objects/dc.c]
	Fixed bug when the Windows programs forget to re-select the
	original bitmap in a memory DC.

	* [objects/font.c]
	Tty to use 'fixed' font when the system font can't be found.

	* [windows/dialog.c]
	Tentative fix to make dialogs look better when using fixed-width
	fonts.

	* [windows/graphics.c]
	Partially implemented the PS_INSIDEFRAME pen style.

	* [windows/nonclient.c]
	Fix for windows that have the WS_EX_DLGMODALFRAME style bit
	without the WS_DLGFRAME style.
diff --git a/include/nonclient.h b/include/nonclient.h
index 87bc71e..0e8c665 100644
--- a/include/nonclient.h
+++ b/include/nonclient.h
@@ -1,7 +1,17 @@
+/*
+ * Window non-client functions definitions
+ *
+ * Copyright 1995 Alexandre Julliard
+ */
+
 #ifndef __WINE_NONCLIENT_H
 #define __WINE_NONCLIENT_H
 
-extern LONG NC_HandleNCPaint( HWND hwnd, HRGN hrgn );
+#include "windows.h"
+
+extern void NC_GetInsideRect( HWND hwnd, RECT *rect );
+extern void NC_DoNCPaint( HWND hwnd, BOOL active, BOOL suppress_menupaint );
+extern LONG NC_HandleNCPaint( HWND hwnd );
 extern LONG NC_HandleNCActivate( HWND hwnd, WORD wParam );
 extern LONG NC_HandleNCCalcSize( HWND hwnd, NCCALCSIZE_PARAMS *params );
 extern LONG NC_HandleNCHitTest( HWND hwnd, POINT pt );
diff --git a/include/region.h b/include/region.h
index a6fef59..7d87c13 100644
--- a/include/region.h
+++ b/include/region.h
@@ -9,23 +9,14 @@
 
 #include "gdi.h"
 
-typedef struct
-{
-    WORD        type;
-    RECT        box;
-    Pixmap      pixmap;
-    Region      xrgn;
-} REGION;
-
   /* GDI logical region object */
 typedef struct
 {
     GDIOBJHDR   header;
-    REGION      region;
+    Region      xrgn;
 } RGNOBJ;
 
 
-extern BOOL REGION_Init(void);
 extern BOOL REGION_DeleteObject( HRGN hrgn, RGNOBJ * obj );
 
 #endif  /* __WINE_REGION_H */
diff --git a/include/segmem.h b/include/segmem.h
index 4aa3f86..527002a 100644
--- a/include/segmem.h
+++ b/include/segmem.h
@@ -28,6 +28,7 @@
  */
 #define MAX_SELECTORS		512
 #define SELECTOR_ISFREE		0x8000
+#define SELECTOR_IS32BIT        0x4000
 #define SELECTOR_INDEXMASK	0x0fff
 
 extern unsigned short SelectorMap[MAX_SELECTORS];
@@ -75,10 +76,16 @@
 #define GLOBAL_FLAGS_EXECUTEONLY	0x00020000
 #define GLOBAL_FLAGS_READONLY		0x00020000
 
+#ifdef __ELF__
+#define FIRST_SELECTOR 2
+#define IS_16_BIT_ADDRESS(addr)  \
+     (!(SelectorMap[(unsigned int)(addr)>>19]& SELECTOR_IS32BIT))
+#else
 #define FIRST_SELECTOR	8
-
 #define IS_16_BIT_ADDRESS(addr)  \
      ((unsigned int)(addr) >= (((FIRST_SELECTOR << 3) | 0x0007) << 16))
+#endif
+
 
 extern SEGDESC Segments[];
 
diff --git a/include/selectors.h b/include/selectors.h
index 921e65b..7724f5c 100644
--- a/include/selectors.h
+++ b/include/selectors.h
@@ -23,5 +23,6 @@
 					int *addr);
 extern unsigned int GetEntryPointFromOrdinal(struct w_files * wpnt, 
 					int ordinal);
+extern void InitSelectors(void);
 
 #endif /* __WINE_SELECTORS_H */
diff --git a/include/win.h b/include/win.h
index 9bb1087..0ffedbf 100644
--- a/include/win.h
+++ b/include/win.h
@@ -56,12 +56,13 @@
 } WND;
 
   /* WND flags values */
-#define WIN_ERASE_UPDATERGN     0x01  /* Update region needs erasing */
-#define WIN_NEEDS_BEGINPAINT    0x02  /* WM_PAINT sent to window */
-#define WIN_GOT_SIZEMSG         0x04  /* WM_SIZE has been sent to the window */
+#define WIN_NEEDS_BEGINPAINT    0x01  /* WM_PAINT sent to window */
+#define WIN_NEEDS_ERASEBKGND    0x02  /* WM_ERASEBKGND must be sent to window*/
+#define WIN_NEEDS_NCPAINT       0x04  /* WM_NCPAINT must be sent to window */
 #define WIN_RESTORE_MAX         0x08  /* Maximize when restoring */
 #define WIN_INTERNAL_PAINT      0x10  /* Internal WM_PAINT message pending */
 #define WIN_NO_REDRAW           0x20  /* WM_SETREDRAW called for this window */
+#define WIN_GOT_SIZEMSG         0x40  /* WM_SIZE has been sent to the window */
 
 #define WIN_CLASS_INFO(wndPtr)   (CLASS_FindClassPtr((wndPtr)->hClass)->wc)
 #define WIN_CLASS_STYLE(wndPtr)  (WIN_CLASS_INFO(wndPtr).style)
diff --git a/include/windows.h b/include/windows.h
index cb60ce0..65ebf08 100644
--- a/include/windows.h
+++ b/include/windows.h
@@ -1468,9 +1468,6 @@
 #define SW_SHOWMINNOACTIVE  7
 #define SW_SHOWNA           8
 #define SW_RESTORE          9
-#define SW_INTERNAL_HIDE    20
-#define SW_INTERNAL_RESTORE 21
-
 
   /* WM_SIZE message wParam values */
 #define SIZE_RESTORED        0
diff --git a/include/wine.h b/include/wine.h
index cf7dfdc..bd426f3 100644
--- a/include/wine.h
+++ b/include/wine.h
@@ -1,5 +1,8 @@
 #ifndef  WINE_H
 #define  WINE_H
+#if 0
+#define __ELF__
+#endif
 
 extern char *WineIniFileName(void);
 extern char *WinIniFileName(void);
@@ -33,8 +36,12 @@
 	unsigned long cr2;
 };
 #define WINE_DATA_SELECTOR 0x2b
+#ifdef __ELF__
+#define WINE_CODE_SELECTOR 0x0f
+#else
 #define WINE_CODE_SELECTOR 0x23
 #endif
+#endif
 
 #if defined(__NetBSD__) || defined(__FreeBSD__)
 #include <signal.h>