Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

steam_helper: separate parameters from command when using ShellExecuteW #6555

Conversation

Jan200101
Copy link
Contributor

@Jan200101 Jan200101 commented Feb 21, 2023

ShellExecuteW ignores any extra information passed as part of lpFile
resulting in arguments being ignored.

@Jan200101 Jan200101 force-pushed the steam-helper-shellexecute-param branch from 3583441 to d99d882 Compare February 21, 2023 23:41
GloriousEggroll added a commit to GloriousEggroll/proton-ge-custom that referenced this pull request Jun 5, 2023
GloriousEggroll added a commit to GloriousEggroll/proton-ge-custom that referenced this pull request Aug 19, 2023
…ments, notably in Northstar (PR ValveSoftware#6555)"

This reverts commit 44549b7.

This breaks Escape from Monkey Island and Memento Mori
@GloriousEggroll
Copy link
Contributor

been testing this for a while, unfortunately it breaks a few games:

Guilty Gear Xrd
Escape from Monkey Island
Memento Mori

@Jan200101 Jan200101 changed the base branch from proton_7.0 to proton_8.0 August 20, 2023 00:25
@Jan200101 Jan200101 force-pushed the steam-helper-shellexecute-param branch from d99d882 to 3ea790b Compare August 20, 2023 00:26
ShellExecuteW ignores any extra information passed as part of lpFile
resulting in arguments being ignored.
@Jan200101
Copy link
Contributor Author

rebased onto 8.0 and fixed the issue mentioned by GloriousEggroll tested using Guilty Gear Xrd REV 2 and Ultrakill to ensure nothing else broke.

To go into more issue what caused this issue:
GGXrd uses a bat to launch which is started using an absolute path by Steam
steam_helper converts that absolute unix path into an absolute dos path and quotes it
the logic within get_end_of_excutable_name respects this and stops iterating the cmdline once it finds the end of quote
This leaves our pointer dangling at the end quote instead of after the program

I updated the get_end_of_excutable_name function to go to the full end, quotes included, and checking for a quote within should_use_shell_execute.

@Jan200101 Jan200101 force-pushed the steam-helper-shellexecute-param branch from 3ea790b to 00325dc Compare August 20, 2023 02:31
GloriousEggroll added a commit to GloriousEggroll/proton-ge-custom that referenced this pull request Aug 20, 2023
…ne arguements, notably in Northstar (PR ValveSoftware#6555)""

This reverts commit c09caf5.

Restoring the patch because it has been updated with a fix for the previous problem.
@GloriousEggroll
Copy link
Contributor

Confirming everything working as expected now, thanks @Jan200101

@ishitatsuyuki
Copy link

@ivyl This seems ready for review, and according to the user is necessary for a Titanfall 2 mod (Northstar) to work. Would you mind taking a look?

Plagman pushed a commit that referenced this pull request Nov 20, 2023
ShellExecuteW ignores any extra information passed as part of lpFile
resulting in arguments being ignored.

Link: #6555
@ivyl
Copy link
Collaborator

ivyl commented Nov 20, 2023

6b9be33 merged, thanks!

@ivyl ivyl closed this Nov 20, 2023
Plagman pushed a commit that referenced this pull request Dec 8, 2023
ShellExecuteW ignores any extra information passed as part of lpFile
resulting in arguments being ignored.

Link: #6555
Plagman pushed a commit that referenced this pull request Dec 13, 2023
ShellExecuteW ignores any extra information passed as part of lpFile
resulting in arguments being ignored.

Link: #6555
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants