winecfg: Add /v parameter to display current Windows version.
This patch allows winecfg to be called with the "/v" parameter to display the current Windows version. "/v winver" will continue to allow the Windows version to be updated. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49242 Signed-off-by: Owen Rudge <orudge@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
1eed470674
commit
87f41e6b40
|
@ -28,6 +28,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include "wine/heap.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "winecfg.h"
|
#include "winecfg.h"
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
@ -74,6 +75,8 @@ static const struct win_version win_versions[] =
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define DEFAULT_WIN_VERSION "win7"
|
||||||
|
|
||||||
static const char szKey9x[] = "Software\\Microsoft\\Windows\\CurrentVersion";
|
static const char szKey9x[] = "Software\\Microsoft\\Windows\\CurrentVersion";
|
||||||
static const char szKeyNT[] = "Software\\Microsoft\\Windows NT\\CurrentVersion";
|
static const char szKeyNT[] = "Software\\Microsoft\\Windows NT\\CurrentVersion";
|
||||||
static const char szKeyProdNT[] = "System\\CurrentControlSet\\Control\\ProductOptions";
|
static const char szKeyProdNT[] = "System\\CurrentControlSet\\Control\\ProductOptions";
|
||||||
|
@ -146,7 +149,7 @@ static void update_comboboxes(HWND dialog)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (ver != -1) winver = strdupA( win_versions[ver].szVersion );
|
if (ver != -1) winver = strdupA( win_versions[ver].szVersion );
|
||||||
else winver = strdupA("win7");
|
else winver = strdupA(DEFAULT_WIN_VERSION);
|
||||||
}
|
}
|
||||||
WINE_TRACE("winver is %s\n", winver);
|
WINE_TRACE("winver is %s\n", winver);
|
||||||
|
|
||||||
|
@ -498,6 +501,25 @@ void print_windows_versions(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void print_current_winver(void)
|
||||||
|
{
|
||||||
|
char *winver = get_reg_key(config_key, keypath(""), "Version", "");
|
||||||
|
|
||||||
|
if (!winver || !winver[0])
|
||||||
|
{
|
||||||
|
int ver = get_registry_version();
|
||||||
|
|
||||||
|
if (ver == -1)
|
||||||
|
printf(DEFAULT_WIN_VERSION "\n");
|
||||||
|
else
|
||||||
|
printf("%s\n", win_versions[ver].szVersion);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf("%s\n", winver);
|
||||||
|
|
||||||
|
heap_free(winver);
|
||||||
|
}
|
||||||
|
|
||||||
static void on_winver_change(HWND dialog)
|
static void on_winver_change(HWND dialog)
|
||||||
{
|
{
|
||||||
int selection = SendDlgItemMessageW(dialog, IDC_WINVER, CB_GETCURSEL, 0, 0);
|
int selection = SendDlgItemMessageW(dialog, IDC_WINVER, CB_GETCURSEL, 0, 0);
|
||||||
|
|
|
@ -187,9 +187,13 @@ ProcessCmdLine(LPSTR lpCmdLine)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if ((lpCmdLine[1] == 'V' || lpCmdLine[1] == 'v') && (lstrlenA(lpCmdLine) > 4))
|
if (lpCmdLine[1] == 'V' || lpCmdLine[1] == 'v')
|
||||||
{
|
{
|
||||||
return set_winver_from_string(&lpCmdLine[3]) ? 0 : 1;
|
if (lstrlenA(lpCmdLine) > 4)
|
||||||
|
return set_winver_from_string(&lpCmdLine[3]) ? 0 : 1;
|
||||||
|
|
||||||
|
print_current_winver();
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lpCmdLine[1] == '?')
|
if (lpCmdLine[1] == '?')
|
||||||
|
@ -197,6 +201,7 @@ ProcessCmdLine(LPSTR lpCmdLine)
|
||||||
printf("Usage: winecfg [options]\n\n");
|
printf("Usage: winecfg [options]\n\n");
|
||||||
printf("Options:\n");
|
printf("Options:\n");
|
||||||
printf(" [no option] Launch the graphical version of this program.\n");
|
printf(" [no option] Launch the graphical version of this program.\n");
|
||||||
|
printf(" /v Display the current global Windows version.\n");
|
||||||
printf(" /v version Set global Windows version to 'version'.\n");
|
printf(" /v version Set global Windows version to 'version'.\n");
|
||||||
printf(" /? Display this information and exit.\n\n");
|
printf(" /? Display this information and exit.\n\n");
|
||||||
printf("Valid versions for 'version':\n\n");
|
printf("Valid versions for 'version':\n\n");
|
||||||
|
|
|
@ -91,6 +91,7 @@ INT_PTR CALLBACK AboutDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPara
|
||||||
|
|
||||||
/* Windows version management */
|
/* Windows version management */
|
||||||
BOOL set_winver_from_string(const char *version);
|
BOOL set_winver_from_string(const char *version);
|
||||||
|
void print_current_winver(void);
|
||||||
void print_windows_versions(void);
|
void print_windows_versions(void);
|
||||||
|
|
||||||
/* Drive management */
|
/* Drive management */
|
||||||
|
|
Loading…
Reference in New Issue