Allow the input line to be NULL, and teach strnsubst() that NULL means to use
a nil-string.
This commit is contained in:
parent
e9217a0b8a
commit
986d829b8f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=97619
@ -24,6 +24,8 @@ void strnsubst(char **, const char *, const char *, size_t);
|
||||
* maxsize bytes large. It does not free the string pointed to by str, it
|
||||
* is up to the calling program to be sure that the original contents of
|
||||
* str as well as the new contents are handled in an appropriate manner.
|
||||
* If replstr is NULL, then that internally is changed to a nil-string, so
|
||||
* that we can still pretend to do somewhat meaningful substitution.
|
||||
* No value is returned.
|
||||
*/
|
||||
void
|
||||
@ -38,6 +40,9 @@ strnsubst(char **str, const char *match, const char *replstr, size_t maxsize)
|
||||
if (s2 == NULL)
|
||||
err(1, "calloc");
|
||||
|
||||
if (replstr == NULL)
|
||||
replstr = "";
|
||||
|
||||
if (match == NULL || replstr == NULL || maxsize == strlen(s1)) {
|
||||
strlcpy(s2, s1, maxsize);
|
||||
goto done;
|
||||
|
@ -454,10 +454,10 @@ prerun(int argc, char **argv)
|
||||
free(tmp2);
|
||||
|
||||
/*
|
||||
* Free the input line buffer, and create a new dummy.
|
||||
* Free the input line buffer, if we have one.
|
||||
*/
|
||||
free(inpline);
|
||||
inpline = strdup("");
|
||||
if (inpline != NULL)
|
||||
free(inpline);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user