Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/premake-4.x-stable.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.txt1
-rw-r--r--src/base/api.lua20
-rw-r--r--tests/base/test_api.lua18
3 files changed, 30 insertions, 9 deletions
diff --git a/CHANGES.txt b/CHANGES.txt
index c46ddab..9f25f7b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -62,6 +62,7 @@
* Patch 3367642: Add support for targetextension property to Xcode
* Patch 3435716: Fix for PS3 config generation in VS2010 (Jake)
* Patch 3441850: Use debug.traceback() as error handler (Konstantin Tokarev)
+* Patch 3462994: Make flag values case-insensitive
-------
diff --git a/src/base/api.lua b/src/base/api.lua
index b47d107..f28a83b 100644
--- a/src/base/api.lua
+++ b/src/base/api.lua
@@ -129,17 +129,19 @@
local englishToAmericanSpelling =
{
- Optimise = 'Optimize',
- OptimiseSize = 'OptimizeSize',
- OptimiseSpeed = 'OptimizeSpeed'
+ optimise = 'optimize',
+ optimisesize = 'optimizesize',
+ optimisespeed = 'optimizespeed',
}
-
- if englishToAmericanSpelling[value] then value = englishToAmericanSpelling[value] end
-
- if allowed_flags[value] then return value
- else
- return nil, "invalid flag"
+
+ local lowervalue = value:lower()
+ lowervalue = englishToAmericanSpelling[lowervalue] or lowervalue
+ for v, _ in pairs(allowed_flags) do
+ if v:lower() == lowervalue then
+ return v
+ end
end
+ return nil, "invalid flag"
end,
},
diff --git a/tests/base/test_api.lua b/tests/base/test_api.lua
index 7727d4b..3c8ac27 100644
--- a/tests/base/test_api.lua
+++ b/tests/base/test_api.lua
@@ -384,3 +384,21 @@
uuid "7CBB5FC2-7449-497f-947F-129C5129B1FB"
test.isequal(premake.CurrentContainer.uuid, "7CBB5FC2-7449-497F-947F-129C5129B1FB")
end
+
+
+--
+-- Fields with allowed value lists should be case-insensitive.
+--
+
+ function suite.flags_onCaseMismatch()
+ premake.CurrentConfiguration = {}
+ flags "symbols"
+ test.isequal(premake.CurrentConfiguration.flags[1], "Symbols")
+ end
+
+ function suite.flags_onCaseMismatchAndAlias()
+ premake.CurrentConfiguration = {}
+ flags "optimisespeed"
+ test.isequal(premake.CurrentConfiguration.flags[1], "OptimizeSpeed")
+ end
+ \ No newline at end of file