From 56378b20f42b3dfb64c626f0bd7c7f59d0fffa50 Mon Sep 17 00:00:00 2001 From: Anser Date: Thu, 23 Jul 2026 23:40:23 +0200 Subject: some basic logos --- src/cfetch.c | 2 ++ src/logo/logo.c | 73 +++++++++++++++++++++++++++++++++++++++++++++ src/logo/logo.h | 6 ++++ src/modules/memory/memory.c | 2 +- 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/logo/logo.c create mode 100644 src/logo/logo.h (limited to 'src') diff --git a/src/cfetch.c b/src/cfetch.c index 5870985..596e44b 100644 --- a/src/cfetch.c +++ b/src/cfetch.c @@ -1,10 +1,12 @@ #include "modules/os/os.h" #include "modules/memory/memory.h" #include "modules/cpu/cpu.h" +#include "logo/logo.h" int main(void) { os(); memory(); cpu(); + print_logo(); return 0; } diff --git a/src/logo/logo.c b/src/logo/logo.c new file mode 100644 index 0000000..749b999 --- /dev/null +++ b/src/logo/logo.c @@ -0,0 +1,73 @@ +#include "logo.h" +#include +#include +#include + +#define MAX_LOGOS 2 + +const char **logo(int index) { + + static const char *logo0[] = { +" _____________", +" / \\", +" | ☆ ☆ ☆ |", +" | ☆ ☭ ☆ |", +" | ☆ ☆ ☆ |", +" \\_____________/", +" Рабочие мира, объединяйтесь!", + NULL + }; + + + static const char *logo1[] = { +" ╔═══════════════════╗", +" ║ ║", +" ║ ☭ C C C P ☭ ║", +" ║ ║", +" ╚═══════════════════╝", +" Власть — Советам!", + NULL + }; + + if (index < 0 || index >= MAX_LOGOS) return NULL; + + switch (index) { + case 0: + return logo0; + case 1: + return logo1; + default: + return NULL; + } +} + +int get_line_length(const char **line) { + size_t length = 0; + size_t max_length = 0; + + if (line == NULL) return -1; + for (int i = 0; line[i] != NULL; i++) { + length = strlen(line[i]); + + if (length > max_length) { + max_length = length; + } + } + return max_length; +} + +void print_logo(void) { + int length = 0; + + for (int i = 0; i < MAX_LOGOS; i++) { + const char **lines = logo(i); + if (lines == NULL) continue; + + length = get_line_length(lines); + + for (int j = 0; lines[j] != NULL ; j++) { + printf("%s\n", lines[j]); + } + printf("%d\n", length); + } +} diff --git a/src/logo/logo.h b/src/logo/logo.h new file mode 100644 index 0000000..fc55db6 --- /dev/null +++ b/src/logo/logo.h @@ -0,0 +1,6 @@ +#ifndef LOGO_H +#define LOGO_H + +void print_logo(void); + +#endif //LOGO_H diff --git a/src/modules/memory/memory.c b/src/modules/memory/memory.c index 988e233..211cf44 100644 --- a/src/modules/memory/memory.c +++ b/src/modules/memory/memory.c @@ -5,7 +5,7 @@ int memory(void) { FILE *file = fopen("/proc/meminfo", "r"); if (!file) { - perror("fopen"); + perror("Error fopen meminfo"); return 1; } -- cgit v1.2.3