lutris/lutris — pull request #81 by Ryochan7 (2014-08-11 14:55:40+00:00)
Title: Fixed cascading system level config, fix regedit runs for wine and winesteam runners, along with other fixes

I have been messing around with the Lutris source code some more and I made a few changes that I found necessary for some runners. The fixes branch includes the steam runner recursion fix that I had already made a pull request for. One big fix is that Runner::system_config did not properly override the system level configuration at the runner level. This is due to taking the values from the system dict from the runner config and trying to merge it with the system level config (base_system_config) without specifying the system key. Instead of overriding the changes, the values will be placed at the root level so those changes would not be used when a game is launched.

Besides fixing the cascading config system, this change was necessary in order for winesteam to be seen as being installed. I originally started working on this when I wanted to launch The Elder Scrolls III: Morrowind from Lutris. I added Morrowind to my Lutris library so I used the installer from the Lutris website. I should mention that I noticed related issues with the Linux runner when testing OpenArena as well.

One other change that I made was with wineexec. Checks are now made to ensure that a working_dir is specified before using subprocess.Popen. This is necessary since Popen will error out if the passed cwd is an empty string. This issue affected the regedit calls. Wine config changes would not take effect since each regedit call would result in an error and not get run.

I will keep messing with the source code and file new fixes here.