- Timestamp:
- May 5, 2006, 7:08:51 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/cucul/export.c
r925 r926 300 300 unsigned int x, y; 301 301 302 /* 23 bytes assumed for max length per pixel ('\e[5;1;3x;4y;9x;10ym' plus 303 * 4 max bytes for a UTF-8 character). 302 uint8_t prevfg = -1; 303 uint8_t prevbg = -1; 304 305 /* 16 bytes assumed for max length per pixel ('\e[5;1;3x;4ym' plus 306 * 1 byte for a CP437 character). 304 307 * Add height*9 to that (zeroes color at the end and jump to next line) */ 305 ex->size = (cv->height * 9) + (cv->width * cv->height * 23);308 ex->size = (cv->height * 9) + (cv->width * cv->height * 16); 306 309 ex->data = malloc(ex->size); 307 310 … … 312 315 uint32_t *lineattr = cv->attr + y * cv->width; 313 316 uint32_t *linechar = cv->chars + y * cv->width; 314 315 uint8_t prevfg = -1;316 uint8_t prevbg = -1;317 317 318 318 for(x = 0; x < cv->width; x++) … … 330 330 cur += sprintf(cur, "3%d;4%dm", fg, bg); 331 331 else 332 cur += sprintf(cur, "5;3%d;4%d;10%dm", 333 fg, bg - 8, bg - 8); 332 cur += sprintf(cur, "5;3%d;4%dm", fg, bg - 8); 334 333 else 335 334 if(bg < 8) 336 cur += sprintf(cur, "1;3%d;4%d;9%dm", 337 fg - 8, bg, fg - 8); 335 cur += sprintf(cur, "1;3%d;4%dm", fg - 8, bg); 338 336 else 339 cur += sprintf(cur, "5;1;3%d;4%d;9%d;10%dm", 340 fg - 8, bg - 8, fg - 8, bg - 8); 341 } 342 343 *cur++ = (ch >= 0x20 && ch < 0x7f) ? ch : '?'; 337 cur += sprintf(cur, "5;1;3%d;4%dm", fg - 8, bg - 8); 338 } 339 340 *cur++ = _cucul_utf32_to_cp437(ch); 344 341 345 342 prevfg = fg; … … 347 344 } 348 345 349 cur += sprintf(cur, "\033[0m\r\n"); 346 if(cv->width != 80) 347 { 348 cur += sprintf(cur, "\033[0m\r\n"); 349 prevfg = -1; 350 prevbg = -1; 351 } 350 352 } 351 353
Note: See TracChangeset
for help on using the changeset viewer.