Release 970928
Sat Sep 27 12:36:56 1997 Alexandre Julliard <julliard@lrc.epfl.ch>
* [if1632/relay.c]
Made Catch and Throw also save %si and %di (untested).
* [memory/selector.c]
Added check for %fs and %gs in SELECTOR_FreeBlock.
* [rc/winerc.c]
Generated files no longer depend on Wine includes.
Made .h generation optional.
* [tools/build.c] [loader/task.c]
Added CALL32_Init function.
Added possibility to pass arguments when using CALLTO16_regs_.
32-bit stack pointer is now saved on the 16-bit stack, instead of
using IF1632_Saved32_esp.
Removed CallTo32 callbacks.
* [tools/makedep.c] [*/Makefile.in]
Added support for directly generating dependencies for .y, .l and
.rc files. Modified the makefiles to use this feature.
* [windows/winproc.c] [if1632/thunk.c]
Use CALLTO16_regs to call window procedures.
Thu Sep 25 12:18:57 1997 Kristian Nielsen <kristian.nielsen@risoe.dk>
* [if1632/kernel.spec]
Changed entry for SwitchStackBack to remove arguments from stack
upon return (arguments left over from previous SwitchStackTo()).
Borland C++ 4.0 now compiles "Hello World" (but crashes after
outputting the .exe).
Wed Sep 24 13:54:44 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [files/directory.c]
SearchPath might get NULL buffer (empty LRU list in wordpad).
* [memory/selector.c]
Added SUnMapLS*.
* [loader/pe_image.c]
Be able to run executeables from non mmap()ble filesystems.
PE_LoadLibrary adds librarys loaded by another process to
its own modref list too.
* [windows/keyboard.c][include/accel.h][loader/resource.c]
Fixed accelerator leakage, use SDK defines/names.
* [graphics/env.c][misc/main.c]
Set/GetEnvironemnt have nothing to do with environment vars,
but with Printer Environment.
* [graphics/escape.c]
Escape32: map args back to segmented pointers.
* [windows/win.c]
WS_POPUP|WS_CHILD windows don't need a parent window (SDK).
Tue Sep 16 14:40:16 1997 Robert Wilhelm <robert@physiol.med.tu-muenchen.de>
* [if1632/crtdll.spec] [misc/crtdll.c]
Added signal().
diff --git a/controls/combo.c b/controls/combo.c
index 3c3590f..26903fa 100644
--- a/controls/combo.c
+++ b/controls/combo.c
@@ -902,6 +902,7 @@
case LBN_KILLFOCUS:
/* nothing to do here since ComboLBox always resets the focus to its
* combo/edit counterpart */
+ break;
}
}
return 0;
diff --git a/controls/desktop.c b/controls/desktop.c
index b1651f2..fd2963c 100644
--- a/controls/desktop.c
+++ b/controls/desktop.c
@@ -32,17 +32,18 @@
if ((file = _lopen32( filename, OF_READ )) == HFILE_ERROR32)
{
UINT32 len = GetWindowsDirectory32A( NULL, 0 );
- if (!(buffer = HeapAlloc( SystemHeap, 0, len + strlen(filename) + 2 )))
+ if (!(buffer = HeapAlloc( GetProcessHeap(), 0,
+ len + strlen(filename) + 2 )))
return 0;
GetWindowsDirectory32A( buffer, len + 1 );
strcat( buffer, "\\" );
strcat( buffer, filename );
file = _lopen32( buffer, OF_READ );
- HeapFree( SystemHeap, 0, buffer );
+ HeapFree( GetProcessHeap(), 0, buffer );
}
if (file == HFILE_ERROR32) return 0;
size = _llseek32( file, 0, 2 );
- if (!(buffer = HeapAlloc( SystemHeap, 0, size )))
+ if (!(buffer = HeapAlloc( GetProcessHeap(), 0, size )))
{
_lclose32( file );
return 0;
@@ -56,13 +57,13 @@
/* Check header content */
if ((fileHeader->bfType != 0x4d42) || (size < fileHeader->bfSize))
{
- HeapFree( SystemHeap, 0, buffer );
+ HeapFree( GetProcessHeap(), 0, buffer );
return 0;
}
hbitmap = CreateDIBitmap32( hdc, &bitmapInfo->bmiHeader, CBM_INIT,
buffer + fileHeader->bfOffBits,
bitmapInfo, DIB_RGB_COLORS );
- HeapFree( SystemHeap, 0, buffer );
+ HeapFree( GetProcessHeap(), 0, buffer );
return hbitmap;
}
diff --git a/controls/listbox.c b/controls/listbox.c
index 1308e81..165f483 100644
--- a/controls/listbox.c
+++ b/controls/listbox.c
@@ -484,14 +484,17 @@
"rect=%d,%d-%d,%d\n",
wnd->hwndSelf, index, item ? item->str : "", action,
rect->left, rect->top, rect->right, rect->bottom );
- /* FIXME: check LBS_USETABSTOPS style */
- if (item)
- ExtTextOut32A( hdc, rect->left + 1, rect->top + 1,
- ETO_OPAQUE | ETO_CLIPPED, rect, item->str,
- strlen(item->str), NULL );
- else
+ if (!item)
ExtTextOut32A( hdc, rect->left + 1, rect->top + 1,
ETO_OPAQUE | ETO_CLIPPED, rect, NULL, 0, NULL );
+ else if (!(descr->style & LBS_USETABSTOPS))
+ ExtTextOut32A( hdc, rect->left + 1, rect->top + 1,
+ ETO_OPAQUE | ETO_CLIPPED, rect, item->str,
+ strlen(item->str), NULL );
+ else
+ TabbedTextOut32A( hdc, rect->left + 1 , rect->top + 1,
+ item->str, strlen(item->str),
+ descr->nb_tabs, descr->tabs, 0);
if (item && item->selected)
{
SetBkColor32( hdc, oldBk );
@@ -595,7 +598,12 @@
{
INT32 i;
LPINT16 p = (LPINT16)tabs;
- for (i = 0; i < descr->nb_tabs; i++) descr->tabs[i] = *p++;
+ dprintf_listbox( stddeb, "Listbox %04x: settabstops ", wnd->hwndSelf);
+ for (i = 0; i < descr->nb_tabs; i++) {
+ descr->tabs[i] = *p++<<1; /* FIXME */
+ dprintf_listbox( stddeb, "%hd ", descr->tabs[i]);
+ }
+ dprintf_listbox( stddeb, "\n");
}
else memcpy( descr->tabs, tabs, descr->nb_tabs * sizeof(INT32) );
/* FIXME: repaint the window? */
diff --git a/controls/menu.c b/controls/menu.c
index 9e08d31..682423f 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -3533,9 +3533,9 @@
if (!name) return 0;
/* check for Win32 module */
- instance = MODULE_HANDLEtoHMODULE16( instance );
- if (MODULE_GetPtr(instance)->flags & NE_FFLAGS_WIN32)
+ if (HIWORD(instance))
return LoadMenu32A(instance,PTR_SEG_TO_LIN(name));
+ instance = GetExePtr( instance );
if (!(hRsrc = FindResource16( instance, name, RT_MENU ))) return 0;
if (!(handle = LoadResource16( instance, hRsrc ))) return 0;