]> git.pld-linux.org Git - packages/fbterm.git/blob - fbterm-256_colors.patch
- added support for 256 colors
[packages/fbterm.git] / fbterm-256_colors.patch
1 diff -Nru fbterm-1.2/src/fbshell.cpp fbterm-1.2.new/src/fbshell.cpp
2 --- fbterm-1.2/src/fbshell.cpp  2008-10-12 11:50:02.000000000 +0200
3 +++ fbterm-1.2.new/src/fbshell.cpp      2008-12-16 15:05:03.000000000 +0100
4 @@ -32,22 +32,270 @@
5  #define screen (Screen::instance())
6  
7  static const Color defaultPalette[NR_COLORS] = {
8 -       { 0,    0,              0 },
9 -       { 0,    0,              0xaa },
10 -       { 0,    0xaa,   0 },
11 -       { 0,    0x55,   0xaa },
12 -       { 0xaa, 0,              0 },
13 -       { 0xaa, 0,              0xaa },
14 -       { 0xaa, 0xaa,   0 },
15 -       { 0xaa, 0xaa,   0xaa },
16 -       { 0x55, 0x55,   0x55 },
17 -       { 0x55, 0x55,   0xff },
18 -       { 0x55, 0xff,   0x55 },
19 -       { 0x55, 0xff,   0xff },
20 -       { 0xff, 0x55,   0x55 },
21 -       { 0xff, 0x55,   0xff },
22 -       { 0xff, 0xff,   0x55 },
23 -       { 0xff, 0xff,   0xff },
24 +       {0x00, 0x00, 0x00}, /* 0 */
25 +       {0xaa, 0x00, 0x00}, /* 1 */
26 +       {0x00, 0xaa, 0x00}, /* 2 */
27 +       {0xaa, 0x55, 0x00}, /* 3 */
28 +       {0x00, 0x00, 0xaa}, /* 4 */
29 +       {0xaa, 0x00, 0xaa}, /* 5 */
30 +       {0x00, 0xaa, 0xaa}, /* 6 */
31 +       {0xaa, 0xaa, 0xaa}, /* 7 */
32 +       {0x55, 0x55, 0x55}, /* 8 */
33 +       {0xff, 0x55, 0x55}, /* 9 */
34 +       {0x55, 0xff, 0x55}, /* 10 */
35 +       {0xff, 0xff, 0x55}, /* 11 */
36 +       {0x55, 0x55, 0xff}, /* 12 */
37 +       {0xff, 0x55, 0xff}, /* 13 */
38 +       {0x55, 0xff, 0xff}, /* 14 */
39 +       {0xff, 0xff, 0xff}, /* 15 */
40 +
41 +       {0x00, 0x00, 0x00}, /* 16 */
42 +       {0x00, 0x00, 0x5f}, /* 17 */
43 +       {0x00, 0x00, 0x87}, /* 18 */
44 +       {0x00, 0x00, 0xaf}, /* 19 */
45 +       {0x00, 0x00, 0xd7}, /* 20 */
46 +       {0x00, 0x00, 0xff}, /* 21 */
47 +       {0x00, 0x5f, 0x00}, /* 22 */
48 +       {0x00, 0x5f, 0x5f}, /* 23 */
49 +       {0x00, 0x5f, 0x87}, /* 24 */
50 +       {0x00, 0x5f, 0xaf}, /* 25 */
51 +       {0x00, 0x5f, 0xd7}, /* 26 */
52 +       {0x00, 0x5f, 0xff}, /* 27 */
53 +       {0x00, 0x87, 0x00}, /* 28 */
54 +       {0x00, 0x87, 0x5f}, /* 29 */
55 +       {0x00, 0x87, 0x87}, /* 30 */
56 +       {0x00, 0x87, 0xaf}, /* 31 */
57 +       {0x00, 0x87, 0xd7}, /* 32 */
58 +       {0x00, 0x87, 0xff}, /* 33 */
59 +       {0x00, 0xaf, 0x00}, /* 34 */
60 +       {0x00, 0xaf, 0x5f}, /* 35 */
61 +       {0x00, 0xaf, 0x87}, /* 36 */
62 +       {0x00, 0xaf, 0xaf}, /* 37 */
63 +       {0x00, 0xaf, 0xd7}, /* 38 */
64 +       {0x00, 0xaf, 0xff}, /* 39 */
65 +       {0x00, 0xd7, 0x00}, /* 40 */
66 +       {0x00, 0xd7, 0x5f}, /* 41 */
67 +       {0x00, 0xd7, 0x87}, /* 42 */
68 +       {0x00, 0xd7, 0xaf}, /* 43 */
69 +       {0x00, 0xd7, 0xd7}, /* 44 */
70 +       {0x00, 0xd7, 0xff}, /* 45 */
71 +       {0x00, 0xff, 0x00}, /* 46 */
72 +       {0x00, 0xff, 0x5f}, /* 47 */
73 +       {0x00, 0xff, 0x87}, /* 48 */
74 +       {0x00, 0xff, 0xaf}, /* 49 */
75 +       {0x00, 0xff, 0xd7}, /* 50 */
76 +       {0x00, 0xff, 0xff}, /* 51 */
77 +
78 +       {0x5f, 0x00, 0x00}, /* 52 */
79 +       {0x5f, 0x00, 0x5f}, /* 53 */
80 +       {0x5f, 0x00, 0x87}, /* 54 */
81 +       {0x5f, 0x00, 0xaf}, /* 55 */
82 +       {0x5f, 0x00, 0xd7}, /* 56 */
83 +       {0x5f, 0x00, 0xff}, /* 57 */
84 +       {0x5f, 0x5f, 0x00}, /* 58 */
85 +       {0x5f, 0x5f, 0x5f}, /* 59 */
86 +       {0x5f, 0x5f, 0x87}, /* 60 */
87 +       {0x5f, 0x5f, 0xaf}, /* 61 */
88 +       {0x5f, 0x5f, 0xd7}, /* 62 */
89 +       {0x5f, 0x5f, 0xff}, /* 63 */
90 +       {0x5f, 0x87, 0x00}, /* 64 */
91 +       {0x5f, 0x87, 0x5f}, /* 65 */
92 +       {0x5f, 0x87, 0x87}, /* 66 */
93 +       {0x5f, 0x87, 0xaf}, /* 67 */
94 +       {0x5f, 0x87, 0xd7}, /* 68 */
95 +       {0x5f, 0x87, 0xff}, /* 69 */
96 +       {0x5f, 0xaf, 0x00}, /* 70 */
97 +       {0x5f, 0xaf, 0x5f}, /* 71 */
98 +       {0x5f, 0xaf, 0x87}, /* 72 */
99 +       {0x5f, 0xaf, 0xaf}, /* 73 */
100 +       {0x5f, 0xaf, 0xd7}, /* 74 */
101 +       {0x5f, 0xaf, 0xff}, /* 75 */
102 +       {0x5f, 0xd7, 0x00}, /* 76 */
103 +       {0x5f, 0xd7, 0x5f}, /* 77 */
104 +       {0x5f, 0xd7, 0x87}, /* 78 */
105 +       {0x5f, 0xd7, 0xaf}, /* 79 */
106 +       {0x5f, 0xd7, 0xd7}, /* 80 */
107 +       {0x5f, 0xd7, 0xff}, /* 81 */
108 +       {0x5f, 0xff, 0x00}, /* 82 */
109 +       {0x5f, 0xff, 0x5f}, /* 83 */
110 +       {0x5f, 0xff, 0x87}, /* 84 */
111 +       {0x5f, 0xff, 0xaf}, /* 85 */
112 +       {0x5f, 0xff, 0xd7}, /* 86 */
113 +       {0x5f, 0xff, 0xff}, /* 87 */
114 +
115 +       {0x87, 0x00, 0x00}, /* 88 */
116 +       {0x87, 0x00, 0x5f}, /* 89 */
117 +       {0x87, 0x00, 0x87}, /* 90 */
118 +       {0x87, 0x00, 0xaf}, /* 91 */
119 +       {0x87, 0x00, 0xd7}, /* 92 */
120 +       {0x87, 0x00, 0xff}, /* 93 */
121 +       {0x87, 0x5f, 0x00}, /* 94 */
122 +       {0x87, 0x5f, 0x5f}, /* 95 */
123 +       {0x87, 0x5f, 0x87}, /* 96 */
124 +       {0x87, 0x5f, 0xaf}, /* 97 */
125 +       {0x87, 0x5f, 0xd7}, /* 98 */
126 +       {0x87, 0x5f, 0xff}, /* 99 */
127 +       {0x87, 0x87, 0x00}, /* 100 */
128 +       {0x87, 0x87, 0x5f}, /* 101 */
129 +       {0x87, 0x87, 0x87}, /* 102 */
130 +       {0x87, 0x87, 0xaf}, /* 103 */
131 +       {0x87, 0x87, 0xd7}, /* 104 */
132 +       {0x87, 0x87, 0xff}, /* 105 */
133 +       {0x87, 0xaf, 0x00}, /* 106 */
134 +       {0x87, 0xaf, 0x5f}, /* 107 */
135 +       {0x87, 0xaf, 0x87}, /* 108 */
136 +       {0x87, 0xaf, 0xaf}, /* 109 */
137 +       {0x87, 0xaf, 0xd7}, /* 110 */
138 +       {0x87, 0xaf, 0xff}, /* 111 */
139 +       {0x87, 0xd7, 0x00}, /* 112 */
140 +       {0x87, 0xd7, 0x5f}, /* 113 */
141 +       {0x87, 0xd7, 0x87}, /* 114 */
142 +       {0x87, 0xd7, 0xaf}, /* 115 */
143 +       {0x87, 0xd7, 0xd7}, /* 116 */
144 +       {0x87, 0xd7, 0xff}, /* 117 */
145 +       {0x87, 0xff, 0x00}, /* 118 */
146 +       {0x87, 0xff, 0x5f}, /* 119 */
147 +       {0x87, 0xff, 0x87}, /* 120 */
148 +       {0x87, 0xff, 0xaf}, /* 121 */
149 +       {0x87, 0xff, 0xd7}, /* 122 */
150 +       {0x87, 0xff, 0xff}, /* 123 */
151 +
152 +       {0xaf, 0x00, 0x00}, /* 124 */
153 +       {0xaf, 0x00, 0x5f}, /* 125 */
154 +       {0xaf, 0x00, 0x87}, /* 126 */
155 +       {0xaf, 0x00, 0xaf}, /* 127 */
156 +       {0xaf, 0x00, 0xd7}, /* 128 */
157 +       {0xaf, 0x00, 0xff}, /* 129 */
158 +       {0xaf, 0x5f, 0x00}, /* 130 */
159 +       {0xaf, 0x5f, 0x5f}, /* 131 */
160 +       {0xaf, 0x5f, 0x87}, /* 132 */
161 +       {0xaf, 0x5f, 0xaf}, /* 133 */
162 +       {0xaf, 0x5f, 0xd7}, /* 134 */
163 +       {0xaf, 0x5f, 0xff}, /* 135 */
164 +       {0xaf, 0x87, 0x00}, /* 136 */
165 +       {0xaf, 0x87, 0x5f}, /* 137 */
166 +       {0xaf, 0x87, 0x87}, /* 138 */
167 +       {0xaf, 0x87, 0xaf}, /* 139 */
168 +       {0xaf, 0x87, 0xd7}, /* 140 */
169 +       {0xaf, 0x87, 0xff}, /* 141 */
170 +       {0xaf, 0xaf, 0x00}, /* 142 */
171 +       {0xaf, 0xaf, 0x5f}, /* 143 */
172 +       {0xaf, 0xaf, 0x87}, /* 144 */
173 +       {0xaf, 0xaf, 0xaf}, /* 145 */
174 +       {0xaf, 0xaf, 0xd7}, /* 146 */
175 +       {0xaf, 0xaf, 0xff}, /* 147 */
176 +       {0xaf, 0xd7, 0x00}, /* 148 */
177 +       {0xaf, 0xd7, 0x5f}, /* 149 */
178 +       {0xaf, 0xd7, 0x87}, /* 150 */
179 +       {0xaf, 0xd7, 0xaf}, /* 151 */
180 +       {0xaf, 0xd7, 0xd7}, /* 152 */
181 +       {0xaf, 0xd7, 0xff}, /* 153 */
182 +       {0xaf, 0xff, 0x00}, /* 154 */
183 +       {0xaf, 0xff, 0x5f}, /* 155 */
184 +       {0xaf, 0xff, 0x87}, /* 156 */
185 +       {0xaf, 0xff, 0xaf}, /* 157 */
186 +       {0xaf, 0xff, 0xd7}, /* 158 */
187 +       {0xaf, 0xff, 0xff}, /* 159 */
188 +
189 +       {0xd7, 0x00, 0x00}, /* 160 */
190 +       {0xd7, 0x00, 0x5f}, /* 161 */
191 +       {0xd7, 0x00, 0x87}, /* 162 */
192 +       {0xd7, 0x00, 0xaf}, /* 163 */
193 +       {0xd7, 0x00, 0xd7}, /* 164 */
194 +       {0xd7, 0x00, 0xff}, /* 165 */
195 +       {0xd7, 0x5f, 0x00}, /* 166 */
196 +       {0xd7, 0x5f, 0x5f}, /* 167 */
197 +       {0xd7, 0x5f, 0x87}, /* 168 */
198 +       {0xd7, 0x5f, 0xaf}, /* 169 */
199 +       {0xd7, 0x5f, 0xd7}, /* 170 */
200 +       {0xd7, 0x5f, 0xff}, /* 171 */
201 +       {0xd7, 0x87, 0x00}, /* 172 */
202 +       {0xd7, 0x87, 0x5f}, /* 173 */
203 +       {0xd7, 0x87, 0x87}, /* 174 */
204 +       {0xd7, 0x87, 0xaf}, /* 175 */
205 +       {0xd7, 0x87, 0xd7}, /* 176 */
206 +       {0xd7, 0x87, 0xff}, /* 177 */
207 +       {0xd7, 0xaf, 0x00}, /* 178 */
208 +       {0xd7, 0xaf, 0x5f}, /* 179 */
209 +       {0xd7, 0xaf, 0x87}, /* 180 */
210 +       {0xd7, 0xaf, 0xaf}, /* 181 */
211 +       {0xd7, 0xaf, 0xd7}, /* 182 */
212 +       {0xd7, 0xaf, 0xff}, /* 183 */
213 +       {0xd7, 0xd7, 0x00}, /* 184 */
214 +       {0xd7, 0xd7, 0x5f}, /* 185 */
215 +       {0xd7, 0xd7, 0x87}, /* 186 */
216 +       {0xd7, 0xd7, 0xaf}, /* 187 */
217 +       {0xd7, 0xd7, 0xd7}, /* 188 */
218 +       {0xd7, 0xd7, 0xff}, /* 189 */
219 +       {0xd7, 0xff, 0x00}, /* 190 */
220 +       {0xd7, 0xff, 0x5f}, /* 191 */
221 +       {0xd7, 0xff, 0x87}, /* 192 */
222 +       {0xd7, 0xff, 0xaf}, /* 193 */
223 +       {0xd7, 0xff, 0xd7}, /* 194 */
224 +       {0xd7, 0xff, 0xff}, /* 195 */
225 +
226 +       {0xff, 0x00, 0x00}, /* 196 */
227 +       {0xff, 0x00, 0x5f}, /* 197 */
228 +       {0xff, 0x00, 0x87}, /* 198 */
229 +       {0xff, 0x00, 0xaf}, /* 199 */
230 +       {0xff, 0x00, 0xd7}, /* 200 */
231 +       {0xff, 0x00, 0xff}, /* 201 */
232 +       {0xff, 0x5f, 0x00}, /* 202 */
233 +       {0xff, 0x5f, 0x5f}, /* 203 */
234 +       {0xff, 0x5f, 0x87}, /* 204 */
235 +       {0xff, 0x5f, 0xaf}, /* 205 */
236 +       {0xff, 0x5f, 0xd7}, /* 206 */
237 +       {0xff, 0x5f, 0xff}, /* 207 */
238 +       {0xff, 0x87, 0x00}, /* 208 */
239 +       {0xff, 0x87, 0x5f}, /* 209 */
240 +       {0xff, 0x87, 0x87}, /* 210 */
241 +       {0xff, 0x87, 0xaf}, /* 211 */
242 +       {0xff, 0x87, 0xd7}, /* 212 */
243 +       {0xff, 0x87, 0xff}, /* 213 */
244 +       {0xff, 0xaf, 0x00}, /* 214 */
245 +       {0xff, 0xaf, 0x5f}, /* 215 */
246 +       {0xff, 0xaf, 0x87}, /* 216 */
247 +       {0xff, 0xaf, 0xaf}, /* 217 */
248 +       {0xff, 0xaf, 0xd7}, /* 218 */
249 +       {0xff, 0xaf, 0xff}, /* 219 */
250 +       {0xff, 0xd7, 0x00}, /* 220 */
251 +       {0xff, 0xd7, 0x5f}, /* 221 */
252 +       {0xff, 0xd7, 0x87}, /* 222 */
253 +       {0xff, 0xd7, 0xaf}, /* 223 */
254 +       {0xff, 0xd7, 0xd7}, /* 224 */
255 +       {0xff, 0xd7, 0xff}, /* 225 */
256 +       {0xff, 0xff, 0x00}, /* 226 */
257 +       {0xff, 0xff, 0x5f}, /* 227 */
258 +       {0xff, 0xff, 0x87}, /* 228 */
259 +       {0xff, 0xff, 0xaf}, /* 229 */
260 +       {0xff, 0xff, 0xd7}, /* 230 */
261 +       {0xff, 0xff, 0xff}, /* 231 */
262 +
263 +       {0x08, 0x08, 0x08}, /* 232 */
264 +       {0x12, 0x12, 0x12}, /* 233 */
265 +       {0x1c, 0x1c, 0x1c}, /* 234 */
266 +       {0x26, 0x26, 0x26}, /* 235 */
267 +       {0x30, 0x30, 0x30}, /* 236 */
268 +       {0x3a, 0x3a, 0x3a}, /* 237 */
269 +       {0x44, 0x44, 0x44}, /* 238 */
270 +       {0x4e, 0x4e, 0x4e}, /* 239 */
271 +       {0x58, 0x58, 0x58}, /* 240 */
272 +       {0x62, 0x62, 0x62}, /* 241 */
273 +       {0x6c, 0x6c, 0x6c}, /* 242 */
274 +       {0x76, 0x76, 0x76}, /* 243 */
275 +       {0x80, 0x80, 0x80}, /* 244 */
276 +       {0x8a, 0x8a, 0x8a}, /* 245 */
277 +       {0x94, 0x94, 0x94}, /* 246 */
278 +       {0x9e, 0x9e, 0x9e}, /* 247 */
279 +       {0xa8, 0xa8, 0xa8}, /* 248 */
280 +       {0xb2, 0xb2, 0xb2}, /* 249 */
281 +       {0xbc, 0xbc, 0xbc}, /* 250 */
282 +       {0xc6, 0xc6, 0xc6}, /* 251 */
283 +       {0xd0, 0xd0, 0xd0}, /* 252 */
284 +       {0xda, 0xda, 0xda}, /* 253 */
285 +       {0xe4, 0xe4, 0xe4}, /* 254 */
286 +       {0xee, 0xee, 0xee}, /* 255 */
287 +
288  };
289  
290  u16 VTerm::init_history_lines()
291 diff -Nru fbterm-1.2/src/fbshell.h fbterm-1.2.new/src/fbshell.h
292 --- fbterm-1.2/src/fbshell.h    2008-10-12 11:50:02.000000000 +0200
293 +++ fbterm-1.2.new/src/fbshell.h        2008-12-16 14:57:08.000000000 +0100
294 @@ -23,10 +23,10 @@
295  #include "instance.h"
296  #include "shell.h"
297  
298 -#define NR_COLORS 16
299 +#define NR_COLORS 256
300  
301  struct Color {
302 -       u8 blue, green, red;
303 +       u8 red, green, blue;
304  };
305         
306  class FbShell : public Shell {
307 diff -Nru fbterm-1.2/src/lib/vterm_action.cpp fbterm-1.2.new/src/lib/vterm_action.cpp
308 --- fbterm-1.2/src/lib/vterm_action.cpp 2008-10-12 11:50:02.000000000 +0200
309 +++ fbterm-1.2.new/src/lib/vterm_action.cpp     2008-12-16 14:28:19.000000000 +0100
310 @@ -466,9 +466,43 @@
311         enable_mode(false);
312  }
313  
314 +
315  void VTerm::set_display_attr()
316  {
317 +       enum mode_256 {
318 +               MODE_256_NORMAL,
319 +               MODE_256_WAS_FOREGROUND_38,
320 +               MODE_256_WAS_FOREGROUND_5,
321 +               MODE_256_WAS_BACKGROUND_48,
322 +               MODE_256_WAS_BACKGROUND_5
323 +       };
324 +       mode_256 mode = MODE_256_NORMAL;
325 +       bool tmp_underline;
326 +       int tmp_fcolor;
327 +
328         for (s32 n = 0; n <= npar; n++) {
329 +               if (mode == MODE_256_WAS_FOREGROUND_5) {
330 +                       char_attr.fcolor = param[n];
331 +                       mode = MODE_256_NORMAL;
332 +                       continue;
333 +               }
334 +               if (mode == MODE_256_WAS_BACKGROUND_5) {
335 +                       char_attr.bcolor = param[n];
336 +                       mode = MODE_256_NORMAL;
337 +                       continue;
338 +               }
339 +               if (param[n] == 5 && mode != MODE_256_NORMAL) {
340 +                       if (mode == MODE_256_WAS_FOREGROUND_38) {
341 +                               char_attr.fcolor = tmp_fcolor;
342 +                               char_attr.underline = tmp_underline;
343 +                               mode = MODE_256_WAS_FOREGROUND_5;
344 +                       } else if (mode == MODE_256_WAS_BACKGROUND_48) {
345 +                               mode = MODE_256_WAS_BACKGROUND_5;
346 +                       }
347 +                       continue;
348 +               }
349 +               mode = MODE_256_NORMAL;
350 +
351                 switch (param[n]) {
352                 case 0:
353                         char_attr = default_char_attr;
354 @@ -523,8 +557,11 @@
355                         char_attr.fcolor = param[n] % 10;
356                         break;
357                 case 38:
358 +                       tmp_fcolor = char_attr.fcolor;
359 +                       tmp_underline = char_attr.underline;
360                         char_attr.fcolor = default_fcolor;
361                         char_attr.underline = true;
362 +                       mode = MODE_256_WAS_FOREGROUND_38;
363                         break;
364                 case 39:
365                         char_attr.fcolor = default_fcolor;
366 @@ -533,6 +570,9 @@
367                 case 40 ... 47:
368                         char_attr.bcolor = param[n] % 10;
369                         break;
370 +               case 48:
371 +                       mode = MODE_256_WAS_BACKGROUND_48;
372 +                       break;
373                 case 49:
374                         char_attr.bcolor = default_bcolor;
375                         break;
376 diff -Nru fbterm-1.2/src/lib/vterm.h fbterm-1.2.new/src/lib/vterm.h
377 --- fbterm-1.2/src/lib/vterm.h  2008-10-12 11:50:02.000000000 +0200
378 +++ fbterm-1.2.new/src/lib/vterm.h      2008-12-16 14:23:50.000000000 +0100
379 @@ -39,8 +39,8 @@
380                                 || italic != a.italic || underline != a.underline || blink != a.blink || reverse != a.reverse;
381                 }
382  
383 -               s32 fcolor : 5; // -1 = default
384 -               s32 bcolor : 5; // -1 = default
385 +               s32 fcolor : 9; // -1 = default
386 +               s32 bcolor : 9; // -1 = default
387                 u32 intensity : 2; // 0 = half-bright, 1 = normal, 2 = bold
388                 u32 italic : 1;
389                 u32 underline : 1;
This page took 0.110864 seconds and 3 git commands to generate.