This file is indexed.

/usr/share/doc/racket/readline/index.html is in racket-doc 6.7-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/><title>Readline: Terminal Interaction</title><link rel="stylesheet" type="text/css" href="../scribble.css" title="default"/><link rel="stylesheet" type="text/css" href="../racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-style.css" title="default"/><link rel="stylesheet" type="text/css" href="../manual-racket.css" title="default"/><link rel="stylesheet" type="text/css" href="../doc-site.css" title="default"/><script type="text/javascript" src="../scribble-common.js"></script><script type="text/javascript" src="../manual-racket.js"></script><script type="text/javascript" src="../doc-site.js"></script><script type="text/javascript" src="../local-redirect/local-redirect.js"></script><script type="text/javascript" src="../local-redirect/local-user-redirect.js"></script><!--[if IE 6]><style type="text/css">.SIEHidden { overflow: hidden; }</style><![endif]--></head><body id="doc-racket-lang-org"><div class="tocset"><div class="tocview"><div class="tocviewlist tocviewlisttopspace"><div class="tocviewtitle"><table cellspacing="0" cellpadding="0"><tr><td style="width: 1em;"><a href="javascript:void(0);" title="Expand/Collapse" class="tocviewtoggle" onclick="TocviewToggle(this,&quot;tocview_0&quot;);">&#9658;</a></td><td></td><td><a href="" class="tocviewselflink" data-pltdoc="x">Readline:<span class="mywbr"> &nbsp;</span> Terminal Interaction</a></td></tr></table></div><div class="tocviewsublistonly" style="display: none;" id="tocview_0"><table cellspacing="0" cellpadding="0"><tr><td align="right">1&nbsp;</td><td><a href="#%28part._.Normal_.Use_of_.Readline%29" class="tocviewlink" data-pltdoc="x">Normal Use of Readline</a></td></tr><tr><td align="right">2&nbsp;</td><td><a href="#%28part._.Interacting_with_the_.Readline-.Enabled_.Input_.Port_%29" class="tocviewlink" data-pltdoc="x">Interacting with the Readline-<wbr></wbr>Enabled Input Port </a></td></tr><tr><td align="right">3&nbsp;</td><td><a href="#%28part._.Direct_.Bindings_for_.Readline_.Hackers%29" class="tocviewlink" data-pltdoc="x">Direct Bindings for Readline Hackers</a></td></tr></table></div></div></div><div class="tocsub"><table class="tocsublist" cellspacing="0"><tr><td><span class="tocsublinknumber"></span><a href="#%28part._top%29" class="tocsubseclink" data-pltdoc="x">Readline:<span class="mywbr"> &nbsp;</span> Terminal Interaction</a></td></tr><tr><td><span class="tocsublinknumber">1<tt>&nbsp;</tt></span><a href="#%28part._.Normal_.Use_of_.Readline%29" class="tocsubseclink" data-pltdoc="x">Normal Use of Readline</a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Fmain..rkt%29._install-readline%21%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">install-<wbr></wbr>readline!</span></span></a></td></tr><tr><td><span class="tocsublinknumber">2<tt>&nbsp;</tt></span><a href="#%28part._.Interacting_with_the_.Readline-.Enabled_.Input_.Port_%29" class="tocsubseclink" data-pltdoc="x">Interacting with the Readline-<wbr></wbr>Enabled Input Port </a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._current-prompt%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">current-<wbr></wbr>prompt</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._max-history%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">max-<wbr></wbr>history</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._keep-duplicates%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">keep-<wbr></wbr>duplicates</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._keep-blanks%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">keep-<wbr></wbr>blanks</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._readline-prompt%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">readline-<wbr></wbr>prompt</span></span></a></td></tr><tr><td><span class="tocsublinknumber">3<tt>&nbsp;</tt></span><a href="#%28part._.Direct_.Bindings_for_.Readline_.Hackers%29" class="tocsubseclink" data-pltdoc="x">Direct Bindings for Readline Hackers</a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">readline</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-bytes%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">readline-<wbr></wbr>bytes</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._add-history%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">add-<wbr></wbr>history</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._add-history-bytes%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">add-<wbr></wbr>history-<wbr></wbr>bytes</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._history-length%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">history-<wbr></wbr>length</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._history-get%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">history-<wbr></wbr>get</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._history-delete%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">history-<wbr></wbr>delete</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._set-completion-function%21%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">set-<wbr></wbr>completion-<wbr></wbr>function!</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-newline%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">readline-<wbr></wbr>newline</span></span></a></td></tr><tr><td><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-redisplay%29%29" class="tocsubnonseclink" data-pltdoc="x"><span class="RktSym"><span class="RktValLink">readline-<wbr></wbr>redisplay</span></span></a></td></tr></table></div></div><div class="maincolumn"><div class="main"><div class="versionbox"><span class="version">6.7</span></div><div class="navsettop"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<span class="nonavigation">&larr; prev</span>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">up</a>&nbsp;&nbsp;<span class="nonavigation">next &rarr;</span></span>&nbsp;</div><h2 x-source-module="(lib &quot;readline/readline.scrbl&quot;)" x-source-pkg="readline-doc" x-part-tag="&quot;top&quot;"><a name="(part._top)"></a><a name="(part._.Readline__.Terminal_.Interaction)"></a>Readline: Terminal Interaction</h2><p>The <span class="stt">"readline"</span> collection (not to be confused with Racket&rsquo;s
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Byte_and_String_Input.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._read-line%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">read-line</a></span> function) provides glue for using the Editline library
or GNU&rsquo;s Readline
library with the Racket <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=eval.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._read-eval-print-loop%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">read-eval-print-loop</a></span>.</p><blockquote class="refpara"><blockquote class="refcolumn"><blockquote class="refcontent"><p>Due to licensing issues, the Readline collection is by default
backed by the Editline library.
To switch to GNU&rsquo;s Readline library, either install the
<span class="stt">"readline-gpl"</span> package, or set the <span class="stt">PLT_READLINE_LIB</span> environment
variable to the library, which configures the <span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline%29%29" class="RktValLink" data-pltdoc="x">readline</a></span> collection to
use Readline.</p></blockquote></blockquote></blockquote><h3 x-source-module="(lib &quot;readline/readline.scrbl&quot;)" x-source-pkg="readline-doc" x-part-tag="&quot;Normal_Use_of_Readline&quot;">1<tt>&nbsp;</tt><a name="(part._.Normal_.Use_of_.Readline)"></a><a name="(mod-path._readline)"></a><a name="(mod-path._readline/rep-start)"></a>Normal Use of Readline</h3><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._readline%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">readline-lib</span></span></td></tr><tr><td align="left" colspan="2"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._readline%2Frep-start%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline/rep-start</span></a><span class="RktPn">)</span></td></tr></table></p><p>The <a href="#%28mod-path._readline%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline</span></a> library installs a Readline-based
input port (whose name is <span class="RktVal">'</span><span class="RktVal">readline-input</span>) and hooks the
prompt-and-read part of Racket&rsquo;s <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=eval.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._read-eval-print-loop%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">read-eval-print-loop</a></span> to
interact with it.</p><p>You can start Racket with</p><p><span class="hspace">&nbsp;&nbsp;</span><span class="stt">racket -il readline</span></p><p>or evaluate</p><blockquote class="SCodeFlow"><p><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline%29%29" class="RktValLink" data-pltdoc="x">readline</a></span><span class="RktPn">)</span></p></blockquote><p>in the Racket <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=eval.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._read-eval-print-loop%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">read-eval-print-loop</a></span> to load Readline
manually.  You can also put (require readline) in your
<span class="stt">"~/.racketrc"</span>, so that Racket automatically loads
Readline support in interactive mode.</p><p>If you want to enable Readline support only sometimes&#8212;<wbr></wbr>such as
only when you use an <span class="stt">xterm</span>, and not when you use an Emacs
shell&#8212;<wbr></wbr>then you can use <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._dynamic-require%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-require</a></span>, as in the following
example:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=when_unless.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fletstx-scheme..rkt%2529._when%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">when</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=regexp.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._regexp-match%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">regexp-match?</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#rx"xterm"</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=envvars.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._getenv%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">getenv</a></span><span class="hspace">&nbsp;</span><span class="RktVal">"TERM"</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Module_Names_and_Loading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._dynamic-require%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-require</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">readline</span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote><p>The <a href="#%28mod-path._readline%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline</span></a> library automatically checks whether the
current input port is a terminal, as determined by
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._terminal-port%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">terminal-port?</a></span>, and it installs Readline only to replace
terminal ports.  The <a href="#%28mod-path._readline%2Frep-start%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline/rep-start</span></a> module
installs Readline without a terminal check.</p><p>By default, Readline&rsquo;s completion is set to use the visible
bindings in the current namespace. This is far from ideal, but it&rsquo;s
better than Readline&rsquo;s default filename completion which is rarely
useful.  In addition, the Readline history is stored across
invocations in Racket&rsquo;s preferences file, assuming that Racket
exits normally.</p><p>The <a href="#%28mod-path._readline%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline</span></a> library adjusts
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=eval.html%23%2528def._%2528%2528lib._racket%252Fprivate%252Fmisc..rkt%2529._read-eval-print-loop%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">read-eval-print-loop</a></span> by setting the prompt read handler as
determined by <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=eval.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-prompt-read%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">current-prompt-read</a></span>. The call to the read
interaction handler (as determined by
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=eval.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-read-interaction%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">current-read-interaction</a></span>) is parameterized to set
<span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._readline-prompt%29%29" class="RktValLink" data-pltdoc="x">readline-prompt</a></span>, so that a prompt will be printed when
reading starts. To compensate for the prompt printed via
<span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._readline-prompt%29%29" class="RktValLink" data-pltdoc="x">readline-prompt</a></span>, when the interaction input port&rsquo;s name (as
produced by function in the
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=eval.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-get-interaction-input-port%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">current-get-interaction-input-port</a></span> parameter) is
<span class="RktVal">'</span><span class="RktVal">readline-input</span>, the prompt read handler skips printing a
prompt; otherwise, it displays a prompt as determined by
<span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._current-prompt%29%29" class="RktValLink" data-pltdoc="x">current-prompt</a></span>.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/main..rkt)._install-readline!))"></a><span title="Provided from: readline, readline/rep-start | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fmain..rkt%29._install-readline%21%29%29" class="RktValDef RktValLink" data-pltdoc="x">install-readline!</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Adds <span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><span class="RktSym">readline/rep</span><span class="RktPn">)</span> to the result of
<span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Filesystem.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._find-system-path%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">find-system-path</a></span><span class="stt"> </span><span class="RktVal">'</span><span class="RktVal">init-file</span><span class="RktPn">)</span>, which is
<span class="stt">"~/.racketrc"</span> on Unix. Consequently, Readline will be
loaded whenever Racket is started in interactive mode. The
declaration is added only if it is not already present, as determined
by <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=Reading.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._read%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">read</a></span>ing and checking all top-level expressions in the
file.</div></p><p>For more fine-grained control, such as conditionally loading
Readline based on an environment variable, edit
<span class="stt">"~/.racketrc"</span> manually.</p><h3 x-source-module="(lib &quot;readline/readline.scrbl&quot;)" x-source-pkg="readline-doc" x-part-tag="&quot;Interacting_with_the_Readline-Enabled_Input_Port_&quot;">2<tt>&nbsp;</tt><a name="(part._.Interacting_with_the_.Readline-.Enabled_.Input_.Port_)"></a><a name="(mod-path._readline/pread)"></a>Interacting with the Readline-Enabled Input Port </h3><p><div class="SIntrapara"><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._readline%2Fpread%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline/pread</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">readline-lib</span></span></td></tr></table></div><div class="SIntrapara"> The <a href="#%28mod-path._readline%2Fpread%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline/pread</span></a> library
provides customization, and support for prompt-reading after
<a href="#%28mod-path._readline%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline</span></a> installs the new input port.</div></p><p>The reading facility that the new input port provides can be
customized with the following parameters.</p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/pread..rkt)._current-prompt))"></a><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._current-prompt%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-prompt</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._current-prompt%29%29" class="RktValDef RktValLink" data-pltdoc="x">current-prompt</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">bstr</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">bstr</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter that determines the prompt that is used, as a byte string.
Defaults to <span class="RktVal">#"&gt; "</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/pread..rkt)._max-history))"></a><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._max-history%29%29" class="RktValDef RktValLink" data-pltdoc="x">max-history</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._max-history%29%29" class="RktValDef RktValLink" data-pltdoc="x">max-history</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">n</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">n</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter that determines the number of history entries to save,
defaults to <span class="RktVal">100</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/pread..rkt)._keep-duplicates))"></a><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._keep-duplicates%29%29" class="RktValDef RktValLink" data-pltdoc="x">keep-duplicates</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._one-of%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">one-of/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unconsecutive</span><span class="hspace">&nbsp;</span><span class="RktVal">#t</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._keep-duplicates%29%29" class="RktValDef RktValLink" data-pltdoc="x">keep-duplicates</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">keep?</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">keep?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._one-of%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">one-of/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">#f</span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">unconsecutive</span><span class="hspace">&nbsp;</span><span class="RktVal">#t</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter. If <span class="RktVal">#f</span> (the default), then when a line is equal
to a previous one, the previous one is removed.  If it set to
<span class="RktVal">'</span><span class="RktVal">unconsecutive</span> then this happens only for an line that
duplicates the previous one, and if it is <span class="RktVal">#f</span> then all
duplicates are kept.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/pread..rkt)._keep-blanks))"></a><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._keep-blanks%29%29" class="RktValDef RktValLink" data-pltdoc="x">keep-blanks</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=booleans.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._boolean%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">boolean?</a></span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._keep-blanks%29%29" class="RktValDef RktValLink" data-pltdoc="x">keep-blanks</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">keep?</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">keep?</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._any%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">any/c</a></span></td></tr></table></blockquote></div><div class="SIntrapara">A parameter. If <span class="RktVal">#f</span> (the default), blank input lines are not
kept in history.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>parameter</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/pread..rkt)._readline-prompt))"></a><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._readline-prompt%29%29" class="RktValDef RktValLink" data-pltdoc="x">readline-prompt</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._one-of%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">one-of/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">space</span><span class="RktPn">)</span><span class="RktPn">)</span></p></blockquote></td></tr><tr><td><span class="RktPn">(</span><span title="Provided from: readline/pread | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._readline-prompt%29%29" class="RktValDef RktValLink" data-pltdoc="x">readline-prompt</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">status</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">status</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fprivate%252Fmisc..rkt%2529._false%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">false/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._one-of%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">one-of/c</a></span><span class="hspace">&nbsp;</span><span class="RktVal">'</span><span class="RktVal">space</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote></div><div class="SIntrapara">The new input port that you get when you require
<a href="#%28mod-path._readline%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline</span></a> is a custom port that uses Readline for
all inputs.  The problem is when you want to display a prompt and then
read some input, Readline will get confused if it is not used when the
cursor is at the beginning of the line (which is why it has a
<span class="RktVar">prompt</span> argument.)  To use this prompt:</div></p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=parameters.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fmore-scheme..rkt%2529._parameterize%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">parameterize</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">[</span><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._readline-prompt%29%29" class="RktValLink" data-pltdoc="x">readline-prompt</a></span><span class="hspace">&nbsp;</span><span class="RktSym">some-byte-string</span><span class="RktPn">]</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktSym">...code-that-reads...</span><span class="RktPn">)</span></td></tr></table></blockquote><p>This expression makes the first call to Readline use the prompt, and
subsequent calls will use an all-spaces prompt of the same length (for
example, when you&rsquo;re reading an S-expression).  The normal value of
<span class="RktSym"><a href="#%28def._%28%28lib._readline%2Fpread..rkt%29._readline-prompt%29%29" class="RktValLink" data-pltdoc="x">readline-prompt</a></span> is <span class="RktVal">#f</span> for an empty prompt (and
spaces after the prompt is used, which is why you should use
<span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=parameters.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fmore-scheme..rkt%2529._parameterize%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">parameterize</a></span> to restore it to <span class="RktVal">#f</span>).</p><p>A proper solution would be to install a custom output port, too, which
keeps track of text that is displayed without a trailing newline.  As
a cheaper solution, if line-counting is enabled for the terminal&rsquo;s
output-port, then a newline is printed before reading if the column is
not 0. (The <a href="#%28mod-path._readline%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline</span></a> library enables line-counting
for the output port.)</p><p><span style="font-weight: bold">Warning:</span> The Readline library uses the output port directly.
You should not use it when <span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=port-ops.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._current-input-port%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">current-input-port</a></span> has been
modified, or when it was not a terminal port when Racket was started
(eg, when reading input from a pipe).  Expect some problems if you
ignore this warning (not too bad, mostly problems with detecting an
EOF).</p><h3 x-source-module="(lib &quot;readline/readline.scrbl&quot;)" x-source-pkg="readline-doc" x-part-tag="&quot;Direct_Bindings_for_Readline_Hackers&quot;">3<tt>&nbsp;</tt><a name="(part._.Direct_.Bindings_for_.Readline_.Hackers)"></a><a name="(mod-path._readline/readline)"></a>Direct Bindings for Readline Hackers</h3><p><table cellspacing="0" cellpadding="0" class="defmodule"><tr><td align="left"><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=require.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._require%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">require</a></span><span class="stt"> </span><a href="#%28mod-path._readline%2Freadline%29" class="RktModLink" data-pltdoc="x"><span class="RktSym">readline/readline</span></a><span class="RktPn">)</span></td><td align="right"><span class="RpackageSpec"><span class="Smaller">&nbsp;package:</span> <span class="stt">readline-lib</span></span></td></tr></table></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._readline))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline%29%29" class="RktValDef RktValLink" data-pltdoc="x">readline</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">prompt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">prompt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Prints the given prompt string and reads a line.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._readline-bytes))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-bytes%29%29" class="RktValDef RktValLink" data-pltdoc="x">readline-bytes</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">prompt</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">prompt</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Like <span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline%29%29" class="RktValLink" data-pltdoc="x">readline</a></span>, but using raw byte-strings for the prompt and
returning a byte string.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._add-history))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._add-history%29%29" class="RktValDef RktValLink" data-pltdoc="x">add-history</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">str</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">str</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Adds the given string to the Readline history, which is accessible to
the user via the up-arrow key.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._add-history-bytes))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._add-history-bytes%29%29" class="RktValDef RktValLink" data-pltdoc="x">add-history-bytes</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">str</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">str</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Adds the given byte string to the Readline history, which is
accessible to the user via the up-arrow key.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._history-length))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._history-length%29%29" class="RktValDef RktValLink" data-pltdoc="x">history-length</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._exact-nonnegative-integer%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">exact-nonnegative-integer?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Returns the length of the history list.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._history-get))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._history-get%29%29" class="RktValDef RktValLink" data-pltdoc="x">history-get</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">idx</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">idx</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._integer%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Returns the history string at the <span class="RktVar">idx</span> position.  <span class="RktVar">idx</span>
can be negative, which will make it count from the last (i.e,
<span class="RktVal"><span class="nobreak">-1</span></span> returns the last item, <span class="RktVal"><span class="nobreak">-2</span></span> returns the
second-to-last, etc.)</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._history-delete))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._history-delete%29%29" class="RktValDef RktValLink" data-pltdoc="x">history-delete</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">idx</span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span></p></blockquote></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">idx</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=number-types.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._integer%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">integer?</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Deletes the history string at the <span class="RktVar">idx</span> position.  The position
is specified in the same way as the argument for <span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._history-get%29%29" class="RktValLink" data-pltdoc="x">history-get</a></span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._set-completion-function!))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._set-completion-function%21%29%29" class="RktValDef RktValLink" data-pltdoc="x">set-completion-function!</a></span></span><span class="hspace">&nbsp;</span><span class="RktVar">proc</span><span class="hspace">&nbsp;</span>[<span class="RktVar">type</span>]<span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr><tr><td><table cellspacing="0" cellpadding="0" class="argcontract"><tr><td valign="top"><span class="hspace">&nbsp;&nbsp;</span></td><td valign="top"><span class="RktVar">proc</span></td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top">:</td><td valign="top"><span class="hspace">&nbsp;</span></td><td valign="top"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;</span><span class="RktPn">. </span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=function-contracts.html%23%2528form._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._-%7E3e%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x"><span class="nobreak">-&gt;</span></a></span><span class="RktPn"> .</span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._listof%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">listof</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._or%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">or/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=strings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._string%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">string?</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=bytestrings.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._bytes%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">bytes?</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></td></tr></table></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktVar">type</span><span class="hspace">&nbsp;</span>:<span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=data-structure-contracts.html%23%2528def._%2528%2528lib._racket%252Fcontract%252Fbase..rkt%2529._one-of%252Fc%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">one-of/c</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=foreign&amp;rel=String_Types.html%23%2528def._%2528%2528lib._ffi%252Funsafe..rkt%2529.__string%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">_string</a></span><span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=foreign&amp;rel=foreign_procedures.html%23%2528form._%2528%2528lib._ffi%252Funsafe..rkt%2529.__bytes%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">_bytes</a></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>=<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=foreign&amp;rel=String_Types.html%23%2528def._%2528%2528lib._ffi%252Funsafe..rkt%2529.__string%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">_string</a></span></td></tr></table></blockquote></div><div class="SIntrapara">Sets Readline&rsquo;s <span class="stt">rl_completion_entry_function</span> to
<span class="RktVar">proc</span>. The <span class="RktVar">type</span> argument, whose possible values are
from <a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=foreign&amp;rel=index.html&amp;version=6.7" class="RktModLink Sq" data-pltdoc="x"><span class="RktSym">ffi/unsafe</span></a>, determines the type of value supplied
to the <span class="RktVar">proc</span>.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._readline-newline))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-newline%29%29" class="RktValDef RktValLink" data-pltdoc="x">readline-newline</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Sets the cursor to the start of a new line.</div></p><p><div class="SIntrapara"><blockquote class="SVInsetFlow"><table cellspacing="0" cellpadding="0" class="boxed RBoxed"><tr><td><blockquote class="SubFlow"><div class="RBackgroundLabel SIEHidden"><div class="RBackgroundLabelInner"><p>procedure</p></div></div><p class="RForeground"><span class="RktPn">(</span><a name="(def._((lib._readline/readline..rkt)._readline-redisplay))"></a><span title="Provided from: readline/readline | Package: readline-lib"><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-redisplay%29%29" class="RktValDef RktValLink" data-pltdoc="x">readline-redisplay</a></span></span><span class="RktPn"></span><span class="RktPn">)</span><span class="hspace">&nbsp;</span>&rarr;<span class="hspace">&nbsp;</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=void.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._void%7E3f%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">void?</a></span></p></blockquote></td></tr></table></blockquote></div><div class="SIntrapara">Forces a redisplay of the Readline prompt and current user input.</div></p><p>The <span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-redisplay%29%29" class="RktValLink" data-pltdoc="x">readline-redisplay</a></span> function can be used together with
<span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-newline%29%29" class="RktValLink" data-pltdoc="x">readline-newline</a></span> to prevent a background thread from
cluttering up the user input by interleaving its output.  For example,
an unsafe wrapper function for the thread&rsquo;s output might look like the
following:</p><blockquote class="SCodeFlow"><table cellspacing="0" cellpadding="0" class="RktBlk"><tr><td><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=define.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._define%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">define</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktSym">with-thread-safe-output</span><span class="hspace">&nbsp;</span><span class="RktSym">output-thunk</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=cont.html%23%2528def._%2528%2528quote._%7E23%7E25kernel%2529._dynamic-wind%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">dynamic-wind</a></span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=foreign&amp;rel=Atomic_Execution.html%23%2528def._%2528%2528lib._ffi%252Funsafe%252Fatomic..rkt%2529._start-atomic%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">start-atomic</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-newline%29%29" class="RktValLink" data-pltdoc="x">readline-newline</a></span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktSym">output-thunk</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=reference&amp;rel=lambda.html%23%2528form._%2528%2528lib._racket%252Fprivate%252Fbase..rkt%2529._lambda%2529%2529&amp;version=6.7" class="RktStxLink Sq" data-pltdoc="x">lambda</a></span><span class="hspace">&nbsp;</span><span class="RktPn">(</span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="#%28def._%28%28lib._readline%2Freadline..rkt%29._readline-redisplay%29%29" class="RktValLink" data-pltdoc="x">readline-redisplay</a></span><span class="RktPn">)</span></td></tr><tr><td><span class="hspace">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="RktPn">(</span><span class="RktSym"><a href="https://download.racket-lang.org/docs/6.7/html/local-redirect/index.html?doc=foreign&amp;rel=Atomic_Execution.html%23%2528def._%2528%2528lib._ffi%252Funsafe%252Fatomic..rkt%2529._end-atomic%2529%2529&amp;version=6.7" class="RktValLink Sq" data-pltdoc="x">end-atomic</a></span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span><span class="RktPn">)</span></td></tr></table></blockquote><div class="navsetbottom"><span class="navleft"><form class="searchform"><input class="searchbox" style="color: #888;" type="text" value="...search manuals..." title="Enter a search string to search the manuals" onkeypress="return DoSearchKey(event, this, &quot;6.7&quot;, &quot;../&quot;);" onfocus="this.style.color=&quot;black&quot;; this.style.textAlign=&quot;left&quot;; if (this.value == &quot;...search manuals...&quot;) this.value=&quot;&quot;;" onblur="if (this.value.match(/^ *$/)) { this.style.color=&quot;#888&quot;; this.style.textAlign=&quot;center&quot;; this.value=&quot;...search manuals...&quot;; }"/></form>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">top</a></span><span class="navright">&nbsp;&nbsp;<span class="nonavigation">&larr; prev</span>&nbsp;&nbsp;<a href="../index.html" title="up to the documentation top" data-pltdoc="x" onclick="return GotoPLTRoot(&quot;6.7&quot;);">up</a>&nbsp;&nbsp;<span class="nonavigation">next &rarr;</span></span>&nbsp;</div></div></div><div id="contextindicator">&nbsp;</div></body></html>