示例#1
0
/*******************************************************************************
*  Presenta un mensaje protegido por semaforos al usuario.                     *
*                                                                              *
*  Parámetros:                                                                 *
* -Nombre de usuario.
* -Mensaje.
* -Tipo de mensaje.
* -Proceso que llama.
*                                                            *
*  Retorno:                                                                    *
* -void                                                                  *
*                                                                              *
*******************************************************************************/
void interfaceText(char *username, char *message, int type, int main_thread){

  if(!main_thread){
    gdk_threads_enter();
  }

  switch(type){
    case MSG_TEXT:
      messageText(message);
      break;
    case ERROR_TEXT:
      errorText(message);
      break;
    case PRIVATE_TEXT:
      privateText(username, message);
      break;
    case PUBLIC_TEXT:
      publicText(username, message);
      break;
    default:
      break;
  }

  if(!main_thread){
    gdk_threads_leave();
  }

}
示例#2
0
int irc_recv_privmsg(void *data)
{
    struct irc_msgdata *msgdata = (struct irc_msgdata *) data;
    char user[MAX_NICK_LEN + 1];
    char *params[2];
    char *text;

    if (irc_get_prefix(msgdata->msg, user, MAX_NICK_LEN) != OK ||
            irc_parse_paramlist(msgdata->msg, params, 2) != 2)
    {
        slog(LOG_ERR, "Mensaje PRIVMSG mal formado: %s", msgdata->msg);
        return OK;
    }

    text = params[1];

    if (!strncmp("$PCALL ", text, strlen("$PCALL ")))
        parse_pcall(msgdata->clientdata, text, user);
    else if (!strncmp("$PACCEPT ", text, strlen("$PACCEPT ")))
        parse_paccept(msgdata->clientdata, text, user);
    else if (!strncmp("$PCLOSE ", text, strlen("$PACCEPT ")))
        parse_pclose(msgdata->clientdata, text, user);
    else
        publicText(user, text);

    return OK;
}