summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Preprocessor.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2016-12-14 12:59:21 -0800
committerJose <jose@zeroc.com>2016-12-14 12:59:21 -0800
commitb650952f6306594c4cd28e5f2ee76b9907e5024e (patch)
treeeab1852e9a9ffb4cfff2ea40ca0158e9c7f3dd7d /cpp/src/Slice/Preprocessor.cpp
parentFix for JS workers tests (diff)
parentFix for dependency parsing (diff)
downloadice-b650952f6306594c4cd28e5f2ee76b9907e5024e.tar.bz2
ice-b650952f6306594c4cd28e5f2ee76b9907e5024e.tar.xz
ice-b650952f6306594c4cd28e5f2ee76b9907e5024e.zip
Merge remote-tracking branch 'origin/3.6'
Diffstat (limited to 'cpp/src/Slice/Preprocessor.cpp')
-rw-r--r--cpp/src/Slice/Preprocessor.cpp32
1 files changed, 30 insertions, 2 deletions
diff --git a/cpp/src/Slice/Preprocessor.cpp b/cpp/src/Slice/Preprocessor.cpp
index 912d024ab2e..2e0192edab9 100644
--- a/cpp/src/Slice/Preprocessor.cpp
+++ b/cpp/src/Slice/Preprocessor.cpp
@@ -382,12 +382,40 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
// First remove the backslash used to escape new lines.
//
string::size_type pos;
- while((pos = unprocessed.find("\\\n")) != string::npos)
+ while((pos = unprocessed.find(" \\\n")) != string::npos)
{
- unprocessed.replace(pos, 2, "\n");
+ unprocessed.replace(pos, 3, "\n");
}
//
+ // Split filenames in separate lines:
+ //
+ // /foo/A.ice /foo/B.ice becomes
+ // /foo/A.ice
+ // /foo/B.ice
+ //
+ // C:\foo\A.ice C:\foo\B.ice becomes
+ // C:\foo\A.ice
+ // C:\foo\B.ice
+ //
+ pos = 0;
+#ifdef _WIN32
+ while((pos = unprocessed.find(".ice ", pos)) != string::npos)
+ {
+ if(unprocessed.find(":", pos) == pos + 6)
+ {
+ unprocessed.replace(pos, 5, ".ice\n");
+ pos += 5;
+ }
+ }
+#else
+ while((pos = unprocessed.find(".ice /", pos)) != string::npos)
+ {
+ unprocessed.replace(pos, 5, ".ice\n");
+ }
+#endif
+
+ //
// Get the main output file name.
//
#ifdef _MSC_VER