#ifndef MOROZ_H
#define MOROZ_H

#define MOROZ_VER "0.4"

#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <termios.h>
#include <stdbool.h>

#include "config.h"

#define TXT_RESET "\033[0m"  /* Сброс всех стилей */

#define TXT_BOLD      "\033[1m"  /* Жирный или же Яркий */
#define TXT_DIM       "\033[2m"  /* Тусклый */
#define TXT_ITALIC    "\033[3m"  /* Курсив */
#define TXT_UNDERLINE "\033[4m"  /* Подчёркнутый */
#define TXT_BLINK     "\033[5m"  /* Мигающий */
#define TXT_REVERSE   "\033[7m"  /* Инверсия */
#define TXT_HIDDEN    "\033[8m"  /* Скрытый */
#define TXT_STRIKE    "\033[9m"  /* Перечёркнутый */

#define TXT_RED     "\033[0;31m" /* Красный */
#define TXT_GREEN   "\033[0;32m" /* Зеленный */
#define TXT_YELLOW  "\033[0;33m" /* Желтый */
#define TXT_BLUE    "\033[0;34m" /* Синий */
#define TXT_PURPLE  "\033[0;35m" /* Фиолетовый */
#define TXT_CYAN    "\033[0;36m" /* Сине-зеленый */
#define TXT_WHITE   "\033[0;37m" /* Белый */

#define TXT_BG_RED     "\033[41m" /* Фоновый красный */
#define TXT_BG_GREEN   "\033[42m" /* Фоновый зеленный */
#define TXT_BG_YELLOW  "\033[43m" /* Фоновый желтый */
#define TXT_BG_BLUE    "\033[44m" /* Фоновый синий */
#define TXT_BG_PURPLE  "\033[45m" /* Фоновый фиолетовый */
#define TXT_BG_CYAN    "\033[46m" /* Фоновый сине-зеленый */
#define TXT_BG_WHITE   "\033[47m" /* Фоновый белый */

#define prt(stream, ...) fprintf(stream, __VA_ARGS__)

void MRZ_CFILE(const char *filename);
#define MRZ_CFILE(filename) MRZ_CFILE(filename)

void MRZ_CDIR(const char *dirname);
#define MRZ_CDIR(dirname) MRZ_CDIR(dirname)

char *MRZ_RFILE(const char *path, const char *tag);

#endif
