Logo: code refactor for future use

This commit is contained in:
李通洲
2026-01-08 15:56:44 +08:00
parent 5bfabe7a52
commit 2efa5a1869
2 changed files with 20 additions and 8 deletions
+11 -8
View File
@@ -12,13 +12,6 @@
#include <stdlib.h>
#include <string.h>
typedef enum __attribute__((__packed__)) FFLogoSize
{
FF_LOGO_SIZE_UNKNOWN,
FF_LOGO_SIZE_NORMAL,
FF_LOGO_SIZE_SMALL,
} FFLogoSize;
static bool ffLogoPrintCharsRaw(const char* data, size_t length, bool printError)
{
FFOptionsLogo* options = &instance.config.logo;
@@ -451,7 +444,7 @@ static bool logoPrintBuiltinIfExists(const FFstrbuf* name, FFLogoSize size)
return true;
}
const FFlogo* logo = ffStrbufEqualS(name, "?") ? &ffLogoUnknown : logoGetBuiltin(name, size);
const FFlogo* logo = ffLogoGetBuiltinForName(name, size);
if(logo == NULL)
return false;
@@ -784,3 +777,13 @@ void ffLogoBuiltinListAutocompletion(void)
printf("%s\n", logo->names[0]);
}
}
const FFlogo* ffLogoGetBuiltinForName(const FFstrbuf* name, FFLogoSize size)
{
return ffStrbufEqualS(name, "?") ? &ffLogoUnknown : logoGetBuiltin(name, size);
}
const FFlogo* ffLogoGetBuiltinDetected(FFLogoSize size)
{
return logoGetBuiltinDetected(size);
}
+9
View File
@@ -10,6 +10,13 @@ typedef enum __attribute__((__packed__)) FFLogoLineType
FF_LOGO_LINE_TYPE_FORCE_UNSIGNED = UINT8_MAX,
} FFLogoLineType;
typedef enum __attribute__((__packed__)) FFLogoSize
{
FF_LOGO_SIZE_UNKNOWN,
FF_LOGO_SIZE_NORMAL,
FF_LOGO_SIZE_SMALL,
} FFLogoSize;
typedef struct FFlogo
{
const char* lines;
@@ -28,6 +35,8 @@ void ffLogoPrintRemaining(void);
void ffLogoBuiltinPrint(void);
void ffLogoBuiltinList(void);
void ffLogoBuiltinListAutocompletion(void);
const FFlogo* ffLogoGetBuiltinForName(const FFstrbuf* name, FFLogoSize size);
const FFlogo* ffLogoGetBuiltinDetected(FFLogoSize size);
//builtin.c
extern const FFlogo* ffLogoBuiltins[];