mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-07-07 20:06:36 +02:00
Enhancement
- Implemented leftJustify, rightJustify for composing justified strings.
This commit is contained in:
parent
9b85cb47ce
commit
d0a91acf28
3 changed files with 26 additions and 1 deletions
13
src/text.cpp
13
src/text.cpp
|
@ -655,6 +655,7 @@ int characters (const std::string& str)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Truncates a long line, and include a two-character ellipsis.
|
||||||
std::string cutOff (const std::string& str, std::string::size_type len)
|
std::string cutOff (const std::string& str, std::string::size_type len)
|
||||||
{
|
{
|
||||||
if (str.length () > len)
|
if (str.length () > len)
|
||||||
|
@ -715,3 +716,15 @@ std::string format (double value, int width, int precision)
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
std::string leftJustify (const std::string& input, const int width)
|
||||||
|
{
|
||||||
|
return input + std::string (width - input.length (), ' ');
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
std::string rightJustify (const std::string& input, const int width)
|
||||||
|
{
|
||||||
|
return std::string (width - input.length (), ' ') + input;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -66,6 +66,8 @@ std::string format (int);
|
||||||
std::string formatHex (int);
|
std::string formatHex (int);
|
||||||
std::string format (float, int, int);
|
std::string format (float, int, int);
|
||||||
std::string format (double, int, int);
|
std::string format (double, int, int);
|
||||||
|
std::string leftJustify (const std::string&, const int);
|
||||||
|
std::string rightJustify (const std::string&, const int);
|
||||||
|
|
||||||
// UTF-8 aware.
|
// UTF-8 aware.
|
||||||
int characters (const std::string&);
|
int characters (const std::string&);
|
||||||
|
|
|
@ -34,7 +34,7 @@ Context context;
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
int main (int argc, char** argv)
|
int main (int argc, char** argv)
|
||||||
{
|
{
|
||||||
UnitTest t (208);
|
UnitTest t (214);
|
||||||
|
|
||||||
// void wrapText (std::vector <std::string>& lines, const std::string& text, const int width)
|
// void wrapText (std::vector <std::string>& lines, const std::string& text, const int width)
|
||||||
std::string text = "This is a test of the line wrapping code.";
|
std::string text = "This is a test of the line wrapping code.";
|
||||||
|
@ -416,6 +416,16 @@ int main (int argc, char** argv)
|
||||||
|
|
||||||
// std::string format (double, int, int);
|
// std::string format (double, int, int);
|
||||||
|
|
||||||
|
// std::string leftJustify (const std::string&, const int);
|
||||||
|
t.is (leftJustify ("foo", 3), "foo", "leftJustify foo,3 -> 'foo'");
|
||||||
|
t.is (leftJustify ("foo", 4), "foo ", "leftJustify foo,4 -> 'foo '");
|
||||||
|
t.is (leftJustify ("foo", 5), "foo ", "leftJustify foo,5 -> 'foo '");
|
||||||
|
|
||||||
|
// std::string rightJustify (const std::string&, const int);
|
||||||
|
t.is (rightJustify ("foo", 3), "foo", "rightJustify foo,3 -> 'foo'");
|
||||||
|
t.is (rightJustify ("foo", 4), " foo", "rightJustify foo,4 -> ' foo'");
|
||||||
|
t.is (rightJustify ("foo", 5), " foo", "rightJustify foo,5 -> ' foo'");
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue