Path: utzoo!mnetor!uunet!husc6!hao!boulder!sunybcs!bingvaxu!leah!uwmcsd1!ig!jade!ucbvax!CORY.BERKELEY.EDU!dillon From: dillon@CORY.BERKELEY.EDU (Matt Dillon) Newsgroups: comp.sys.amiga Subject: Re: DEADKEYS Message-ID: <8712290532.AA14690@cory.Berkeley.EDU> Date: 29 Dec 87 05:32:40 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 46 :> * NOTE: For some reason DeadKeyConvert()/RawKeyConvert() seem to get :> * confused about the REPEAT flag, therefore the flag bit should be :> * cleared from the qualifier set before calling this function. : :I suggest that the proper way to phrase this is that RawKeyConvert uses the :REPEAT flag of the input event. If the input event represents a repeat of :a key, and the keymap specifies that the key is not, in fact, repeatable, :then the resulting conversion is (correctly) of zero length. You may, of :course, know that you want the conversion anyway and force REPEAT to zero. : :If RawKeyConvert is, in fact, confused, I'd like to know more about it. : :- Bob I sent a note to Jim Mackraz on this after he asked. Actually, I made one mistake.... DeadKeyConvert() *does* handle the REPEAT flag correctly. I thought it hadn't when DME stopped repeating the RETURN key when I switched over to DeadKeyConvert() but as it turns out, the RETURN key isn't supposed to repeat. Still, it was something I wanted so I defeated the flag before calling DeadKeyConvert() in DME. The two *real* bugs are: -(1) the new additions to the numeric keypad in the A500/A2000 keyboard are not flagged as being in the numeric keypad. This is an absolute *must* to distinguish the two without resorting to making assumptions on the keycodes (the keycodes are different, of course). -(2) It is difficult to use RawKeyConvert() as an inverse function due to it's lack of bounds checking and the duplication of many keys. That is, rather than write a huge amount of code to decipher the keymap, I simply call RawKeyConvert() with Code values 0 thru 127, and with and without the shift/numeric keypad qualifier flags set to create an upper/lower case keycode conversion table. BUT since RawKeyConvert() doesn't return an error when I give, say, the keycode for the '*' on the NON-numeric keypad, but WITH the numeric keypad flag set, I get duplicates and have to make assumptions as to some of the keycodes. Also the RETURN key is mapped into two different keycodes.... for one key. -Matt