From f2755a844bac2c2f62e82c36e5da6ae51527e9dd Mon Sep 17 00:00:00 2001 From: Carter Li Date: Fri, 7 Feb 2025 10:57:30 +0800 Subject: [PATCH] Logo (Builtin): split `ID_LIKE` before using Fix #1540 --- src/logo/logo.c | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/logo/logo.c b/src/logo/logo.c index c1c2b38d68..8e95f86207 100644 --- a/src/logo/logo.c +++ b/src/logo/logo.c @@ -387,13 +387,30 @@ static const FFlogo* logoGetBuiltinDetected(FFLogoSize size) if(logo != NULL) return logo; - logo = logoGetBuiltin(&os->prettyName, size); - if(logo != NULL) - return logo; + if (ffStrbufContainC(&os->idLike, ' ')) + { + FF_STRBUF_AUTO_DESTROY buf = ffStrbufCreate(); + for ( + uint32_t start = 0, end = ffStrbufFirstIndexC(&os->idLike, ' '); + true; + start = end + 1, end = ffStrbufNextIndexC(&os->idLike, start, ' ') + ) + { + ffStrbufSetNS(&buf, end - start, os->idLike.chars + start); + logo = logoGetBuiltin(&buf, size); + if(logo != NULL) + return logo; - logo = logoGetBuiltin(&os->idLike, size); - if(logo != NULL) - return logo; + if (end >= os->idLike.length) + break; + } + } + else + { + logo = logoGetBuiltin(&os->idLike, size); + if(logo != NULL) + return logo; + } logo = logoGetBuiltin(&instance.state.platform.sysinfo.name, size); if(logo != NULL)