On 01/05/16 04:04, KOBAYASHI Takashi wrote:
Hello,
Regarding nl command, I think that behaving like 'p' option is always
enabled even if I do not enable this option.
In other words, the number is not reset for each logical pages in the
default setting.
This behavior is far from a long time ago, but is it a bug?
Version of the testing command is “nl (GNU coreutils) 8.25.5-632ed”.
Example:
$ cat test.txt
\:\:\:
header line 1
\:\:
section 1; body line 1 (total 1)
section 1; body line 2 (total 2)
\:\:
section 2; body line 1 (total 3)
section 2; body line 2 (total 4)
\:\:
section 3; body line 1 (total 5)
section 3; body line 2 (total 6)
\:
footer line 1
$ nl test.txt
header line 1
1 section 1; body line 1 (total 1)
2 section 1; body line 2 (total 2)
3 section 2; body line 1 (total 3)
4 section 2; body line 2 (total 4)
5 section 3; body line 1 (total 5)
6 section 3; body line 2 (total 6)
footer line 1
Expected output:
header line 1
1 section 1; body line 1 (total 1)
2 section 1; body line 2 (total 2)
1 section 2; body line 1 (total 3)
2 section 2; body line 2 (total 4)
1 section 3; body line 1 (total 5)
2 section 3; body line 2 (total 6)
footer line 1
I made a patch for this issue.
diff --git src/nl.c src/nl.c
index a4a48bc..be1b197 100644
--- src/nl.c
+++ src/nl.c
@@ -286,8 +286,6 @@ proc_header (void)
{
current_type = header_type;
current_regex = &header_regex;
- if (reset_numbers)
- line_no = starting_line_number;
putchar ('\n');
}
@@ -298,6 +296,8 @@ proc_body (void)
{
current_type = body_type;
current_regex = &body_regex;
+ if (reset_numbers)
+ line_no = starting_line_number;
putchar ('\n');
}
Best Regards :)
KOBAYASHI, Takashi
Wow that's an old bug!
I agree that -p controls renumbering across page _delimiters_
rather than just pages. POSIX says the same thing.
I'll apply this in your name and add a test.