summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS3
-rw-r--r--src/pr.c4
-rwxr-xr-xtests/pr/pr-tests4
3 files changed, 9 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 569c33b0a..db5a474a0 100644
--- a/NEWS
+++ b/NEWS
@@ -26,6 +26,9 @@ GNU coreutils NEWS -*- outline -*-
as much memory. du, chmod, chgrp and chown started using fts in 6.0.
chcon was added in coreutils-6.9.91 with fts support. ]
+ pr -T no longer ignores a specified LAST_PAGE to stop at.
+ [bug introduced in textutils-1.19q]
+
printf '%d' '"' no longer accesses out-of-bounds memory in the diagnostic.
[bug introduced in sh-utils-1.16]
diff --git a/src/pr.c b/src/pr.c
index 771418c45..d1adc5591 100644
--- a/src/pr.c
+++ b/src/pr.c
@@ -1887,7 +1887,7 @@ print_page (void)
print_a_FF = false;
}
- if (last_page_number < page_number)
+ if (last_page_number < ++page_number)
return false; /* Stop printing with LAST_PAGE */
reset_status (); /* Change ON_HOLD to OPEN. */
@@ -2399,7 +2399,7 @@ print_header (void)
/* The translator must ensure that formatting the translation of
"Page %"PRIuMAX does not generate more than (sizeof page_text - 1)
bytes. */
- sprintf (page_text, _("Page %"PRIuMAX), page_number++);
+ sprintf (page_text, _("Page %"PRIuMAX), page_number);
available_width = header_width_available - mbswidth (page_text, 0);
available_width = MAX (0, available_width);
lhs_spaces = available_width >> 1;
diff --git a/tests/pr/pr-tests b/tests/pr/pr-tests
index aafc0cfdb..d3dc25fba 100755
--- a/tests/pr/pr-tests
+++ b/tests/pr/pr-tests
@@ -403,6 +403,10 @@ my @tv = (
# This would clobber so much of the heap, it'd segfault or abort every time.
['smash-heap', '-t -e300', "a".("\b"x50)."\t", "a\b".(" "x300)."\n", 0],
['smash-heap8', '-t -e', "a".("\b"x50)."\t", "a\b".(" "x 8)."\n", 0],
+
+# Before coreutils-8.13 page numbers were not handled correctly when
+# headers were not printed (when -l <= 10 or -t or -T specified)
+['page-range', '+1:1 -2 -l1 -s" "', "a\nb\nc\n", "a b\n", 0],
);
# Convert the above old-style test vectors to the newer