This commit is contained in:
randogoth 2026-08-31 16:01:14 +03:00
commit 19991bee2a
44 changed files with 4799 additions and 0 deletions

71
include/pastfetch.h Normal file
View file

@ -0,0 +1,71 @@
#ifndef pastfetch_H
#define pastfetch_H
#include <stddef.h>
#define MAX_FLAVOR_LEN 32
typedef struct {
char dos_flavor[MAX_FLAVOR_LEN];
unsigned char dos_major;
unsigned char dos_minor;
unsigned char dos_revision;
unsigned char dos_flags;
char shell[64];
char computer_model[64];
char cpu[64];
unsigned int conventional_kb;
unsigned long extended_kb; // 16-bit int caps at 64 MB
unsigned long disk_total_bytes;
unsigned long disk_free_bytes;
char display_mode[64];
char display_adapter[64];
char display_vbe[64];
char palette_info[256];
char ver_string[80];
char logo_hint[32];
int ansi_available;
} SystemInfo;
// Growable array of owned strings; see src/util.
typedef struct {
char **items;
size_t count;
size_t capacity;
} StringList;
typedef struct {
int no_logo;
char logo_override[32];
int list_only;
int prompt_fix;
int force_ascii;
int hard_exit;
} RunOptions;
// util.c -- string helpers (all tolerate NULL)
void str_copy(char *dest, size_t dest_len, const char *src);
int str_equals_ci(const char *a, const char *b);
int str_equals_ci_n(const char *a, const char *b, size_t len);
int str_starts_ci(const char *text, const char *prefix);
int str_ends_ci(const char *text, const char *suffix);
const char *str_find_ci(const char *text, const char *needle);
int str_has_ci(const char *text, const char *needle);
// util.c -- StringList
void strlist_init(StringList *list);
int strlist_add(StringList *list, const char *value);
int strlist_addn(StringList *list, const char *value, size_t len);
int strlist_adopt(StringList *list, char *owned);
void strlist_remove(StringList *list, size_t index);
void strlist_free(StringList *list);
// detect.c
void detect_system(SystemInfo *info, StringList *drivers);
// render.c
void render_system(const SystemInfo *info, const StringList *drivers, const RunOptions *options);
void list_available_logos(void);
int logo_name_exists(const char *name, char *normalized, size_t normalized_len);
#endif // pastfetch_H