Skip to content
Snippets Groups Projects
Commit b7258bef authored by Alexandre Julliard's avatar Alexandre Julliard
Browse files

Release 950901

Thu Aug 31 17:19:57 1995  Alexandre Julliard  <julliard@sunsite.unc.edu>

	* [Configure]
	Added compile-time option for IPC.

	* [configure.in]
	Added command-line options for language, IPC and malloc
	debugging.

	* [controls/menu.c]
	WM_MENUSELECT was sometimes sent to the wrong window.

	* [debugger/break.c]
	For the 'next' command, only step over instruction that require
	it. This allows 'next' to do the right thing with jmp and ret
	instructions.

	* [ipc/*.c] [memory/atom.c] [memory/global.c]
	IPC can now be configured out at compile-time.

	* [loader/task.c]
	Bug fix in TASK_Reschedule() that could cause a task to be deleted
	twice.

	* [miscemu/dosmem.c] (New file)
	Partial emulation of the BIOS data segment.

	* [miscemu/instr.c]
	Trap attempts to access selector 0x40 and remap the access to
	segment __0040H.

	* [tools/build.c]
	Fixed bug in CallTo32_LargeStack() that caused problems when
	compiling Wine with the -fomit-frame-pointer option.

	* [windows/message.c]
	Fixed bug in hardware event handling that could cause some events
	to get ignored.

Sat Aug 26 13:12:59 IST 1995 Michael Veksler <mveksler@vnet.ibm.com>

	* [ipc/README] [ipc/dde.tex]
	LaTeX documentation for the ipc and DDE stuff.

Wed Aug 23 22:01:23 GMT 1995 Michael Veksler <mveksler@vnet.ibm.com>

	* [ipc/Imakefile] [ipc/wine_test_stub.c]
	Fixed IPC testing. Now it can be compiled with "make tests"

Wed Aug 23 21:04:14 1995  Fons Botman  <botman@wab-tis.rabobank.nl>

	* [if1632/kernel.spec] [include/windows.h] [misc/main.c]
	Added GetWinDebugInfo/SetWinDebugInfo stub for player.exe

Sun Aug  20 13:49:42 1995  Marcus Meissner  <msmeissn@faui01.informatik.uni-erlangen.de>

	* [miscemu/int21.c]
	Misc fix to int21,ah=40 (write) to match _lwrite().
	AX=0x440A (check if handle is remote) added.

	* [multimedia/mmsystem.c]
	Moved mciSendString to mcistring.c.

	* [multimedia/mcistring.c]
	New file, string interface for MCI (not complete, not thoroughly
	tested).

	* [multimedia/audio.c]
	IOCTL prints errors; one paranoid check disabled.

	* [misc/file.c]
	Misc operator precedence fixes.

	* [if1632/gdi.spec] [objects/bitblt.c]
	Stub for FastWindowFrame (parameters not correct).

Sat Aug 19 01:31:23 1995  Graham Menhennitt <gfm@werple.mira.net.au>

	* [loader/ne_image.c]
	Preliminary support for iterated segments.

Sat Aug 19 00:43:04 1995  Andrew Taylor  (andrew@riscan.com)

	* [windows/mapping.c]
	In function MAPPING_FixIsotropic(), VportExt[XY] is multiplied by
 	the absolute value of (ydim / xdim) or (xdim / ydim).

Thu Aug 15 23:00:16  Gregory Trubetskoy  <grisha@mira.com>

	* [objects/oembitmap.c]
	Added some includes for Windows 95.

	* [include/sysmetrics.h]
	Added some sysmetrics for Windows 95.

	* [include/bitmaps/*95]
	New files: obm_close_95, obm_closed_95, obm_reduce_95, obm_reduced_95
	obm_zoom_95, obm_zoomd_95 - these are some pixmaps for Windows 95.

Thu Aug 10 12:00:00 1995  Jan Willamowius  (jan@janhh.shnet.org)

	* [misc/shell.c] [rc/sysres*.rc]
	The caption of the ShellAbout dialog box is language specific and
 	should be defined in the resources.
parent 808cb043
No related branches found
No related tags found
No related merge requests found
This is release 950817 of Wine the MS Windows emulator. This is still a
This is release 950901 of Wine the MS Windows emulator. This is still a
developer's only release. There are many bugs and many unimplemented API
features. Most applications still do not work.
Patches should be submitted to "wine-new@amscons.com". Please don't forget
to include a ChangeLog entry. I'll make a new release every other Sunday.
to include a ChangeLog entry. I'll make a new release every other week.
WHAT'S NEW with Wine-950817: (see ChangeLog for details)
- Built-in debugger improvements.
- Multimedia fixes.
- IPC can be disabled at run-time.
WHAT'S NEW with Wine-950901: (see ChangeLog for details)
- Accesses to BIOS segment 0x40 are trapped and emulated.
- Multimedia improvements.
- IPC can now be disabled at compile-time.
- Documentation for the IPC code.
- Lots of bug fixes.
See the README file in the distribution for installation instructions.
......@@ -17,11 +18,11 @@ Because of lags created by using mirror, this message may reach you before
the release is available at the ftp sites. The sources will be available
from the following locations:
sunsite.unc.edu:/pub/Linux/ALPHA/wine/Wine-950817.tar.gz
tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-950817.tar.gz
ftp.infomagic.com:/pub/mirrors/linux/wine/development/Wine-950817.tar.gz
ftp.funet.fi:/pub/OS/Linux/ALPHA/Wine/Wine-950817.tar.gz
aris.com:/pub/linux/ALPHA/Wine/development/Wine-950817.tar.gz
sunsite.unc.edu:/pub/Linux/ALPHA/wine/Wine-950901.tar.gz
tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/Wine-950901.tar.gz
ftp.infomagic.com:/pub/mirrors/linux/wine/development/Wine-950901.tar.gz
ftp.funet.fi:/pub/OS/Linux/ALPHA/Wine/Wine-950901.tar.gz
aris.com:/pub/linux/ALPHA/Wine/development/Wine-950901.tar.gz
It should also be available from any site that mirrors tsx-11 or sunsite.
......
Thu Aug 31 17:19:57 1995 Alexandre Julliard <julliard@sunsite.unc.edu>
* [Configure]
Added compile-time option for IPC.
* [configure.in]
Added command-line options for language, IPC and malloc
debugging.
* [controls/menu.c]
WM_MENUSELECT was sometimes sent to the wrong window.
* [debugger/break.c]
For the 'next' command, only step over instruction that require
it. This allows 'next' to do the right thing with jmp and ret
instructions.
* [ipc/*.c] [memory/atom.c] [memory/global.c]
IPC can now be configured out at compile-time.
* [loader/task.c]
Bug fix in TASK_Reschedule() that could cause a task to be deleted
twice.
* [miscemu/dosmem.c] (New file)
Partial emulation of the BIOS data segment.
* [miscemu/instr.c]
Trap attempts to access selector 0x40 and remap the access to
segment __0040H.
* [tools/build.c]
Fixed bug in CallTo32_LargeStack() that caused problems when
compiling Wine with the -fomit-frame-pointer option.
* [windows/message.c]
Fixed bug in hardware event handling that could cause some events
to get ignored.
Sat Aug 26 13:12:59 IST 1995 Michael Veksler <mveksler@vnet.ibm.com>
* [ipc/README] [ipc/dde.tex]
LaTeX documentation for the ipc and DDE stuff.
Wed Aug 23 22:01:23 GMT 1995 Michael Veksler <mveksler@vnet.ibm.com>
* [ipc/Imakefile] [ipc/wine_test_stub.c]
Fixed IPC testing. Now it can be compiled with "make tests"
Wed Aug 23 21:04:14 1995 Fons Botman <botman@wab-tis.rabobank.nl>
* [if1632/kernel.spec] [include/windows.h] [misc/main.c]
Added GetWinDebugInfo/SetWinDebugInfo stub for player.exe
Sun Aug 20 13:49:42 1995 Marcus Meissner <msmeissn@faui01.informatik.uni-erlangen.de>
* [miscemu/int21.c]
Misc fix to int21,ah=40 (write) to match _lwrite().
AX=0x440A (check if handle is remote) added.
* [multimedia/mmsystem.c]
Moved mciSendString to mcistring.c.
* [multimedia/mcistring.c]
New file, string interface for MCI (not complete, not thoroughly
tested).
* [multimedia/audio.c]
IOCTL prints errors; one paranoid check disabled.
* [misc/file.c]
Misc operator precedence fixes.
* [if1632/gdi.spec] [objects/bitblt.c]
Stub for FastWindowFrame (parameters not correct).
Sat Aug 19 01:31:23 1995 Graham Menhennitt <gfm@werple.mira.net.au>
* [loader/ne_image.c]
Preliminary support for iterated segments.
Sat Aug 19 00:43:04 1995 Andrew Taylor (andrew@riscan.com)
* [windows/mapping.c]
In function MAPPING_FixIsotropic(), VportExt[XY] is multiplied by
the absolute value of (ydim / xdim) or (xdim / ydim).
Thu Aug 15 23:00:16 Gregory Trubetskoy <grisha@mira.com>
* [objects/oembitmap.c]
Added some includes for Windows 95.
* [include/sysmetrics.h]
Added some sysmetrics for Windows 95.
* [include/bitmaps/*95]
New files: obm_close_95, obm_closed_95, obm_reduce_95, obm_reduced_95
obm_zoom_95, obm_zoomd_95 - these are some pixmaps for Windows 95.
Thu Aug 10 12:00:00 1995 Jan Willamowius (jan@janhh.shnet.org)
* [misc/shell.c] [rc/sysres*.rc]
The caption of the ShellAbout dialog box is language specific and
should be defined in the resources.
----------------------------------------------------------------------
Thu Aug 17 19:30:14 1995 Alexandre Julliard <julliard@sunsite.unc.edu>
......
......@@ -49,6 +49,12 @@ do
done
ALLDEFINES="$ALLDEFINES -ALANG\($LANGUAGE\)"
prompt "Inter-process communication" CONFIG_IPC N
if [ CONFIG_IPC = 'Y' -o $CONFIG_IPC = 'y' ]
then
ALLDEFINES="$ALLDEFINES -DCONFIG_IPC"
fi
prompt "Malloc debugging" MALLOC_DEBUGGING N
if [ MALLOC_DEBUGGING = 'Y' -o $MALLOC_DEBUGGING = 'y' ]
then
......
......@@ -3,7 +3,6 @@
#if defined(i386FreeBsd) || defined(FreeBSDArchitecture)
MAKE = gmake
CC = gcc -D__FreeBSD__
#endif
DEFINES = AutoDefines -DUSE_READLINE
......
......@@ -12,6 +12,7 @@
CC = @CC@
CFLAGS = @CFLAGS@
DEFS = @DEFS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
......@@ -22,7 +23,7 @@ LDLIBS = -lm
LD = @LD@
LANG = @LANG@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
@SET_MAKE@
COMMONSUBDIRS = controls rc ipc loader misc multimedia objects windows
......@@ -53,7 +54,7 @@ wine: $(SUBDIRS) dummy
$(CC) -o wine $(OBJS) $(LDOPTIONS) $(XDIR) $(XPM_LIB) $(XLIB) $(LDLIBS)
$(SUBDIRS): dummy
@cd $@; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'LD=$(LD)' 'LDCOMBINEFLAGS=$(LDCOMBINEFLAGS)' 'LANG=$(LANG)'
@cd $@; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'DEFS=$(DEFS)' 'LD=$(LD)' 'LDCOMBINEFLAGS=$(LDCOMBINEFLAGS)' 'LANG=$(LANG)'
depend:
for i in $(SUBDIRS); do (cd $$i; $(MAKE) depend); done
......@@ -63,14 +64,14 @@ etags:
clean:
for i in $(SUBDIRS); do (cd $$i; $(MAKE) clean); done
rm -f *.o \#*\# *~ wine wine.sym TAGS
rm -f *.o \#*\# *~ *.bak wine wine.sym TAGS
distclean:
for i in $(SUBDIRS); do (cd $$i; $(MAKE) distclean); done
echo "/* autoconf.h generated automatically. Run Configure */" >autoconf.h
echo "#error You must run Configure before you can build the makefiles." >>autoconf.h
rm -f *.o \#*\# *~ wine wine.sym
rm -f stamp-config config.* include/config.h Makefile
rm -f *.o \#*\# *~ *.bak wine wine.sym TAGS
rm -f config.* include/config.h Makefile
countryclean:
for i in $(SUBDIRS); do (cd $$i; $(MAKE) countryclean); done
......
......@@ -12,16 +12,19 @@ realises the problem later on. 'make' again and watch the output. Be
sure to analyze the problem before you report it to the newsgroup.
2. What are these questions in Configure?
Emulator/Library: You need an emulator when you want to run MS-Win
binaries. You need a library when you want to compile the source code
of a Windows program.
Language: Wine can present the system menu in multiple languages. Select
one of English, German, or Norwegian here.
Malloc debugging: When enabled, the mtrace and mcheck GNU libc functions
are called. You might want to set the MALLOC_TRACE environment variable
to a trace file name. If your system supports another way of malloc
debugging, feel free to add it.
Config file: Sets the Wine environment. See README for details.
- Emulator/Library: You need an emulator when you want to run MS-Win
binaries. You need a library when you want to compile the source code
of a Windows program.
- Language: Wine can present the system menu in multiple languages. Select
one of English, German, or Norwegian here.
- Inter-process communication: Allows setting up a DDE conversation
between different instances of Wine. Only really useful when
building Wine as a library.
- Malloc debugging: When enabled, the mtrace and mcheck GNU libc functions
are called. You might want to set the MALLOC_TRACE environment variable
to a trace file name. If your system supports another way of malloc
debugging, feel free to add it.
- Config file: Sets the Wine environment. See README for details.
3. BAR.EXE used to work, but does not work anymore
Look at the ChangeLog to see what files have been changed. Try to undo
......
......@@ -12,6 +12,12 @@
ac_help=
ac_default_prefix=/usr/local
# Any additions from configure.in:
ac_help="$ac_help
--with-language=LANG change the default language (LANG=En/De/No)"
ac_help="$ac_help
--with-ipc use inter-process communication for DDE"
ac_help="$ac_help
--with-malloc-debug enable malloc() debugging"
ac_help="$ac_help
--with-x use the X Window System"
......@@ -402,11 +408,38 @@ fi
# We want these before the checks, so the checks can modify their values.
test -z "$CFLAGS" && CFLAGS="-g -O2 -Wall"
test -z "$LDFLAGS" && LDFLAGS=-g
# Check whether --with-language or --without-language was given.
withval="$with_language"
if test -n "$withval"; then
LANG="-ALANG\($withval\)"
else
LANG="-ALANG\(En\)"
fi
# Check whether --with-ipc or --without-ipc was given.
withval="$with_ipc"
if test -n "$withval"; then
cat >> confdefs.h <<\EOF
#define CONFIG_IPC 1
EOF
fi
# Check whether --with-malloc-debug or --without-malloc-debug was given.
withval="$with_malloc_debug"
if test -n "$withval"; then
cat >> confdefs.h <<\EOF
#define MALLOC_DEBUGGING 1
EOF
fi
echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
set dummy ${MAKE-make}; ac_make=$2
if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
......@@ -521,7 +554,7 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
#line 525 "configure"
#line 558 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
......@@ -535,7 +568,7 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
#line 539 "configure"
#line 572 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
......@@ -621,7 +654,7 @@ test -z "$x_direct_test_library" && x_direct_test_library=Xt
test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
cat > conftest.$ac_ext <<EOF
#line 625 "configure"
#line 658 "configure"
#include "confdefs.h"
#include <$x_direct_test_include>
EOF
......@@ -684,7 +717,7 @@ rm -f conftest*
ac_save_LIBS="$LIBS"
LIBS="-l$x_direct_test_library $LIBS"
cat > conftest.$ac_ext <<EOF
#line 688 "configure"
#line 721 "configure"
#include "confdefs.h"
int main() { return 0; }
......@@ -840,7 +873,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$ac_lib $LIBS"
cat > conftest.$ac_ext <<EOF
#line 844 "configure"
#line 877 "configure"
#include "confdefs.h"
int main() { return 0; }
......@@ -891,7 +924,7 @@ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 895 "configure"
#line 928 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
......@@ -943,7 +976,7 @@ if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 947 "configure"
#line 980 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
......@@ -971,122 +1004,12 @@ else
fi
done
ac_header_dirent=no
for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | tr './\055' '___'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 984 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
int main() { return 0; }
int t() {
DIR *dirp = 0;
; return 0; }
EOF
if eval $ac_compile; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_hdr=HAVE_`echo $ac_hdr | tr '[a-z]./\055' '[A-Z]___'`
cat >> confdefs.h <<EOF
#define $ac_tr_hdr 1
EOF
ac_header_dirent=$ac_hdr; break
else
echo "$ac_t""no" 1>&6
fi
done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for -ldir""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_lib_dir'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1023 "configure"
#include "confdefs.h"
int main() { return 0; }
int t() {
opendir()
; return 0; }
EOF
if eval $ac_link; then
rm -rf conftest*
eval "ac_cv_lib_dir=yes"
else
rm -rf conftest*
eval "ac_cv_lib_dir=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"
fi
if eval "test \"`echo '$ac_cv_lib_'dir`\" = yes"; then
echo "$ac_t""yes" 1>&6
LIBS="$LIBS -ldir"
else
echo "$ac_t""no" 1>&6
fi
else
echo $ac_n "checking for -lx""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_lib_x'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
#line 1057 "configure"
#include "confdefs.h"
int main() { return 0; }
int t() {
opendir()
; return 0; }
EOF
if eval $ac_link; then
rm -rf conftest*
eval "ac_cv_lib_x=yes"
else
rm -rf conftest*
eval "ac_cv_lib_x=no"
fi
rm -f conftest*
LIBS="$ac_save_LIBS"
fi
if eval "test \"`echo '$ac_cv_lib_'x`\" = yes"; then
echo "$ac_t""yes" 1>&6
LIBS="$LIBS -lx"
else
echo "$ac_t""no" 1>&6
fi
fi
echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6
if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1090 "configure"
#line 1013 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
......@@ -1140,7 +1063,7 @@ if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1144 "configure"
#line 1067 "configure"
#include "confdefs.h"
int main() { return 0; }
......@@ -1217,7 +1140,7 @@ else
ac_cv_c_cross=yes
else
cat > conftest.$ac_ext <<EOF
#line 1221 "configure"
#line 1144 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
......@@ -1238,7 +1161,7 @@ if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1242 "configure"
#line 1165 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
......@@ -1260,7 +1183,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
#line 1264 "configure"
#line 1187 "configure"
#include "confdefs.h"
#include <string.h>
EOF
......@@ -1278,7 +1201,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
#line 1282 "configure"
#line 1205 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
......@@ -1299,7 +1222,7 @@ if test "$cross_compiling" = yes; then
ac_cv_header_stdc=no
else
cat > conftest.$ac_ext <<EOF
#line 1303 "configure"
#line 1226 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
......@@ -1333,7 +1256,7 @@ if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1337 "configure"
#line 1260 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
......@@ -1364,82 +1287,6 @@ if test -z "${top_srcdir}"; then
TOP_SRCDIR="."
else
TOP_SRCDIR="${top_srcdir}"
fi
echo $ac_n "checking for language in autoconf.h""... $ac_c" 1>&6
if test -f ${TOP_SRCDIR}/autoconf.h; then
LANG=`tr ' ' '\n' < ${TOP_SRCDIR}/autoconf.h | grep '\-ALANG' | head -1`
if test -n "${LANG}"; then
echo "$ac_t""`echo "${LANG}" | cut -b9-10`" 1>&6
fi
fi
if test -z "${LANG}"; then
echo "$ac_t""no" 1>&6
fi
if test -z "${LANG}"; then
echo $ac_n "checking for language through domainname""... $ac_c" 1>&6
DNAME=`domainname`
if test `echo "${DNAME}" | grep -c "\.no"` -ne 0; then
LANG="-ALANG\(No\)"
echo "$ac_t""No" 1>&6
fi
if test `echo "${DNAME}" | grep -c "\.de"` -ne 0; then
LANG="-ALANG\(De\)"
echo "$ac_t""De" 1>&6
fi
if test `echo "${DNAME}" | grep -c "\.uk"` -ne 0; then
LANG="-ALANG\(En\)"
echo "$ac_t""En" 1>&6
fi
if test `echo "${DNAME}" | grep -c "\.com"` -ne 0; then
LANG="-ALANG\(En\)"
echo "$ac_t""En" 1>&6
fi
if test `echo "${DNAME}" | grep -c "\.edu"` -ne 0; then
LANG="-ALANG\(En\)"
echo "$ac_t""En" 1>&6
fi
if test `echo "${DNAME}" | grep -c "\.gov"` -ne 0; then
LANG="-ALANG\(En\)"
echo "$ac_t""En" 1>&6
fi
if test -z "${LANG}"; then
echo "$ac_t""no" 1>&6
fi
fi
if test -z "${LANG}"; then
echo $ac_n "checking for linux""... $ac_c" 1>&6
cat > conftest.$ac_ext <<EOF
#line 1416 "configure"
#include "confdefs.h"
#ifdef linux
yes
#endif
EOF
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
egrep "yes" >/dev/null 2>&1; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for language by examining keymap""... $ac_c" 1>&6
if test `dumpkeys | grep "keycode *26" | tr ' ' '\n' | grep -c udiaeresis` -ne 0; then
echo "$ac_t""De" 1>&6
LANG='-ALANG\(De\)'
else
echo "$ac_t""no" 1>&6
LANG='-ALANG\(En\)'
fi
else
rm -rf conftest*
echo "$ac_t""no" 1>&6
LANG='-ALANG\(En\)'
fi
rm -f conftest*
fi
echo $ac_n "checking for wine.ini in autoconf.h""... $ac_c" 1>&6
......@@ -1518,7 +1365,19 @@ fi
trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
DEFS=-DHAVE_CONFIG_H
# Transform confdefs.h into DEFS.
# Protect against shell expansion while executing Makefile rules.
# Protect against Makefile macro expansion.
cat > conftest.defs <<\EOF
s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%-D\1=\2%g
s%[ `~#$^&*(){}\\|;'"<>?]%\\&%g
s%\[%\\&%g
s%\]%\\&%g
s%\$%$$%g
EOF
DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
rm -f conftest.defs
# Without the "./", some shells look in PATH for config.status.
: ${CONFIG_STATUS=./config.status}
......@@ -1555,7 +1414,7 @@ done
ac_given_srcdir=$srcdir
trap 'rm -fr `echo "controls/Makefile ipc/Makefile loader/Makefile memory/Makefile misc/Makefile miscemu/Makefile multimedia/Makefile objects/Makefile windows/Makefile rc/Makefile debugger/Makefile debugger/readline/Makefile tools/Makefile if1632/Makefile Makefile autoconf.h include/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
trap 'rm -fr `echo "controls/Makefile ipc/Makefile loader/Makefile memory/Makefile misc/Makefile miscemu/Makefile multimedia/Makefile objects/Makefile windows/Makefile rc/Makefile debugger/Makefile debugger/readline/Makefile tools/Makefile if1632/Makefile Makefile autoconf.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
# Protect against being on the right side of a sed subst in config.status.
sed 's/%@/@@/; s/@%/@@/; s/%g$/@g/; /@g$/s/[\\\\&%]/\\\\&/g;
......@@ -1571,6 +1430,7 @@ s%@LIBS@%$LIBS%g
s%@exec_prefix@%$exec_prefix%g
s%@prefix@%$prefix%g
s%@program_transform_name@%$program_transform_name%g
s%@LANG@%$LANG%g
s%@SET_MAKE@%$SET_MAKE%g
s%@CC@%$CC%g
s%@CPP@%$CPP%g
......@@ -1583,7 +1443,6 @@ s%@x_libraries@%$x_libraries%g
s%@LIBOBJS@%$LIBOBJS%g
s%@LD@%$LD%g
s%@LDCOMBINEFLAGS@%$LDCOMBINEFLAGS%g
s%@LANG@%$LANG%g
s%@WINE_INI_GLOBAL@%$WINE_INI_GLOBAL%g
CEOF
......@@ -1641,104 +1500,8 @@ s%@top_srcdir@%$top_srcdir%g
fi; done
rm -f conftest.subs
# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
# NAME is the cpp macro being defined and VALUE is the value it is being given.
#
# ac_d sets the value in "#define NAME VALUE" lines.
ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
ac_dC='\3'
ac_dD='%g'
# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
ac_uB='\([ ]\)%\1#\2define\3'
ac_uC=' '
ac_uD='\4%g'
# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
ac_eB='$%\1#\2define\3'
ac_eC=' '
ac_eD='%g'
CONFIG_HEADERS=${CONFIG_HEADERS-"include/config.h"}
for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
# Support "outfile[:infile]", defaulting infile="outfile.in".
case "$ac_file" in
*:*) ac_file_in=`echo "$ac_file"|sed 's%.*:%%'`
ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
*) ac_file_in="${ac_file}.in" ;;
esac
echo creating $ac_file
rm -f conftest.frag conftest.in conftest.out
cp $ac_given_srcdir/$ac_file_in conftest.in
EOF
# Transform confdefs.h into a sed script conftest.vals that substitutes
# the proper values into config.h.in to produce config.h. And first:
# Protect against being on the right side of a sed subst in config.status.
# Protect against being in an unquoted here document in config.status.
rm -f conftest.vals
cat > conftest.hdr <<\EOF
s/[\\&%]/\\&/g
s%[\\$`]%\\&%g
s%#define \([A-Za-z_][A-Za-z0-9_]*\) \(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
s%ac_d%ac_u%gp
s%ac_u%ac_e%gp
EOF
sed -n -f conftest.hdr confdefs.h > conftest.vals
rm -f conftest.hdr
# This sed command replaces #undef with comments. This is necessary, for
# example, in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
cat >> conftest.vals <<\EOF
s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
EOF
# Break up conftest.vals because some shells have a limit on
# the size of here documents, and old seds have small limits too.
# Maximum number of lines to put in a single here document.
ac_max_here_lines=12
rm -f conftest.tail
while :
do
ac_lines=`grep -c . conftest.vals`
# grep -c gives empty output for an empty file on some AIX systems.
if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
# Write a limited-size here document to conftest.frag.
echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
echo 'CEOF
sed -f conftest.frag conftest.in > conftest.out
rm -f conftest.in
mv conftest.out conftest.in
' >> $CONFIG_STATUS
sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
rm -f conftest.vals
mv conftest.tail conftest.vals
done
rm -f conftest.vals
cat >> $CONFIG_STATUS <<\EOF
rm -f conftest.frag conftest.h
echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
cat conftest.in >> conftest.h
rm -f conftest.in
if cmp -s $ac_file conftest.h 2>/dev/null; then
echo "$ac_file is unchanged"
rm -f conftest.h
else
rm -f $ac_file
mv conftest.h $ac_file
fi
fi; done
touch stamp-config
exit 0
EOF
chmod +x $CONFIG_STATUS
......
......@@ -3,12 +3,23 @@ dnl Author: Michael Patra <micky@marie.physik.tu-berlin.de>
dnl <patra@itp1.physik.tu-berlin.de>
AC_REVISION([configure.in 1.00])
AC_INIT(controls/edit.c)
AC_CONFIG_HEADER(include/config.h)
# We want these before the checks, so the checks can modify their values.
test -z "$CFLAGS" && CFLAGS="-g -O2 -Wall" AC_SUBST(CFLAGS)
test -z "$LDFLAGS" && LDFLAGS=-g AC_SUBST(LDFLAGS)
AC_ARG_WITH(language,
[ --with-language=LANG change the default language (LANG=En/De/No)],
[LANG="-ALANG\($withval\)"],
[LANG="-ALANG\(En\)"],)
AC_SUBST(LANG)
AC_ARG_WITH(ipc,
[ --with-ipc use inter-process communication for DDE],
[AC_DEFINE(CONFIG_IPC)])
AC_ARG_WITH(malloc-debug,
[ --with-malloc-debug enable malloc() debugging],
[AC_DEFINE(MALLOC_DEBUGGING)])
AC_PROG_MAKE_SET
AC_PROG_CC
AC_PATH_X
......@@ -41,70 +52,6 @@ TOP_SRCDIR="."
else
TOP_SRCDIR="${top_srcdir}"
fi
AC_MSG_CHECKING(for language in autoconf.h)
if test -f ${TOP_SRCDIR}/autoconf.h; then
LANG=`tr ' ' '\n' < ${TOP_SRCDIR}/autoconf.h | grep '\-ALANG' | head -1`
if test -n "${LANG}"; then
AC_MSG_RESULT(`echo "${LANG}" | cut -b9-10`)
fi
fi
if test -z "${LANG}"; then
AC_MSG_RESULT(no)
fi
AC_SUBST(LANG)
if test -z "${LANG}"; then
AC_MSG_CHECKING(for language through domainname)
DNAME=`domainname`
if test `echo "${DNAME}" | grep -c "\.no"` -ne 0; then
LANG="-ALANG\(No\)"
AC_MSG_RESULT(No)
fi
if test `echo "${DNAME}" | grep -c "\.de"` -ne 0; then
LANG="-ALANG\(De\)"
AC_MSG_RESULT(De)
fi
if test `echo "${DNAME}" | grep -c "\.uk"` -ne 0; then
LANG="-ALANG\(En\)"
AC_MSG_RESULT(En)
fi
if test `echo "${DNAME}" | grep -c "\.com"` -ne 0; then
LANG="-ALANG\(En\)"
AC_MSG_RESULT(En)
fi
if test `echo "${DNAME}" | grep -c "\.edu"` -ne 0; then
LANG="-ALANG\(En\)"
AC_MSG_RESULT(En)
fi
if test `echo "${DNAME}" | grep -c "\.gov"` -ne 0; then
LANG="-ALANG\(En\)"
AC_MSG_RESULT(En)
fi
if test -z "${LANG}"; then
AC_MSG_RESULT(no)
fi
fi
if test -z "${LANG}"; then
AC_MSG_CHECKING(for linux)
AC_EGREP_CPP(yes,
[#ifdef linux
yes
#endif
], AC_MSG_RESULT(yes)
AC_MSG_CHECKING(for language by examining keymap)
if test `dumpkeys | grep "keycode *26" | tr ' ' '\n' | grep -c udiaeresis` -ne 0; then
AC_MSG_RESULT(De)
LANG='-ALANG\(De\)'
else
AC_MSG_RESULT(no)
LANG='-ALANG\(En\)'
fi
,
AC_MSG_RESULT(no)
LANG='-ALANG\(En\)'
)
fi
AC_MSG_CHECKING(for wine.ini in autoconf.h)
if test -f ${TOP_SRCDIR}/autoconf.h; then
......@@ -129,11 +76,7 @@ fi
fi
AC_SUBST(WINE_INI_GLOBAL)
test -z "$LDFLAGS" && LDFLAGS=-g AC_SUBST(LDFLAGS)
AC_OUTPUT(controls/Makefile ipc/Makefile loader/Makefile memory/Makefile misc/Makefile miscemu/Makefile multimedia/Makefile objects/Makefile windows/Makefile rc/Makefile debugger/Makefile debugger/readline/Makefile tools/Makefile if1632/Makefile Makefile autoconf.h, [touch stamp-config])
AC_OUTPUT(controls/Makefile ipc/Makefile loader/Makefile memory/Makefile misc/Makefile miscemu/Makefile multimedia/Makefile objects/Makefile windows/Makefile rc/Makefile debugger/Makefile debugger/readline/Makefile tools/Makefile if1632/Makefile Makefile autoconf.h)
echo
echo "Configure finished. Do 'make depend; make' to compile Wine."
......
......@@ -27,7 +27,7 @@ depend:
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ tmp_make
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
......
......@@ -261,7 +261,6 @@ static void PB_Paint( HWND hButton, HDC hDC, WORD action )
HBRUSH hOldBrush;
char *text;
DWORD dwTextSize;
int delta;
TEXTMETRIC tm;
WND *wndPtr = WIN_FindWndPtr( hButton );
BUTTONINFO *infoPtr = (BUTTONINFO *)wndPtr->wExtra;
......
......@@ -697,7 +697,7 @@ static BOOL MENU_ShowPopup(HWND hwndOwner, HMENU hmenu, WORD id, int x, int y)
/***********************************************************************
* MENU_SelectItem
*/
static void MENU_SelectItem( HMENU hmenu, WORD wIndex )
static void MENU_SelectItem( HWND hwndOwner, HMENU hmenu, WORD wIndex )
{
MENUITEM *items;
LPPOPUPMENU lppop;
......@@ -739,8 +739,9 @@ static void MENU_SelectItem( HMENU hmenu, WORD wIndex )
MENU_DrawMenuItem( lppop->hWnd, hdc, &items[lppop->FocusedItem], lppop->Height,
!(lppop->wFlags & MF_POPUP) );
dprintf_menu(stddeb,"Sending WM_MENUSELECT %04x %04x\n", items[lppop->FocusedItem].item_id,items[lppop->FocusedItem].item_flags);
SendMessage(lppop->hWnd, WM_MENUSELECT, items[lppop->FocusedItem].item_id,
MAKELONG( items[lppop->FocusedItem].item_flags | MF_MOUSESELECT, hmenu));
SendMessage( hwndOwner, WM_MENUSELECT,
items[lppop->FocusedItem].item_id,
MAKELONG( items[lppop->FocusedItem].item_flags | MF_MOUSESELECT, hmenu));
}
}
ReleaseDC( lppop->hWnd, hdc );
......@@ -750,7 +751,7 @@ static void MENU_SelectItem( HMENU hmenu, WORD wIndex )
/***********************************************************************
* MENU_SelectNextItem
*/
static void MENU_SelectNextItem( HMENU hmenu )
static void MENU_SelectNextItem( HWND hwndOwner, HMENU hmenu )
{
int i;
MENUITEM *items;
......@@ -766,13 +767,13 @@ static void MENU_SelectNextItem( HMENU hmenu )
{
if (!(items[i].item_flags & MF_SEPARATOR))
{
MENU_SelectItem( hmenu, i );
MENU_SelectItem( hwndOwner, hmenu, i );
return;
}
}
if (MENU_HasSysMenu( menu ))
{
MENU_SelectItem( hmenu, SYSMENU_SELECTED );
MENU_SelectItem( hwndOwner, hmenu, SYSMENU_SELECTED );
return;
}
}
......@@ -780,18 +781,19 @@ static void MENU_SelectNextItem( HMENU hmenu )
{
if (!(items[i].item_flags & MF_SEPARATOR))
{
MENU_SelectItem( hmenu, i );
MENU_SelectItem( hwndOwner, hmenu, i );
return;
}
}
if (MENU_HasSysMenu( menu )) MENU_SelectItem( hmenu, SYSMENU_SELECTED );
if (MENU_HasSysMenu( menu ))
MENU_SelectItem( hwndOwner, hmenu, SYSMENU_SELECTED );
}
/***********************************************************************
* MENU_SelectPrevItem
*/
static void MENU_SelectPrevItem( HMENU hmenu )
static void MENU_SelectPrevItem( HWND hwndOwner, HMENU hmenu )
{
int i;
MENUITEM *items;
......@@ -807,13 +809,13 @@ static void MENU_SelectPrevItem( HMENU hmenu )
{
if (!(items[i].item_flags & MF_SEPARATOR))
{
MENU_SelectItem( hmenu, i );
MENU_SelectItem( hwndOwner, hmenu, i );
return;
}
}
if (MENU_HasSysMenu( menu ))
{
MENU_SelectItem( hmenu, SYSMENU_SELECTED );
MENU_SelectItem( hwndOwner, hmenu, SYSMENU_SELECTED );
return;
}
}
......@@ -821,11 +823,12 @@ static void MENU_SelectPrevItem( HMENU hmenu )
{
if (!(items[i].item_flags & MF_SEPARATOR))
{
MENU_SelectItem( hmenu, i );
MENU_SelectItem( hwndOwner, hmenu, i );
return;
}
}
if (MENU_HasSysMenu( menu )) MENU_SelectItem( hmenu, SYSMENU_SELECTED );
if (MENU_HasSysMenu( menu ))
MENU_SelectItem( hwndOwner, hmenu, SYSMENU_SELECTED );
}
......@@ -856,7 +859,7 @@ static HMENU MENU_GetSubPopup( HMENU hmenu )
*
* Hide the sub-popup menus of this menu.
*/
static void MENU_HideSubPopups( HMENU hmenu )
static void MENU_HideSubPopups( HWND hwndOwner, HMENU hmenu )
{
MENUITEM *item;
POPUPMENU *menu, *submenu;
......@@ -877,9 +880,9 @@ static void MENU_HideSubPopups( HMENU hmenu )
hsubmenu = item->item_id;
}
submenu = (POPUPMENU *) USER_HEAP_LIN_ADDR( hsubmenu );
MENU_HideSubPopups( hsubmenu );
MENU_HideSubPopups( hwndOwner, hsubmenu );
if (submenu->hWnd) ShowWindow( submenu->hWnd, SW_HIDE );
MENU_SelectItem( hsubmenu, NO_SELECTED_ITEM );
MENU_SelectItem( hwndOwner, hsubmenu, NO_SELECTED_ITEM );
}
......@@ -902,7 +905,7 @@ static HMENU MENU_ShowSubPopup( HWND hwndOwner, HMENU hmenu, BOOL selectFirst )
{
MENU_ShowPopup(hwndOwner, wndPtr->hSysMenu, 0, wndPtr->rectClient.left,
wndPtr->rectClient.top - menu->Height - 2*SYSMETRICS_CYBORDER);
if (selectFirst) MENU_SelectNextItem( wndPtr->hSysMenu );
if (selectFirst) MENU_SelectNextItem( hwndOwner, wndPtr->hSysMenu );
return wndPtr->hSysMenu;
}
item = ((MENUITEM *)USER_HEAP_LIN_ADDR(menu->hItems)) + menu->FocusedItem;
......@@ -921,7 +924,7 @@ static HMENU MENU_ShowSubPopup( HWND hwndOwner, HMENU hmenu, BOOL selectFirst )
wndPtr->rectWindow.left + item->rect.left,
wndPtr->rectWindow.top + item->rect.bottom );
}
if (selectFirst) MENU_SelectNextItem( (HMENU)item->item_id );
if (selectFirst) MENU_SelectNextItem( hwndOwner, (HMENU)item->item_id );
return (HMENU)item->item_id;
}
......@@ -1027,7 +1030,7 @@ static BOOL MENU_ButtonDown( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent,
{
if (menu->wFlags & MF_POPUP)
{
MENU_HideSubPopups( hmenu );
MENU_HideSubPopups( hwndOwner, hmenu );
*hmenuCurrent = hmenu;
}
else return FALSE;
......@@ -1037,8 +1040,8 @@ static BOOL MENU_ButtonDown( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent,
}
else
{
MENU_HideSubPopups( hmenu );
MENU_SelectItem( hmenu, id );
MENU_HideSubPopups( hwndOwner, hmenu );
MENU_SelectItem( hwndOwner, hmenu, id );
*hmenuCurrent = MENU_ShowSubPopup( hwndOwner, hmenu, FALSE );
}
return TRUE;
......@@ -1081,8 +1084,8 @@ static BOOL MENU_ButtonUp( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent,
hsubmenu = item->item_id;
}
/* Select first item of sub-popup */
MENU_SelectItem( hsubmenu, NO_SELECTED_ITEM );
MENU_SelectNextItem( hsubmenu );
MENU_SelectItem( hwndOwner, hsubmenu, NO_SELECTED_ITEM );
MENU_SelectNextItem( hwndOwner, hsubmenu );
return TRUE;
}
......@@ -1113,12 +1116,12 @@ static BOOL MENU_MouseMove( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent,
}
if (id == NO_SELECTED_ITEM)
{
MENU_SelectItem( *hmenuCurrent, NO_SELECTED_ITEM );
MENU_SelectItem( hwndOwner, *hmenuCurrent, NO_SELECTED_ITEM );
}
else if (menu->FocusedItem != id)
{
MENU_HideSubPopups( hmenu );
MENU_SelectItem( hmenu, id );
MENU_HideSubPopups( hwndOwner, hmenu );
MENU_SelectItem( hwndOwner, hmenu, id );
*hmenuCurrent = MENU_ShowSubPopup( hwndOwner, hmenu, FALSE );
}
return TRUE;
......@@ -1143,12 +1146,12 @@ static void MENU_KeyLeft( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent )
hmenutmp = MENU_GetSubPopup( hmenuprev );
if (hmenutmp != *hmenuCurrent) hmenuprev = hmenutmp;
}
MENU_HideSubPopups( hmenuprev );
MENU_HideSubPopups( hwndOwner, hmenuprev );
if ((hmenuprev == hmenu) && !(menu->wFlags & MF_POPUP))
{
/* Select previous item on the menu bar */
MENU_SelectPrevItem( hmenu );
MENU_SelectPrevItem( hwndOwner, hmenu );
if (*hmenuCurrent != hmenu)
{
/* A popup menu was displayed -> display the next one */
......@@ -1186,8 +1189,8 @@ static void MENU_KeyRight( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent )
/* If on menu-bar, go to next item */
if (!(menu->wFlags & MF_POPUP))
{
MENU_HideSubPopups( hmenu );
MENU_SelectNextItem( hmenu );
MENU_HideSubPopups( hwndOwner, hmenu );
MENU_SelectNextItem( hwndOwner, hmenu );
if (*hmenuCurrent != hmenu)
{
/* A popup menu was displayed -> display the next one */
......@@ -1203,7 +1206,7 @@ static void MENU_KeyRight( HWND hwndOwner, HMENU hmenu, HMENU *hmenuCurrent )
hmenutmp = MENU_GetSubPopup( hmenuprev );
if (hmenutmp != *hmenuCurrent) hmenuprev = hmenutmp;
}
MENU_HideSubPopups( hmenuprev );
MENU_HideSubPopups( hwndOwner, hmenuprev );
*hmenuCurrent = hmenuprev;
}
}
......@@ -1293,17 +1296,17 @@ static BOOL MENU_TrackMenu( HMENU hmenu, WORD wFlags, int x, int y,
switch(msg->wParam)
{
case VK_HOME:
MENU_SelectItem( hmenuCurrent, NO_SELECTED_ITEM );
MENU_SelectNextItem( hmenuCurrent );
MENU_SelectItem( hwnd, hmenuCurrent, NO_SELECTED_ITEM );
MENU_SelectNextItem( hwnd, hmenuCurrent );
break;
case VK_END:
MENU_SelectItem( hmenuCurrent, NO_SELECTED_ITEM );
MENU_SelectPrevItem( hmenuCurrent );
MENU_SelectItem( hwnd, hmenuCurrent, NO_SELECTED_ITEM );
MENU_SelectPrevItem( hwnd, hmenuCurrent );
break;
case VK_UP:
MENU_SelectPrevItem( hmenuCurrent );
MENU_SelectPrevItem( hwnd, hmenuCurrent );
break;
case VK_DOWN:
......@@ -1311,7 +1314,7 @@ static BOOL MENU_TrackMenu( HMENU hmenu, WORD wFlags, int x, int y,
if (!(menu->wFlags & MF_POPUP) && (hmenuCurrent == hmenu))
hmenuCurrent = MENU_ShowSubPopup( hwnd, hmenu, TRUE );
else
MENU_SelectNextItem( hmenuCurrent );
MENU_SelectNextItem( hwnd, hmenuCurrent );
break;
case VK_LEFT:
......@@ -1357,7 +1360,7 @@ static BOOL MENU_TrackMenu( HMENU hmenu, WORD wFlags, int x, int y,
else if (pos == (WORD)-1) MessageBeep(0);
else
{
MENU_SelectItem( hmenuCurrent, pos );
MENU_SelectItem( hwnd, hmenuCurrent, pos );
fClosed = !MENU_ExecFocusedItem( hwnd, hmenuCurrent,
&hmenuCurrent );
......@@ -1378,9 +1381,10 @@ static BOOL MENU_TrackMenu( HMENU hmenu, WORD wFlags, int x, int y,
}
USER_HEAP_FREE( hMsg );
ReleaseCapture();
MENU_HideSubPopups( hmenu );
MENU_HideSubPopups( hwnd, hmenu );
if (menu->wFlags & MF_POPUP) ShowWindow( menu->hWnd, SW_HIDE );
MENU_SelectItem( hmenu, NO_SELECTED_ITEM );
MENU_SelectItem( hwnd, hmenu, NO_SELECTED_ITEM );
SendMessage( hwnd, WM_MENUSELECT, 0, MAKELONG( 0xffff, 0 ) );
fEndMenuCalled = FALSE;
return TRUE;
}
......@@ -1412,8 +1416,8 @@ void MENU_TrackKbdMenuBar( HWND hwnd, WORD wParam )
if (!wndPtr->wIDmenu) return;
SendMessage( hwnd, WM_ENTERMENULOOP, 0, 0 );
/* Select first selectable item */
MENU_SelectItem( wndPtr->wIDmenu, NO_SELECTED_ITEM );
MENU_SelectNextItem( (HMENU)wndPtr->wIDmenu );
MENU_SelectItem( hwnd, wndPtr->wIDmenu, NO_SELECTED_ITEM );
MENU_SelectNextItem( hwnd, (HMENU)wndPtr->wIDmenu );
MENU_TrackMenu( (HMENU)wndPtr->wIDmenu, TPM_LEFTALIGN | TPM_LEFTBUTTON,
0, 0, hwnd, NULL );
SendMessage( hwnd, WM_EXITMENULOOP, 0, 0 );
......@@ -1595,8 +1599,8 @@ BOOL HiliteMenuItem(HWND hWnd, HMENU hMenu, WORD wItemID, WORD wHilite)
if (!(lpitem = MENU_FindItem( &hMenu, &wItemID, wHilite ))) return FALSE;
if (!(menu = (LPPOPUPMENU) USER_HEAP_LIN_ADDR(hMenu))) return FALSE;
if (menu->FocusedItem == wItemID) return TRUE;
MENU_HideSubPopups( hMenu );
MENU_SelectItem( hMenu, wItemID );
MENU_HideSubPopups( hWnd, hMenu );
MENU_SelectItem( hWnd, hMenu, wItemID );
return TRUE;
}
......@@ -1957,16 +1961,13 @@ BOOL DestroyMenu(HMENU hMenu)
*/
HMENU GetSystemMenu(HWND hWnd, BOOL bRevert)
{
WND *wndPtr;
wndPtr = WIN_FindWndPtr(hWnd);
if (!bRevert) {
return wndPtr->hSysMenu;
}
else {
DestroyMenu(wndPtr->hSysMenu);
wndPtr->hSysMenu = CopySysMenu();
}
return wndPtr->hSysMenu;
WND *wndPtr = WIN_FindWndPtr( hWnd );
if (!wndPtr) return 0;
if (!bRevert) return wndPtr->hSysMenu;
DestroyMenu(wndPtr->hSysMenu);
wndPtr->hSysMenu = CopySysMenu();
return wndPtr->hSysMenu;
}
/**********************************************************************
......
......@@ -41,11 +41,12 @@ depend:
clean:
(cd readline; $(MAKE) clean)
rm -f *.o \#*\# *~ dbg.tab.c dbg.tab.h lex.yy.c y.tab.c y.tab.h tmp_make
rm -f *.o \#*\# *~ *.bak tmp_make
rm -f dbg.tab.c dbg.tab.h lex.yy.c y.tab.c y.tab.h
distclean:
(cd readline; $(MAKE) distclean)
rm -f *.o \#*\# *~ dbg.tab.c dbg.tab.h lex.yy.c y.tab.c y.tab.h tmp_make Makefile
rm -f *.o \#*\# *~ *.bak dbg.tab.c dbg.tab.h lex.yy.c y.tab.c y.tab.h tmp_make Makefile
countryclean:
......
......@@ -65,6 +65,71 @@ static void DEBUG_SetOpcode( const DBG_ADDR *addr, BYTE op )
}
/***********************************************************************
* DEBUG_IsStepOverInstr
*
* Determine if the instruction at CS:EIP is an instruction that
* we need to step over (like a call or a repetitive string move).
*/
static BOOL DEBUG_IsStepOverInstr( struct sigcontext_struct *context )
{
BYTE *instr = (BYTE *)PTR_SEG_OFF_TO_LIN(CS_reg(context),EIP_reg(context));
for (;;)
{
switch(*instr)
{
/* Skip all prefixes */
case 0x2e: /* cs: */
case 0x36: /* ss: */
case 0x3e: /* ds: */
case 0x26: /* es: */
case 0x64: /* fs: */
case 0x65: /* gs: */
case 0x66: /* opcode size prefix */
case 0x67: /* addr size prefix */
case 0xf0: /* lock */
case 0xf2: /* repne */
case 0xf3: /* repe */
instr++;
continue;
/* Handle call instructions */
case 0xe8: /* call <offset> */
case 0x9a: /* lcall <seg>:<off> */
return TRUE;
case 0xff: /* call <regmodrm> */
return (((instr[1] & 0x38) == 0x10) ||
((instr[1] & 0x38) == 0x18));
/* Handle string instructions */
case 0x6c: /* insb */
case 0x6d: /* insw */
case 0x6e: /* outsb */
case 0x6f: /* outsw */
case 0xa4: /* movsb */
case 0xa5: /* movsw */
case 0xa6: /* cmpsb */
case 0xa7: /* cmpsw */
case 0xaa: /* stosb */
case 0xab: /* stosw */
case 0xac: /* lodsb */
case 0xad: /* lodsw */
case 0xae: /* scasb */
case 0xaf: /* scasw */
return TRUE;
default:
return FALSE;
}
}
}
/***********************************************************************
* DEBUG_SetBreakpoints
*
......@@ -257,14 +322,18 @@ void DEBUG_RestartExecution( struct sigcontext_struct *context,
break;
case EXEC_STEP_OVER: /* Stepping over a call */
EFL_reg(DEBUG_context) &= ~STEP_FLAG;
addr.off += instr_len;
breakpoints[0].addr = addr;
breakpoints[0].enabled = TRUE;
breakpoints[0].in_use = TRUE;
breakpoints[0].opcode = *(BYTE *)DBG_ADDR_TO_LIN( &addr );
DEBUG_SetBreakpoints( TRUE );
break;
if (DEBUG_IsStepOverInstr(DEBUG_context))
{
EFL_reg(DEBUG_context) &= ~STEP_FLAG;
addr.off += instr_len;
breakpoints[0].addr = addr;
breakpoints[0].enabled = TRUE;
breakpoints[0].in_use = TRUE;
breakpoints[0].opcode = *(BYTE *)DBG_ADDR_TO_LIN( &addr );
DEBUG_SetBreakpoints( TRUE );
break;
}
/* else fall through to single-stepping */
case EXEC_STEP_INSTR: /* Single-stepping an instruction */
EFL_reg(DEBUG_context) |= STEP_FLAG;
......
......@@ -115,7 +115,7 @@ void DEBUG_ExamineMemory( const DBG_ADDR *address, int count, char format )
{
fprintf(stderr," %04x", *wdump++);
addr.off += 2;
if ((i % 10) == 7) {
if ((i % 8) == 7) {
fprintf(stderr,"\n");
DEBUG_PrintAddress( &addr, dbg_mode );
fprintf(stderr,": ");
......@@ -133,7 +133,7 @@ void DEBUG_ExamineMemory( const DBG_ADDR *address, int count, char format )
} else
fprintf(stderr," %c", *pnt++);
addr.off++;
if ((i % 32) == 7) {
if ((i % 32) == 31) {
fprintf(stderr,"\n");
DEBUG_PrintAddress( &addr, dbg_mode );
fprintf(stderr,": ");
......@@ -147,7 +147,7 @@ void DEBUG_ExamineMemory( const DBG_ADDR *address, int count, char format )
{
fprintf(stderr," %02x", (*pnt++) & 0xff);
addr.off++;
if ((i % 32) == 7) {
if ((i % 16) == 15) {
fprintf(stderr,"\n");
DEBUG_PrintAddress( &addr, dbg_mode );
fprintf(stderr,": ");
......
CC = @CC@
CFLAGS = @CFLAGS@
DEFS = @DEFS@
XINCL = @x_includes@
TOPSRC = @top_srcdir@
DIVINCL = -I$(TOPSRC)/include
LD = @LD@
LDCOMBINEFLAGS = @LDCOMBINEFLAGS@
DIVDEFS = @DEFS@ -DHIDE -DANSI_ARROWS
DIVDEFS = $(DEFS) -DHIDE -DANSI_ARROWS
MODULE = readline
......@@ -28,7 +29,7 @@ depend:
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ tmp_make
rm -f *.o \#*\# *~ *.bak tmp_make
distclean: clean
rm -f Makefile
......
......@@ -4,10 +4,6 @@
*/
#include "editline.h"
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#if defined(HAVE_TCGETATTR)
#include <termios.h>
......
......@@ -24,7 +24,8 @@ DLLS32 = gdi32.spec kernel32.spec shell32.spec user32.spec winprocs32.spec
OBJS = $(SRCS:.c=.o) $(DLLS16:.spec=.o) $(DLLS32:.spec=.o) call16.o call32.o
SFILES = $(DLLS16:.spec=.S)
SPEC16_FILES = $(DLLS16:.spec=.S)
SPEC32_FILES = $(DLLS32:.spec=.c)
.SUFFIXES: .spec
......@@ -42,16 +43,16 @@ SFILES = $(DLLS16:.spec=.S)
all: checkbuild $(MODULE).o
$(SFILES): $(TOPSRC)/tools/build
$(SPEC16_FILES) $(SPEC32_FILES): $(TOPSRC)/tools/build
checkbuild:
cd $(TOPSRC)/tools; $(MAKE) 'CC=$(CC)' 'CFLAGS=$(CFLAGS)' 'LD=$(LD)' 'LDCOMBINEFLAGS=$(LDCOMBINEFLAGS)' build
call16.S: $(TOPSRC)/include/callback.h
$(TOPSRC)/tools/build -call16 `cat $(TOPSRC)/include/callback.h | grep "extern.*CallTo16_" | sed 's/.*CallTo16_\(.*\)(.*/\1/' | sort | uniq` > call16.S
call16.S: $(TOPSRC)/include/callback.h $(BUILD)
$(BUILD) -call16 `cat $(TOPSRC)/include/callback.h | grep "extern.*CallTo16_" | sed 's/.*CallTo16_\(.*\)(.*/\1/' | sort | uniq` > call16.S
call32.S: $(SFILES)
$(BUILD) -call32 `cat $(SFILES) | grep CallTo32_ | sed 's/.*CallTo32_\(.*\)/\1/' | sort | uniq` > call32.S
call32.S: $(SPEC16_FILES)
$(BUILD) -call32 `cat $(SPEC16_FILES) | grep CallTo32_ | sed 's/.*CallTo32_\(.*\)/\1/' | sort | uniq` > call32.S
$(MODULE).o: $(OBJS)
$(LD) $(LDCOMBINEFLAGS) $(OBJS) -o $(MODULE).o
......@@ -62,7 +63,7 @@ depend:
mv tmp_make Makefile
clean:
rm -f *.o \#*\# *~ tmp_make
rm -f *.o \#*\# *~ *.bak tmp_make
rm -f $(DLLS16:.spec=.S) $(DLLS32:.spec=.c) call32.S call16.S
distclean: clean
......
......@@ -245,7 +245,7 @@ id 3
380 stub ENDPAGE
381 stub SETABORTPROC
382 stub ABORTDOC
400 stub FASTWINDOWFRAME
400 pascal16 FastWindowFrame(word long word word long) FastWindowFrame
401 stub GDIMOVEBITMAP
403 stub GDIINIT2
405 stub FINALGDIINIT
......
......@@ -232,7 +232,7 @@ id 1
#351 BUNNY_351
353 pascal lstrcpyn(segptr segptr word) lstrcpyn
354 stub GetAppCompatFlags
355 stub GetWinDebugInfo
356 stub SetWinDebugInfo
355 pascal16 GetWinDebugInfo(ptr word) GetWinDebugInfo
356 pascal16 SetWinDebugInfo(ptr) SetWinDebugInfo
403 pascal16 FarSetOwner(word word) FarSetOwner
404 pascal16 FarGetOwner(word) FarGetOwner
add $8,%esp
popw %es
add $2,%esp
popw %ds
add $2,%esp
popl %edi
popl %esi
popl %ebp
add $4,%esp
popl %ebx
popl %edx
popl %ecx
popl %eax
add $16,%esp
popl %gs:return_value
add $20,%esp
pushl %gs:return_value
popfl
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment