diff options
author | Jason Perkins <starkos@industriousone.com> | 2012-10-19 01:48:43 +0400 |
---|---|---|
committer | Jason Perkins <starkos@industriousone.com> | 2012-10-19 01:48:43 +0400 |
commit | fda91cd22ecd00faf4ca956d683dda76b800ca5f (patch) | |
tree | 8df1905ed21feb2349eb46429698f6a29a43478e | |
parent | c852bb78f7740492486639e6f9cd57302b5336cf (diff) |
Patch 3462994: Make flag values case-insensitive
-rw-r--r-- | CHANGES.txt | 1 | ||||
-rw-r--r-- | src/base/api.lua | 20 | ||||
-rw-r--r-- | tests/base/test_api.lua | 18 |
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 |