Something went wrong. Try again.
a less like pager but for fun
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#ifndef KK_SHARED_H_#define KK_SHARED_H_
#include <stdlib.h>#include <stdbool.h>
#define FATAL(...) do { fprintf(stderr, "[at %s:%d @ %s] fatal: ", __FILE__, __LINE__, __func__); fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); exit(1); } while(0);#define UNREACHABLE(...) do { fprintf(stderr, "[at %s:%d @ %s] unreachable: ", __FILE__, __LINE__, __func__); fprintf(stderr, __VA_ARGS__); fputc('\n', stderr); exit(1); } while(0);
#define ENV_OPTS "KKOPTS"#define ENV_SHELL_LINES "KK_SHELL_LINES"
#define ENV_COLUMNS "COLUMNS"#define ENV_LINES "LINES"#define ENV_KK_COLUMNS "KK_COLUMNS"#define ENV_KK_LINES "KK_LINES"
#define ENV_TMP_DIR "KK_TMP_DIR"#define ENV_HELP_FILE "KK_HELP_FILE"
typedef struct { char *file; // filename bool parse_ansi; // bool line_numbers; // display line numbers bool small_paging; // bool git_mode; // bool force; // read block devices etc enum relpos { // ... BEFORE, // ... AFTER // ... } line_padding; // which way to pad the line numbers char sep; // line seperator int tabsize; //} flags;
#define DEFAULTS(FLAG) do { \ FLAG->parse_ansi = false; \ FLAG->line_numbers = false; \ FLAG->small_paging = false; \ FLAG->git_mode = false; \ FLAG->force = false; \ FLAG->line_padding = 0; \ FLAG->sep = '\n'; \ FLAG->tabsize = 8; \} while(0);
#endif