From 00377a78b783740f7306a1b191ecc2d0e753bc6d Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Sat, 19 Feb 2000 20:50:00 +0000 Subject: [PATCH] Store config file contents in the registry so we only have to load it once per session. Replaced PROFILE_EnumerateWineIniSection by PROFILE_EnumWineIniString. Removed a few unnecessary/unused command-line options. --- console/interface.c | 62 +++++----- documentation/wine.man.in | 21 ---- files/profile.c | 243 ++++++++++++++++++++------------------ graphics/psdrv/afm.c | 42 +++---- graphics/x11drv/xfont.c | 79 ------------- include/console.h | 2 - include/main.h | 1 - include/options.h | 24 +--- misc/main.c | 26 ---- misc/version.c | 17 +-- windows/x11drv/main.c | 17 --- windows/x11drv/wnd.c | 2 +- 12 files changed, 180 insertions(+), 356 deletions(-) diff --git a/console/interface.c b/console/interface.c index 80bc1a872cf..707bc98be8e 100644 --- a/console/interface.c +++ b/console/interface.c @@ -21,20 +21,10 @@ static int pop_driver(char **, char **, int *); static int console_initialized = FALSE; -int CONSOLE_Init(char *drivers) +static int CONSOLE_Init(void) { - /* When this function is called drivers should be a string - that consists of driver names followed by plus (+) signs - to denote additions. - - For example: - drivers = tty Load just the tty driver - drivers = ncurses+xterm Load ncurses then xterm - - The "default" value is just tty. - */ - - char *single; + char buffer[256]; + char *single, *drivers = buffer; int length; char initial_rows[5]; char initial_columns[5]; @@ -43,6 +33,18 @@ int CONSOLE_Init(char *drivers) driver.console_out = stdout; driver.console_in = stdin; + /* drivers should be a string that consists of driver names + followed by plus (+) signs to denote additions. + + For example: + drivers = tty Load just the tty driver + drivers = ncurses+xterm Load ncurses then xterm + + The "default" value is just tty. + */ + PROFILE_GetWineIniString( "console", "Drivers", CONSOLE_DEFAULT_DRIVER, + buffer, sizeof(buffer) ); + while (pop_driver(&drivers, &single, &length)) { if (!strncmp(single, "tty", length)) @@ -92,7 +94,7 @@ int CONSOLE_Init(char *drivers) void CONSOLE_Write(char out, int fg_color, int bg_color, int attribute) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.write) { @@ -111,7 +113,7 @@ void CONSOLE_Close() void CONSOLE_MoveCursor(char row, char col) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.moveCursor) { @@ -125,7 +127,7 @@ void CONSOLE_ClearWindow(char row1, char col1, char row2, char col2, int bg_color, int attribute) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.clearWindow) { @@ -139,7 +141,7 @@ void CONSOLE_ScrollUpWindow(char row1, char col1, char row2, char col2, char lines, int bg_color, int attribute) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.scrollUpWindow) { @@ -154,7 +156,7 @@ void CONSOLE_ScrollDownWindow(char row1, char col1, char row2, char col2, char lines, int bg_color, int attribute) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.scrollDownWindow) { @@ -171,7 +173,7 @@ int CONSOLE_CheckForKeystroke(char *scan, char *ascii) a conv_* function in int16.c. Yuck. */ { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.checkForKeystroke) return driver.checkForKeystroke(scan, ascii); @@ -182,7 +184,7 @@ int CONSOLE_CheckForKeystroke(char *scan, char *ascii) void CONSOLE_GetKeystroke(char *scan, char *ascii) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.getKeystroke) driver.getKeystroke(scan, ascii); @@ -191,7 +193,7 @@ void CONSOLE_GetKeystroke(char *scan, char *ascii) void CONSOLE_GetCursorPosition(char *row, char *col) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.getCursorPosition) driver.getCursorPosition(row, col); @@ -200,7 +202,7 @@ void CONSOLE_GetCursorPosition(char *row, char *col) void CONSOLE_GetCharacterAtCursor(char *ch, int *fg, int *bg, int *a) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.getCharacterAtCursor) driver.getCharacterAtCursor(ch, fg, bg, a); @@ -209,7 +211,7 @@ void CONSOLE_GetCharacterAtCursor(char *ch, int *fg, int *bg, int *a) void CONSOLE_Refresh() { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.refresh) driver.refresh(); @@ -218,7 +220,7 @@ void CONSOLE_Refresh() int CONSOLE_AllocColor(int color) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.allocColor) return driver.allocColor(color); @@ -229,7 +231,7 @@ int CONSOLE_AllocColor(int color) void CONSOLE_ClearScreen() { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.clearScreen) { @@ -242,7 +244,7 @@ void CONSOLE_ClearScreen() char CONSOLE_GetCharacter() { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); /* I'm not sure if we need this really. This is a function that can be accelerated that returns the next *non extended* keystroke */ @@ -255,7 +257,7 @@ char CONSOLE_GetCharacter() void CONSOLE_ResizeScreen(int x, int y) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.resizeScreen) driver.resizeScreen(x, y); @@ -270,7 +272,7 @@ void CONSOLE_NotifyResizeScreen(int x, int y) void CONSOLE_SetBackgroundColor(int fg, int bg) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.setBackgroundColor) driver.setBackgroundColor(fg, bg); @@ -279,7 +281,7 @@ void CONSOLE_SetBackgroundColor(int fg, int bg) void CONSOLE_GetBackgroundColor(int *fg, int *bg) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); if (driver.getBackgroundColor) driver.getBackgroundColor(fg, bg); @@ -288,7 +290,7 @@ void CONSOLE_GetBackgroundColor(int *fg, int *bg) void CONSOLE_WriteRawString(char *str) { if (!console_initialized) - console_initialized = CONSOLE_Init(driver.driver_list); + console_initialized = CONSOLE_Init(); /* This is a special function that is only for internal use and does not actually call any of the console drivers. It's diff --git a/documentation/wine.man.in b/documentation/wine.man.in index 62ab8db2cec..26f085eac9b 100644 --- a/documentation/wine.man.in +++ b/documentation/wine.man.in @@ -91,12 +91,6 @@ For more information, see the file contained in the source distribution. .SH OPTIONS .TP -.I -backingstore -Turn on backing store -Backingstore stores pixels of obscured window parts off-screen. -This buffer is used to restore these parts faster once they are to reappear, -but it consumes additional memory of course. -.TP .I -config filename Use the named configuration file rather than the default (@sysconfdir@/wine.conf or ~/.winerc). @@ -212,12 +206,6 @@ Read only files may not be opened in write mode (the default is to allow opening read-only files for writing, because most Windows programs always request read-write access, even on CD-ROM drives...). .TP -.I -fixedmap -Use a "standard" color map. -.TP -.I -iconic -Start as an icon -.TP .I -language xx Set the language to .I xx @@ -227,15 +215,6 @@ Set the language to Create each top-level window as a properly managed X window instead of creating our own "sticky" window. .TP -.I -mode modename -Determines the mode in which -.B wine -is started. Possible mode names are -.I standard -and -.I enhanced. -Enhanced mode is the default (when no -mode option is specified). -.TP .I -name name Set the application name .TP diff --git a/files/profile.c b/files/profile.c index 5575b91097f..4085f5d95db 100644 --- a/files/profile.c +++ b/files/profile.c @@ -21,11 +21,13 @@ #include "wingdi.h" #include "winuser.h" #include "winnls.h" +#include "winreg.h" #include "file.h" #include "heap.h" #include "debugtools.h" #include "xmalloc.h" #include "options.h" +#include "server.h" DEFAULT_DEBUG_CHANNEL(profile); @@ -62,8 +64,8 @@ static PROFILE *MRUProfile[N_CACHED_PROFILES]={NULL}; #define CurProfile (MRUProfile[0]) -/* wine.ini profile content */ -static PROFILESECTION *PROFILE_WineProfile; +/* wine.ini config file registry root */ +static HKEY wine_profile_key; #define PROFILE_MAX_LINE_LEN 1024 @@ -79,7 +81,7 @@ static char PROFILE_WineIniUsed[MAX_PATHNAME_LEN] = ""; #define WINE_INI_GLOBAL ETCDIR "/wine.conf" #define WINE_CONFIG_DIR "/.wine" /* config dir inside $HOME */ -static LPCWSTR wininiW = NULL; +static const WCHAR wininiW[] = { 'w','i','n','.','i','n','i',0 }; static CRITICAL_SECTION PROFILE_CritSect; @@ -299,6 +301,70 @@ static PROFILESECTION *PROFILE_Load( FILE *file ) } +/*********************************************************************** + * PROFILE_RegistryLoad + * + * Load a profile tree from a file into a registry key. + */ +static DWORD PROFILE_RegistryLoad( HKEY root, FILE *file ) +{ + HKEY hkey = 0; + DWORD err = 0; + char buffer[PROFILE_MAX_LINE_LEN]; + char *p, *p2; + int line = 0; + + while (fgets( buffer, PROFILE_MAX_LINE_LEN, file )) + { + line++; + p = buffer; + while (*p && PROFILE_isspace(*p)) p++; + if (*p == '[') /* section start */ + { + if (!(p2 = strrchr( p, ']' ))) + { + WARN("Invalid section header at line %d: '%s'\n", + line, p ); + } + else + { + *p2 = '\0'; + p++; + if (hkey) RegCloseKey( hkey ); + if ((err = RegCreateKeyExA( root, p, 0, NULL, REG_OPTION_VOLATILE, + KEY_ALL_ACCESS, NULL, &hkey, NULL ))) return err; + TRACE("New section: '%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 && hkey && !IS_ENTRY_COMMENT(p)) + { + if (!p2) p2 = ""; + if ((err = RegSetValueExA( hkey, p, 0, REG_SZ, p2, strlen(p2)+1 ))) + { + RegCloseKey( hkey ); + return err; + } + TRACE("New key: name='%s', value='%s'\n",p,p2); + } + } + if (hkey) RegCloseKey( hkey ); + return 0; +} + + /*********************************************************************** * PROFILE_DeleteSection * @@ -766,26 +832,45 @@ static BOOL PROFILE_SetString( LPCSTR section_name, LPCSTR key_name, int PROFILE_GetWineIniString( const char *section, const char *key_name, const char *def, char *buffer, int len ) { - int ret; + char tmp[PROFILE_MAX_LINE_LEN]; + HKEY hkey; + DWORD err; - EnterCriticalSection( &PROFILE_CritSect ); - - if (key_name) + if (!(err = RegOpenKeyA( wine_profile_key, section, &hkey ))) { - PROFILEKEY *key = PROFILE_Find(&PROFILE_WineProfile, section, key_name, FALSE); - PROFILE_CopyEntry( buffer, (key && key->value) ? key->value : def, - len, TRUE ); - TRACE("('%s','%s','%s'): returning '%s'\n", - section, key_name, def, buffer ); - ret = strlen( buffer ); - } - else - { - ret = PROFILE_GetSection( PROFILE_WineProfile, section, buffer, len, TRUE, FALSE ); + DWORD type; + DWORD count = sizeof(tmp); + err = RegQueryValueExA( hkey, key_name, 0, &type, tmp, &count ); + RegCloseKey( hkey ); } - LeaveCriticalSection( &PROFILE_CritSect ); + PROFILE_CopyEntry( buffer, err ? def : tmp, len, TRUE ); + TRACE( "('%s','%s','%s'): returning '%s'\n", section, key_name, def, buffer ); + return strlen(buffer); +} - return ret; + +/*********************************************************************** + * PROFILE_EnumWineIniString + * + * Get a config string from the wine.ini file. + */ +BOOL PROFILE_EnumWineIniString( const char *section, int index, + char *name, int name_len, char *buffer, int len ) +{ + char tmp[PROFILE_MAX_LINE_LEN]; + HKEY hkey; + DWORD err, type; + DWORD count = sizeof(tmp); + + if (RegOpenKeyA( wine_profile_key, section, &hkey )) return FALSE; + err = RegEnumValueA( hkey, index, name, (DWORD*)&name_len, NULL, &type, tmp, &count ); + RegCloseKey( hkey ); + if (!err) + { + PROFILE_CopyEntry( buffer, tmp, len, TRUE ); + TRACE( "('%s',%d): returning '%s'='%s'\n", section, index, name, buffer ); + } + return !err; } @@ -799,87 +884,11 @@ int PROFILE_GetWineIniInt( const char *section, const char *key_name, int def ) char buffer[20]; char *p; long result; - PROFILEKEY *key; - int ret; - EnterCriticalSection( &PROFILE_CritSect ); - - key = PROFILE_Find( &PROFILE_WineProfile, section, key_name, FALSE ); - if (!key || !key->value) { - ret = def; - } else { - PROFILE_CopyEntry( buffer, key->value, sizeof(buffer), TRUE ); - result = strtol( buffer, &p, 0 ); - ret = (p == buffer) ? 0 /* No digits at all */ : (int)result; - } - - LeaveCriticalSection( &PROFILE_CritSect ); - - return ret; -} - - -/****************************************************************************** - * - * int PROFILE_EnumerateWineIniSection( - * char const *section, #Name of the section to enumerate - * void (*cbfn)(char const *key, char const *value, void *user), - * # Address of the callback function - * void *user ) # User-specified pointer. - * - * For each entry in a section in the wine.conf file, this function will - * call the specified callback function, informing it of each key and - * value. An optional user pointer may be passed to it (if this is not - * needed, pass NULL through it and ignore the value in the callback - * function). - * - * The callback function must accept three parameters: - * The name of the key (char const *) - * The value of the key (char const *) - * A user-specified parameter (void *) - * Note that the first two are char CONST *'s, not char *'s! The callback - * MUST not modify these strings! - * - * The return value indicates the number of times the callback function - * was called. - */ -int PROFILE_EnumerateWineIniSection( - char const *section, - void (*cbfn)(char const *, char const *, void *), - void *userptr ) -{ - PROFILESECTION *scansect; - PROFILEKEY *scankey; - int calls = 0; - - EnterCriticalSection( &PROFILE_CritSect ); - - /* Search for the correct section */ - for(scansect = PROFILE_WineProfile; scansect; scansect = scansect->next) { - if(scansect->name && !strcasecmp(scansect->name, section)) { - - /* Enumerate each key with the callback */ - for(scankey = scansect->key; scankey; scankey = scankey->next) { - - /* Ignore blank entries -- these shouldn't exist, but let's - be extra careful */ - if (!scankey->name[0]) continue; - if (!scankey->value) cbfn(scankey->name, NULL, userptr); - else - { - char value[1024]; - PROFILE_CopyEntry(value, scankey->value, sizeof(value), TRUE); - cbfn(scankey->name, value, userptr); - } - ++calls; - } - - break; - } - } - LeaveCriticalSection( &PROFILE_CritSect ); - - return calls; + PROFILE_GetWineIniString( section, key_name, "", buffer, sizeof(buffer) ); + if (!buffer[0]) return def; + result = strtol( buffer, &p, 0 ); + return (p == buffer) ? 0 /* No digits at all */ : (int)result; } @@ -950,24 +959,29 @@ int PROFILE_LoadWineIni(void) const char *p; FILE *f; + if (RegCreateKeyExA( HKEY_LOCAL_MACHINE, "Software\\Wine\\Wine\\Config", 0, NULL, + REG_OPTION_VOLATILE, KEY_ALL_ACCESS, NULL, &wine_profile_key, NULL )) + { + ERR("Cannot create config registry key\n" ); + return 0; + } + InitializeCriticalSection( &PROFILE_CritSect ); MakeCriticalSectionGlobal( &PROFILE_CritSect ); + if (!CLIENT_IsBootThread()) return 1; /* already loaded */ + if ( (Options.configFileName!=NULL) && (f = fopen(Options.configFileName, "r")) ) { /* Open -config specified file */ - PROFILE_WineProfile = PROFILE_Load ( f); - fclose ( f ); lstrcpynA(PROFILE_WineIniUsed,Options.configFileName,MAX_PATHNAME_LEN); - return 1; + goto found; } if ( (p = getenv( "WINE_INI" )) && (f = fopen( p, "r" )) ) { - PROFILE_WineProfile = PROFILE_Load( f ); - fclose( f ); lstrcpynA(PROFILE_WineIniUsed,p,MAX_PATHNAME_LEN); - return 1; + goto found; } if ((p = getenv( "HOME" )) != NULL) { @@ -975,10 +989,8 @@ int PROFILE_LoadWineIni(void) strcat( buffer, PROFILE_WineIniName ); if ((f = fopen( buffer, "r" )) != NULL) { - PROFILE_WineProfile = PROFILE_Load( f ); - fclose( f ); lstrcpynA(PROFILE_WineIniUsed,buffer,MAX_PATHNAME_LEN); - return 1; + goto found; } } else WARN("could not get $HOME value for config file.\n" ); @@ -987,14 +999,17 @@ int PROFILE_LoadWineIni(void) if ((f = fopen( WINE_INI_GLOBAL, "r" )) != NULL) { - PROFILE_WineProfile = PROFILE_Load( f ); - fclose( f ); lstrcpynA(PROFILE_WineIniUsed,WINE_INI_GLOBAL,MAX_PATHNAME_LEN); - return 1; + goto found; } MESSAGE( "Can't open configuration file %s or $HOME%s\n", WINE_INI_GLOBAL, PROFILE_WineIniName ); return 0; + + found: + PROFILE_RegistryLoad( wine_profile_key, f ); + fclose( f ); + return 1; } @@ -1066,7 +1081,6 @@ UINT WINAPI GetProfileIntA( LPCSTR section, LPCSTR entry, INT def_val ) */ UINT WINAPI GetProfileIntW( LPCWSTR section, LPCWSTR entry, INT def_val ) { - if (!wininiW) wininiW = HEAP_strdupAtoW( GetProcessHeap(), 0, "win.ini" ); return GetPrivateProfileIntW( section, entry, def_val, wininiW ); } @@ -1096,7 +1110,6 @@ INT WINAPI GetProfileStringA( LPCSTR section, LPCSTR entry, LPCSTR def_val, INT WINAPI GetProfileStringW( LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len ) { - if (!wininiW) wininiW = HEAP_strdupAtoW( GetProcessHeap(), 0, "win.ini" ); return GetPrivateProfileStringW( section, entry, def_val, buffer, len, wininiW ); } @@ -1125,7 +1138,6 @@ BOOL WINAPI WriteProfileStringA( LPCSTR section, LPCSTR entry, BOOL WINAPI WriteProfileStringW( LPCWSTR section, LPCWSTR entry, LPCWSTR string ) { - if (!wininiW) wininiW = HEAP_strdupAtoW( GetProcessHeap(), 0, "win.ini" ); return WritePrivateProfileStringW( section, entry, string, wininiW ); } @@ -1306,7 +1318,6 @@ INT WINAPI GetProfileSectionA( LPCSTR section, LPSTR buffer, DWORD len ) */ INT WINAPI GetProfileSectionW( LPCWSTR section, LPWSTR buffer, DWORD len ) { - if (!wininiW) wininiW = HEAP_strdupAtoW( GetProcessHeap(), 0, "win.ini" ); return GetPrivateProfileSectionW( section, buffer, len, wininiW ); } @@ -1442,8 +1453,6 @@ BOOL WINAPI WriteProfileSectionA( LPCSTR section, LPCSTR keys_n_values) */ BOOL WINAPI WriteProfileSectionW( LPCWSTR section, LPCWSTR keys_n_values) { - if (!wininiW) wininiW = HEAP_strdupAtoW( GetProcessHeap(), 0, "win.ini"); - return (WritePrivateProfileSectionW (section,keys_n_values, wininiW)); } diff --git a/graphics/psdrv/afm.c b/graphics/psdrv/afm.c index ce6ed4f74a8..dcd136b2154 100644 --- a/graphics/psdrv/afm.c +++ b/graphics/psdrv/afm.c @@ -382,31 +382,6 @@ static void PSDRV_ReencodeCharWidths(AFM *afm) return; } -/*********************************************************** - * - * PSDRV_afmfilesCallback - * - * Callback for PROFILE_EnumerateWineIniSection - * Try to parse AFM file `value', alter the CharWidths field of afm struct if - * the font is using AdobeStandardEncoding to correspond to WinANSI, then add - * afm to system font list. - */ -static void PSDRV_afmfilesCallback(char const *key, char const *value, -void *user) -{ - AFM *afm; - - afm = PSDRV_AFMParse(value); - if(afm) { - if(afm->EncodingScheme && - !strcmp(afm->EncodingScheme, "AdobeStandardEncoding")) { - PSDRV_ReencodeCharWidths(afm); - } - PSDRV_AddAFMtoList(&PSDRV_AFMFontList, afm); - } - return; -} - /*********************************************************** * @@ -437,7 +412,22 @@ static void PSDRV_DumpFontList(void) */ BOOL PSDRV_GetFontMetrics(void) { - PROFILE_EnumerateWineIniSection( "afmfiles", PSDRV_afmfilesCallback, NULL); + int idx = 0; + char key[256]; + char value[256]; + + while (PROFILE_EnumWineIniString( "afmfiles", idx++, key, sizeof(key), value, sizeof(value))) + { + AFM *afm = PSDRV_AFMParse(value); + if (afm) + { + if(afm->EncodingScheme && + !strcmp(afm->EncodingScheme, "AdobeStandardEncoding")) { + PSDRV_ReencodeCharWidths(afm); + } + PSDRV_AddAFMtoList(&PSDRV_AFMFontList, afm); + } + } PSDRV_DumpFontList(); return TRUE; } diff --git a/graphics/x11drv/xfont.c b/graphics/x11drv/xfont.c index b596a147d6c..0f2f18e932e 100644 --- a/graphics/x11drv/xfont.c +++ b/graphics/x11drv/xfont.c @@ -2120,83 +2120,6 @@ static BOOL XFONT_WriteCachedMetrics( int fd, unsigned x_checksum, int x_count, return FALSE; } -/*********************************************************************** - * XFONT_CheckIniSection - * - * INIT ONLY - * - * Examines wine.conf for old/invalid font entries and recommend changes to - * the user. - * - * Revision history - * 05-Jul-1997 Dave Cuthbert (dacut@ece.cmu.edu) - * Original implementation. - */ -static void XFONT_CheckIniCallback(char const *, char const *, void *); - -static char const *fontmsgprologue = -"Wine warning:\n" -" The following entries in the [fonts] section of the wine.conf file are\n" -" obsolete or invalid:\n"; - -static char const *fontmsgepilogue = -" These entries should be eliminated or updated.\n" -" See the documentation/fonts file for more information.\n"; - -static int XFONT_CheckIniSection(void) -{ - int found = 0; - - PROFILE_EnumerateWineIniSection("Fonts", &XFONT_CheckIniCallback, - (void *)&found); - if(found) - MESSAGE(fontmsgepilogue); - - return 1; -} - -static void XFONT_CheckIniCallback( - char const *key, - char const *value, - void *found) -{ - /* Ignore any keys that start with potential comment characters "'", '#', - or ';'. */ - if(key[0] == '\'' || key[0] == '#' || key[0] == ';' || key[0] == '\0') - return; - - /* Make sure this is a valid key */ - if((strncasecmp(key, INIAliasSection, 5) == 0) || - (strncasecmp(key, INIIgnoreSection, 6) == 0) || - (strcasecmp( key, INIDefault) == 0) || - (strcasecmp( key, INIDefaultFixed) == 0) || - (strcasecmp( key, INIGlobalMetrics) == 0) || - (strcasecmp( key, INIResolution) == 0) || - (strcasecmp( key, INIDefaultSerif) == 0) || - (strcasecmp( key, INIDefaultSansSerif) ==0) ) - { - /* Valid key; make sure the value doesn't contain a wildcard */ - if(strchr(value, '*')) { - if(*(int *)found == 0) { - MESSAGE(fontmsgprologue); - ++*(int *)found; - } - MESSAGE(" %s=%s [no wildcards allowed]\n", key, value); - } - } - else { - /* Not a valid key */ - if(*(int *)found == 0) { - MESSAGE(fontmsgprologue); - ++*(int *)found; - } - - MESSAGE(" %s=%s [obsolete]\n", key, value); - } - - return; -} - /*********************************************************************** * XFONT_GetPointResolution() * @@ -2631,8 +2554,6 @@ BOOL X11DRV_FONT_Init( DeviceCaps* pDevCaps ) int i,res, x_count, fd, buf_size; char *buffer; - XFONT_CheckIniSection(); - res = XFONT_GetPointResolution( pDevCaps ); x_pattern = TSXListFonts(display, "*", MAX_FONTS, &x_count ); diff --git a/include/console.h b/include/console.h index a3c3afd25ba..82c23e6fac5 100644 --- a/include/console.h +++ b/include/console.h @@ -58,7 +58,6 @@ typedef struct CONSOLE_DRIVER /* Other data */ int norefresh; - char *driver_list; FILE *console_out; FILE *console_in; int x_res; @@ -69,7 +68,6 @@ typedef struct CONSOLE_DRIVER extern CONSOLE_device driver; /* Global driver struct */ /* Generic defines */ -int CONSOLE_Init(char *drivers); void CONSOLE_Close(void); void CONSOLE_Write(char out, int fg_color, int bg_color, int attribute); void CONSOLE_MoveCursor(char row, char col); diff --git a/include/main.h b/include/main.h index 58db6c957d5..9265c4e1036 100644 --- a/include/main.h +++ b/include/main.h @@ -15,7 +15,6 @@ extern int MAIN_GetLanguageID(char*lang, char*country, char*charset, char*dialec extern BOOL MAIN_ParseDebugOptions(char *options); extern void MAIN_ParseLanguageOption( char *arg ); -extern void MAIN_ParseModeOption( char *arg ); extern BOOL RELAY_Init(void); extern void THUNK_InitCallout(void); diff --git a/include/options.h b/include/options.h index 072055c97e5..7a7396d001f 100644 --- a/include/options.h +++ b/include/options.h @@ -51,13 +51,6 @@ typedef struct extern const WINE_LANGUAGE_DEF Languages[]; -/* Supported modes */ -typedef enum -{ - MODE_STANDARD, - MODE_ENHANCED -} WINE_MODE; - struct options { int *argc; @@ -66,15 +59,10 @@ struct options char * programName; /* To use when loading resources */ char *dllFlags; /* -dll flags (hack for Winelib support) */ int usePrivateMap; - int useFixedMap; int synchronous; /* X synchronous mode */ - int backingstore; /* Use backing store */ - short cmdShow; int debug; int failReadOnly; /* Opening a read only file will fail if write access is requested */ - WINE_MODE mode; /* Start Wine in selected mode - (standard/enhanced) */ WINE_LANGUAGE language; /* Current language */ int managed; /* Managed windows */ int perfectGraphics; /* Favor correctness over speed for graphics */ @@ -95,14 +83,10 @@ extern int PROFILE_LoadWineIni(void); extern void PROFILE_UsageWineIni(void); extern int PROFILE_GetWineIniString( const char *section, const char *key_name, const char *def, char *buffer, int len ); -extern int PROFILE_GetWineIniInt( const char *section, const char *key_name, - int def ); -extern int PROFILE_EnumerateWineIniSection( - char const *section, - void (*callback)(char const *key, char const *name, void *user), - void *userptr ); -extern int PROFILE_GetWineIniBool( char const *section, char const *key_name, - int def ); +extern BOOL PROFILE_EnumWineIniString( const char *section, int index, + char *name, int name_len, char *buffer, int len ); +extern int PROFILE_GetWineIniInt( const char *section, const char *key_name, int def ); +extern int PROFILE_GetWineIniBool( char const *section, char const *key_name, int def ); extern char* PROFILE_GetStringItem( char* ); /* Version functions */ diff --git a/misc/main.c b/misc/main.c index 1db31c5167c..7ac24eaad40 100644 --- a/misc/main.c +++ b/misc/main.c @@ -94,13 +94,9 @@ struct options Options = NULL, /* programName */ NULL, /* dllFlags */ FALSE, /* usePrivateMap */ - FALSE, /* useFixedMap */ FALSE, /* synchronous */ - FALSE, /* backing store */ - SW_SHOWNORMAL, /* cmdShow */ FALSE, FALSE, /* failReadOnly */ - MODE_ENHANCED, /* Enhanced mode */ #ifdef DEFAULT_LANG DEFAULT_LANG, /* Default language */ #else @@ -122,9 +118,7 @@ static const char szUsage[] = "Usage: %s [options] \"program_name [arguments]\"\n" "\n" "Options:\n" - " -backingstore Turn on backing store\n" " -config name Specify config file to use\n" - " -console driver Select which driver(s) to use for the console\n" " -debug Enter debugger before starting application\n" " -debugmsg name Turn debugging-messages on or off\n" " -depth n Change the depth to use for multiple-depth screens\n" @@ -132,13 +126,10 @@ static const char szUsage[] = " -display name Use the specified display\n" " -dll name Enable or disable built-in DLLs\n" " -failreadonly Read only files may not be opened in write mode\n" - " -fixedmap Use a \"standard\" color map\n" " -help Show this help message\n" - " -iconic Start as an icon\n" " -language xx Set the language (one of Br,Ca,Cs,Cy,Da,De,En,Eo,Es,Fi,Fr,Ga,Gd,Gv\n" " Hu,It,Ko,Kw,Nl,No,Pl,Pt,Sv,Ru,Wa)\n" " -managed Allow the window manager to manage created windows\n" - " -mode mode Start Wine in a particular mode (standard or enhanced)\n" " -name name Set the application name\n" " -nodga Disable XFree86 DGA extensions\n" " -noxshm Disable XSHM extension\n" @@ -718,23 +709,6 @@ void MAIN_ParseLanguageOption( char *arg ) } -/*********************************************************************** - * MAIN_ParseModeOption - * - * Parse -mode option. - */ -void MAIN_ParseModeOption( char *arg ) -{ - if (!lstrcmpiA("enhanced", arg)) Options.mode = MODE_ENHANCED; - else if (!lstrcmpiA("standard", arg)) Options.mode = MODE_STANDARD; - else - { - MESSAGE( "Invalid mode '%s' specified.\n", arg); - MESSAGE( "Valid modes are: 'standard', 'enhanced' (default).\n"); - ExitProcess(1); - } -} - /*********************************************************************** * MAIN_ParseOptions * diff --git a/misc/version.c b/misc/version.c index 19851895a02..7a4a223239f 100644 --- a/misc/version.c +++ b/misc/version.c @@ -471,22 +471,7 @@ DWORD WINAPI GetWinFlags16(void) GetSystemInfo(&si); /* There doesn't seem to be any Pentium flag. */ - result = cpuflags[MIN (si.wProcessorLevel, 4)]; - - switch(Options.mode) - { - case MODE_STANDARD: - result |= WF_STANDARD | WF_PMODE | WF_80x87; - break; - - case MODE_ENHANCED: - result |= WF_ENHANCED | WF_PMODE | WF_80x87 | WF_PAGING; - break; - - default: - ERR("Unknown mode set? This shouldn't happen. Check GetWinFlags()!\n"); - break; - } + result = cpuflags[MIN (si.wProcessorLevel, 4)] | WF_ENHANCED | WF_PMODE | WF_80x87 | WF_PAGING; if (si.wProcessorLevel >= 4) result |= WF_HASCPUID; ovi.dwOSVersionInfoSize = sizeof(ovi); GetVersionExA(&ovi); diff --git a/windows/x11drv/main.c b/windows/x11drv/main.c index bbc752c18be..7cacbc2b797 100644 --- a/windows/x11drv/main.c +++ b/windows/x11drv/main.c @@ -20,7 +20,6 @@ #include #include "clipboard.h" -#include "console.h" #include "debugtools.h" #include "desktop.h" #include "keyboard.h" @@ -49,7 +48,6 @@ void X11DRV_USER_RestoreSetup(void); static XrmOptionDescRec optionsTable[] = { - { "-backingstore", ".backingstore", XrmoptionNoArg, (caddr_t)"on" }, { "-desktop", ".desktop", XrmoptionSepArg, (caddr_t)NULL }, { "-depth", ".depth", XrmoptionSepArg, (caddr_t)NULL }, { "-display", ".display", XrmoptionSepArg, (caddr_t)NULL }, @@ -58,20 +56,17 @@ static XrmOptionDescRec optionsTable[] = { "-name", ".name", XrmoptionSepArg, (caddr_t)NULL }, { "-perfect", ".perfect", XrmoptionNoArg, (caddr_t)"on" }, { "-privatemap", ".privatemap", XrmoptionNoArg, (caddr_t)"on" }, - { "-fixedmap", ".fixedmap", XrmoptionNoArg, (caddr_t)"on" }, { "-synchronous", ".synchronous", XrmoptionNoArg, (caddr_t)"on" }, { "-debug", ".debug", XrmoptionNoArg, (caddr_t)"on" }, { "-debugmsg", ".debugmsg", XrmoptionSepArg, (caddr_t)NULL }, { "-dll", ".dll", XrmoptionSepArg, (caddr_t)NULL }, { "-failreadonly", ".failreadonly", XrmoptionNoArg, (caddr_t)"on" }, - { "-mode", ".mode", XrmoptionSepArg, (caddr_t)NULL }, { "-managed", ".managed", XrmoptionNoArg, (caddr_t)"off"}, { "-winver", ".winver", XrmoptionSepArg, (caddr_t)NULL }, { "-config", ".config", XrmoptionSepArg, (caddr_t)NULL }, { "-nodga", ".nodga", XrmoptionNoArg, (caddr_t)"off"}, { "-noxshm", ".noxshm", XrmoptionNoArg, (caddr_t)"off"}, { "-dxgrab", ".dxgrab", XrmoptionNoArg, (caddr_t)"on" }, - { "-console", ".console", XrmoptionSepArg, (caddr_t)NULL }, { "-dosver", ".dosver", XrmoptionSepArg, (caddr_t)NULL } }; @@ -229,16 +224,10 @@ void X11DRV_USER_ParseOptions(int *argc, char *argv[]) Options.programName, argc, argv ); /* Get all options */ - if (X11DRV_USER_GetResource( db, ".iconic", &value )) - Options.cmdShow = SW_SHOWMINIMIZED; if (X11DRV_USER_GetResource( db, ".privatemap", &value )) Options.usePrivateMap = TRUE; - if (X11DRV_USER_GetResource( db, ".fixedmap", &value )) - Options.useFixedMap = TRUE; if (X11DRV_USER_GetResource( db, ".synchronous", &value )) Options.synchronous = TRUE; - if (X11DRV_USER_GetResource( db, ".backingstore", &value )) - Options.backingstore = TRUE; if (X11DRV_USER_GetResource( db, ".debug", &value )) Options.debug = TRUE; if (X11DRV_USER_GetResource( db, ".failreadonly", &value )) @@ -253,8 +242,6 @@ void X11DRV_USER_ParseOptions(int *argc, char *argv[]) MAIN_ParseLanguageOption( (char *)value.addr ); if (X11DRV_USER_GetResource( db, ".managed", &value)) Options.managed = TRUE; - if (X11DRV_USER_GetResource( db, ".mode", &value)) - MAIN_ParseModeOption( (char *)value.addr ); if (X11DRV_USER_GetResource( db, ".debugoptions", &value)) MAIN_ParseDebugOptions((char*)value.addr); if (X11DRV_USER_GetResource( db, ".debugmsg", &value)) @@ -284,10 +271,6 @@ void X11DRV_USER_ParseOptions(int *argc, char *argv[]) Options.noXSHM = TRUE; if (X11DRV_USER_GetResource( db, ".dxgrab", &value)) Options.DXGrab = TRUE; - if (X11DRV_USER_GetResource( db, ".console", &value)) - driver.driver_list = xstrdup((char *)value.addr); - else - driver.driver_list = CONSOLE_DEFAULT_DRIVER; } /*********************************************************************** diff --git a/windows/x11drv/wnd.c b/windows/x11drv/wnd.c index 14ca4125ba9..c37d3d856cb 100644 --- a/windows/x11drv/wnd.c +++ b/windows/x11drv/wnd.c @@ -216,7 +216,7 @@ BOOL X11DRV_WND_CreateWindow(WND *wndPtr, CLASS *classPtr, CREATESTRUCTA *cs, BO win_attr.bit_gravity = (classPtr->style & (CS_VREDRAW | CS_HREDRAW)) ? BGForget : BGNorthWest; win_attr.colormap = X11DRV_PALETTE_PaletteXColormap; - win_attr.backing_store = Options.backingstore ? WhenMapped : NotUseful; + win_attr.backing_store = NotUseful; win_attr.save_under = ((classPtr->style & CS_SAVEBITS) != 0); win_attr.cursor = X11DRV_MOUSE_XCursor;