diff options
author | Nico Weber <nicolasweber@gmx.de> | 2014-05-01 03:46:12 (GMT) |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2014-05-01 03:46:12 (GMT) |
commit | c2b7e472ee5db11a65d113a2d7e11668b9e4608f (patch) | |
tree | a2d62cf1a328ad9beb4d2ead48cb90d83014d627 /src/depfile_parser.cc | |
parent | 6c9a54649d4eec45f58e117612a34a2c214a0214 (diff) | |
download | Ninja-c2b7e472ee5db11a65d113a2d7e11668b9e4608f.zip Ninja-c2b7e472ee5db11a65d113a2d7e11668b9e4608f.tar.gz Ninja-c2b7e472ee5db11a65d113a2d7e11668b9e4608f.tar.bz2 |
Accept \r\n line endings in depfiles.
Fixes #752.
Diffstat (limited to 'src/depfile_parser.cc')
-rw-r--r-- | src/depfile_parser.cc | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/depfile_parser.cc b/src/depfile_parser.cc index 49c7d7b..d052a4b 100644 --- a/src/depfile_parser.cc +++ b/src/depfile_parser.cc @@ -124,17 +124,18 @@ bool DepfileParser::Parse(string* content, string* err) { } } ++in; - if ((yych = *in) <= '#') { - if (yych <= '\n') { + if ((yych = *in) <= '"') { + if (yych <= '\f') { if (yych <= 0x00) goto yy3; - if (yych <= '\t') goto yy14; + if (yych != '\n') goto yy14; } else { + if (yych <= '\r') goto yy3; if (yych == ' ') goto yy16; - if (yych <= '"') goto yy14; - goto yy16; + goto yy14; } } else { if (yych <= 'Z') { + if (yych <= '#') goto yy16; if (yych == '*') goto yy16; goto yy14; } else { @@ -224,7 +225,7 @@ yy16: } else if (!out_.str_) { out_ = StringPiece(filename, len); } else if (out_ != StringPiece(filename, len)) { - *err = "depfile has multiple output paths."; + *err = "depfile has multiple output paths"; return false; } } |