/* cfetch is my try to implement a neofetch/fastfetch/commiefetch clone in C. * Copyright (C) 2026 Anser * * cfetch is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * * cfetch is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef CFETCH_H #define CFETCH_H #include #include #include #define MAX_ASCII_LINES 50 #define MAX_ASCII_WIDTH 256 /* System information structure */ struct system_info_t { char user[64]; char kernel[128]; char distro[128]; char memory[64]; char cpu[64]; char debug; short ascii_art; }; struct ascii_art_t { char lines[MAX_ASCII_LINES][MAX_ASCII_WIDTH]; }; struct ascii_mapping_t { const char *ascii_pattern; const char *ascii_file; }; /* System info functions */ void print_ascii_art(struct system_info_t *info); void get_cpu(struct system_info_t *info); void get_memory(struct system_info_t *info); void get_kernel(struct system_info_t *info); void get_os_release(struct system_info_t *info); void get_line_length(struct ascii_art_t *ascii, const char **line); void print_system_info(struct system_info_t *info); void parse_args(int argc, char** argv); void print_help(); /* Util functions */ char *string_format(char *string); char *concat(const char *str1, const char *str2); char *trim_whitespace(char *str); #endif /* CFETCH_H */