# # # patch "asciik.cc" # from [b93cecb26739f5dc682a1a9443404fe57832022f] # to [ffa47c5ecf5fcf0d3f43ff3bd15e20dbf1dc990e] # # patch "asciik.hh" # from [36c281faea3cd6c21ecff24747d138a03eb88393] # to [83815e833d8e513dcba3607a9257feb101399562] # ============================================================ --- asciik.cc b93cecb26739f5dc682a1a9443404fe57832022f +++ asciik.cc ffa47c5ecf5fcf0d3f43ff3bd15e20dbf1dc990e @@ -148,8 +148,9 @@ static revision_id ghost; // valid but e static revision_id ghost; // valid but empty revision_id to be used as ghost value -asciik::asciik() +asciik::asciik(ostream & os) { + output = &os; } void @@ -247,10 +248,10 @@ asciik::draw(const size_t curr_items, co lines.push_back(string("")); // prints it out - cout << F("%-8s %s") % line % lines[0] << '\n'; - cout << F("%-8s %s") % interline % lines[1] << '\n'; + *output << F("%-8s %s") % line % lines[0] << '\n'; + *output << F("%-8s %s") % interline % lines[1] << '\n'; for (int i = 2; i < num_lines; ++i) - cout << F("%-8s %s") % interline2 % lines[i] << '\n'; + *output << F("%-8s %s") % interline2 % lines[i] << '\n'; } bool @@ -374,7 +375,7 @@ CMD(asciik, N_("tree"), N_("SELECTOR"), selectors::selector_type ty = selectors::sel_ident; selectors::complete_selector("", sels, ty, completions, app); - asciik graph; + asciik graph(cout); set revs; for (set::const_iterator i = completions.begin(); i != completions.end(); ++i) ============================================================ --- asciik.hh 36c281faea3cd6c21ecff24747d138a03eb88393 +++ asciik.hh 83815e833d8e513dcba3607a9257feb101399562 @@ -9,7 +9,7 @@ public: class asciik { public: - asciik(); + asciik(std::ostream & os); // Prints an ASCII-k chunk using the given revisions. void print(const revision_id & rev, const std::set & parents, const string & annotation); //TODO: cambiare set-parents to vector-next @@ -18,6 +18,7 @@ private: void draw(const size_t curr_items, const size_t next_items, const size_t curr_loc, const std::set > & links, const std::set & curr_ghosts, const string & annotation) const; bool try_draw(const std::vector & next_row, const size_t curr_loc, const std::set & parents, const string & annotation) const; // internal state + std::ostream * output; std::vector curr_row; };