Подробности

[В начало]

Проблема в реализации № S0342

Краткое описание

slk_label() не удаляет лишние пробелы

Подробное описание

В стандарте SUSv2, на который ссылается LSB 3.1, для описания функции slk_label() сказано, что при успешном завершении эта функция должна вернуть переданную ей строку с убранными лишними пробелами.
Но иногда slk_label() возвращает строки, которые содержат необрезанные пробелы.

Раздел стандарта

Linux Standard Base Core Specification 3.1, Chapter 14. Utility Libraries, 14.5. Interfaces for libncurses.

Пример

#include <ncurses.h>

int main(int argc, char* argv[])
{
    WINDOW * win;
    char test1[] = "test1";
    char test2[] = "    test2";
    char test3[] = "test3    "; 
    char test4[] = "    test4    "; 
    char test5[] = "        "; 
    
    slk_init(0); // before initscr 
    
    win = initscr(); 
    
    slk_set(1, test1, 0); 
    slk_set(2, test2, 0); 
    slk_set(3, test3, 0); 
    slk_set(4, test4, 0); 
    slk_set(5, test5, 0); 
    
    mvprintw(3, 1, "slk_set: "); 
        mvprintw(3, 12, ""%s",", test1); 
        mvprintw(3, 22, ""%s",", test2); 
        mvprintw(3, 36, ""%s",", test3); 
        mvprintw(3, 50, ""%s",", test4); 
        mvprintw(3, 68, ""%s"", test5); 
    
    mvprintw(5, 1, "slk_label: "); 
        mvprintw(5, 12, ""%s",", slk_label(1) ); 
        mvprintw(5, 22, ""%s",", slk_label(2) ); 
        mvprintw(5, 36, ""%s",", slk_label(3) ); 
        mvprintw(5, 50, ""%s",", slk_label(4) ); 
        mvprintw(5, 68, ""%s"", slk_label(5) ); 
    
    slk_refresh(); 
    
    getch(); 
    
    endwin(); 
    
    printf("
"); 
    
    return 0; 
} 

Компонент

ncurses 5.4-13

Принято

Reported to bug-ncurses@gnu.org, archive for Apr 19, 2007

[В начало]