Просмотр исходного кода

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.
pull/1177/head
Benjamin Stigsen 5 лет назад
committed by GitHub
Родитель
Сommit
9c280bc7af
Не найден GPG ключ соответствующий данной подписи Идентификатор GPG ключа: 4AEE18F83AFDEB23
1 измененных файлов: 3 добавлений и 4 удалений
  1. +3
    -4
      src/text.c

+ 3
- 4
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

Загрузка…
Отмена
Сохранить