aboutsummaryrefslogtreecommitdiff
path: root/paludis/fs_merger.cc
diff options
context:
space:
mode:
Diffstat (limited to 'paludis/fs_merger.cc')
-rw-r--r--paludis/fs_merger.cc35
1 files changed, 35 insertions, 0 deletions
diff --git a/paludis/fs_merger.cc b/paludis/fs_merger.cc
index bbe44661c..e29890bd3 100644
--- a/paludis/fs_merger.cc
+++ b/paludis/fs_merger.cc
@@ -1060,3 +1060,38 @@ FSMerger::make_arrows(const FSMergerStatusFlags & flags) const
return result;
}
+void
+FSMerger::display_merge(const EntryType & type, const FSPath & path,
+ const FSMergerStatusFlags & flags,
+ const std::string & renamed) const
+{
+ const auto real_path(path.strip_leading(_imp->params.root().realpath()));
+ std::ostringstream message;
+
+ message << make_arrows(flags);
+
+ switch (type)
+ {
+ case et_dir:
+ message << " [dir] ";
+ break;
+ case et_file:
+ message << " [obj] ";
+ break;
+ case et_sym:
+ message << " [sym] ";
+ break;
+
+ case et_misc:
+ case et_nothing:
+ case last_et:
+ throw FSMergerError("Unexpected entry type merged at: " + stringify(real_path));
+ }
+
+ message << stringify(real_path);
+ if (!renamed.empty())
+ message << " (" << renamed << ")";
+
+ display_override(message.str());
+}
+