<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nethackwiki.com/index.php?action=history&amp;feed=atom&amp;title=Source%3ANetHack_3.6.0%2Finclude%2Fmactty.h</id>
	<title>Source:NetHack 3.6.0/include/mactty.h - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nethackwiki.com/index.php?action=history&amp;feed=atom&amp;title=Source%3ANetHack_3.6.0%2Finclude%2Fmactty.h"/>
	<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.6.0/include/mactty.h&amp;action=history"/>
	<updated>2026-06-04T03:42:31Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.5</generator>
	<entry>
		<id>https://nethackwiki.com/index.php?title=Source:NetHack_3.6.0/include/mactty.h&amp;diff=98085&amp;oldid=prev</id>
		<title>DizzyBot at 13:29, 15 December 2015</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.6.0/include/mactty.h&amp;diff=98085&amp;oldid=prev"/>
		<updated>2015-12-15T13:29:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 13:29, 15 December 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot; &gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{NGPL}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{NGPL}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line1&amp;quot;&amp;gt;1.    /* NetHack 3.6	mactty.h	$NHDT-Date: 1447755970 2015/11/17 10:26:10 $  $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ */&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line1&amp;quot;&amp;gt;1. /* NetHack 3.6	mactty.h	$NHDT-Date: 1447755970 2015/11/17 10:26:10 $  $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ */&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line2&amp;quot;&amp;gt;2.    /* Copyright (c) Jon W{tte 1993.                                        */&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line2&amp;quot;&amp;gt;2. /* Copyright (c) Jon W{tte 1993.                                        */&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line3&amp;quot;&amp;gt;3.    /* NetHack may be freely redistributed.  See license for details.       */&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line3&amp;quot;&amp;gt;3. /* NetHack may be freely redistributed.  See license for details.       */&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line4&amp;quot;&amp;gt;4.    &amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line4&amp;quot;&amp;gt;4. &amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line5&amp;quot;&amp;gt;5.    /*&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line5&amp;quot;&amp;gt;5. /*&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line6&amp;quot;&amp;gt;6.     * This header is the supported external interface for the &amp;quot;tty&amp;quot; window&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line6&amp;quot;&amp;gt;6.  * This header is the supported external interface for the &amp;quot;tty&amp;quot; window&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line7&amp;quot;&amp;gt;7.     * package. This package sports care-free handling of &amp;quot;dumb&amp;quot; tty windows&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line7&amp;quot;&amp;gt;7.  * package. This package sports care-free handling of &amp;quot;dumb&amp;quot; tty windows&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line8&amp;quot;&amp;gt;8.     * (preferably using monospaced fonts) - it does NOT remember the strings&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line8&amp;quot;&amp;gt;8.  * (preferably using monospaced fonts) - it does NOT remember the strings&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line9&amp;quot;&amp;gt;9.     * sent to it; rather, it uses an offscreen bitmap.&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line9&amp;quot;&amp;gt;9.  * sent to it; rather, it uses an offscreen bitmap.&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line10&amp;quot;&amp;gt;10.    *&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line10&amp;quot;&amp;gt;10.  *&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line11&amp;quot;&amp;gt;11.    * For best performance, make sure it is aligned on a 32-pixel boundary&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line11&amp;quot;&amp;gt;11.  * For best performance, make sure it is aligned on a 32-pixel boundary&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line12&amp;quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; &amp;lt;span id=&amp;quot;line12&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:NetHack 3.6.0 source code|include/mactty.h]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:NetHack 3.6.0 source code|include/mactty.h]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>DizzyBot</name></author>
		
	</entry>
	<entry>
		<id>https://nethackwiki.com/index.php?title=Source:NetHack_3.6.0/include/mactty.h&amp;diff=97573&amp;oldid=prev</id>
		<title>Nooodl: Created page with &quot;__MIXEDSYNTAXHIGHLIGHT__ Below is the full text to '''mactty.h''' from the source code of NetHack 3.6.0. To link to a particular line, write...&quot;</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.6.0/include/mactty.h&amp;diff=97573&amp;oldid=prev"/>
		<updated>2015-12-10T16:09:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;__MIXEDSYNTAXHIGHLIGHT__ Below is the full text to &amp;#039;&amp;#039;&amp;#039;mactty.h&amp;#039;&amp;#039;&amp;#039; from the &lt;a href=&quot;/wiki/NetHack_3.6.0_source_code&quot; title=&quot;NetHack 3.6.0 source code&quot;&gt;source code&lt;/a&gt; of &lt;a href=&quot;/wiki/NetHack_3.6.0&quot; title=&quot;NetHack 3.6.0&quot;&gt;NetHack 3.6.0&lt;/a&gt;. To link to a particular line, write...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__MIXEDSYNTAXHIGHLIGHT__&lt;br /&gt;
Below is the full text to '''mactty.h''' from the [[NetHack 3.6.0 source code|source code]] of [[NetHack 3.6.0]]. To link to a particular line, write [[Source:NetHack 3.6.0/include/mactty.h#line123|&amp;lt;nowiki&amp;gt;[[Source:NetHack 3.6.0/include/mactty.h#line123]]&amp;lt;/nowiki&amp;gt;]], for example.&lt;br /&gt;
&lt;br /&gt;
{{NGPL}}&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line1&amp;quot;&amp;gt;1.    /* NetHack 3.6	mactty.h	$NHDT-Date: 1447755970 2015/11/17 10:26:10 $  $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line2&amp;quot;&amp;gt;2.    /* Copyright (c) Jon W{tte 1993.                                        */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line3&amp;quot;&amp;gt;3.    /* NetHack may be freely redistributed.  See license for details.       */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line4&amp;quot;&amp;gt;4.    &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line5&amp;quot;&amp;gt;5.    /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line6&amp;quot;&amp;gt;6.     * This header is the supported external interface for the &amp;quot;tty&amp;quot; window&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line7&amp;quot;&amp;gt;7.     * package. This package sports care-free handling of &amp;quot;dumb&amp;quot; tty windows&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line8&amp;quot;&amp;gt;8.     * (preferably using monospaced fonts) - it does NOT remember the strings&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line9&amp;quot;&amp;gt;9.     * sent to it; rather, it uses an offscreen bitmap.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line10&amp;quot;&amp;gt;10.    *&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line11&amp;quot;&amp;gt;11.    * For best performance, make sure it is aligned on a 32-pixel boundary&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line12&amp;quot;&amp;gt;12.    * (or at least a 16-pixel one) in black &amp;amp; white. For 24bit color,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line13&amp;quot;&amp;gt;13.    * alignment doesn't matter, and for 8-bit color, alignment to every&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line14&amp;quot;&amp;gt;14.    * fourth pixel is most efficient.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line15&amp;quot;&amp;gt;15.    *&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line16&amp;quot;&amp;gt;16.    * (c) Copyright 1993 Jon W{tte&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line17&amp;quot;&amp;gt;17.    */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line18&amp;quot;&amp;gt;18.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line19&amp;quot;&amp;gt;19.   /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line20&amp;quot;&amp;gt;20.    * You should really not poke in the structures used by the tty window.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line21&amp;quot;&amp;gt;21.    * However, since it uses the wRefCon of windows (by calling GetWRefCon&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line22&amp;quot;&amp;gt;22.    * and SetWRefCon) you lose that possibility. If you still want to store&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line23&amp;quot;&amp;gt;23.    * information about a window, the FIRST location _pointed to_ by the&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line24&amp;quot;&amp;gt;24.    * wRefCon will be a void * that you can use for whatever reasons. Don't&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line25&amp;quot;&amp;gt;25.    * take the address of this variable and expect it to stay the same&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line26&amp;quot;&amp;gt;26.    * across calls to the tty window.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line27&amp;quot;&amp;gt;27.    *&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line28&amp;quot;&amp;gt;28.    * void * my_config_ptr = * ( void * * ) GetWRefCon ( tty_window ) ;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line29&amp;quot;&amp;gt;29.    */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line30&amp;quot;&amp;gt;30.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line31&amp;quot;&amp;gt;31.   /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line32&amp;quot;&amp;gt;32.    * The library uses the window's port temporarily through SetPortBits;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line33&amp;quot;&amp;gt;33.    * that means you shouldn't do any funky things to the clipping region&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line34&amp;quot;&amp;gt;34.    * etc. Actually, you shouldn't even resize the window, as that will clip&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line35&amp;quot;&amp;gt;35.    * new drawing.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line36&amp;quot;&amp;gt;36.    *&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line37&amp;quot;&amp;gt;37.    * Also, if you use this library under Pascal, remember that the string&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line38&amp;quot;&amp;gt;38.    * passed to add_tty_string() is a &amp;quot;C&amp;quot; style string with NO length byte,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line39&amp;quot;&amp;gt;39.    * and a terminating zero byte at the end instead.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line40&amp;quot;&amp;gt;40.    */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line41&amp;quot;&amp;gt;41.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line42&amp;quot;&amp;gt;42.   #ifndef _H_tty_public&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line43&amp;quot;&amp;gt;43.   #define _H_tty_public&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line44&amp;quot;&amp;gt;44.   #undef red /* undef internal color const strings from decl */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line45&amp;quot;&amp;gt;45.   #undef green&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line46&amp;quot;&amp;gt;46.   #undef blue&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line47&amp;quot;&amp;gt;47.   #if 1 /*!TARGET_API_MAC_CARBON*/&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line48&amp;quot;&amp;gt;48.   #include &amp;lt;windows.h&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line49&amp;quot;&amp;gt;49.   #endif&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line50&amp;quot;&amp;gt;50.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line51&amp;quot;&amp;gt;51.   /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line52&amp;quot;&amp;gt;52.    * Error code returned when it's probably our fault, or&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line53&amp;quot;&amp;gt;53.    * bad parameters.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line54&amp;quot;&amp;gt;54.    */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line55&amp;quot;&amp;gt;55.   #define general_failure 1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line56&amp;quot;&amp;gt;56.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line57&amp;quot;&amp;gt;57.   /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line58&amp;quot;&amp;gt;58.    * Base resource id's for window types&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line59&amp;quot;&amp;gt;59.    */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line60&amp;quot;&amp;gt;60.   #define WIN_BASE_RES 128&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line61&amp;quot;&amp;gt;61.   #define WIN_BASE_KIND 128&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line62&amp;quot;&amp;gt;62.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line63&amp;quot;&amp;gt;63.   /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line64&amp;quot;&amp;gt;64.    * Commonly used characters&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line65&amp;quot;&amp;gt;65.    */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line66&amp;quot;&amp;gt;66.   #define CHAR_ENTER ((char) 3)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line67&amp;quot;&amp;gt;67.   #define CHAR_BELL ((char) 7)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line68&amp;quot;&amp;gt;68.   #define CHAR_BS ((char) 8)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line69&amp;quot;&amp;gt;69.   #define CHAR_LF ((char) 10)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line70&amp;quot;&amp;gt;70.   #define CHAR_CR ((char) 13)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line71&amp;quot;&amp;gt;71.   #define CHAR_ESC ((char) 27)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line72&amp;quot;&amp;gt;72.   #define CHAR_BLANK ((char) 32)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line73&amp;quot;&amp;gt;73.   #define CHAR_DELETE ((char) 127)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line74&amp;quot;&amp;gt;74.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line75&amp;quot;&amp;gt;75.   extern char game_active; /* flag to window rendering routines&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line76&amp;quot;&amp;gt;76.                               not to use ppat */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line77&amp;quot;&amp;gt;77.   /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line78&amp;quot;&amp;gt;78.    * If you want some fancy operations that not a normal TTY device normally&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line79&amp;quot;&amp;gt;79.    * supports, use EXTENDED_SUPPORT. For frames, area erases and area scrolls,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line80&amp;quot;&amp;gt;80.    * plus bitmap graphics - RESOLUTION DEPENDENT, be sure to call&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line81&amp;quot;&amp;gt;81.    * get_tty_metrics and use those limits.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line82&amp;quot;&amp;gt;82.    */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line83&amp;quot;&amp;gt;83.   #define EXTENDED_SUPPORT 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line84&amp;quot;&amp;gt;84.   /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line85&amp;quot;&amp;gt;85.    * if you print a lot of single characters, accumulating each one in a&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line86&amp;quot;&amp;gt;86.    * clipping region will take too much time. Instead, define this, which&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line87&amp;quot;&amp;gt;87.    * will clip in rects.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line88&amp;quot;&amp;gt;88.    */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line89&amp;quot;&amp;gt;89.   #define CLIP_RECT_ONLY 1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line90&amp;quot;&amp;gt;90.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line91&amp;quot;&amp;gt;91.   typedef enum tty_attrib {&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line92&amp;quot;&amp;gt;92.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line93&amp;quot;&amp;gt;93.       /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line94&amp;quot;&amp;gt;94.        * Flags relating to the general functioning of the window.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line95&amp;quot;&amp;gt;95.        * These flags are passed at create_tty time, and changing them&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line96&amp;quot;&amp;gt;96.        * later will clear the screen.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line97&amp;quot;&amp;gt;97.        */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line98&amp;quot;&amp;gt;98.       TTY_ATTRIB_FLAGS,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line99&amp;quot;&amp;gt;99.   /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line100&amp;quot;&amp;gt;100.   * When using proportional fonts, this will place each character&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line101&amp;quot;&amp;gt;101.   * separately, ensuring aligned columns (but looking ugly and taking&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line102&amp;quot;&amp;gt;102.   * time)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line103&amp;quot;&amp;gt;103.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line104&amp;quot;&amp;gt;104.  #define TA_MOVE_EACH_CHAR 1L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line105&amp;quot;&amp;gt;105.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line106&amp;quot;&amp;gt;106.   * This means draw each change as it occurs instead of collecting the area&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line107&amp;quot;&amp;gt;107.   * and draw it all at once at update_tty() - slower, but more reliable.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line108&amp;quot;&amp;gt;108.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line109&amp;quot;&amp;gt;109.  #define TA_ALWAYS_REFRESH 2L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line110&amp;quot;&amp;gt;110.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line111&amp;quot;&amp;gt;111.   * When reaching the right end, we either just stop drawing, or wrap to the&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line112&amp;quot;&amp;gt;112.   * next line.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line113&amp;quot;&amp;gt;113.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line114&amp;quot;&amp;gt;114.  #define TA_WRAP_AROUND 4L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line115&amp;quot;&amp;gt;115.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line116&amp;quot;&amp;gt;116.   * Overstrike means that characters are added on top of each other; i e don't&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line117&amp;quot;&amp;gt;117.   * clear the letter beneath. This is faster, using srcOr under QuickDraw&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line118&amp;quot;&amp;gt;118.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line119&amp;quot;&amp;gt;119.  #define TA_OVERSTRIKE 8L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line120&amp;quot;&amp;gt;120.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line121&amp;quot;&amp;gt;121.   * We may want the window not to scroll when we reach the end line,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line122&amp;quot;&amp;gt;122.   * but stop drawing instead.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line123&amp;quot;&amp;gt;123.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line124&amp;quot;&amp;gt;124.  #define TA_INHIBIT_VERT_SCROLL 16L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line125&amp;quot;&amp;gt;125.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line126&amp;quot;&amp;gt;126.      /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line127&amp;quot;&amp;gt;127.       * Foreground and background colors. These only affect characters&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line128&amp;quot;&amp;gt;128.       * drawn by subsequent calls; not what's already there (but it does&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line129&amp;quot;&amp;gt;129.       * affect clears)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line130&amp;quot;&amp;gt;130.       * On b/w screens these do nothing.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line131&amp;quot;&amp;gt;131.       */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line132&amp;quot;&amp;gt;132.      TTY_ATTRIB_FOREGROUND,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line133&amp;quot;&amp;gt;133.      TTY_ATTRIB_BACKGROUND,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line134&amp;quot;&amp;gt;134.  #define TA_RGB_TO_TTY(r)                       \&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line135&amp;quot;&amp;gt;135.      ((((long) ((r).red &amp;gt;&amp;gt; 8) &amp;amp; 0xff) &amp;lt;&amp;lt; 16)    \&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line136&amp;quot;&amp;gt;136.       + (((long) ((r).green &amp;gt;&amp;gt; 8) &amp;amp; 0xff) &amp;lt;&amp;lt; 8) \&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line137&amp;quot;&amp;gt;137.       + ((long) ((r).blue &amp;gt;&amp;gt; 8) &amp;amp; 0xff))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line138&amp;quot;&amp;gt;138.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line139&amp;quot;&amp;gt;139.      /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line140&amp;quot;&amp;gt;140.       * Attributes relating to the cursor, and character set mappings&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line141&amp;quot;&amp;gt;141.       */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line142&amp;quot;&amp;gt;142.      TTY_ATTRIB_CURSOR,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line143&amp;quot;&amp;gt;143.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line144&amp;quot;&amp;gt;144.   * Blinking cursor is more noticeable when it's idle&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line145&amp;quot;&amp;gt;145.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line146&amp;quot;&amp;gt;146.  #define TA_BLINKING_CURSOR 1L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line147&amp;quot;&amp;gt;147.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line148&amp;quot;&amp;gt;148.   * When handling input, do we echo characters as they are typed?&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line149&amp;quot;&amp;gt;149.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line150&amp;quot;&amp;gt;150.  #define TA_ECHO_INPUT 2L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line151&amp;quot;&amp;gt;151.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line152&amp;quot;&amp;gt;152.   * Do we return each character code separately, or map delete etc? Note&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line153&amp;quot;&amp;gt;153.   * that non-raw input means getchar won't return anything until the user&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line154&amp;quot;&amp;gt;154.   * has typed a return.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line155&amp;quot;&amp;gt;155.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line156&amp;quot;&amp;gt;156.  #define TA_RAW_INPUT 4L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line157&amp;quot;&amp;gt;157.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line158&amp;quot;&amp;gt;158.   * Do we print every character as it is (including BS, NL and CR!) or do&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line159&amp;quot;&amp;gt;159.   * do we interpret characters such as NL, BS and CR?&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line160&amp;quot;&amp;gt;160.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line161&amp;quot;&amp;gt;161.  #define TA_RAW_OUTPUT 8L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line162&amp;quot;&amp;gt;162.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line163&amp;quot;&amp;gt;163.   * When getting a NL, do we also move to the left?&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line164&amp;quot;&amp;gt;164.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line165&amp;quot;&amp;gt;165.  #define TA_NL_ADD_CR 16L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line166&amp;quot;&amp;gt;166.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line167&amp;quot;&amp;gt;167.   * When getting a CR, do we also move down?&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line168&amp;quot;&amp;gt;168.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line169&amp;quot;&amp;gt;169.  #define TA_CR_ADD_NL 32L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line170&amp;quot;&amp;gt;170.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line171&amp;quot;&amp;gt;171.   * Wait for input or return what we've got?&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line172&amp;quot;&amp;gt;172.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line173&amp;quot;&amp;gt;173.  #define TA_NONBLOCKING_IO 64L&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line174&amp;quot;&amp;gt;174.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line175&amp;quot;&amp;gt;175.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line176&amp;quot;&amp;gt;176.   * Use this macro to cast a function pointer to a tty attribute; this will&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line177&amp;quot;&amp;gt;177.   * help portability to systems where a function pointer doesn't fit in a long&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line178&amp;quot;&amp;gt;178.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line179&amp;quot;&amp;gt;179.  #define TA_ATTRIB_FUNC(x) ((long) (x))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line180&amp;quot;&amp;gt;180.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line181&amp;quot;&amp;gt;181.      /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line182&amp;quot;&amp;gt;182.       * This symbolic constant is used to check the number of attributes&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line183&amp;quot;&amp;gt;183.       */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line184&amp;quot;&amp;gt;184.      TTY_NUMBER_ATTRIBUTES&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line185&amp;quot;&amp;gt;185.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line186&amp;quot;&amp;gt;186.  } tty_attrib;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line187&amp;quot;&amp;gt;187.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line188&amp;quot;&amp;gt;188.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line189&amp;quot;&amp;gt;189.   * Character returned by end-of-file condition&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line190&amp;quot;&amp;gt;190.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line191&amp;quot;&amp;gt;191.  #define TTY_EOF -1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line192&amp;quot;&amp;gt;192.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line193&amp;quot;&amp;gt;193.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line194&amp;quot;&amp;gt;194.   * Create the window according to a resource WIND template.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line195&amp;quot;&amp;gt;195.   * The window pointer pointed to by window should be NULL to&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line196&amp;quot;&amp;gt;196.   * allocate the window record dynamically, or point to a&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line197&amp;quot;&amp;gt;197.   * WindowRecord structure already allocated.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line198&amp;quot;&amp;gt;198.   *&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line199&amp;quot;&amp;gt;199.   * Passing in_color means you have to be sure there's color support;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line200&amp;quot;&amp;gt;200.   * on the Mac, this means 32bit QuickDraw present, else it will&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line201&amp;quot;&amp;gt;201.   * crash. Not passing in_color means everything's rendered in&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line202&amp;quot;&amp;gt;202.   * black &amp;amp; white.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line203&amp;quot;&amp;gt;203.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line204&amp;quot;&amp;gt;204.  extern short create_tty(WindowPtr *window, short resource_id,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line205&amp;quot;&amp;gt;205.                          Boolean in_color);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line206&amp;quot;&amp;gt;206.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line207&amp;quot;&amp;gt;207.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line208&amp;quot;&amp;gt;208.   * Use init_tty_name or init_tty_number to initialize a window&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line209&amp;quot;&amp;gt;209.   * once allocated by create_tty. Size parameters are in characters.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line210&amp;quot;&amp;gt;210.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line211&amp;quot;&amp;gt;211.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line212&amp;quot;&amp;gt;212.  extern short init_tty_number(WindowPtr window, short font_number,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line213&amp;quot;&amp;gt;213.                               short font_size, short x_size, short y_size);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line214&amp;quot;&amp;gt;214.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line215&amp;quot;&amp;gt;215.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line216&amp;quot;&amp;gt;216.   * Close and deallocate a window and its data&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line217&amp;quot;&amp;gt;217.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line218&amp;quot;&amp;gt;218.  extern short destroy_tty(WindowPtr window);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line219&amp;quot;&amp;gt;219.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line220&amp;quot;&amp;gt;220.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line221&amp;quot;&amp;gt;221.   * Change the font and font size used in the window for drawing after&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line222&amp;quot;&amp;gt;222.   * the calls are made. To change the coordinate system, be sure to call&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line223&amp;quot;&amp;gt;223.   * force_tty_coordinate_system_recalc() - else it may look strange if&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line224&amp;quot;&amp;gt;224.   * the new font doesn't match the old one.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line225&amp;quot;&amp;gt;225.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line226&amp;quot;&amp;gt;226.  extern short set_tty_font_name(winid window_type, char *name);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line227&amp;quot;&amp;gt;227.  extern short force_tty_coordinate_system_recalc(WindowPtr window);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line228&amp;quot;&amp;gt;228.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line229&amp;quot;&amp;gt;229.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line230&amp;quot;&amp;gt;230.   * Getting some metrics about the tty and its drawing.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line231&amp;quot;&amp;gt;231.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line232&amp;quot;&amp;gt;232.  extern short get_tty_metrics(WindowPtr window, short *x_size, short *y_size,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line233&amp;quot;&amp;gt;233.                               short *x_size_pixels, short *y_size_pixels,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line234&amp;quot;&amp;gt;234.                               short *font_number, short *font_size,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line235&amp;quot;&amp;gt;235.                               short *char_width, short *row_height);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line236&amp;quot;&amp;gt;236.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line237&amp;quot;&amp;gt;237.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line238&amp;quot;&amp;gt;238.   * The basic move cursor function. 0,0 is topleft.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line239&amp;quot;&amp;gt;239.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line240&amp;quot;&amp;gt;240.  extern short move_tty_cursor(WindowPtr window, short x_pos, short y_pos);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line241&amp;quot;&amp;gt;241.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line242&amp;quot;&amp;gt;242.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line243&amp;quot;&amp;gt;243.   * Flush all changes done to a tty to the screen (see TA_ALWAYS_UPDATE above)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line244&amp;quot;&amp;gt;244.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line245&amp;quot;&amp;gt;245.  extern short update_tty(WindowPtr window);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line246&amp;quot;&amp;gt;246.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line247&amp;quot;&amp;gt;247.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line248&amp;quot;&amp;gt;248.   * Add a character to the tty and update the cursor position&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line249&amp;quot;&amp;gt;249.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line250&amp;quot;&amp;gt;250.  extern short add_tty_char(WindowPtr window, short character);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line251&amp;quot;&amp;gt;251.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line252&amp;quot;&amp;gt;252.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line253&amp;quot;&amp;gt;253.   * Add a string of characters to the tty and update the cursor&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line254&amp;quot;&amp;gt;254.   * position. The string is 0-terminated!&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line255&amp;quot;&amp;gt;255.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line256&amp;quot;&amp;gt;256.  extern short add_tty_string(WindowPtr window, const char *string);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line257&amp;quot;&amp;gt;257.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line258&amp;quot;&amp;gt;258.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line259&amp;quot;&amp;gt;259.   * Change or read an attribute of the tty. Note that some attribute changes&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line260&amp;quot;&amp;gt;260.   * may clear the screen. See the above enum and defines for values.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line261&amp;quot;&amp;gt;261.   * Attributes can be both function pointers and special flag values.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line262&amp;quot;&amp;gt;262.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line263&amp;quot;&amp;gt;263.  extern short get_tty_attrib(WindowPtr window, tty_attrib attrib, long *value);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line264&amp;quot;&amp;gt;264.  extern short set_tty_attrib(WindowPtr window, tty_attrib attrib, long value);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line265&amp;quot;&amp;gt;265.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line266&amp;quot;&amp;gt;266.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line267&amp;quot;&amp;gt;267.   * Scroll the actual TTY image, in characters, positive means up/left&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line268&amp;quot;&amp;gt;268.   * scroll_tty ( my_tty , 0 , 1 ) means a linefeed. Is always carried out&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line269&amp;quot;&amp;gt;269.   * directly, regardless of the wait-update setting. Does updates before&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line270&amp;quot;&amp;gt;270.   * scrolling.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line271&amp;quot;&amp;gt;271.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line272&amp;quot;&amp;gt;272.  extern short scroll_tty(WindowPtr window, short delta_x, short delta_y);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line273&amp;quot;&amp;gt;273.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line274&amp;quot;&amp;gt;274.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line275&amp;quot;&amp;gt;275.   * Erase the offscreen bitmap and move the cursor to 0,0. Re-init some window&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line276&amp;quot;&amp;gt;276.   * values (font etc) Is always carried out directly on-screen, regardless of&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line277&amp;quot;&amp;gt;277.   * the wait-for-update setting. Clears update area.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line278&amp;quot;&amp;gt;278.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line279&amp;quot;&amp;gt;279.  extern short clear_tty(WindowPtr window);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line280&amp;quot;&amp;gt;280.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line281&amp;quot;&amp;gt;281.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line282&amp;quot;&amp;gt;282.   * Call this routine with a window (always _mt_window) and a time (usually&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line283&amp;quot;&amp;gt;283.   * from most recent event) to determine if cursor in window should be blinked&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line284&amp;quot;&amp;gt;284.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line285&amp;quot;&amp;gt;285.  extern short blink_cursor(WindowPtr window, long when);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line286&amp;quot;&amp;gt;286.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line287&amp;quot;&amp;gt;287.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line288&amp;quot;&amp;gt;288.   * For screen dumps, open the printer port and call this function. Can be used&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line289&amp;quot;&amp;gt;289.   * for clipboard as well (only for a PICT, though; this library doesn't&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line290&amp;quot;&amp;gt;290.   * concern&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line291&amp;quot;&amp;gt;291.   * itself with characters, just bitmaps)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line292&amp;quot;&amp;gt;292.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line293&amp;quot;&amp;gt;293.  extern short image_tty(EventRecord *theEvent, WindowPtr window);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line294&amp;quot;&amp;gt;294.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line295&amp;quot;&amp;gt;295.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line296&amp;quot;&amp;gt;296.   * For erasing just an area of characters&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line297&amp;quot;&amp;gt;297.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line298&amp;quot;&amp;gt;298.  extern short clear_tty_window(WindowPtr window, short from_row,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line299&amp;quot;&amp;gt;299.                                short from_col, short to_row, short to_col);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line300&amp;quot;&amp;gt;300.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line301&amp;quot;&amp;gt;301.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line302&amp;quot;&amp;gt;302.   * get and set the invalid region of the main window&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line303&amp;quot;&amp;gt;303.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line304&amp;quot;&amp;gt;304.  extern short get_invalid_region(WindowPtr window, Rect *inval_rect);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line305&amp;quot;&amp;gt;305.  extern short set_invalid_region(WindowPtr window, Rect *inval_rect);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line306&amp;quot;&amp;gt;306.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line307&amp;quot;&amp;gt;307.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line308&amp;quot;&amp;gt;308.   * Now in macsnd.c, which seemed like a good place&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line309&amp;quot;&amp;gt;309.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line310&amp;quot;&amp;gt;310.  extern void tty_nhbell();&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line311&amp;quot;&amp;gt;311.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line312&amp;quot;&amp;gt;312.  #if EXTENDED_SUPPORT&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line313&amp;quot;&amp;gt;313.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line314&amp;quot;&amp;gt;314.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line315&amp;quot;&amp;gt;315.   * Various versions of delete character/s, insert line/s etc can be handled by&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line316&amp;quot;&amp;gt;316.   * this general-purpose function. Negative num_ means delete, positive means&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line317&amp;quot;&amp;gt;317.   * insert, and you can never be sure which of row and col operations come&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line318&amp;quot;&amp;gt;318.   * first&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line319&amp;quot;&amp;gt;319.   * if you specify both...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line320&amp;quot;&amp;gt;320.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line321&amp;quot;&amp;gt;321.  extern short mangle_tty_rows_columns(WindowPtr window, short from_row,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line322&amp;quot;&amp;gt;322.                                       short num_rows, short from_col,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line323&amp;quot;&amp;gt;323.                                       short num_cols);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line324&amp;quot;&amp;gt;324.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line325&amp;quot;&amp;gt;325.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line326&amp;quot;&amp;gt;326.   * For framing an area without using grahpics characters.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line327&amp;quot;&amp;gt;327.   * Note that the given limits are those used for framing, you should not&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line328&amp;quot;&amp;gt;328.   * draw in them. frame_fatness should typically be 1-5, and may be clipped&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line329&amp;quot;&amp;gt;329.   * if it is too large.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line330&amp;quot;&amp;gt;330.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line331&amp;quot;&amp;gt;331.  extern short frame_tty_window(WindowPtr window, short from_row,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line332&amp;quot;&amp;gt;332.                                short from_col, short to_row, short to_col,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line333&amp;quot;&amp;gt;333.                                short frame_fatness);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line334&amp;quot;&amp;gt;334.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line335&amp;quot;&amp;gt;335.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line336&amp;quot;&amp;gt;336.   * For inverting specific characters after the fact. May look funny in color.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line337&amp;quot;&amp;gt;337.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line338&amp;quot;&amp;gt;338.  extern short invert_tty_window(WindowPtr window, short from_row,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line339&amp;quot;&amp;gt;339.                                 short from_col, short to_row, short to_col);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line340&amp;quot;&amp;gt;340.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line341&amp;quot;&amp;gt;341.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line342&amp;quot;&amp;gt;342.   * For drawing lines on the tty - VERY DEVICE DEPENDENT. Use get_tty_metrics.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line343&amp;quot;&amp;gt;343.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line344&amp;quot;&amp;gt;344.  extern short draw_tty_line(WindowPtr window, short from_x, short from_y,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line345&amp;quot;&amp;gt;345.                             short to_x, short to_y);&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line346&amp;quot;&amp;gt;346.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line347&amp;quot;&amp;gt;347.  #endif /* EXTENDED_SUPPORT */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line348&amp;quot;&amp;gt;348.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line349&amp;quot;&amp;gt;349.  #endif /* _H_tty_public */&amp;lt;/span&amp;gt;&lt;br /&gt;
[[Category:NetHack 3.6.0 source code|include/mactty.h]]&lt;/div&gt;</summary>
		<author><name>Nooodl</name></author>
		
	</entry>
</feed>