From f26eb796e228cbec754e9e24545f5b0a8a50aac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Tempel?= Date: Wed, 17 Nov 2021 15:08:53 +0100 Subject: ed: fix current line number for file passed via the command-line MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Denys Vlasenko --- editors/ed.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'editors') 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; } -- cgit v1.2.3