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 );