#ifndef SHARED_H #define SHARED_H #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" typedef uint8_t bool; #define true 1 #define false 0 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]); void print_file_path(char* path); #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(void); FILE* get_tty_stream(char* type); char* get_path_buffer(void); int push_path_buffer(const char* string); void pop_path_buffer(int i); char* get_path_buffer_2(void); int push_path_buffer_2(const char* string); void pop_path_buffer_2(int i); bool is_dot_dir(const char* path); #endif