Commit f7854bdd authored by jan.koester's avatar jan.koester
Browse files

test

parent f1f75d4b
Loading
Loading
Loading
Loading
+16 −1
Changes for executor.cpp: 16 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -215,9 +215,23 @@ int Executor::execute_rule(const std::string& target, const Rule* rule,
    }

    for (const auto& recipe : rule->recipes) {
        std::string cmd = parser_.expand_with_automatic(
        std::string expanded = parser_.expand_with_automatic(
            recipe, *mfp, target, first_prereq, prereqs, newer, stem);

        // A recipe line may expand (e.g. via a canned 'define' sequence) into
        // several physical lines. GNU make runs each as its own command with
        // independent @/-/+ prefix handling and its own shell.
        std::vector<std::string> sublines;
        {
            std::string cur;
            for (char ch : expanded) {
                if (ch == '\n') { sublines.push_back(cur); cur.clear(); }
                else cur += ch;
            }
            sublines.push_back(cur);
        }

        for (auto& cmd : sublines) {
            bool is_silent = silent_;
            bool ignore_error = false;
            bool force_exec = false;
@@ -248,6 +262,7 @@ int Executor::execute_rule(const std::string& target, const Rule* rule,
                }
            }
        }
    }
    return 0;
}