def inchstr(window, y, x):
    """
    Read a string from curses display at y, x until EOL.

    Parameters
    ----------
    window : curses.WindowObject
        The window to read from.
    y : int
        The row to read from in `window`.
    x : int
        The column to start reading from in row `y`

    Returns
    -------
    str
        The string read from the interface.
    """

    window.move(y, x)
    result = []

    in_char = ""

    x_off = 0

    # weird EOL character...
    while in_char != "ÿ":
        in_char = window.inch(y, x + x_off)
        in_char = chr(in_char & 0xFF)

        x_off += 1

        result.append(in_char)

    return ''.join(result[:-1])