[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


   NAME
        InvertKeyMap -- generate an input event from an ANSI code. (V36)

   SYNOPSIS
        success = InvertKeyMap(ansiCode,event,km)
        D0                     D0       A0    A1

        bool invertkeymap(ulong,struct inputevent *,struct keymap *);

   FUNCTION
        This function uses the system call mapansi() to figure out what
        inputevent translates to an ansi character code 'ansicode'. the
        inputevent pointed to by 'event' is filled in with that information.
        The keymap 'km' is used for the translation, unless it is null, in
        which case the current system default keymap is used.

   INPUTS
        ansiCode - the ANSI code to convert to an input event
        event - the inputevent to fill-in
        km - the keymap to use for the translation, or NULL to use the
             current system default keymap.

   RESULTS
        success - TRUE if the translation worked, FALSE otherwise.

   BUGS
        This function currently handles one-deep dead keys (such as
        <alt f>o ). It does not look up the high key map (keystrokes
        with scan codes greater than 0x40).

        Prior to V40, this function was not initializing the ie_SubClass
        and ie_TimeStamp fields of the inputevent structure. a simple work
        around to the problem is to clear these values to 0 before making
        a call to this function:

                struct inputevent ie;

                    ie.ie_SubClass           = 0;
                    ie.ie_TimeStamp.tv_secs  = 0;
                    ie.ie_TimeStamp.tv_micro = 0;
                    if (InvertKeyMap(ansiCode,&ie,NULL))
                    ...

   SEE ALSO
        cx_lib/invertstring()