# # # patch "cmd_diff_log.cc" # from [7ab2f84093a7130644a11f740eae685a192b3db7] # to [5357e642747880f321e0f8a5b6f5e9a6bd7bb9a0] # # patch "diff_colorizer.cc" # from [517669de6f3104480f3df75c463c15a4b93257d0] # to [88cc3f7b079b0cd3415ee976b2794d9b3db1621a] # # patch "diff_colorizer.hh" # from [fa6402717dc47a53e79fabda1d94bb4a9cda655f] # to [d3c23b9beaff9b1d25e59fabdfbce951921e62ac] # # patch "diff_output.cc" # from [0bc645fe55f2baa35d8e77c6a8be521a8347248b] # to [689185f3dfca8b8a505f386474c107493190e9e6] # ============================================================ --- cmd_diff_log.cc 7ab2f84093a7130644a11f740eae685a192b3db7 +++ cmd_diff_log.cc 5357e642747880f321e0f8a5b6f5e9a6bd7bb9a0 @@ -393,6 +393,7 @@ void dump_header(std::string const & rev roster_t const & old_roster, roster_t const & new_roster, std::ostream & out, + diff_colorizer const & colorizer, bool show_if_empty) { cset changes; @@ -405,19 +406,22 @@ void dump_header(std::string const & rev vector lines; split_into_lines(summary(), lines); - out << "#\n"; + out << colorizer.colorize("#", diff_colorizer::comment) << "\n"; if (!summary().empty()) { - out << revs << "#\n"; + out << colorizer.colorize(revs + "#", + diff_colorizer::comment) << "\n"; for (vector::iterator i = lines.begin(); i != lines.end(); ++i) - out << "# " << *i << '\n'; + out << colorizer.colorize(string("# ") + *i, + diff_colorizer::comment) << "\n"; } else { - out << "# " << _("no changes") << '\n'; + out << colorizer.colorize(string("# ") + _("no changes"), + diff_colorizer::comment) << "\n"; } - out << "#\n"; + out << colorizer.colorize("#", diff_colorizer::comment) << "\n"; } CMD(diff, "diff", "di", CMD_REF(informative), N_("[PATH]..."), @@ -444,9 +448,11 @@ CMD(diff, "diff", "di", CMD_REF(informat prepare_diff(app, db, old_roster, new_roster, args, old_from_db, new_from_db, revs); + diff_colorizer colorizer(app.opts.colorize); + if (!app.opts.without_header) { - dump_header(revs, old_roster, new_roster, cout, true); + dump_header(revs, old_roster, new_roster, cout, colorizer, true); } dump_diffs(app.lua, db, old_roster, new_roster, cout, @@ -455,7 +461,7 @@ CMD(diff, "diff", "di", CMD_REF(informat app.opts.external_diff_args, old_from_db, new_from_db, !app.opts.no_show_encloser, - diff_colorizer(app.opts.colorize)); + colorizer); } @@ -484,10 +490,12 @@ CMD_AUTOMATE(content_diff, N_("[FILE [.. prepare_diff(app, db, old_roster, new_roster, args, old_from_db, new_from_db, dummy_header); + // never colorize the diff output + diff_colorizer colorizer(false); if (app.opts.with_header) { - dump_header(dummy_header, old_roster, new_roster, output, false); + dump_header(dummy_header, old_roster, new_roster, output, colorizer, false); } dump_diffs(app.lua, db, old_roster, new_roster, output, @@ -495,7 +503,7 @@ CMD_AUTOMATE(content_diff, N_("[FILE [.. app.opts.external_diff_args_given, app.opts.external_diff_args, old_from_db, new_from_db, !app.opts.no_show_encloser, - diff_colorizer(false)); // never colorize the diff output + colorizer); } ============================================================ --- diff_colorizer.cc 517669de6f3104480f3df75c463c15a4b93257d0 +++ diff_colorizer.cc 88cc3f7b079b0cd3415ee976b2794d9b3db1621a @@ -27,6 +27,7 @@ diff_colorizer::diff_colorizer(bool enab colormap.insert(std::make_pair(add, "\033[32m")); colormap.insert(std::make_pair(del, "\033[31m")); colormap.insert(std::make_pair(change, "\033[33m")); + colormap.insert(std::make_pair(comment, "\033[37m")); colormap.insert(std::make_pair(reset, "\033[m")); } } ============================================================ --- diff_colorizer.hh fa6402717dc47a53e79fabda1d94bb4a9cda655f +++ diff_colorizer.hh d3c23b9beaff9b1d25e59fabdfbce951921e62ac @@ -15,7 +15,13 @@ struct diff_colorizer { struct diff_colorizer { - typedef enum { normal = 0, encloser, add, del, change, reset } purpose; + typedef enum { normal = 0, + encloser, + add, + del, + change, + comment, + reset } purpose; diff_colorizer(bool enable); ============================================================ --- diff_output.cc 0bc645fe55f2baa35d8e77c6a8be521a8347248b +++ diff_output.cc 689185f3dfca8b8a505f386474c107493190e9e6 @@ -496,7 +496,8 @@ make_diff(string const & filename1, { if (guess_binary(data1()) || guess_binary(data2())) { - ost << "# " << filename2 << " is binary\n"; + ost << colorizer.colorize(string("# ") + filename2 + " is binary", + diff_colorizer::comment) << "\n"; return; }