aboutsummaryrefslogtreecommitdiff
path: root/build2/cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2016-08-08 14:55:26 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2016-08-10 15:02:45 +0300
commita1b2319ff2ddc8a6f139ee364cabe236ca62e23e (patch)
tree401acff7ca7f009455aa355f5e1e008f0b50810c /build2/cxx
parent5352f2fb6b911c804e70ea98c1bb335c54fea6b5 (diff)
Add ignore case support for find_option()
Diffstat (limited to 'build2/cxx')
-rw-r--r--build2/cxx/compile.cxx5
-rw-r--r--build2/cxx/link.cxx9
-rw-r--r--build2/cxx/msvc.cxx6
3 files changed, 7 insertions, 13 deletions
diff --git a/build2/cxx/compile.cxx b/build2/cxx/compile.cxx
index 2f1eb8d..56c518b 100644
--- a/build2/cxx/compile.cxx
+++ b/build2/cxx/compile.cxx
@@ -586,12 +586,9 @@ namespace build2
{
// See if this one is part of the Windows drive letter.
//
- auto isalpha = [](char c) {
- return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z');};
-
if (p > 1 && p + 1 < n && // 2 chars before, 1 after.
l[p - 2] == ' ' &&
- isalpha (l[p - 1]) &&
+ alpha (l[p - 1]) &&
path::traits::is_separator (l[p + 1]))
p = l.rfind (':', p - 2);
}
diff --git a/build2/cxx/link.cxx b/build2/cxx/link.cxx
index 4ac5c43..d19d6b1 100644
--- a/build2/cxx/link.cxx
+++ b/build2/cxx/link.cxx
@@ -466,15 +466,10 @@ namespace build2
auto upcase_sanitize = [] (char c) -> char
{
- if (c >= 'a' && c <='z')
- {
- const unsigned char shift ('a' - 'A');
- return c - shift;
- }
- else if (c == '-' || c == '+' || c == '.')
+ if (c == '-' || c == '+' || c == '.')
return '_';
else
- return c;
+ return ucase (c);
};
transform (t.name.begin (),
diff --git a/build2/cxx/msvc.cxx b/build2/cxx/msvc.cxx
index dcf7fee..9798046 100644
--- a/build2/cxx/msvc.cxx
+++ b/build2/cxx/msvc.cxx
@@ -174,10 +174,12 @@ namespace build2
if (p != string::npos && s[p + 1] == ' ')
{
- if (s.compare (n + 1, 3, "obj") == 0) // @@ CASE
+ const char* e (s.c_str () + n + 1);
+
+ if (casecmp (e, "obj", 3) == 0)
obj = true;
- if (s.compare (n + 1, 3, "dll") == 0) // @@ CASE
+ if (casecmp (e, "dll", 3) == 0)
dll = true;
}
}