# rdstdin

- Manual
- Standard library
- Index

Search:
Group by:

This module contains code for reading from stdin. On UNIX the linenoise library is wrapped and set up to provide default key bindings (e.g. you can navigate with the arrow keys). On Windows `system.readLine` is used. This suffices because Windows' console already provides the wanted functionality.

# Imports

winlean

# Consts

    VK_SHIFT = 16

  Source Edit

    VK_CONTROL = 17

  Source Edit

    VK_MENU = 18

  Source Edit

    KEY_EVENT = 1

  Source Edit

# Procs

    proc readLineFromStdin(prompt: string): TaintedString {...}{.
        tags: [ReadIOEffect, WriteIOEffect], raises: [IOError, EOFError].}

  Reads a line from stdin. Source Edit

    proc readLineFromStdin(prompt: string; line: var TaintedString): bool {...}{.
        tags: [ReadIOEffect, WriteIOEffect], raises: [IOError].}

  Reads a `line` from stdin. `line` must not be `nil`! May throw an IO exception. A line of text may be delimited by `CR`, `LF` or `CRLF`. The newline character(s) are not part of the returned string. Returns `false` if the end of the file has been reached, `true` otherwise. If `false` is returned `line` contains no new data. Source Edit

    proc readConsoleInputW(hConsoleInput: Handle; lpBuffer: var INPUT_RECORD;
                          nLength: uint32; lpNumberOfEventsRead: var uint32): WINBOOL {...}{.
        stdcall, dynlib: "kernel32", importc: "ReadConsoleInputW".}

  Source Edit