From bebabd512c62e55fdb1850ef684410372a262631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Lu=C3=ADs=20Vaz=20Silva?= Date: Sun, 13 Apr 2025 15:33:34 -0300 Subject: [PATCH] make code more readable --- src/common/rendering/stb_include.cpp | 62 +++++++++++++++++++--------- 1 file changed, 42 insertions(+), 20 deletions(-) diff --git a/src/common/rendering/stb_include.cpp b/src/common/rendering/stb_include.cpp index 04e65f0dce..71e625d4bc 100644 --- a/src/common/rendering/stb_include.cpp +++ b/src/common/rendering/stb_include.cpp @@ -72,6 +72,40 @@ static void skip_whitespace(const char * &s) } } +static void skip_newline(const char * &s) +{ + + while (*s != '\r' && *s != '\n' && *s != 0) + { + ++s; + } + + if(s[0] == '\r' && s[1] == '\n') + { + s += 2; + } + else if (*s == '\r' || *s == '\n') + { + s++; + } +} + +static void find_end_quote(const char * &t) +{ + while (*t != '"' && *t != '\n' && *t != '\r' && *t != 0) + { + ++t; + } +} + +static void find_newline(const char * &s) +{ + while (*s != '\r' && *s != '\n' && *s != 0) + { + ++s; + } +} + // find location of all #include and #inject static int64_t stb_include_find_includes(const char *text, TArray &plist) { @@ -99,22 +133,17 @@ static int64_t stb_include_find_includes(const char *text, TArray if (*s == '"') { - const char *t = ++s; - while (*t != '"' && *t != '\n' && *t != '\r' && *t != 0) - { - ++t; - } + const char * include_filename = ++s; - if (*t == '"') + find_end_quote(include_filename); + + if (*include_filename == '"') { FString filename; - filename.AppendCStrPart(s, t - s); - s = t; + filename.AppendCStrPart(s, include_filename - s); + s = include_filename; - while (*s != '\r' && *s != '\n' && *s != 0) - { - ++s; - } + find_newline(s); // s points to the newline, so s-start is everything except the newline list.Push({start - text, s - text, filename, line_count + 1}); @@ -124,15 +153,8 @@ static int64_t stb_include_find_includes(const char *text, TArray } } - while (*s != '\r' && *s != '\n' && *s != 0) - { - ++s; - } + skip_newline(s); - if (*s == '\r' || *s == '\n') - { - s = s + (s[0] + s[1] == '\r' + '\n' ? 2 : 1); - } ++line_count; }