ed: fix current line number for file passed via the command-line
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@soeren-tempel.net> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
		
				
					committed by
					
						 Denys Vlasenko
						Denys Vlasenko
					
				
			
			
				
	
			
			
			
						parent
						
							7d49fedc86
						
					
				
				
					commit
					f26eb796e2
				
			| @@ -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; | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user