Moved amount_t::right_justify to simply ::justify
This commit is contained in:
parent
ec08dee745
commit
1fa3c1956f
6 changed files with 42 additions and 25 deletions
|
|
@ -1001,20 +1001,6 @@ void amount_t::print(std::ostream& _out) const
|
|||
_out << out.str();
|
||||
}
|
||||
|
||||
void amount_t::right_justify(std::ostream& out, int width) const
|
||||
{
|
||||
std::ostringstream buf;
|
||||
buf << *this;
|
||||
|
||||
unistring temp(buf.str());
|
||||
|
||||
int spacing = width - int(temp.length());
|
||||
while (spacing-- > 0)
|
||||
out << ' ';
|
||||
|
||||
out << temp.extract();
|
||||
}
|
||||
|
||||
bool amount_t::valid() const
|
||||
{
|
||||
if (quantity) {
|
||||
|
|
|
|||
|
|
@ -640,7 +640,6 @@ public:
|
|||
of its commodity's display precision.
|
||||
*/
|
||||
void print(std::ostream& out) const;
|
||||
void right_justify(std::ostream& out, int width) const;
|
||||
|
||||
/*@}*/
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
*/
|
||||
|
||||
#include "balance.h"
|
||||
#include "unistring.h"
|
||||
|
||||
namespace ledger {
|
||||
|
||||
|
|
@ -240,11 +241,17 @@ void balance_t::print(std::ostream& out,
|
|||
first = false;
|
||||
width = first_width;
|
||||
}
|
||||
amount->right_justify(out, width);
|
||||
|
||||
std::ostringstream buf;
|
||||
buf << *amount;
|
||||
justify(out, buf.str(), width, true);
|
||||
}
|
||||
|
||||
if (first)
|
||||
amount_t(0L).right_justify(out, first_width);
|
||||
if (first) {
|
||||
std::ostringstream buf;
|
||||
buf << amount_t(0L);
|
||||
justify(out, buf.str(), first_width, true);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace ledger
|
||||
|
|
|
|||
|
|
@ -90,4 +90,22 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
inline void justify(std::ostream& out,
|
||||
const std::string& str,
|
||||
int width,
|
||||
bool right = false)
|
||||
{
|
||||
if (! right)
|
||||
out << str;
|
||||
|
||||
unistring temp(str);
|
||||
|
||||
int spacing = width - int(temp.length());
|
||||
while (spacing-- > 0)
|
||||
out << ' ';
|
||||
|
||||
if (right)
|
||||
out << str;
|
||||
}
|
||||
|
||||
#endif // _UNISTRING_H
|
||||
|
|
|
|||
17
src/value.cc
17
src/value.cc
|
|
@ -30,6 +30,7 @@
|
|||
*/
|
||||
|
||||
#include "value.h"
|
||||
#include "unistring.h"
|
||||
|
||||
namespace ledger {
|
||||
|
||||
|
|
@ -1253,8 +1254,11 @@ void value_t::print(std::ostream& out,
|
|||
const int latter_width,
|
||||
const optional<string>& date_format) const
|
||||
{
|
||||
if (first_width > 0 && ! is_amount() && ! is_balance())
|
||||
if (first_width > 0 &&
|
||||
! is_amount() && ! is_balance() && ! is_string()) {
|
||||
out.width(first_width);
|
||||
out << std::left;
|
||||
}
|
||||
|
||||
switch (type()) {
|
||||
case VOID:
|
||||
|
|
@ -1283,15 +1287,18 @@ void value_t::print(std::ostream& out,
|
|||
out << as_long();
|
||||
break;
|
||||
|
||||
case AMOUNT:
|
||||
case AMOUNT: {
|
||||
std::ostringstream buf;
|
||||
if (as_amount().is_zero())
|
||||
out << 0L;
|
||||
buf << 0L;
|
||||
else
|
||||
as_amount().right_justify(out, first_width);
|
||||
buf << as_amount();
|
||||
justify(out, buf.str(), first_width, true);
|
||||
break;
|
||||
}
|
||||
|
||||
case STRING:
|
||||
out << as_string();
|
||||
justify(out, as_string(), first_width);
|
||||
break;
|
||||
|
||||
case MASK:
|
||||
|
|
|
|||
|
|
@ -886,7 +886,7 @@ public:
|
|||
* Printing methods.
|
||||
*/
|
||||
void print(std::ostream& out,
|
||||
const int first_width,
|
||||
const int first_width = - 1,
|
||||
const int latter_width = -1,
|
||||
const optional<string>& date_format = none) const;
|
||||
void dump(std::ostream& out, const bool relaxed = true) const;
|
||||
|
|
@ -908,7 +908,7 @@ inline value_t mask_value(const string& str) {
|
|||
}
|
||||
|
||||
inline std::ostream& operator<<(std::ostream& out, const value_t& val) {
|
||||
val.print(out, 12);
|
||||
val.print(out);
|
||||
return out;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue