Added automatic translation of the config file to the new

format. Updated documentation.
This commit is contained in:
Alexandre Julliard 2000-12-06 20:25:11 +00:00
parent e995f8cfda
commit 73be8d1cfd
5 changed files with 191 additions and 114 deletions

14
README
View File

@ -97,14 +97,16 @@ Once Wine has been built correctly, you can do "make install"; this
will install the wine executable, the Wine man page, and a few other
needed files.
Wine requires a configuration file named wine.conf. Its default location is
/usr/local/etc, but you can supply a different name when configuring wine by
using the --prefix or --sysconfdir options to ./configure. You can also override
the global configuration file with a .winerc file in your home directory.
Wine requires a configuration file named wine.conf. Its default
location is /usr/local/etc, but you can supply a different name when
configuring wine by using the --prefix or --sysconfdir options to
./configure. You can also override the global configuration file with
a file named "config" in your ~/.wine directory.
The format of this file is explained in the man page. The file
wine.ini contains an example configuration file which has to be adapted
and copied to one of the two locations mentioned above.
documentation/samples/config contains an example configuration file
which has to be adapted and copied to one of the two locations
mentioned above.
See http://www.winehq.com/config.html for further configuration hints.

View File

@ -1,25 +1,25 @@
.\" -*- nroff -*-
.TH WINE.CONF 5 "July 16, 1999" "Version 990704" "Wine Configuration File"
.TH WINE.CONF 5 "December 5, 2000" "Version 20001202" "Wine Configuration File"
.SH NAME
wine.conf \- Wine configuration file
.SH DESCRIPTION
.B wine
expects a configuration file (
.I @sysconfdir@/wine.conf
), which should
conform to the following rules (the format is just like a Windows .ini
file). Common locations are /usr/local/etc/wine.conf or
(in some distributions) /etc/wine.conf. The actual directory
where that file resides may be specified during the execution of the
), which should conform to the following rules. Common locations are
/usr/local/etc/wine.conf or (in some distributions)
/etc/wine.conf. The actual directory where that file resides may be
specified during the execution of the
.B configure
script with the --sysconfdir option. Alternatively, you may have a
.I .winerc
file of this format in your home directory or have the environment variable
.B WINE_INI
pointing to a configuration file, or use the --config option on the command
line.
A sample configuration file is available as wine.ini in the base directory
of the Wine source distribution.
file named
.I config
in this format in your ~/.wine directory or in the directory named in
the
.B WINEPREFIX
environment variable. A sample configuration file is available as
.I documentation/samples/config
in the Wine source distribution.
.SH CONFIGURATION FILE FORMAT
All entries are grouped in sections; a section begins with the line
.br
@ -28,13 +28,15 @@ All entries are grouped in sections; a section begins with the line
and continues until the next section starts. Individual entries
consist of lines of the form
.br
.I entry=value
.I """entry""=""value"""
.br
The value can be any text string, optionally included in single or
double quotes; it can also contain references to environment variables
The entry and value can be any text strings, included in double
quotes; it can also contain references to environment variables
surrounded by
.I ${}.
Supported section names and entries are listed below.
Inside the double quotes, special characters, backslashes and quotes
must be escaped with backslashes. Supported section names and entries
are listed below.
.PP
.B [Drive X]
.br
@ -44,7 +46,7 @@ drive, since most Windows applications require a DOS/MS-Windows based
disk drive & directory scheme. There is one such section for every
drive you want to configure.
.PP
.I format: Path = <rootdirectory>
.I format: """Path""=""<rootdirectory>"""
.br
default: none
.br
@ -52,52 +54,52 @@ If you mounted your dos partition as
.I /dos
and installed Microsoft Windows in
C:\\WINDOWS then you should specify
.I Path=/dos
.I """Path""=""/dos"""
in the
.I [Drive C]
section.
.PP
.I format: Type = <type>
.I format: """Type""=""<type>"""
.br
default: hd
default: "hd"
.br
Used to specify the drive type this drive appears as in Windows
or DOS programs; supported types are floppy, hd, cdrom
and network.
or DOS programs; supported types are "floppy", "hd", "cdrom"
and "network".
.PP
.I format: Label = <label>
.I format: """Label""=""<label>"""
.br
default: 'Drive X'
default: "Drive X"
.br
Used to specify the drive label; limited to 11 characters.
.PP
.I format: Serial = <serial>
.I format: """Serial""=""<serial>"""
.br
default: 12345678
default: "12345678"
.br
Used to specify the drive serial number, as an 8-character hexadecimal
number.
.PP
.I format: Filesystem = <fstype>
.I format: """Filesystem""=""<fstype>"""
.br
default: win95
default: "win95"
.br
Used to specify the type of the file system Wine should emulate on a given
directory structure/underlying file system.
.br
Supported types are msdos (or fat), win95 (or vfat), unix.
Supported types are "msdos" (or "fat"), "win95" (or "vfat"), "unix".
.br
Recommended:
.br
win95 for ext2fs, VFAT and FAT32
"win95" for ext2fs, VFAT and FAT32
.br
msdos for FAT16 (ugly)
"msdos" for FAT16 (ugly)
.br
You definitely don't want to use "unix" unless you intend to port programs using Winelib.
.br
Always try to avoid using FAT16. Use VFAT/FAT32 OS file system driver instead !
You definitely do not want to use "unix" unless you intend to port
programs using Winelib. Always try to avoid using FAT16. Use the
VFAT/FAT32 OS file system driver instead.
.PP
.I format: FailReadOnly=<boolean>
.I format: """FailReadOnly""=""<boolean>"""
.br
Read-only files may not be opened in write mode (the default is to
allow opening read-only files for writing, because most Windows
@ -105,64 +107,60 @@ programs always request read-write access, even on CD-ROM drives...).
.PP
.B [wine]
.br
.I format: windows = <directory>
.I format: """windows""=""<directory>"""
.br
default: C:\\WINDOWS
default: "C:\\\\WINDOWS"
.br
Used to specify a different Windows directory
Used to specify a different Windows directory; make sure to double the
backslashes.
.PP
.I format: system = <directory>
.I format: """system""=""<directory>"""
.br
default: C:\\WINDOWS\\SYSTEM
default: "C:\\\\WINDOWS\\\\SYSTEM"
.br
Used to specify a different system directory
Used to specify a different system directory; make sure to double the
backslashes.
.PP
.I format: temp = <directory>
.I format: """temp""=""<directory>"""
.br
default: C:\\TEMP
default: "C:\\\\TEMP"
.br
Used to specify a directory where Windows applications can store
temporary files.
.PP
.I format: profile = <directory>
.I format: """profile""=""<directory>"""
.br
default: nothing
.br
Used to specify a directory where Windows stores special folders and the user-registry files (user.dat or ntuser.dat).
Mapped to environment variable %USERPROFILE%.
Set this value when running with a native NT or a native win95 directory with per-user settings.
Used to specify a directory where Windows stores special folders and
the user-registry files (user.dat or ntuser.dat). Mapped to
environment variable %USERPROFILE%. Set this value when running with
a native NT or a native win95 directory with per-user settings.
.PP
.I format: path = <directories separated by semi-colons>
.I format: """path""=""<directories separated by semi-colons>"""
.br
default: C:\\WINDOWS;C:\\WINDOWS\\SYSTEM
default: "C:\\\\WINDOWS;C:\\\\WINDOWS\\\\SYSTEM"
.br
Used to specify the path which will be used to find executables and .DLL's.
.PP
.I format: symboltablefile = <filename>
.br
default: wine.sym
.br
Used to specify the path and file name of the symbol table used by the built-in
debugger.
Used to specify the path which will be used to find executables and
dlls. Make sure to double all the backslashes.
.PP
.B [DllDefaults]
.br
.I format: EXTRA_LD_LIBRARY_PATH=@prefix@/lib/wine[:/more/path/to/search[:...]]
.I format: """EXTRA_LD_LIBRARY_PATH""=""@prefix@/lib/wine[:/more/path/to/search[:...]]"""
.br
The path will be appended to any existing LD_LIBRARY_PATH from the
environment for the search of .so libraries.
.PP
.I format: DefaultLoadOrder=native,so,builtin
.I format: """DefaultLoadOrder""=""native,so,builtin"""
.br
A comma separated list of module-types to try to load in that specific
order. The DefaultLoadOrder key is used as a fallback when a module is
not specified explicitely. If the DefaultLoadOrder key is not found,
then the order "native,builtin,so" is used.
.br
Case is not (yet) important and only the first letter of each type is
enough to identify the type n[ative], s[o], b[uiltin]. Also whitespace
is ignored. Keep everything in lower case to be sure that your entries
keep the same meaning. See also commandline option
Case is not important and only the first letter of each type is enough
to identify the type n[ative], s[o], b[uiltin]. Also whitespace is
ignored. See also commandline option
.I --dll
for details about the allowable types.
.PP
@ -175,13 +173,13 @@ an extension.
.br
Examples:
.br
.I kernel32 = builtin
.I """kernel32""=""builtin"""
.br
.I kernel = builtin
.I """kernel""=""builtin"""
.br
.I comdlg32 = native, builtin
.I """comdlg32""=""native, builtin"""
.br
.I commdlg = native, builtin
.I """commdlg""=""native, builtin"""
.br
Changing the load order of kernel/kernel32 and gdi/gdi32 to
anything other than builtin will cause wine to fail because wine cannot
@ -198,7 +196,7 @@ what you are doing.
.PP
.B [serialports]
.br
.I format: com[12345678] = <devicename>
.I format: """com[12345678]""=""<devicename>"""
.br
default: none
.br
@ -206,7 +204,7 @@ Used to specify the devices which are used as COM1 - COM8.
.PP
.B [parallelports]
.br
.I format: lpt[12345678] = <devicename>
.I format: """lpt[12345678]""=""<devicename>"""
.br
default: none
.br
@ -214,65 +212,64 @@ Used to specify the devices which are used as LPT1 - LPT8.
.PP
.B [spy]
.br
.I format: file = <filename or CON when logging to stdout>
.br
default: none
.br
Used to specify the file which will be used as
.B logfile.
.PP
.I format: exclude = <message names separated by semicolons>
.I format: """exclude""=""<message names separated by semicolons>"""
.br
default: none
.br
Used to specify which messages will be excluded from the logfile.
.PP
.I format: include = <message names separated by semicolons>
.I format: """include""=""<message names separated by semicolons>"""
.br
default: none
.br Used to specify which messages will be included in the logfile.
.PP
.B [Tweak.Layout]
.br
.I format: WineLook=<Win31|Win95|Win98>
.I format: """WineLook""=""<Win31|Win95|Win98>"""
.br
default: Win31
default: "Win31"
.br
Use Win95-like window displays or Win3.1-like window displays.
.PP
.B [Registry]
.br
.I format: LoadGlobalRegistryFiles=<boolean>
.I format: """LoadGlobalRegistryFiles""=""<boolean>"""
.br
Global registries (stored in /etc)
.PP
.I format: LoadHomeRegistryFiles=<boolean>
.I format: """LoadHomeRegistryFiles""=""<boolean>"""
.br
Home registries (stored in ~user/.wine/)
.PP
.I format: WritetoHomeRegistryFiles=<boolean>
.I format: """WritetoHomeRegistryFiles""=""<boolean>"""
.br
TRY to write all changes to alt registries
TRY to write all changes to the home registry files
.PP
.I format: LoadWindowsRegistryFiles=<boolean>
.I format: """LoadWindowsRegistryFiles""=""<boolean>"""
.br
Load Windows registry from the current Windows directory.
.PP
booleans: Y/y/T/t/1 are true, N/n/F/f/0 are false.
.br
Defaults are read all, write to Home
Defaults are read all, write to home files.
.PP
.SH SAMPLE CONFIGURATION FILE
A sample configuration file is distributed as
.B wine.ini
in the top-level directory of the source distribution.
.B documentation/samples/config
in the Wine source distribution.
.SH FILES
.PD 0
.TP
.I @sysconfdir@/wine.conf
Global configuration file for wine.
.TP
.I ~/.winerc
.I ~/.wine/config
User-specific configuration file
.SH ENVIRONMENT VARIABLES
.TP
.I WINEPREFIX
Specifies the directory that contains the per-user
.I config
file, the registry files, and the wineserver socket. The default is
.I $HOME/.wine.
.SH "SEE ALSO"
.BR wine (1)

View File

@ -108,7 +108,7 @@ file contained in the source distribution.
.TP
.I --config filename
Use the named configuration file rather than the default
(@sysconfdir@/wine.conf or ~/.winerc).
(@sysconfdir@/wine.conf or ~/.wine/config).
.TP
.I --debugmsg [xxx]#name[,[xxx1]#name1][,<+|->relay=yyy1[:yyy2]]
Turn debugging messages on or off.
@ -181,10 +181,10 @@ Use a desktop window of the given geometry, e.g. "640x480"
Use the specified X display
.TP
.I --dll name[,name[,...]]={native|so|builtin}[,{n|s|b}[,...]][+...]
Selects the override type and load order of dll used in the loading process
for any dll. The default is set in @sysconfdir@/wine.conf or ~/.winerc. There
are currently three types of libraries that can be loaded into a process' address
space: Native windows dlls (
Selects the override type and load order of dll used in the loading
process for any dll. The default is set in the configuration
file. There are currently three types of libraries that can be loaded
into a process' address space: Native windows dlls (
.I native
), native ELF libraries (
.I so
@ -357,8 +357,8 @@ expects a configuration file (
man page. A sample configuration file is wine.ini in the base directory of the
.B wine
source archive. Alternatively a configuration file with the name
.I .winerc
in the home directory of the user running
.I config
in the ~/.wine directory of the user running
.B wine
can be used. The third option is to specify the name of the
configuration file with the
@ -460,7 +460,7 @@ shared libraries
Global configuration file for
.B wine.
.TP
.I ~/.winerc
.I ~/.wine/config
User-specific configuration file
.TP
.I ~/.wine

View File

@ -6,6 +6,7 @@
*/
#include <ctype.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
@ -269,6 +270,78 @@ static PROFILESECTION *PROFILE_Load( FILE *file )
return first_section;
}
/* convert the .winerc file to the new format */
static int convert_config( FILE *in, const char *output_name )
{
char buffer[PROFILE_MAX_LINE_LEN];
char *p, *p2;
FILE *out;
/* create the output file, only if it doesn't exist already */
int fd = open( output_name, O_WRONLY|O_CREAT|O_EXCL, 0666 );
if (fd == -1) return 0;
out = fdopen( fd, "w" );
fprintf( out, "WINE REGISTRY Version 2\n" );
fprintf( out, ";; All keys relative to \\\\Machine\\\\Software\\\\Wine\\\\Wine\\\\Config\n\n" );
while (fgets( buffer, PROFILE_MAX_LINE_LEN, in ))
{
if (buffer[strlen(buffer)-1] == '\n') buffer[strlen(buffer)-1] = 0;
p = buffer;
while (*p && PROFILE_isspace(*p)) p++;
if (*p == '[') /* section start */
{
if ((p2 = strrchr( p, ']' )))
{
*p2 = '\0';
p++;
fprintf( out, "[%s]\n", p );
}
continue;
}
if (*p == ';' || *p == '#')
{
fprintf( out, "%s\n", p );
continue;
}
p2=p+strlen(p) - 1;
while ((p2 > p) && ((*p2 == '\n') || PROFILE_isspace(*p2))) *p2--='\0';
if ((p2 = strchr( p, '=' )) != NULL)
{
char *p3 = p2 - 1;
while ((p3 > p) && PROFILE_isspace(*p3)) *p3-- = '\0';
*p2++ = '\0';
while (*p2 && PROFILE_isspace(*p2)) p2++;
}
if (!*p)
{
fprintf( out, "\n" );
continue;
}
fputc( '"', out );
while (*p)
{
if (*p == '\\') fputc( '\\', out );
fputc( *p, out );
p++;
}
fprintf( out, "\" = \"" );
while (*p2)
{
if (*p2 == '\\') fputc( '\\', out );
fputc( *p2, out );
p2++;
}
fprintf( out, "\"\n" );
}
fclose( out );
return 1;
}
/***********************************************************************
* PROFILE_RegistryLoad
@ -1040,8 +1113,8 @@ int PROFILE_LoadWineIni(void)
if (disp == REG_OPENED_EXISTING_KEY) return 1; /* loaded by the server */
MESSAGE( "Can't open configuration file %s or $HOME%s\n",
WINE_INI_GLOBAL, PROFILE_WineIniName );
MESSAGE( "Can't open configuration file %s or %s/config\n",
WINE_INI_GLOBAL, get_config_dir() );
return 0;
found:
@ -1054,6 +1127,17 @@ int PROFILE_LoadWineIni(void)
return 1;
}
/* convert to the new format */
sprintf( buffer, "%s/config", get_config_dir() );
if (convert_config( f, buffer ))
{
MESSAGE( "The '%s' configuration file has been converted\n"
"to the new format and saved as '%s'.\n", PROFILE_WineIniUsed, buffer );
MESSAGE( "You should verify that the contents of the new file are correct,\n"
"and then remove the old one and restart Wine.\n" );
ExitProcess(0);
}
PROFILE_RegistryLoad( wine_profile_key, f );
fclose( f );
return 1;

View File

@ -173,8 +173,6 @@ LoadHomeRegistryFiles=Y
LoadWindowsRegistryFiles=Y
; TRY to write all changes to home registries
WritetoHomeRegistryFiles=Y
; Use new file format
UseNewFormat=Y
; Registry periodic save timeout in seconds
; PeriodicSave=600
; Save only modified keys
@ -184,10 +182,6 @@ SaveOnlyUpdatedKeys=Y
;; WineLook=xxx (supported styles are 'Win31'(default), 'Win95', 'Win98')
WineLook=Win95
[programs]
Default=
Startup=
[Console]
;Drivers=tty
;XtermProg=nxterm