void HandleList(std::string& out, LocalUser* user, bool show_all, bool show_values, bool minus_prefix = false) const { Ext show_caps = (show_all ? ~0 : capext.get(user)); for (CapMap::const_iterator i = caps.begin(); i != caps.end(); ++i) { Capability* cap = i->second; if (!(show_caps & cap->GetMask())) continue; if ((show_all) && (!cap->OnList(user))) continue; if (minus_prefix) out.push_back('-'); out.append(cap->GetName()); if (show_values) { const std::string* capvalue = cap->GetValue(user); if ((capvalue) && (!capvalue->empty()) && (capvalue->find(' ') == std::string::npos)) { out.push_back('='); out.append(*capvalue, 0, MAX_VALUE_LENGTH); } } out.push_back(' '); } }