/* ** m_quit ** parv[0] = sender prefix ** parv[1] = comment */ int m_quit(struct Client *cptr, struct Client *sptr, int parc, char *parv[]) { char *comment = (parc > 1 && parv[1]) ? parv[1] : cptr->name; static char comment2[TOPICLEN]; char *stripedmsg; sptr->flags |= FLAGS_NORMALEX; if (strlen(comment) > (size_t) TOPICLEN) comment[TOPICLEN] = '\0'; if (MyClient(sptr)) { if (NoQuitMsg) comment = NoQuitMsg; else if(ZombieQuitMsg && IsZombie(sptr)) comment = ZombieQuitMsg; // We don't want zombie's to // use a normal quit (: else { if( AntiSpamExitMsg && (sptr->firsttime + AntiSpamExitTime) > CurrentTime) comment = AntiSpamExitMsg; else if(NoColorsQuitMsg && comment && (strchr(comment, 3) || strchr(comment, 27))) comment = NoColorsQuitMsg; else if(NoSpamExitMsg && comment && is_spam(comment)) comment = NoSpamExitMsg; else if(QuitPrefix) { stripedmsg = strip_control_codes_lower(comment); if(!IsOper(sptr) && is_msgvlined(stripedmsg)) { comment = NoSpamExitMsg; } if (comment && strlen(comment) > (size_t) TOPICLEN - strlen(QuitPrefix)) comment[TOPICLEN - strlen(QuitPrefix)] = '\0'; ircsprintf(comment2,"%s%s", QuitPrefix, (comment) ? comment : ""); comment = comment2; } } } return IsServer(sptr) ? 0 : exit_client(cptr, sptr, sptr, comment); }
MNMessage * mn_message_new_from_mime_message_full (GType type, MNMailbox *mailbox, GMimeMessage *mime_message, const char *mid, const char *uri, MNMessageFlags flags, gboolean handle_status) { MNMessage *message; const char *id; time_t sent_time; const char *from; const char *subject; char *decoded_from; char *decoded_subject; g_return_val_if_fail(type != 0, NULL); g_return_val_if_fail(MN_IS_MAILBOX(mailbox), NULL); g_return_val_if_fail(GMIME_IS_MESSAGE(mime_message), NULL); if (is_spam(mime_message)) return NULL; if (handle_status) { const char *status; status = g_mime_message_get_header(mime_message, "Status"); if (status && strchr(status, 'R')) return NULL; /* the message was read */ else if (status && strchr(status, 'O')) flags &= ~MN_MESSAGE_NEW; else flags |= MN_MESSAGE_NEW; } id = g_mime_message_get_message_id(mime_message); g_mime_message_get_date(mime_message, &sent_time, NULL); from = g_mime_message_get_sender(mime_message); subject = g_mime_message_get_subject(mime_message); decoded_from = from ? g_mime_utils_header_decode_text(from) : NULL; decoded_subject = subject ? g_mime_utils_header_decode_text(subject) : NULL; message = g_object_new(type, MN_MESSAGE_PROP_MAILBOX(mailbox), MN_MESSAGE_PROP_SENT_TIME(sent_time), MN_MESSAGE_PROP_ID((char *) id), MN_MESSAGE_PROP_MID((char *) mid), MN_MESSAGE_PROP_FROM(decoded_from), MN_MESSAGE_PROP_SUBJECT(decoded_subject), MN_MESSAGE_PROP_URI((char *) uri), MN_MESSAGE_PROP_FLAGS(flags), NULL); g_free(decoded_from); g_free(decoded_subject); return message; }