Utils/Termlib: Fix broken history handling
[senf.git] / Utils / Console / Executor.cc
index f78a736..a228c33 100644 (file)
@@ -67,6 +67,7 @@ prefix_ std::string senf::console::Executor::cwdPath()
 {
     if (skipping())
         return "";
+    (void) cwd(); // ensure, cwd is live.
     return "/" + senf::stringJoin(
         senf::make_transform_range(
             boost::make_iterator_range(boost::next(cwd_.begin()), cwd_.end()),
@@ -194,8 +195,10 @@ prefix_ void senf::console::Executor::ls(std::ostream & output,
     DirectoryNode::child_iterator const i_end (node.children().end());
     for (; i != i_end; ++i) {
         output << i->first;
-        if (boost::dynamic_pointer_cast<DirectoryNode>(i->second))
+        if (i->second->isDirectory())
             output << "/";
+        else if (i->second->isLink())
+            output << "@";
         output << "\n";
     }
 }