2013-11-22 09:43:44 -08:00
|
|
|
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c
|
|
|
|
index 8bd4eb7..4b4c318 100644
|
|
|
|
--- a/dlls/ntdll/misc.c
|
|
|
|
+++ b/dlls/ntdll/misc.c
|
|
|
|
@@ -60,6 +60,14 @@ const char * CDECL NTDLL_wine_get_version(void)
|
|
|
|
}
|
|
|
|
|
|
|
|
/*********************************************************************
|
|
|
|
+ * wine_get_patches (NTDLL.@)
|
|
|
|
+ */
|
|
|
|
+const void * CDECL NTDLL_wine_get_patches(void)
|
|
|
|
+{
|
|
|
|
+ return wine_get_patches();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/*********************************************************************
|
|
|
|
* wine_get_build_id (NTDLL.@)
|
|
|
|
*/
|
|
|
|
const char * CDECL NTDLL_wine_get_build_id(void)
|
|
|
|
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
|
|
|
|
index 70bf94f..42eddcf 100644
|
|
|
|
--- a/dlls/ntdll/ntdll.spec
|
|
|
|
+++ b/dlls/ntdll/ntdll.spec
|
|
|
|
@@ -1410,6 +1410,7 @@
|
|
|
|
|
|
|
|
# Version
|
|
|
|
@ cdecl wine_get_version() NTDLL_wine_get_version
|
|
|
|
+@ cdecl wine_get_patches() NTDLL_wine_get_patches
|
|
|
|
@ cdecl wine_get_build_id() NTDLL_wine_get_build_id
|
|
|
|
@ cdecl wine_get_host_version(ptr ptr) NTDLL_wine_get_host_version
|
|
|
|
|
2013-11-21 18:48:41 -08:00
|
|
|
diff --git a/libs/wine/config.c b/libs/wine/config.c
|
2013-11-22 09:43:44 -08:00
|
|
|
index a273502..5fa0cd5 100644
|
2013-11-21 18:48:41 -08:00
|
|
|
--- a/libs/wine/config.c
|
|
|
|
+++ b/libs/wine/config.c
|
|
|
|
@@ -478,6 +478,##PATCH_LINES## @@ const char *wine_get_version(void)
|
|
|
|
return PACKAGE_VERSION;
|
|
|
|
}
|
|
|
|
|
|
|
|
+struct wine_patch {
|
|
|
|
+ const char *hash;
|
|
|
|
+ const char *author;
|
|
|
|
+ const char *title;
|
|
|
|
+} wine_patch_data[] = {
|
|
|
|
##PATCH_DATA##
|
|
|
|
+ { NULL, NULL, NULL }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/* return the applied non-standard patches */
|
2013-11-22 20:21:44 -08:00
|
|
|
+const void * wine_get_patches(void)
|
2013-11-21 18:48:41 -08:00
|
|
|
+{
|
|
|
|
+ return &wine_patch_data[0];
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
/* return the build id string */
|
|
|
|
const char *wine_get_build_id(void)
|
|
|
|
{
|
|
|
|
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
|
|
|
|
index ed315bd..5b42029 100644
|
|
|
|
--- a/libs/wine/wine.def
|
|
|
|
+++ b/libs/wine/wine.def
|
|
|
|
@@ -83,6 +83,7 @@ EXPORTS
|
|
|
|
wine_get_sortkey
|
|
|
|
wine_get_user_name
|
|
|
|
wine_get_version
|
|
|
|
+ wine_get_patches
|
|
|
|
wine_init
|
|
|
|
wine_init_argv0_path
|
|
|
|
wine_is_dbcs_leadbyte
|
|
|
|
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
|
|
|
|
index 2159fac..7cb2918 100644
|
|
|
|
--- a/libs/wine/wine.map
|
|
|
|
+++ b/libs/wine/wine.map
|
|
|
|
@@ -90,6 +90,7 @@ WINE_1.0
|
|
|
|
wine_get_ss;
|
|
|
|
wine_get_user_name;
|
|
|
|
wine_get_version;
|
|
|
|
+ wine_get_patches;
|
|
|
|
wine_init;
|
|
|
|
wine_init_argv0_path;
|
|
|
|
wine_is_dbcs_leadbyte;
|
|
|
|
diff --git a/loader/main.c b/loader/main.c
|
|
|
|
index ac67290..516fd82 100644
|
|
|
|
--- a/loader/main.c
|
|
|
|
+++ b/loader/main.c
|
2013-11-22 20:21:44 -08:00
|
|
|
@@ -79,6 +79,12 @@ static inline void reserve_area( void *addr, size_t size )
|
2013-11-21 18:48:41 -08:00
|
|
|
|
|
|
|
#endif /* __APPLE__ */
|
|
|
|
|
|
|
|
+struct wine_patch {
|
|
|
|
+ const char *hash;
|
|
|
|
+ const char *author;
|
|
|
|
+ const char *title;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
/***********************************************************************
|
|
|
|
* check_command_line
|
|
|
|
*
|
|
|
|
@@ -89,7 +96,8 @@ static void check_command_line( int argc, char *argv[] )
|
|
|
|
static const char usage[] =
|
|
|
|
"Usage: wine PROGRAM [ARGUMENTS...] Run the specified program\n"
|
|
|
|
" wine --help Display this help and exit\n"
|
|
|
|
- " wine --version Output version information and exit";
|
|
|
|
+ " wine --version Output version information and exit\n"
|
|
|
|
+ " wine --patches Output patch information and exit";
|
|
|
|
|
|
|
|
if (argc <= 1)
|
|
|
|
{
|
|
|
|
@@ -106,6 +114,16 @@ static void check_command_line( int argc, char *argv[] )
|
|
|
|
printf( "%s\n", wine_get_build_id() );
|
|
|
|
exit(0);
|
|
|
|
}
|
|
|
|
+ if (!strcmp( argv[1], "--patches" ))
|
|
|
|
+ {
|
2013-11-22 20:21:44 -08:00
|
|
|
+ const struct wine_patch *wine_patch_data = wine_get_patches();
|
2013-11-21 18:48:41 -08:00
|
|
|
+ for(; wine_patch_data->hash != NULL; wine_patch_data++)
|
|
|
|
+ {
|
|
|
|
+ printf( "%s :: %s :: %s\n", wine_patch_data->hash, wine_patch_data->author,
|
|
|
|
+ wine_patch_data->title );
|
|
|
|
+ }
|
|
|
|
+ exit(0);
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2013-11-22 20:21:44 -08:00
|
|
|
diff --git a/include/wine/library.h b/include/wine/library.h
|
|
|
|
index 242bb69..aa9e585 100644
|
|
|
|
--- a/include/wine/library.h
|
|
|
|
+++ b/include/wine/library.h
|
|
|
|
@@ -43,6 +43,7 @@ extern const char *wine_get_data_dir(void);
|
|
|
|
extern const char *wine_get_server_dir(void);
|
|
|
|
extern const char *wine_get_user_name(void);
|
|
|
|
extern const char *wine_get_version(void);
|
|
|
|
+extern const void *wine_get_patches(void);
|
|
|
|
extern const char *wine_get_build_id(void);
|
|
|
|
extern void wine_init_argv0_path( const char *argv0 );
|
|
|
|
extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var );
|