[git commit] ed: fix current line number for file passed via the command-line
Denys Vlasenko
vda.linux at googlemail.com
Sun Dec 19 22:16:02 UTC 2021
commit: https://git.busybox.net/busybox/commit/?id=f26eb796e228cbec754e9e24545f5b0a8a50aac1
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
POSIX.1-2008 mandates the following regarding the file command-line
argument:
If the file argument is given, ed shall simulate an e command
on the file named by the pathname [â¦]
The specification for the e command mandates the following behaviour
regarding the current line number in POSIX.1-2008:
The current line number shall be set to the address of the last
line of the buffer.
However, without this commit, busybox ed will set the current line
number to 1 if a file is given on the command-line and this file is not
empty (lastNum != 0). This is incorrect and fixed in this commit by not
modifying the current line number in ed_main(). As such, the current
line number will be zero for empty files and otherwise be set to the
address of the last line of the buffer.
function old new delta
ed_main 144 128 -16
Signed-off-by: Sören Tempel <soeren+git at soeren-tempel.net>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
editors/ed.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/editors/ed.c b/editors/ed.c
index 18faba5a4..fed10c470 100644
--- a/editors/ed.c
+++ b/editors/ed.c
@@ -1016,8 +1016,6 @@ int ed_main(int argc UNUSED_PARAM, char **argv)
if (!readLines(fileName, 1)) {
return EXIT_SUCCESS;
}
- if (lastNum)
- setCurNum(1);
dirty = FALSE;
}
More information about the busybox-cvs
mailing list