Usermode/libc - Fix strchr and strrchr behavior
[tpg/acess2.git] / Usermode / Applications / axwin3_src / WM / input.c
index bd23c0b..29ef004 100644 (file)
@@ -8,6 +8,7 @@
 #include <common.h>
 #include <acess/sys.h>
 #include <wm_input.h>
+#include <stddef.h>
 
 // TODO: Move out to a common header
 typedef struct
@@ -21,7 +22,7 @@ typedef struct
 // === IMPORTS ===
 extern void    Video_SetCursorPos(short X, short Y);
 const char     *gsMouseDevice;
-extern int     giTerminalFD;
+extern int     giTerminalFD_Input;
 extern int     giScreenWidth;
 extern int     giScreenHeight;
 
@@ -36,45 +37,46 @@ int Input_Init(void)
        tNumValue       num_value;
 
        // Open mouse for RW
-       giMouseFD = open(gsMouseDevice, 3);
+       giMouseFD = _SysOpen(gsMouseDevice, 3);
 
        // Set mouse limits
        // TODO: Update these if the screen resolution changes
        num_value.Num = 0;      num_value.Value = giScreenWidth;
-       ioctl(giMouseFD, JOY_IOCTL_GETSETAXISLIMIT, &num_value);
+       _SysIOCtl(giMouseFD, JOY_IOCTL_GETSETAXISLIMIT, &num_value);
        num_value.Value = giScreenWidth/2;
        giInput_MouseX = giScreenWidth/2;
-       ioctl(giMouseFD, JOY_IOCTL_GETSETAXISPOSITION, &num_value);
+       _SysIOCtl(giMouseFD, JOY_IOCTL_GETSETAXISPOSITION, &num_value);
 
        num_value.Num = 1;      num_value.Value = giScreenHeight;
-       ioctl(giMouseFD, JOY_IOCTL_GETSETAXISLIMIT, &num_value);
+       _SysIOCtl(giMouseFD, JOY_IOCTL_GETSETAXISLIMIT, &num_value);
        num_value.Value = giScreenHeight/2;
        giInput_MouseY = giScreenHeight/2;
-       ioctl(giMouseFD, JOY_IOCTL_GETSETAXISPOSITION, &num_value);
+       _SysIOCtl(giMouseFD, JOY_IOCTL_GETSETAXISPOSITION, &num_value);
 
        return 0;
 }
 
 void Input_FillSelect(int *nfds, fd_set *set)
 {
-       if(*nfds < giTerminalFD)        *nfds = giTerminalFD;
+       if(*nfds < giTerminalFD_Input)  *nfds = giTerminalFD_Input;
        if(*nfds < giMouseFD)   *nfds = giMouseFD;
-       FD_SET(giTerminalFD, set);
+       FD_SET(giTerminalFD_Input, set);
        FD_SET(giMouseFD, set);
 }
 
 void Input_HandleSelect(fd_set *set)
 {
-       if(FD_ISSET(giTerminalFD, set))
+       if(FD_ISSET(giTerminalFD_Input, set))
        {
                uint32_t        codepoint;
                static uint32_t scancode;
                #define KEY_CODEPOINT_MASK      0x3FFFFFFF
                
-               if( read(giTerminalFD, &codepoint, sizeof(codepoint)) != sizeof(codepoint) )
+               size_t readlen = _SysRead(giTerminalFD_Input, &codepoint, sizeof(codepoint));
+               if( readlen != sizeof(codepoint) )
                {
                        // oops, error
-                       _SysDebug("Terminal read failed?");
+                       _SysDebug("Terminal read failed? (%i != %i)", readlen, sizeof(codepoint));
                }
        
 //             _SysDebug("Keypress 0x%x", codepoint);
@@ -117,8 +119,8 @@ void Input_HandleSelect(fd_set *set)
 
                mouseinfo = (void*)data;
 
-               seek(giMouseFD, 0, SEEK_SET);
-               i = read(giMouseFD, data, sizeof(data));
+               _SysSeek(giMouseFD, 0, SEEK_SET);
+               i = _SysRead(giMouseFD, data, sizeof(data));
                i -= sizeof(*mouseinfo);
                if( i < 0 ) {
                        _SysDebug("Mouse data undersized (no header)");

UCC git Repository :: git.ucc.asn.au