diff --git a/projects/generate b/projects/generate index 2078809c88..d1316a2327 100755 --- a/projects/generate +++ b/projects/generate @@ -263,19 +263,22 @@ generate() { echo "Generating $2..." # Everything above the !!FILTERS!! marker cat "$ROOT_DIR/projects/$2".in | ${AWK} -v BINMODE=1 -v FILTERS="$3" -v FILES="$1" ' - { CR = (match($0, "\\r$") > 0 ? "\r" : "") } /^$/ { next } /!!FILTERS!!/ { split(FILTERS, filters, "\n"); for (i = 1; filters[i] != ""; i++) { - print filters[i] CR; + line = $0 + gsub(/!!FILTERS!!/, filters[i], line); + print line; } next; } /!!FILES!!/ { split(FILES, files, "\n"); for (i = 1; files[i] != ""; i++) { - print files[i] CR; + line = $0 + gsub(/!!FILES!!/, files[i], line); + print line; } next; } diff --git a/projects/generate.vbs b/projects/generate.vbs index 169f8b6890..daeb32b03e 100644 --- a/projects/generate.vbs +++ b/projects/generate.vbs @@ -321,21 +321,26 @@ Sub load_baseset_data(dir, langdir, ByRef vcxproj, ByRef files, ByRef langs) End Sub Sub generate(data, dest, data2) - Dim srcfile, destfile, line + Dim srcfile, destfile, line, regexp WScript.Echo "Generating " & FSO.GetFileName(dest) & "..." Set srcfile = FSO.OpenTextFile(dest & ".in", 1, 0, 0) Set destfile = FSO.CreateTextFile(dest, -1, 0) If Not IsNull(data2) Then ' Everything above the !!FILTERS!! marker + Set regexp = New RegExp + regexp.Pattern = "!!FILTERS!!" + regexp.Global = True + line = srcfile.ReadLine() - While line <> "!!FILTERS!!" + While Not regexp.Test(line) If len(line) > 0 Then destfile.WriteLine(line) line = srcfile.ReadLine() Wend ' Our generated content - destfile.WriteLine(data2) + line = regexp.Replace(line, data2) + destfile.WriteLine(line) End If ' Everything above the !!FILES!! marker diff --git a/projects/settings_vs140.vcxproj b/projects/settings_vs140.vcxproj index 9952df47bb..b5f5151821 100644 --- a/projects/settings_vs140.vcxproj +++ b/projects/settings_vs140.vcxproj @@ -23,9 +23,7 @@ - -..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini - + ..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini ..\objs\settings\table\ diff --git a/projects/settings_vs140.vcxproj.in b/projects/settings_vs140.vcxproj.in index 9bb0cc7f0b..dcbbfbd352 100644 --- a/projects/settings_vs140.vcxproj.in +++ b/projects/settings_vs140.vcxproj.in @@ -23,9 +23,7 @@ - -!!FILTERS!! - + !!FILTERS!! ..\objs\settings\table\ diff --git a/projects/settings_vs141.vcxproj b/projects/settings_vs141.vcxproj index 9c20f1407e..b3f6871945 100644 --- a/projects/settings_vs141.vcxproj +++ b/projects/settings_vs141.vcxproj @@ -23,9 +23,7 @@ - -..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini - + ..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini ..\objs\settings\table\ diff --git a/projects/settings_vs141.vcxproj.in b/projects/settings_vs141.vcxproj.in index 23e044cc17..1701c99f5f 100644 --- a/projects/settings_vs141.vcxproj.in +++ b/projects/settings_vs141.vcxproj.in @@ -23,9 +23,7 @@ - -!!FILTERS!! - + !!FILTERS!! ..\objs\settings\table\ diff --git a/projects/settings_vs142.vcxproj b/projects/settings_vs142.vcxproj index a2dda134b5..e0ed933091 100644 --- a/projects/settings_vs142.vcxproj +++ b/projects/settings_vs142.vcxproj @@ -23,9 +23,7 @@ - -..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini - + ..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini ..\objs\settings\table\ diff --git a/projects/settings_vs142.vcxproj.in b/projects/settings_vs142.vcxproj.in index 3e49b7ca02..4463c573d7 100644 --- a/projects/settings_vs142.vcxproj.in +++ b/projects/settings_vs142.vcxproj.in @@ -23,9 +23,7 @@ - -!!FILTERS!! - + !!FILTERS!! ..\objs\settings\table\