Ejemplo n.º 1
0
void status_line(EVENT_MSG *msg,T_EVENT_ROOT **user_data)
  {
  T_EVENT_ROOT **p;
  static char st_line[256],oldline[256]={"\0"};
  EVENT_MSG tg;
  static char recurse=1;

  if(msg->msg==E_INIT) {
     if (recurse)
     {
      T_EVENT_ROOT *p;
      recurse=0;
      send_message(E_ADD,E_IDLE,status_idle);
      send_message(E_ADD,E_REDRAW,status_idle);
      p=NULL;
      *user_data=p;
      draw_status_line(NULL);
      recurse=1;
      return;
      }
     else
    	 return;
  }
  shift_msg(msg,tg);
       if (tg.msg==E_REDRAW)
        {
        draw_status_line(oldline);
        return;
        }
  p=user_data;
    if (tg.msg==E_IDLE)
     {
     EVENT_MSG msg;

     msg.msg=E_IDLE;
     msg.data=&st_line;
     enter_event(p,&msg);
     if (strcmp(st_line,oldline))
        {
        draw_status_line(st_line);
        strcpy(oldline,st_line);
        }
     }
  else
     tree_basics(p,&tg);
  return;
  }
Ejemplo n.º 2
0
int		user_write(t_server *server, t_client *cl)
{
  ssize_t	wsize;
  ssize_t	msglen;
  char		*msg;

  msg = queue_front(cl->queue);
  msglen = strlen(msg);
  if ((wsize = write(cl->fd, msg, msglen)) <= 0)
    {
      perror("");
      return (disconnect_user(server, cl));
    }
  if (wsize < msglen)
    shift_msg(msg, wsize);
  else
    queue_pop(&cl->queue);
  return (0);
}