Mod dependency lists: Should have platform-independent line breaking
authorBernardo Sulzbach <mafagafogigante@gmail.com>
Mon, 12 Dec 2016 02:39:09 +0000 (00:39 -0200)
committerparamat <mat.gregory@virginmedia.com>
Mon, 12 Dec 2016 07:22:47 +0000 (07:22 +0000)
This fixes a bug existing in modmgr.lua as reported by @Wuzzy2 which
caused the mod dependency list to glitch if input was using a line
terminator different than the OS default.

The C++ code does not need any changes as it already trims CR
occurrences on platforms on which the line termination sequence is LF.

Taken into account the size of the depends.txt files used, this should
not introduce a noticeable performance regression.

Fixes #4720

builtin/mainmenu/modmgr.lua

index bf87b1dfa1749621a482b42e27c68a2731662916..2b7b371bf09f87c528fc6305b467aa29ea979f24 100644 (file)
@@ -296,6 +296,7 @@ function modmgr.get_dependencies(modfolder)
                if dependencyfile then
                        local dependency = dependencyfile:read("*l")
                        while dependency do
+                               dependency = dependency:gsub("\r", "")
                                if string.sub(dependency, -1, -1) == "?" then
                                        table.insert(soft_dependencies, string.sub(dependency, 1, -2))
                                else