diff -ruN -x CVS wine-20031212/documentation/samples/config.suse.head marcus-wine-20031212/documentation/samples/config.suse.head
--- wine-20031212/documentation/samples/config.suse.head 1970-01-01 01:00:00.000000000 +0100
+++ marcus-wine-20031212/documentation/samples/config.suse.head 2003-09-13 21:25:46.000000000 +0200
@@ -0,0 +1,36 @@
+WINE REGISTRY Version 2
+;; All keys relative to \\Machine\\Software\\Wine\\Wine\\Config
+
+;; If you think it is necessary to show others your complete config for a
+;; bug report, filter out empty lines and comments with
+;; grep -v "^;" ~/.wine/config | grep '.'
+;;
+;; MS-DOS drives configuration
+;;
+;; Each section has the following format:
+;; [Drive X]
+;; "Path"="xxx" (Unix path for drive root)
+;; "Type"="xxx" (supported types are 'floppy', 'hd', 'cdrom' and 'network')
+;; "Label"="xxx" (drive label, at most 11 characters)
+;; "Serial"="xxx" (serial number, 8 characters hexadecimal number)
+;; "Filesystem"="xxx" (supported types are 'msdos'/'dos'/'fat', 'win95'/'vfat', 'unix')
+;; This is the FS Wine is supposed to emulate on a certain
+;; directory structure.
+;; Recommended:
+;; - "win95" for ext2fs, VFAT and FAT32
+;; - "msdos" for FAT16 (ugly, upgrading to VFAT driver strongly recommended)
+;; DON'T use "unix" unless you intend to port programs using Winelib !
+;; "Device"="/dev/xx" (only if you want to allow raw device access)
+;;
+[Drive A]
+"Type" = "floppy"
+"Path" = "/media/floppy"
+"Label" = "/media/floppy"
+"Device" = "/dev/fd0"
+
+[Drive C]
+"Path" = "%HOME%/.wine/fake_windows"
+"Type" = "hd"
+"Label" = "fake_windows"
+"Filesystem" = "win95"
+
diff -ruN -x CVS wine-20031212/documentation/samples/config.suse.tail marcus-wine-20031212/documentation/samples/config.suse.tail
--- wine-20031212/documentation/samples/config.suse.tail 1970-01-01 01:00:00.000000000 +0100
+++ marcus-wine-20031212/documentation/samples/config.suse.tail 2003-09-13 21:25:38.000000000 +0200
@@ -0,0 +1,287 @@
+[Drive M]
+"Type" = "cdrom"
+"Path" = "/media/cdrom"
+"Label" = "/media/cdrom"
+"FS" = "win95"
+"Device" = "/dev/sr0"
+
+[Drive X]
+"Type" = "hd"
+"Path" = "/tmp"
+"Label" = "Tmp Drive"
+"FS" = "win95"
+
+[Drive Y]
+"Type" = "network"
+"Path" = "%HOME%"
+"Label" = "Home"
+"FS" = "win95"
+
+[Drive Z]
+"Type" = "network"
+"Path" = "/"
+"Label" = "Root"
+"FS" = "win95"
+
+[wine]
+"Windows" = "C:\\Windows"
+"System" = "C:\\Windows\\System"
+"Temp" = "C:\\Windows\\Temp"
+"Path" = "C:\\Windows;C:\\Windows\\System;X:\\;Y:\\"
+"Profile" = "c:\\windows\\Profiles\\Administrator"
+"GraphicsDriver" = "x11drv"
+;"ShowDirSymlinks" = "1"
+;"ShowDotFiles" = "1"
+"ShellLinker" = "wineshelllink"
+
+#
+
+[Version]
+; Windows version to imitate (win95,win98,winme,nt351,nt40,win2k,winxp,win20,win30,win31)
+;"Windows" = "win98"
+; DOS version to imitate
+;"DOS" = "6.22"
+
+; Be careful here, wrong DllOverrides settings have the potential
+; to pretty much kill your setup.
+[DllOverrides]
+"msvcrt" = "native,builtin"
+"msi" = "native,builtin"
+; default for all other dlls
+"*" = "builtin, native"
+
+[x11drv]
+; Number of colors to allocate from the system palette
+"AllocSystemColors" = "100"
+; Use a private color map
+"PrivateColorMap" = "N"
+; Favor correctness over speed in some graphics operations
+"PerfectGraphics" = "N"
+; Color depth to use on multi-depth screens
+;;"ScreenDepth" = "16"
+; Name of X11 display to use
+;;"Display" = ":0.0"
+; Allow the window manager to manage created windows
+"Managed" = "Y"
+; Use a desktop window of 640x480 for Wine
+;"Desktop" = "640x480"
+; Use XFree86 DGA extension if present
+; (make sure /dev/mem is accessible by you !)
+"UseDGA" = "Y"
+; Use XShm extension if present
+"UseXShm" = "Y"
+; Use XVidMode extension if present
+"UseXVidMode" = "Y"
+; Use the take focus protocol
+"UseTakeFocus" = "Y"
+; Enable DirectX mouse grab
+"DXGrab" = "N"
+; Create the desktop window with a double-buffered visual
+; (useful to play OpenGL games)
+"DesktopDoubleBuffered" = "N"
+; Use this if you have more than one port for video on your setup
+; (Wine uses for now the first 'input image' it finds).
+;; "XVideoPort" = "43"
+; Run in synchronous mode (useful for debugging X11 problems)
+;"Synchronous" = "Y"
+;
+; Use the Render extension to render client side fonts (default "Y")
+;;"ClientSideWithRender" = "Y"
+; Fallback on X core requests to render client side fonts (default "Y")
+;;"ClientSideWithCore" = "Y"
+; Set both of the previous two to "N" in order to force X11 server side fonts
+;
+; Anti-alias fonts if using the Render extension (default "Y")
+;;"ClientSideAntiAliasWithRender" = "Y"
+; Anti-alias fonts if using core requests fallback (default "Y")
+;;"ClientSideAntiAliasWithCore" = "Y"
+;
+
+[fonts]
+;Read the Fonts topic in the Wine User Guide before adding aliases
+;See a couple of examples for russian users below
+"Resolution" = "96"
+"Default" = "-adobe-helvetica-"
+"DefaultFixed" = "fixed"
+"DefaultSerif" = "-adobe-times-"
+"DefaultSansSerif" = "-adobe-helvetica-"
+
+;; default TrueType fonts with russian koi8-r encoding
+;"Default" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
+;"DefaultFixed" = "-monotype-courier new-*-*-*--*-*-*-*-*-*-koi8-r"
+;"DefaultSerif" = "-monotype-times new roman-*-*-*--*-*-*-*-*-*-koi8-r"
+;"DefaultSansSerif" = "-monotype-arial-*-*-*--*-*-*-*-*-*-koi8-r"
+;; default cyrillic bitmap X fonts
+;"Default" = "-cronyx-helvetica-"
+;"DefaultFixed" = "fixed"
+;"DefaultSerif" = "-cronyx-times-"
+;"DefaultSansSerif" = "-cronyx-helvetica-"
+
+; the TrueType font dirs you want to make accessible to wine
+[FontDirs]
+"dir1" = "/usr/X11R6/lib/X11/fonts/truetype"
+"dir2" = "/usr/X11R6/lib/X11/fonts/TrueType"
+"dir3" = "/usr/X11R6/lib/X11/fonts/TT"
+
+[serialports]
+"Com1" = "/dev/ttyS0"
+"Com2" = "/dev/ttyS1"
+"Com3" = "/dev/ttyS2"
+"Com4" = "/dev/modem"
+
+[parallelports]
+"Lpt1" = "/dev/lp0"
+
+[ppdev]
+;; key: io-base of the emulated port
+;; value : parport-device{,timeout}
+;; timeout for auto closing an open device ( not yet implemented)
+;"378" = "/dev/parport0"
+;"278" = "/dev/parport1"
+;"3bc" = "/dev/parport2"
+
+[spooler]
+"FILE:" = "tmp.ps"
+"LPT1:" = "|lpr"
+"LPT2:" = "|gs -sDEVICE=bj200 -sOutputFile=/tmp/fred -q -"
+"LPT3:" = "/dev/lp3"
+
+[ports]
+;"read" = "0x779,0x379,0x280-0x2a0"
+; "write" = "0x779,0x379,0x280-0x2a0"
+
+[Debug]
+"RelayExclude" = "RtlLeaveCriticalSection;RtlEnterCriticalSection;TlsGetValue;_EnterSysLevel;_LeaveSysLevel;RtlAllocateHeap;RtlFreeHeap;RtlReAllocateHeap;LOCAL_Lock;LOCAL_Unlock"
+;"RelayInclude" = "user32.CreateWindowA"
+;"RelayFromExclude" = "user32;x11drv"
+;"RelayFromInclude" = "sol.exe"
+;"SnoopExclude" = "RtlEnterCriticalSection;RtlLeaveCriticalSection"
+;"SpyExclude" = "WM_SIZE;WM_TIMER;"
+
+[registry]
+;These are all booleans. Y/y/T/t/1 are true, N/n/F/f/0 are false.
+;Defaults are read all, write to Home
+; Where to find the global registries
+;"GlobalRegistryDir" = "/etc";
+; Global registries (stored in /etc)
+"LoadGlobalRegistryFiles" = "Y"
+; Home registries (stored in ~user/.wine/)
+"LoadHomeRegistryFiles" = "Y"
+; Load Windows registries from the Windows directory
+"LoadWindowsRegistryFiles" = "Y"
+; TRY to write all changes to home registries
+"WritetoHomeRegistryFiles" = "Y"
+; Registry periodic save timeout in seconds
+; "PeriodicSave" = "600"
+; Save only modified keys
+"SaveOnlyUpdatedKeys" = "Y"
+
+[Tweak.Layout]
+;; supported styles are 'Win31'(default), 'Win95', 'Win98'
+;; this has *nothing* to do with the windows version Wine returns:
+;; set the "Windows" value in the [Version] section if you want that.
+"WineLook" = "Win95"
+
+[Clipboard]
+"ClearAllSelections" = "0"
+"PersistentSelection" = "1"
+
+; List of all directories directly contain .AFM files
+[afmdirs]
+"1" = "/usr/share/ghostscript/fonts"
+"2" = "/usr/share/enscript/afm"
+"3" = "/usr/X11R6/lib/X11/fonts/Type1"
+"4" = "/usr/lib/wine/afm"
+
+[WinMM]
+; Uncomment the "Drivers" line matching your sound setting.
+
+"Drivers" = "wineoss.drv" ; default for most common configurations
+;"Drivers" = "winearts.drv" ; for KDE
+;"Drivers" = "winealsa.drv" ; for ALSA users
+;"Drivers" = "winejack.drv" ; for Jack sound server
+;"Drivers" = "winenas.drv" ; for NAS sound system
+;"Drivers" = "wineaudioio.drv" ; for Solaris machines
+;"Drivers" = "" ; to disable sound
+"WaveMapper" = "msacm.drv"
+"MidiMapper" = "midimap.drv"
+
+[dsound]
+;; HEL only: Number of waveOut fragments ahead to mix in new buffers.
+;"HELmargin" = "5"
+;; HEL only: Number of waveOut fragments ahead to queue to driver.
+;"HELqueue" = "5"
+;; Max number of fragments to prebuffer
+;"SndQueueMax" = "28"
+;; Min number of fragments to prebuffer
+;"SndQueueMin" = "12"
+;; Forces emulation mode (using wave api)
+;"HardwareAcceleration" = "Emulation"
+;; Sets default playback device (0 - number of devices - 1)
+;"DefaultPlayback" = "0" ; use first device (/dev/dsp)
+;"DefaultPlayback" = "1" ; use second device (/dev/dsp1)
+;"DefaultPlayback" = "2" ; use third device (/dev/dsp2)
+;; Sets default capture device (0 - number of devices - 1)
+;"DefaultCapture" = "0" ; use first device (/dev/dsp)
+;"DefaultCapture" = "1" ; use second device (/dev/dsp1)
+;"DefaultCapture" = "2" ; use third device (/dev/dsp2)
+
+[Network]
+;; Use the DNS (Unix) host name always as NetBIOS "ComputerName" (boolean, default "Y").
+;; Set to N if you need a persistent NetBIOS ComputerName that possibly differs
+;; from the Unix host name. You'll need to set ComputerName in
+;; HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName, too.
+;"UseDnsComputerName" = "N"
+
+[ppd]
+"generic" = "/usr/lib/wine/ppd/generic.ppd"
+
+#
+
+#########################################
+# Application dependent sections follow #
+#########################################
+
+; 3 InstallShield versions who like to put their full screen window in front,
+; without any chance to switch to another X11 application.
+; So just catch them in a desktop window.
+
+[AppDefaults\\_INS0432._MP\\x11drv]
+;"Desktop" = "640x480"
+
+[AppDefaults\\_INS0466._MP\\x11drv]
+;"Desktop" = "640x480"
+
+[AppDefaults\\_INS0576._MP\\x11drv]
+;"Desktop" = "640x480"
+
+[AppDefaults\\_INS5176._MP\\x11drv]
+;"Desktop" = "640x480"
+
+[AppDefaults\\_INS5576._MP\\x11drv]
+;"Desktop" = "640x480"
+
+[AppDefaults\\nlnotes.exe\\x11drv]
+;"Desktop" = "800x600"
+;"Synchronous" = "Y"
+
+[AppDefaults\\notes.exe\\DllOverrides]
+"msvcrt" = "native"
+"msvcrt40" = "native"
+"crtdll" = "native"
+"imagehlp" = "native"
+"rnaph" = "native"
+
+[AppDefaults\\nlnotes.exe\\DllOverrides]
+"msvcrt" = "native"
+"msvcrt40" = "native"
+"crtdll" = "native"
+"imagehlp" = "native"
+"rnaph" = "native"
+
+[AppDefaults\\nhldaemn.exe\\DllOverrides]
+"msvcrt" = "native"
+"msvcrt40" = "native"
+"crtdll" = "native"
+"imagehlp" = "native"
+"rnaph" = "native"
diff -ruN -x CVS wine-20031212/loader/main.c marcus-wine-20031212/loader/main.c
--- wine-20031212/loader/main.c 2003-11-24 10:56:44.000000000 +0100
+++ marcus-wine-20031212/loader/main.c 2003-12-13 17:40:42.000000000 +0100
@@ -20,8 +20,53 @@
#include
#include
+#include
+#include
+#include
+/* includes needed by suse_init */
+#include
+#include
+#include
+
#include "wine/library.h"
+/* this function checks on existence config files
+ if there are no config files it runs 'make_fakewindows' */
+void SuSE_init()
+{
+ // status from wait
+ struct stat stbuf;
+ char buf[260], *homedir, *update;
+ int status;
+
+ homedir = getenv("HOME");
+ if (!homedir) {
+ struct passwd *pwd;
+ pwd = getpwuid(getuid());
+ if (!pwd) return;
+ homedir = pwd->pw_dir;
+ if (!homedir) return;
+ }
+ sprintf(buf,"%s/.wine/fake_windows",homedir);
+ if (-1 != stat(buf,&stbuf)) {
+ update = "-u"; /* Already created. No need to call init */
+ } else {
+ update = NULL;
+ }
+
+ if (!fork()) {
+ /* the child launchs 'wine_init' */
+ execlp("/usr/bin/make_fakewindows", update, NULL);
+ exit(1);
+ } else {
+ /* the parent waits for child */
+ wait(&status);
+ }
+ return;
+}
+
+extern void wine_init( int argc, char *argv[], char *error, int error_size );
+
/**********************************************************************
* main
*/
@@ -29,10 +74,11 @@
{
char error[1024];
#ifdef __i386__
static char pe_load[256*1024*1024] __attribute__((aligned(4096)));
wine_set_pe_load_area( pe_load, sizeof(pe_load) );
#endif
+ SuSE_init();
wine_init( argc, argv, error, sizeof(error) );
fprintf( stderr, "wine: failed to initialize: %s\n", error );