mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-06 19:40:10 +02:00
Support Wine 6.23's fixed winedbg arg handling
I was about to rebase the patch I've been resubmitting to Wine that fixed this when I noticed that https://github.com/wine-mirror/wine/commit/94ca4be2a62cdb05adaee524084875b04b283afb now does the same thing.
This commit is contained in:
@@ -8,6 +8,11 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Changed
|
||||
|
||||
- Added support for Wine 6.23's new fixed winedbg command line argument
|
||||
handling.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed sluggish UIs in _Output's Thermal_ and likely a handful of other
|
||||
|
||||
@@ -139,6 +139,10 @@ if wine_version.returncode() == 0
|
||||
message('- Using the cdecl calling convention')
|
||||
compiler_options += '-DWINE_USE_CDECL'
|
||||
endif
|
||||
if wine_version.stdout().version_compare('<6.23') and with_winedbg
|
||||
message('- Using legacy winedbg argument quoting')
|
||||
compiler_options += '-DWINEDBG_LEGACY_ARGUMENT_QUOTING'
|
||||
endif
|
||||
else
|
||||
warning('Unable to determine the current Wine version')
|
||||
endif
|
||||
|
||||
@@ -67,10 +67,10 @@ IndividualHost::IndividualHost(boost::asio::io_context& io_context,
|
||||
host(
|
||||
launch_host(host_path,
|
||||
plugin_type_to_string(host_request.plugin_type),
|
||||
#ifdef WITH_WINEDBG
|
||||
// Winedbg flattens all command line arguments to a single
|
||||
// space separate Win32 command line, so we need to do our
|
||||
// own quoting.
|
||||
#if defined(WITH_WINEDBG) && defined(WINEDBG_LEGACY_ARGUMENT_QUOTING)
|
||||
// Old versions of winedbg flattened all command line
|
||||
// arguments to a single space separated Win32 command
|
||||
// line, so we had to do our own quoting
|
||||
"\"" + plugin_info.windows_plugin_path + "\"",
|
||||
#else
|
||||
host_request.plugin_path,
|
||||
|
||||
@@ -77,14 +77,19 @@ class HostProcess {
|
||||
// window managers require some slight modifications to spawn a
|
||||
// detached terminal emulator. Alternatively, you can spawn
|
||||
// `/usr/bin/winedbg` with the `--no-start` option to launch a gdb
|
||||
// server and then connect to it from another terminal. Note the
|
||||
// double quoting here, winedbg doesn't respect `argv` and instead
|
||||
// expects a standard Win32 command line.
|
||||
// server and then connect to it from another terminal.
|
||||
"/usr/bin/kstart5", "konsole", "--", "-e", "winedbg", "--gdb",
|
||||
#ifdef WINEDBG_LEGACY_ARGUMENT_QUOTING
|
||||
// Note the double quoting here. Old versions of winedbg didn't
|
||||
// respect `argv` and instead expected a pre-quoted Win32 command
|
||||
// line as its arguments.
|
||||
"\"" + host_path.string() + ".so\"",
|
||||
#else
|
||||
host_path.string() + ".so",
|
||||
#endif // WINEDBG_LEGACY_ARGUMENT_QUOTING
|
||||
#else
|
||||
host_path,
|
||||
#endif
|
||||
#endif // WITH_WINEDBG
|
||||
boost::process::std_out = stdout_pipe,
|
||||
boost::process::std_err = stderr_pipe,
|
||||
// NOTE: If the Wine process outlives the host, then it may cause
|
||||
|
||||
Reference in New Issue
Block a user