/[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.8 by sysadm, Mon Mar 21 17:08:21 2005 UTC Revision 1.12 by sysadm, Sat May 7 12:08:28 2005 UTC
# Line 17  Line 17 
17    
18  #include "io.h"  #include "io.h"
19  #include "common.h"  #include "common.h"
20    #include "tcplib.h"
21  #include <stdio.h>  #include <stdio.h>
22  #include <stdarg.h>  #include <stdarg.h>
23    #include <time.h>
24    #include <fcntl.h>
25    #include <unistd.h>
26  #include <sys/ioctl.h>  #include <sys/ioctl.h>
27    
28  int  int
# Line 60  igetch () Line 64  igetch ()
64    static char buf[256];    static char buf[256];
65    unsigned char c, tmp[256];    unsigned char c, tmp[256];
66    int out = KEY_NULL, loop = 1, in_esc = 0, in_ascii = 0, in_control = 0, i =    int out = KEY_NULL, loop = 1, in_esc = 0, in_ascii = 0, in_control = 0, i =
67      0, j;      0, j, result;
68    static int len = 0, pos = 0;    static int len = 0, pos = 0;
69      fd_set testfds;
70      struct timeval timeout;
71    
72      //Stop on system exit
73      if (SYS_exit)
74        return KEY_NULL;
75    
76    if (pos >= len)    if (pos >= len)
77      {      {
78        pos = 0;        pos = 0;
79          len = 0;
80    
81          FD_ZERO (&testfds);
82          FD_SET (0, &testfds);
83    
84          timeout.tv_sec = 1;
85          timeout.tv_usec = 0;
86    
87        //len = s_receive (socket_client, buf, 255, "");        result = SignalSafeSelect (FD_SETSIZE, &testfds, (fd_set *) NULL,
88        len = read (0, buf, 255);                         (fd_set *) NULL, &timeout);
89    
90          if (result == 0)
91            {
92              return KEY_TIMEOUT;
93            }
94          if (result < 0)
95            {
96              log_error ("select() error (%d) !\n", result);
97              return KEY_NULL;
98            }
99          if (result > 0)
100            {
101              if (FD_ISSET (0, &testfds))
102                {
103                  len = read (0, buf, 255);
104                }
105            }
106    
107        //For debug        //For debug
108        //for (j = 0; j < len; j++)        //for (j = 0; j < len; j++)
# Line 191  igetch () Line 225  igetch ()
225  }  }
226    
227  int  int
228    igetch_t (long int sec)
229    {
230      int ch;
231      time_t t_begin = time (0);
232    
233      do
234        {
235          ch = igetch ();
236        }
237      while ((ch == KEY_TIMEOUT) && (time (0) - t_begin < sec));
238    
239      return ch;
240    }
241    
242    int
243  ikbhit ()  ikbhit ()
244  {  {
245    int len;    int len;


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

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