Add 'unflatten' to doxygen/dot processing
[senf.git] / Utils / Console / Server.cc
index 41475c2..66564bb 100644 (file)
@@ -180,6 +180,12 @@ prefix_ void senf::console::detail::DumbClientReader::v_write(std::string const
     handle().write(data);
 }
 
+prefix_ unsigned senf::console::detail::DumbClientReader::v_width()
+    const
+{
+    return 80;
+}
+
 ///////////////////////////////////////////////////////////////////////////
 // senf::console::detail::NoninteractiveClientReader
 
@@ -202,6 +208,12 @@ prefix_ void senf::console::detail::NoninteractiveClientReader::v_write(std::str
     handle().write(data);
 }
 
+prefix_ unsigned senf::console::detail::NoninteractiveClientReader::v_width()
+    const
+{
+    return 80;
+}
+
 prefix_ void
 senf::console::detail::NoninteractiveClientReader::newData(int event)
 {
@@ -272,11 +284,6 @@ prefix_ void senf::console::Client::setNoninteractive()
 prefix_ std::string::size_type senf::console::Client::handleInput(std::string data,
                                                                   bool incremental)
 {
-    if (data.empty() && ! incremental)
-        data = lastCommand_;
-    else
-        lastCommand_ = data;
-
     std::string::size_type n (data.size());
 
     try {
@@ -323,6 +330,17 @@ prefix_ void senf::console::Client::v_write(senf::log::time_type timestamp,
     reader_->enablePrompt();
 }
 
+prefix_ unsigned senf::console::Client::getWidth(std::ostream & os, unsigned defaultWidth,
+                                                 unsigned minWidth)
+{
+    unsigned rv (defaultWidth);
+    try { 
+        rv = get(os).width(); 
+    }
+    catch (std::bad_cast &) {}
+    return rv < minWidth ? defaultWidth : rv;
+}
+
 ///////////////////////////////////////////////////////////////////////////
 // senf::console::Client::SysBacktrace
 
@@ -336,7 +354,7 @@ prefix_ void senf::console::Client::SysBacktrace::backtrace(std::ostream & os)
 {
     Client & client (Client::get(os));
     if (client.backtrace().empty())
-        os << "(no backtrace)";
+        os << "(no backtrace)\n";
     else
         os << client.backtrace();
 }