aboutsummaryrefslogtreecommitdiffstats
path: root/src/scanner.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/scanner.c')
-rw-r--r--src/scanner.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/scanner.c b/src/scanner.c
index 4a4e605..5793c20 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -177,7 +177,7 @@ desc_dump(char *desc, const char *fmt, ...)
{
va_list ap;
char buf[128], hang;
- int col, i, j, k, startcol;
+ int col, i, j, k, startcol, newlines;
va_start(ap, fmt);
vsnprintf(buf, sizeof buf, fmt, ap);
@@ -206,8 +206,12 @@ desc_dump(char *desc, const char *fmt, ...)
for (i = 0; desc[i]; ) {
k = i;
- while (desc[i] && isspace(desc[i]))
+ newlines = 0;
+ while (desc[i] && isspace(desc[i])) {
+ if (desc[i] == '\n')
+ newlines++;
i++;
+ }
if (!desc[i])
break;
@@ -215,7 +219,9 @@ desc_dump(char *desc, const char *fmt, ...)
while (desc[i] && !isspace(desc[i]))
i++;
- if (col + i - j > 72) {
+ if (newlines > 1)
+ printf("\n%s*", indent(startcol));
+ if (newlines > 1 || col + i - j > 72) {
printf("\n%s*%c", indent(startcol), hang);
col = startcol;
}