Подробности

[В начало]

Проблема в стандарте № S0524

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

Функции из семейства scanw() не возвращают OK в случае успешного завершения

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

В соответствии со стандартом LSB, в случае успешного завершения функции из семейства scanw() должны возвращать OK. Но в man pages написано, что в случае успешного завершения функции возвращают количество обработанных полей. И действительно, функции ведут себя как написано в страницах man, а не в стандарте LSB.

Следующий код иллюстрирует проблему.

#include 
#include 
	
int main( int argc, char ** argv ) 
{
	int res;
	int var;
	initscr();

	ungetch('\n');
	ungetch('0');
	ungetch('1');
	ungetch(' ');
	res = mvscanw(5, 5, " %i", &var);
	endwin();
	
	printf("Result of mvscanw():%d!=OK(%d), var=%d\n", res, OK, var);
	
	return 0;
}

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

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

Принято

LSB Bugzilla, 2350

Статус

Исправлена в LSB 4.0

[В начало]