﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	field_blocks	field_dependson	field_seealso
838	tinput hits assertion failure if prompt runs off the screen	Jiri Svoboda		"tinput_read[_i]() will hit an assertion failure if we call it while the cursor is within str_length(prompt) characters from the end of the screen.

tinput_display() performs the following calculation, using current cursor coordinates col0, row0:

{{{
ti->prompt_coord = row0 * ti->con_cols + col0;
ti->text_coord = ti->prompt_coord + str_length(ti->prompt);
}}}

where ti->text_coord will be >= cols*rows and then in tinput_console_set_lpos():
{{{
       unsigned col = LIN_TO_COL(ti, lpos);
       unsigned row = LIN_TO_ROW(ti, lpos);
        
        assert(col < ti->con_cols);
        assert(row < ti->con_rows);
}}}

here we will have row >= ti->con_rows and hence the assert will fail.

An example of how to reproduce this is to create a program that purposefully puts the cursor to the bottom-right corner of the screen and then exists - at which point bdsh will try to print the prompt and it will abort."	defect	closed	major	0.12.1	helenos/unspecified	mainline	fixed					
