-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprinters.c
More file actions
executable file
·128 lines (115 loc) · 3.46 KB
/
Copy pathprinters.c
File metadata and controls
executable file
·128 lines (115 loc) · 3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "printers.h"
int isTrueColor = 0;
int colmap(int color){ //{{{
if(isTrueColor){
switch(color){
case -1: return 0x1e1e2e; // default background
case -2: return 0xcdd6f4; // default text color
case -3: return 0x313244; // secondary background
case -4: return 0x13131e; // mute over background
case -5: return 0xb7bdf8; // mute over background
case -10: return 0xa6e3a1; // Pound sign for commands
case -11: return 0x89b4fa; // the literal "curl" text
case -12: return 0xfab387; // the domain
case -13: return 0xf38ba8; // the subdomain
case -20: return 0xf38ba8;
case -21: return 0xffffff;
case -22: return 0xffd9f6;
case -23: return 0xa6e3a1;
case -24: return 0x89dceb;
case -25: return 0xcba6f7;
case -26: return 0x2e2e3e;
case -27: return 0x89b4fa;
case -30: case -40: return 0x000000;
case -31: case -41: return 0xFF0000;
case -32: case -42: return 0x00FF00;
case -33: case -43: return 0xFFFF00;
case -34: case -44: return 0x0000FF;
case -35: case -45: return 0xFF00FF;
case -36: case -46: return 0x00FFFF;
case -37: case -47: return 0xCCCCCC;
case -90: case -100: return 0x888888;
case -91: case -101: return 0xFF8888;
case -92: case -102: return 0x88FF88;
case -93: case -103: return 0xFFFF88;
case -94: case -104: return 0x8888FF;
case -95: case -105: return 0xFF88FF;
case -96: case -106: return 0x88FFFF;
case -97: case -107: return 0xFFFFFF;
default: return 0xffffff;
}
}else{
color = -color;
if((color >= 30 && color <= 37)||(color >= 40 && color <= 47)||(color >= 90 && color <= 97)||(color >= 100 && color <= 107))
return color;
color = -color;
switch(color){
case -3:
case -1: return 40;
case -2: return 97;
case -4: return 90;
case -5: return 91;
case -10: return 32; // Pound sign for commands
case -11: return 94; // the literal "curl" text
case -12: return 93; // the domain
case -13: return 95; // the subdomain
case -20: return 95;
case -21: return 97;
case -22: return 91;
case -23: return 92;
case -24: return 94;
case -25: return 96;
case -26: return 90;
case -27: return 96;
default: return 107;
}
}
return 0;
} //}}}
void ansi(int posX, int posY, int bg, int fg, char * output){ //{{{
if(isTrueColor)
truc(posX, posY, bg, fg, output);
else
dots(posX, posY, bg, fg, output);
} //}}}
void truc(int posX, int posY, int bg, int fg, char * output){ //{{{
if(strlen(output)>=BUFFER){
printf("\x1b[1;1H\x1b[107;40mOverflowing\n");
return;
}
if(bg > 0xFFFFFF)
bg=0xFFFFFF;
if(fg > 0xFFFFFF)
fg=0xFFFFFF;
if(bg < 0)
bg = colmap(bg);
if(fg < 0){
fg = colmap(fg);
}
char * oup;
oup = malloc(BUFFER);
memset(oup, 0, BUFFER);
if(bg > -1)
sprintf(oup, "\x1b[%i;%iH\x1b[38;2;%i;%i;%i;48;2;%i;%i;%im%s\x1b[0m\n", posY, posX, fg/0x10000, (fg/0x100)%0x100, fg%0x100, bg/0x10000, (bg/0x100)%0x100, bg%0x100, output);
printf("%s", oup);
free(oup);
} //}}}
void dots(int posX, int posY, int bg, int fg, char * output){ //{{{
if(strlen(output)>=BUFFER){
printf("\x1b[1;1H\x1b[107;40mOverflowing\n");
return;
}
if(bg < 0)
bg = colmap(bg);
if(fg < 0)
fg = colmap(fg);
char * oup;
oup = malloc(BUFFER);
memset(oup, 0, BUFFER);
sprintf(oup, "\x1b[%i;%iH\x1b[%i;%im%s\x1b[0m\n", posY, posX, fg, bg, output);
printf("%s", oup);
free(oup);
} //}}}