Current text_console_update() writes totally broken color attributes to console_write_ch(). The format now is writing, [WRONG] bold << 21 | fg << 12 | bg << 8 | char fg == 3bits curses color number bg == 3bits curses color number I can't see this format is where come from. Anyway, this doesn't work at all. What curses expects is actually (and vga.c is using), [RIGHT] bold << 21 | bg << 11 | fg << 8 | char fg == 3bits vga color number bg == 3bits vga color number And curses set COLOR_PAIR() up to match this format, and curses's chtype. I.e, bold | color_pair | char color_pair == (bg << 3 | fg) To fix, this simply uses VGA color number everywhere except curses.c internal. Then, convert it to above [RIGHT] format to write by console_write_ch(). And as bonus, this reduces to expose curses define to other parts (removes COLOR_* from console.c). [Tested the first line is displayed as white on blue back for monitor in curses console] Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> Message-id: 87r3j95407.fsf@mail.parknet.co.jp Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> |
||
---|---|---|
.. | ||
ads7846.c | ||
blizzard.c | ||
blizzard_template.h | ||
cg3.c | ||
cirrus_vga.c | ||
cirrus_vga_rop.h | ||
cirrus_vga_rop2.h | ||
exynos4210_fimd.c | ||
framebuffer.c | ||
framebuffer.h | ||
g364fb.c | ||
jazz_led.c | ||
Makefile.objs | ||
milkymist-tmu2.c | ||
milkymist-vgafb.c | ||
milkymist-vgafb_template.h | ||
omap_dss.c | ||
omap_lcd_template.h | ||
omap_lcdc.c | ||
pl110.c | ||
pl110_template.h | ||
pxa2xx_lcd.c | ||
pxa2xx_template.h | ||
qxl-logger.c | ||
qxl-render.c | ||
qxl.c | ||
qxl.h | ||
sm501.c | ||
sm501_template.h | ||
ssd0303.c | ||
ssd0323.c | ||
tc6393xb.c | ||
tc6393xb_template.h | ||
tcx.c | ||
vga-helpers.h | ||
vga-isa-mm.c | ||
vga-isa.c | ||
vga-pci.c | ||
vga.c | ||
vga.h | ||
vga_int.h | ||
virtio-gpu-3d.c | ||
virtio-gpu-pci.c | ||
virtio-gpu.c | ||
virtio-vga.c | ||
vmware_vga.c | ||
xenfb.c |