aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr')
-rw-r--r--src/libexpr/print.cc39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/libexpr/print.cc b/src/libexpr/print.cc
index 572db25ed..df79718fb 100644
--- a/src/libexpr/print.cc
+++ b/src/libexpr/print.cc
@@ -179,6 +179,21 @@ private:
}
}
+ /**
+ * Print a space (for separating items or attributes).
+ *
+ * If pretty-printing is enabled, a newline and the current `indent` is
+ * printed instead.
+ */
+ void printSpace(bool prettyPrint)
+ {
+ if (prettyPrint) {
+ output << "\n" << indent;
+ } else {
+ output << " ";
+ }
+ }
+
void printRepeated()
{
if (options.ansiColors)
@@ -322,11 +337,7 @@ private:
auto prettyPrint = shouldPrettyPrintAttrs(sorted);
for (auto & i : sorted) {
- if (prettyPrint) {
- output << "\n" << indent;
- } else {
- output << " ";
- }
+ printSpace(prettyPrint);
if (attrsPrinted >= options.maxAttrs) {
printElided(sorted.size() - attrsPrinted, "attribute", "attributes");
@@ -341,11 +352,7 @@ private:
}
decreaseIndent();
- if (prettyPrint) {
- output << "\n" << indent;
- } else {
- output << " ";
- }
+ printSpace(prettyPrint);
output << "}";
} else {
output << "{ ... }";
@@ -387,11 +394,7 @@ private:
auto listItems = v.listItems();
auto prettyPrint = shouldPrettyPrintList(listItems);
for (auto elem : listItems) {
- if (prettyPrint) {
- output << "\n" << indent;
- } else {
- output << " ";
- }
+ printSpace(prettyPrint);
if (listItemsPrinted >= options.maxListItems) {
printElided(v.listSize() - listItemsPrinted, "item", "items");
@@ -407,11 +410,7 @@ private:
}
decreaseIndent();
- if (prettyPrint) {
- output << "\n" << indent;
- } else {
- output << " ";
- }
+ printSpace(prettyPrint);
output << "]";
} else {
output << "[ ... ]";