From 9c280bc7afcca1e3c813fc5620d9a0074e5a9db9 Mon Sep 17 00:00:00 2001 From: Benjamin Stigsen Date: Sat, 4 Apr 2020 14:25:57 +0200 Subject: [PATCH] TextReplace changes (#1172) - Added NULL return if the replacement string (`by`) is empty - Reordered sanity checks since there's no need to initialize variables if the strings are invalid. --- src/text.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/text.c b/src/text.c index fdcf244ae..21bb88089 100644 --- a/src/text.c +++ b/src/text.c @@ -1179,6 +1179,9 @@ const char *TextSubtext(const char *text, int position, int length) // WARNING: Internally allocated memory must be freed by the user (if return != NULL) char *TextReplace(char *text, const char *replace, const char *by) { + // Sanity checks and initialization + if (!text || !replace || !by || by[0] == '\0') return NULL; + char *result; char *insertPoint; // Next insert point @@ -1188,13 +1191,9 @@ char *TextReplace(char *text, const char *replace, const char *by) int lastReplacePos; // Distance between replace and end of last replace int count; // Number of replacements - // Sanity checks and initialization - if (!text || !replace) return NULL; - replaceLen = TextLength(replace); if (replaceLen == 0) return NULL; // Empty replace causes infinite loop during count - if (!by) by = ""; // Replace by nothing if not provided byLen = TextLength(by); // Count the number of replacements needed