diff options
author | jmallett <jmallett@FreeBSD.org> | 2002-05-30 19:24:08 +0000 |
---|---|---|
committer | jmallett <jmallett@FreeBSD.org> | 2002-05-30 19:24:08 +0000 |
commit | a2f7c4e9ca9c5b8eb5cee77480f66ad591a851fa (patch) | |
tree | df726809038b1efa6830d02f8e969569b2cba5a9 /usr.bin/xargs/strnsubst.c | |
parent | d47e46d879b21734253820a147ffd6c989b353f8 (diff) | |
download | FreeBSD-src-a2f7c4e9ca9c5b8eb5cee77480f66ad591a851fa.zip FreeBSD-src-a2f7c4e9ca9c5b8eb5cee77480f66ad591a851fa.tar.gz |
Allow the input line to be NULL, and teach strnsubst() that NULL means to use
a nil-string.
Diffstat (limited to 'usr.bin/xargs/strnsubst.c')
-rw-r--r-- | usr.bin/xargs/strnsubst.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/usr.bin/xargs/strnsubst.c b/usr.bin/xargs/strnsubst.c index 5ca2773..b6668b7 100644 --- a/usr.bin/xargs/strnsubst.c +++ b/usr.bin/xargs/strnsubst.c @@ -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; |