<?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.1%2Finclude%2Fmactty.h</id>
	<title>Source:NetHack 3.6.1/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.1%2Finclude%2Fmactty.h"/>
	<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.6.1/include/mactty.h&amp;action=history"/>
	<updated>2026-06-04T05:23:25Z</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.1/include/mactty.h&amp;diff=109652&amp;oldid=prev</id>
		<title>DizzyBot: beep boop</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.6.1/include/mactty.h&amp;diff=109652&amp;oldid=prev"/>
		<updated>2018-05-12T09:28:15Z</updated>

		<summary type="html">&lt;p&gt;beep boop&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.1 source code|source code]] of [[NetHack 3.6.1]]. To link to a particular line, write [[Source:NetHack 3.6.1/include/mactty.h#line123|&amp;lt;nowiki&amp;gt;[[Source:NetHack 3.6.1/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.1 source code|include/mactty.h]]&lt;/div&gt;</summary>
		<author><name>DizzyBot</name></author>
		
	</entry>
</feed>