<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Bug in Mac OS X keyboard code?</title>
		<link>http://www.allegro.cc/forums/view/582398</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 30 Apr 2006 14:17:29 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi! I&#39;ve tested a program of mine on a Mac now, and it seems that Allegro detects keypresses on KEY_MINUS_PAD as KEY_PLUS_PAD keypresses.</p><p>Going through the source for Mac OS X, I found this (in keybd.m):
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">/* Mac keycode to Allegro scancode conversion table */</span></td></tr><tr><td class="number">2</td><td><span class="k1">static</span> <span class="k1">const</span> <span class="k1">int</span> mac_to_scancode<span class="k2">[</span><span class="n">128</span><span class="k2">]</span> <span class="k3">=</span> <span class="k2">{</span></td></tr><tr><td class="number">3</td><td><span class="c">/* 0x00 */</span> KEY_A,          KEY_S,          KEY_D,          KEY_F,</td></tr><tr><td class="number">4</td><td><span class="c">/* 0x04 */</span> KEY_H,          KEY_G,          KEY_Z,          KEY_X,</td></tr><tr><td class="number">5</td><td><span class="c">/* 0x08 */</span> KEY_C,          KEY_V,          <span class="n">0</span>,              KEY_B,</td></tr><tr><td class="number">6</td><td><span class="c">/* 0x0c */</span> KEY_Q,          KEY_W,          KEY_E,          KEY_R,</td></tr><tr><td class="number">7</td><td><span class="c">/* 0x10 */</span> KEY_Y,          KEY_T,          KEY_1,          KEY_2,</td></tr><tr><td class="number">8</td><td><span class="c">/* 0x14 */</span> KEY_3,          KEY_4,          KEY_6,          KEY_5,</td></tr><tr><td class="number">9</td><td><span class="c">/* 0x18 */</span> KEY_EQUALS,     KEY_9,          KEY_7,          KEY_MINUS,</td></tr><tr><td class="number">10</td><td><span class="c">/* 0x1c */</span> KEY_8,          KEY_0,          KEY_CLOSEBRACE, KEY_O,</td></tr><tr><td class="number">11</td><td><span class="c">/* 0x20 */</span> KEY_U,          KEY_OPENBRACE,  KEY_I,          KEY_P,</td></tr><tr><td class="number">12</td><td><span class="c">/* 0x24 */</span> KEY_ENTER,      KEY_L,          KEY_J,          KEY_QUOTE,</td></tr><tr><td class="number">13</td><td><span class="c">/* 0x28 */</span> KEY_K,          KEY_SEMICOLON,  KEY_BACKSLASH,  KEY_COMMA,</td></tr><tr><td class="number">14</td><td><span class="c">/* 0x2c */</span> KEY_SLASH,      KEY_N,          KEY_M,          KEY_STOP,</td></tr><tr><td class="number">15</td><td><span class="c">/* 0x30 */</span> KEY_TAB,        KEY_SPACE,      KEY_BACKQUOTE,  KEY_BACKSPACE,</td></tr><tr><td class="number">16</td><td><span class="c">/* 0x34 */</span> KEY_ENTER,      KEY_ESC,        <span class="n">0</span>,              KEY_COMMAND,</td></tr><tr><td class="number">17</td><td><span class="c">/* 0x38 */</span> KEY_LSHIFT,     KEY_CAPSLOCK,   KEY_ALT,        KEY_LEFT,</td></tr><tr><td class="number">18</td><td><span class="c">/* 0x3c */</span> KEY_RIGHT,      KEY_DOWN,       KEY_UP,         <span class="n">0</span>,</td></tr><tr><td class="number">19</td><td><span class="c">/* 0x40 */</span> <span class="n">0</span>,              KEY_STOP,       <span class="n">0</span>,              KEY_ASTERISK,</td></tr><tr><td class="number">20</td><td><span class="c">/* 0x44 */</span> <span class="n">0</span>,              KEY_PLUS_PAD,   <span class="n">0</span>,              KEY_NUMLOCK,</td></tr><tr><td class="number">21</td><td><span class="c">/* 0x48 */</span> <span class="n">0</span>,              <span class="n">0</span>,              <span class="n">0</span>,              KEY_SLASH_PAD,</td></tr><tr><td class="number">22</td><td><span class="c">/* 0x4c */</span> KEY_ENTER_PAD,  <span class="n">0</span>,              KEY_PLUS_PAD,   <span class="n">0</span>,</td></tr><tr><td class="number">23</td><td><span class="c">/* 0x50 */</span> <span class="n">0</span>,              KEY_EQUALS_PAD, KEY_0_PAD,      KEY_1_PAD,</td></tr><tr><td class="number">24</td><td><span class="c">/* 0x54 */</span> KEY_2_PAD,      KEY_3_PAD,      KEY_4_PAD,      KEY_5_PAD,</td></tr><tr><td class="number">25</td><td><span class="c">/* 0x58 */</span> KEY_6_PAD,      KEY_7_PAD,      <span class="n">0</span>,              KEY_8_PAD,</td></tr><tr><td class="number">26</td><td><span class="c">/* 0x5c */</span> KEY_9_PAD,      <span class="n">0</span>,              <span class="n">0</span>,              <span class="n">0</span>,</td></tr><tr><td class="number">27</td><td><span class="c">/* 0x60 */</span> KEY_F5,         KEY_F6,         KEY_F7,         KEY_F3,</td></tr><tr><td class="number">28</td><td><span class="c">/* 0x64 */</span> KEY_F8,         KEY_F9,         <span class="n">0</span>,              KEY_F11,</td></tr><tr><td class="number">29</td><td><span class="c">/* 0x68 */</span> <span class="n">0</span>,              KEY_PRTSCR,     <span class="n">0</span>,              KEY_SCRLOCK,</td></tr><tr><td class="number">30</td><td><span class="c">/* 0x6c */</span> <span class="n">0</span>,              KEY_F10,        <span class="n">0</span>,              KEY_F12,</td></tr><tr><td class="number">31</td><td><span class="c">/* 0x70 */</span> <span class="n">0</span>,              KEY_PAUSE,      KEY_INSERT,     KEY_HOME,</td></tr><tr><td class="number">32</td><td><span class="c">/* 0x74 */</span> KEY_PGUP,       KEY_DEL,        KEY_F4,         KEY_END,</td></tr><tr><td class="number">33</td><td><span class="c">/* 0x78 */</span> KEY_F2,         KEY_PGDN,       KEY_F1,         KEY_LEFT,</td></tr><tr><td class="number">34</td><td><span class="c">/* 0x7c */</span> KEY_RIGHT,      KEY_DOWN,       KEY_UP,         <span class="n">0</span></td></tr><tr><td class="number">35</td><td><span class="k2">}</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>


I found out that KEY_PLUS_PAD occured twice in the code, while KEY_MINUS_PAD wasn&#39;t existant at all.</p><p>Could somebody have a look and see if it&#39;s fixed already, or could you make a fix yourself?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Michael Faerber)</author>
		<pubDate>Sun, 30 Apr 2006 02:26:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Which of the two needs to be changed?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Sun, 30 Apr 2006 03:46:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>It&#39;s actually rather hard to find an official list on apple.com; I had to resort to the information in <a href="http://centerstageproject.com/forum/viewthread.php?tid=988">this thread</a>.</p><p>It&#39;s the second one that&#39;s wrong, 0x45 is +, 0x4e is -</p><p>Diff attached; could you test it?</p><p>Pete
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Peter Hull)</author>
		<pubDate>Sun, 30 Apr 2006 13:29:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I can&#39;t because I don&#39;t have access to a Mac at the moment.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Michael Faerber)</author>
		<pubDate>Sun, 30 Apr 2006 14:17:29 +0000</pubDate>
	</item>
</rss>
