rustbox icon indicating copy to clipboard operation
rustbox copied to clipboard

x, y parameters are unsigned; C API has defined behavior for values under 0.

Open mpatraw opened this issue 9 years ago • 0 comments

Since the C API has well defined behavior for values under 0 for the x,y coordinates, I feel like it's incorrect to place such a restriction on the Rust API via usize. Here's the relevant termbox code: https://github.com/nsf/termbox/blob/master/src/termbox.c#L226

void tb_put_cell(int x, int y, const struct tb_cell *cell)
{
    if ((unsigned)x >= (unsigned)back_buffer.width)
        return;
    if ((unsigned)y >= (unsigned)back_buffer.height)
        return;
    CELL(&back_buffer, x, y) = *cell;
}

This also would allow for print to be used offscreen and correctly clip the few first characters off screen without any funky splice logic.

mpatraw avatar Mar 16 '16 23:03 mpatraw