blob: c921571cf061011e8a51b1be517e44714de23859 (
plain) (
tree)
|
|
#include "strip.h"
#include "ascii.h"
#include <util/string/reverse.h>
bool Collapse(const TString& from, TString& to, size_t maxLen) {
return CollapseImpl<TString, bool (*)(unsigned char)>(from, to, maxLen, IsAsciiSpace);
}
void CollapseText(const TString& from, TString& to, size_t maxLen) {
Collapse(from, to, maxLen);
StripInPlace(to);
if (to.size() >= maxLen) {
to.remove(maxLen - 5); // " ..."
ReverseInPlace(to);
size_t pos = to.find_first_of(" .,;");
if (pos != TString::npos && pos < 32) {
to.remove(0, pos + 1);
}
ReverseInPlace(to);
to.append(" ...");
}
}
|