diff --git a/main.c b/main.c index 353ade4..4309d30 100644 --- a/main.c +++ b/main.c @@ -39,6 +39,9 @@ int main(int argc, char *argv[]) { #include "src/logo/linux.h" getDistro(distroname); #else +const char *color = MAGENTA; +const char *titlecolor = MAGENTA; +size_t logosize = 11; #define COLOR "\e[1;30m" #define RESET "\e[0m" char *LOGO[] = { @@ -69,7 +72,7 @@ int main(int argc, char *argv[]) { }; #endif - size_t ls = sizeof(LOGO) / sizeof(LOGO[0]); + size_t ls = logosize <= MIN_SIZE ? MIN_SIZE : logosize; if (issmall) { size_t ne = sizeof(LOGO_SMALL) / sizeof(LOGO_SMALL[0]); for (size_t i = 0; i < ne; i++) { diff --git a/src/logo/freebsd.c b/src/logo/freebsd.c index ef1297b..f1c6386 100644 --- a/src/logo/freebsd.c +++ b/src/logo/freebsd.c @@ -7,6 +7,7 @@ char *LOGO[23]; char *LOGO_SMALL[23]; const char *color; const char *titlecolor; +size_t logosize = 16; void getOS() { color = RED; diff --git a/src/logo/freebsd.h b/src/logo/freebsd.h index b6ab8ec..d5ac9a0 100644 --- a/src/logo/freebsd.h +++ b/src/logo/freebsd.h @@ -8,6 +8,7 @@ extern char *LOGO[23]; extern char *LOGO_SMALL[23]; extern const char *color; extern const char *titlecolor; +extern size_t logosize; void getOS(); diff --git a/src/logo/linux.c b/src/logo/linux.c index 34bd5ea..d979c9e 100644 --- a/src/logo/linux.c +++ b/src/logo/linux.c @@ -8,11 +8,13 @@ char *LOGO[23]; char *LOGO_SMALL[23]; const char *color; const char *titlecolor; +size_t logosize; void getDistro(const char *distroname) { if (strncmp((char *)distroname, "alpine", strlen("alpine")) == 0) { color = MAGENTA; titlecolor = BLUE; + logosize = 21; LOGO[0] = BLUE " .hddddddddddddddddddddddh. " RESET; LOGO[1] = BLUE " :dddddddddddddddddddddddddd: " RESET; @@ -48,6 +50,7 @@ void getDistro(const char *distroname) { } else if (strncmp((char *)distroname, "artix", strlen("artix")) == 0) { color = CYAN; titlecolor = CYAN; + logosize = 20; LOGO[0] = CYAN " -` " RESET; LOGO[1] = CYAN " .o+` " RESET; @@ -83,6 +86,7 @@ void getDistro(const char *distroname) { } else if (strncmp((char *)distroname, "arch", strlen("arch")) == 0) { color = CYAN; titlecolor = CYAN; + logosize = 21; LOGO[0] = CYAN " ' " RESET; LOGO[1] = CYAN " 'o' " RESET; @@ -119,6 +123,7 @@ void getDistro(const char *distroname) { } else if (strncmp((char *)distroname, "crux", strlen("crux")) == 0) { color = MAGENTA; titlecolor = BLUE; + logosize = 19; LOGO[0] = BLUE " odddd " RESET; LOGO[1] = BLUE " oddxkkkxxdoo " RESET; @@ -153,6 +158,7 @@ void getDistro(const char *distroname) { } else if (strncmp((char *)distroname, "debian", strlen("debian")) == 0) { color = RED; titlecolor = RED; + logosize = 18; LOGO[0] = WHITE " _,met$$$$$gg. " RESET; LOGO[1] = WHITE " ,g$$$$$$$$$$$$$$$P. " RESET; @@ -185,6 +191,7 @@ void getDistro(const char *distroname) { } else if (strncmp((char *)distroname, "devuan", strlen("devuan")) == 0) { color = MAGENTA; titlecolor = MAGENTA; + logosize = 16; LOGO[0] = MAGENTA " ..,,;;;::;,.. " RESET; LOGO[1] = MAGENTA " `':ddd;:,. " RESET; @@ -212,6 +219,7 @@ void getDistro(const char *distroname) { } else if (strncmp((char *)distroname, "gentoo", strlen("gentoo")) == 0) { color = MAGENTA; titlecolor = MAGENTA; + logosize = 19; LOGO[0] = MAGENTA " -/oyddmdhs+:. " RESET; LOGO[1] = MAGENTA " -o" WHITE "dNMMMMMMMMNNmhy+" MAGENTA "-` " RESET; @@ -251,6 +259,7 @@ void getDistro(const char *distroname) { ) { color = GREEN; titlecolor = GREEN; + logosize = 18; LOGO[0] = GREEN " /\\ " RESET; LOGO[1] = GREEN " / \\ " RESET; @@ -287,6 +296,7 @@ void getDistro(const char *distroname) { } else if (strncmp((char *)distroname, "void", strlen("void")) == 0) { color = WHITE; titlecolor = GREEN; + logosize = 19; LOGO[0] = GREEN " __.;=====;.__ " RESET; LOGO[1] = GREEN " _.=+==++=++=+=+===;. " RESET; @@ -321,6 +331,7 @@ void getDistro(const char *distroname) { } else { color = WHITE; titlecolor = WHITE; + logosize = 13; LOGO[0] = GREY " ##### " RESET; LOGO[1] = GREY " ####### " RESET; diff --git a/src/logo/linux.h b/src/logo/linux.h index 358c6f8..a92f639 100644 --- a/src/logo/linux.h +++ b/src/logo/linux.h @@ -9,6 +9,7 @@ extern char *LOGO[23]; extern char *LOGO_SMALL[23]; extern const char *color; extern const char *titlecolor; +extern size_t logosize; void getDistro(const char *distroname); diff --git a/src/logo/netbsd.c b/src/logo/netbsd.c index b3c5f92..0a8d81c 100644 --- a/src/logo/netbsd.c +++ b/src/logo/netbsd.c @@ -7,6 +7,7 @@ char *LOGO[23]; char *LOGO_SMALL[23]; const char *color; const char *titlecolor; +size_t logosize = 18; void getOS() { color = MAGENTA; diff --git a/src/logo/netbsd.h b/src/logo/netbsd.h index 41a3cfe..7728899 100644 --- a/src/logo/netbsd.h +++ b/src/logo/netbsd.h @@ -2,12 +2,14 @@ #ifndef LOGO_NETBSD_H #define LOGO_NETBSD_H +#include #include "colors.h" extern char *LOGO[23]; extern char *LOGO_SMALL[23]; extern const char *color; extern const char *titlecolor; +extern size_t logosize; void getOS(); diff --git a/src/logo/openbsd.c b/src/logo/openbsd.c index b37dadd..ebc44f2 100644 --- a/src/logo/openbsd.c +++ b/src/logo/openbsd.c @@ -7,6 +7,7 @@ char *LOGO[23]; char *LOGO_SMALL[23]; const char *color; const char *titlecolor; +size_t logosize = 23; void getOS() { color = YELLOW; diff --git a/src/logo/openbsd.h b/src/logo/openbsd.h index 65a97a1..2e6e205 100644 --- a/src/logo/openbsd.h +++ b/src/logo/openbsd.h @@ -8,6 +8,7 @@ extern char *LOGO[23]; extern char *LOGO_SMALL[23]; extern const char *color; extern const char *titlecolor; +extern size_t logosize; void getOS(); diff --git a/src/logo/openindiana.c b/src/logo/openindiana.c index 8fbc6ba..1e8a811 100644 --- a/src/logo/openindiana.c +++ b/src/logo/openindiana.c @@ -7,6 +7,7 @@ char *LOGO[23]; char *LOGO_SMALL[23]; const char *color; const char *titlecolor; +size_t logosize = 17; void getOS() { color = BLUE; diff --git a/src/logo/openindiana.h b/src/logo/openindiana.h index 0c03fa7..95e8b9e 100644 --- a/src/logo/openindiana.h +++ b/src/logo/openindiana.h @@ -8,6 +8,7 @@ extern char *LOGO[23]; extern char *LOGO_SMALL[23]; extern const char *color; extern const char *titlecolor; +extern size_t logosize; void getOS();