/[LeafOK_CVS]/lbbs/src/io.c
ViewVC logotype

Diff of /lbbs/src/io.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.2 by sysadm, Sat Oct 23 18:41:41 2004 UTC Revision 1.5 by sysadm, Thu Mar 17 10:48:46 2005 UTC
# Line 19  Line 19 
19  #include "common.h"  #include "common.h"
20  #include <stdio.h>  #include <stdio.h>
21  #include <stdarg.h>  #include <stdarg.h>
22    #include <sys/ioctl.h>
23    
24  int  int
25  outc(char c)  outc(char c)
26  {  {
27    int retval;    int retval;
28    
29    retval = printf("%c",c);    retval = fprintf(stdout, "%c", c);
30    
31    return retval;    return retval;
32  }  }
# Line 56  iflush() Line 57  iflush()
57  int  int
58  igetch ()  igetch ()
59  {  {
   char c, tmp[256];  
60    static char buf[256];    static char buf[256];
61    int out = 0, loop = 1, in_esc = 0, in_ascii = 0, i = 0, j;    unsigned char c, tmp[256];
62    static int len =0 , pos = 0;    int out = 0, loop = 1, in_esc = 0, in_ascii = 0, in_control = 0, i = 0, j;
63      static int len = 0 , pos = 0;
64    
65    if (pos >= len)    if (pos >= len)
66    {    {
     len = s_receive (socket_client, buf, 255, "");  
67      pos = 0;      pos = 0;
68    
69        //len = s_receive (socket_client, buf, 255, "");
70        len = read (0, buf, 255);
71    
72      //For debug      //For debug
73      //for (j = 0; j < len; j++)      //for (j = 0; j < len; j++)
74      //  log_std ("[%d]\n", buf[j]);      //  log_std ("<--[%u]\n", (buf[j] + 256) % 256);
75    }    }
76    
77    while (pos < len)    while (pos < len)
# Line 81  igetch () Line 84  igetch ()
84          break;          break;
85        }        }
86    
87          if (c == KEY_CONTROL)
88            {
89              if (in_control == 0)
90                {
91                  in_control = 1;
92                  i = 0;
93                  continue;
94                }
95            }
96          
97          if (in_control)
98          {
99            tmp[i++] = c;
100            if (i >= 2)
101            {
102              out = (int)tmp[0] * 256 + tmp[1];
103              in_control = 0;
104              break;
105            }
106            continue;
107          }
108    
109        if (c == ESC_KEY)        if (c == ESC_KEY)
110          {          {
111            if (in_esc == 0)            if (in_esc == 0)
# Line 136  igetch () Line 161  igetch ()
161                  case 49:                  case 49:
162                    out = KEY_HOME;                    out = KEY_HOME;
163                    break;                    break;
164                    case 51:
165                      out = KEY_DEL;
166                      break;
167                  case 52:                  case 52:
168                    out = KEY_END;                    out = KEY_END;
169                    break;                    break;
# Line 156  igetch () Line 184  igetch ()
184      }      }
185    
186    //for debug    //for debug
187    //log_std ("[%d]\n", out);    //log_std ("-->[%u]\n", out);
188    
189    return out;    return out;
190  }  }
191    
192    int
193    ikbhit()
194    {
195      int len;
196      
197      ioctl (0, FIONREAD, &len);
198      
199      return len;
200    }


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1