// $Id$
//
-// Copyright (C) 2008
+// Copyright (C) 2008
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
#include <senf/Utils/senfassert.hh>
#include <senf/Utils/Range.hh>
#include "Server.hh"
+#include "senf/Utils/IgnoreValue.hh"
//#include "Executor.mpp"
#define prefix_
return token.value();
}
};
-
+
}
///////////////////////////////////////////////////////////////////////////
prefix_ senf::console::DirectoryNode & senf::console::Executor::cwd()
const
{
- SENF_ASSERT( ! cwd_.empty() );
+ SENF_ASSERT( ! cwd_.empty(), "Internal error: CWD history empty ?" );
while (cwd_.size()>1 && (cwd_.back().expired() || ! cwd_.back().lock()->active()))
cwd_.pop_back();
return * cwd_.back().lock();
{
if (skipping())
return "";
- (void) cwd(); // ensure, cwd is live.
+ senf::IGNORE( cwd() ); // ensure, cwd is live.
return "/" + senf::stringJoin(
senf::make_transform_range(
boost::make_iterator_range(boost::next(cwd_.begin()), cwd_.end()),
SENF_LOG(( "Executing: " << command ));
if (! skipping())
- (void) cwd(); // Prune the cwd path of expired entries
+ senf::IGNORE( cwd() ); // Prune the cwd path of expired entries
try {
switch(command.builtin()) {
- case ParseCommandInfo::NoBuiltin :
+ case ParseCommandInfo::NoBuiltin :
if (skipping())
return;
exec(output, command);
"'cd' cannot be skipped (don't use 'cd' in conf-files)");
}
break;
-
+
case ParseCommandInfo::BuiltinLS :
if (skipping())
break;
else
exec(output, command);
break;
-
+
case ParseCommandInfo::BuiltinPOPD :
// The parser ensures, we have no arguments
popd();
break;
-
+
case ParseCommandInfo::BuiltinEXIT :
if (skipping())
break;
{
if (dir.size() == 1 && *dir.begin() == WordToken("-")) {
cwd_.swap(oldCwd_);
- (void) cwd(); // Prune any expired items
+ senf::IGNORE( cwd() ); // Prune any expired items
}
else {
// We need to use a temporary so an error somewhere while traversing the dir does not cause
typedef std::map<senf::console::DirectoryNode*,std::string> NodesMap;
- void dolr(std::ostream & output, unsigned width, NodesMap & nodes, std::string const & base,
+ void dolr(std::ostream & output, unsigned width, NodesMap & nodes, std::string const & base,
unsigned level, senf::console::DirectoryNode & node)
{
boost::format fmt ("%s%s%s %|" BOOST_PP_STRINGIZE(HELP_COLUMN) "t|%s\n");
NodesMap::iterator j (nodes.find(&subnode));
if (j == nodes.end()) {
output << fmt
- % pad % i->first
+ % pad % i->first
% ( i->second->isDirectory() ? "/" : i->second->isLink() ? "@" : "" )
% i->second->shorthelp().substr(0,width);
std::string subbase (base);
nodes.insert(std::make_pair(&subnode, subbase));
dolr(output, width, nodes, subbase, level+1, subnode);
} else
- output << pad << i->first
+ output << pad << i->first
<< ( i->second->isDirectory() ? "/" : i->second->isLink() ? "@" : "" )
<< " -> " << j->second << "\n";
} else {
output << fmt
- % pad % i->first
+ % pad % i->first
% ( i->second->isDirectory() ? "/" : i->second->isLink() ? "@" : "" )
% i->second->shorthelp().substr(0,width);
}
traverseDirectory(path, dir);
DirectoryNode & node (*dir.back().lock());
NodesMap nodes;
- dolr(output, senf::console::Client::getWidth(output, 80u, 60u)-(HELP_COLUMN+1),
+ dolr(output, senf::console::Client::getWidth(output, 80u, 60u)-(HELP_COLUMN+1),
nodes, "", 0, node);
}