diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | src/pr.c | 4 | ||||
-rwxr-xr-x | tests/pr/pr-tests | 4 |
3 files changed, 9 insertions, 2 deletions
@@ -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] @@ -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 |