{"size": 921, "ext": "scrbl", "max_stars_repo_path": "scribblings/no-echo.scrbl", "max_stars_repo_name": "djholtby/no-echo", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "scribblings/no-echo.scrbl", "max_issues_repo_name": "djholtby/no-echo", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "scribblings/no-echo.scrbl", "max_forks_repo_name": "djholtby/no-echo", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 40.0434782609, "max_line_length": 110, "alphanum_fraction": 0.6764386536}
#lang scribble/manual
@require[@for-label[no-echo
                    racket/base]]

@title{no-echo}
@author{djholtby}

@defmodule[no-echo]

This package allows for a echo-free readline when reading from terminal ports
On Windows this is limited to stdin.

@defproc[(read-line/password [#:stars? stars? any/c #f]
                            [#:in in input-port? (current-input-port)]
                            [#:out out output-port? (current-output-port)])
         string?]{
Reads a password from in without echoing keys pressed.  If @racket[stars?] is not @racket[#f] then a * will be
echoed to @racket[out] for each character of input read.  Otherwise the only output written to
@racket[out] is the newline that marks the end of passwor entry.

On Windows @racket[in] must be stdin.  On posix systems @racket[in] can be any terminal with
a file descriptor (it uses termios.h to control echo and canonical mode).  
}