diff --git a/main.c b/main.c index 169e907..60f7bcf 100644 --- a/main.c +++ b/main.c @@ -174,7 +174,7 @@ int main(int argc, char *argv[]) { } #endif - if (issmall) { + if (issmall || islogos) { size_t ne = sizeof(LOGO_SMALL) / sizeof(LOGO_SMALL[0]); for (size_t i = 0; i < ne; i++) { LOGO[i] = LOGO_SMALL[i]; diff --git a/src/config.c b/src/config.c index 093e76d..252dd9b 100644 --- a/src/config.c +++ b/src/config.c @@ -23,6 +23,9 @@ #include "logo/haiku.h" #endif +bool islogob = true; +bool islogos = false; +bool islogod = true; bool isos = true; bool ishost = true; #if defined(__linux__) || defined(__sunos) @@ -149,6 +152,7 @@ void getconf() { while (fgets(line, sizeof(line), file)) { if (line[0] == '#' || line[0] == '\n') continue; if (strstr(line, "hide ") != NULL) { + if (containvocab(line, "logo")) islogod = false; if (containvocab(line, "os")) isos = false; if (containvocab(line, "host")) ishost = false; #if defined(__linux__) || defined(__sunos) @@ -181,6 +185,17 @@ void getconf() { customtitlecolor = applycolor(color); } + // デフォルトは大きいロゴ + if (strstr(line, "show logo") != NULL) { + if (containvocab(line, "small")) { + islogob = false; + islogos = true; + } else { + islogob = true; + islogos = false; + } + } + // カスタムロゴ if (strstr(line, "define custom big logo:") != NULL) { mkbiglogo = true; @@ -191,6 +206,7 @@ void getconf() { if (mkbiglogo) { isbiglogo = true; + islogob = true; if (strstr(line, "define custom big logo:") != NULL) { continue; } else if (strstr(line, "EOL") != NULL) { @@ -216,6 +232,7 @@ void getconf() { if (mksmalllogo) { issmalllogo = true; + islogos = true; if (strstr(line, "define custom small logo:") != NULL) { continue; } else if (strstr(line, "EOL") != NULL) { diff --git a/src/config.h b/src/config.h index 18c3121..f266edf 100644 --- a/src/config.h +++ b/src/config.h @@ -4,6 +4,9 @@ #include #include +extern bool islogob; +extern bool islogos; +extern bool islogod; extern bool isos; extern bool ishost; #if defined(__linux__) || defined(__sunos)