[Konsole-devel] [konsole] [Bug 330214] New: Wrong rendering at the end of line when drawing colored whitespaces

Igor Kostromin elwood.su at gmail.com
Mon Jan 20 16:51:30 UTC 2014


https://bugs.kde.org/show_bug.cgi?id=330214

            Bug ID: 330214
           Summary: Wrong rendering at the end of line when drawing
                    colored whitespaces
    Classification: Unclassified
           Product: konsole
           Version: unspecified
          Platform: openSUSE RPMs
               URL: http://gyazo.com/775c9ec8cc81861ff40e62d7350be512
                OS: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: NOR
         Component: emulation
          Assignee: konsole-devel at kde.org
          Reporter: elwood.su at gmail.com

#include <stdio.h>
#include <stdlib.h>
#include <curses.h>

// This program shows bug of rendering in Konsole Version 2.11.2( Using KDE
Development Platform 4.11.2) - on OpenSuse 13.1
//
// Screenshots of problem:
// http://gyazo.com/71e754c61f6aafcd501894d806e1a7f1 (from real wild)
// http://gyazo.com/775c9ec8cc81861ff40e62d7350be512 (this test program)
// Screenshot of good rendering:
// http://gyazo.com/c8ff96af7aa0006d5fb4343a73722ae1
//
// To reproduce, build it using
// g++ -Wall -fexceptions -g -I/usr/include/ncurses -c ./main.cpp -o ./main.o
// g++  -o ./ ./main.o   -lncurses
//
// And then run program in konsole terminal with width <= 80 (width in main
func)
// Press any key and you will see artifacts at the end of line
// If terminal's width > 80 or character is not a whitespace, all renders OK.

int main()
{
    int x = 10;
    int width = 80;

    WINDOW* stdscr = initscr ();
    cbreak ();
    noecho ();
    nonl ();
    intrflush (stdscr, false);
    keypad (stdscr, true);
    start_color ();

    init_pair(1, 4, 4);
    init_pair(2, 7, 7);

    while (x > 5) {
        attrset(COLOR_PAIR(2) | A_BOLD);
        mvaddstr(3, x, "SomeText");
        for (int xx = x + 8; xx < width; xx++) {
            attrset(COLOR_PAIR(1));
            // If change next character to any (not space - for example, "_" or
"X") all will work ok
            mvaddstr(3, xx, " ");
        }
        refresh();
        getch();
        x--;
    }
    endwin();
    return 0;
}


Reproducible: Always

Actual Results:  
Blue background line is rendered to X=80 coordinate, but at the end of line
there are some incorrect symbols (white blocks).

Expected Results:  
Blue background line is rendered to X=80 coordinate.

This bug is reproduced in Konsole and Konsole-based (Yakuake) terminal
emulators only. In xterm, gnome-terminal and putty this works without troubles.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the konsole-devel mailing list