Simplify redundant malloc'ing in sed -e.
When encountering an -e argument, sed currently mallocs a string to COPY the optarg -- with '\n' appended. The appendage does not seem necessary -- indeed, the same call to add_compunit processing the sole command (given without -e) passes the *argv verbatim: without making a copy, and without appending newline. This matches what is done in other BSDs. Submitted by: Mikhail T. PR: 195929 MFC after: 2 weeks
This commit is contained in:
parent
f9cf87a0e0
commit
d74b9e1311
@ -125,7 +125,6 @@ int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int c, fflag;
|
||||
char *temp_arg;
|
||||
|
||||
(void) setlocale(LC_ALL, "");
|
||||
|
||||
@ -147,11 +146,7 @@ main(int argc, char *argv[])
|
||||
break;
|
||||
case 'e':
|
||||
eflag = 1;
|
||||
if ((temp_arg = malloc(strlen(optarg) + 2)) == NULL)
|
||||
err(1, "malloc");
|
||||
strcpy(temp_arg, optarg);
|
||||
strcat(temp_arg, "\n");
|
||||
add_compunit(CU_STRING, temp_arg);
|
||||
add_compunit(CU_STRING, optarg);
|
||||
break;
|
||||
case 'f':
|
||||
fflag = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user