#pragma once #include #include #include #include #define ANSCII "\x1b[" #define NEXT ";" #define RESET "0" #define BOLD "1" #define NORMAL "3" #define BACKGROUND "4" #define HIGHLIGHT "9" #define BLACK "0" #define RED "1" #define GREEN "2" #define YELLOW "3" #define BLUE "4" #define MAGENTA "5" #define TURQUOISE "6" #define WHITE "7" #define COLOR "m" enum When { YES, NO, AUTO }; __attribute__ ((__format__(printf, 1, 2))) void error_s(const char* format, ...); __attribute__ ((__format__(printf, 1, 2))) void error(const char* format, ...); __attribute__ ((__format__(printf, 1, 2))) void output(const char* format, ...); FILE* get_file_s(const char* path, const char* type); FILE* get_file(const char* path, const char* type); long int get_number(const char* text); long int get_blkm(const char* text); mode_t get_mode(const char* next); bool streql(const char* a, const char* b); bool prefix(const char* pre, const char* str); void print_file_size(size_t bytes, char buf[5]); void print_date_time(time_t mills, char buf[13]); #define UNUSED(x) (void)(x) #define ARG_UNUSED 0 #define ARG_USED 1 #define ARG_IGNORE 2 #define ARG_INVALID 3 void check_arg (char* arg); void global_help(void (*help)(void)); void parse_help (int argc, char** argv, void (*help)(void)); int parse_args (int argc, char** argv, void (*help)(void), int (*short_arg)(char, char*), int (*long_arg)(char*, char*)); int get_tty(); FILE* get_tty_stream(char* type); char* get_path_buffer(); int push_path_buffer(const char* string); void pop_path_buffer(int i); char* get_path_buffer_2(); int push_path_buffer_2(const char* string); void pop_path_buffer_2(int i); bool is_dot_dir(const char* path);