Reset idle time only if the message is non-empty, not the same as the previous messag...
authorpk910 <philipp@zoelle1.de>
Tue, 28 Jun 2011 13:39:27 +0000 (15:39 +0200)
committerpk910 <philipp@zoelle1.de>
Tue, 28 Jun 2011 13:39:27 +0000 (15:39 +0200)
ircd/m_privmsg.c

index c2b09ae125202eeff64cee56c4e4d41751a24951..e5edee281d41a4ab32a99821d3d9073cca8309e4 100644 (file)
@@ -115,15 +115,15 @@ int m_privmsg(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
 
   ClrFlag(sptr, FLAG_TS8);
 
 
   ClrFlag(sptr, FLAG_TS8);
 
-  if (feature_bool(FEAT_IDLE_FROM_MSG))
-    cli_user(sptr)->last = CurrentTime;
-
   if (parc < 2 || EmptyString(parv[1]))
     return send_reply(sptr, ERR_NORECIPIENT, MSG_PRIVATE);
 
   if (parc < 3 || EmptyString(parv[parc - 1]))
     return send_reply(sptr, ERR_NOTEXTTOSEND);
 
   if (parc < 2 || EmptyString(parv[1]))
     return send_reply(sptr, ERR_NORECIPIENT, MSG_PRIVATE);
 
   if (parc < 3 || EmptyString(parv[parc - 1]))
     return send_reply(sptr, ERR_NOTEXTTOSEND);
 
+  if (feature_bool(FEAT_IDLE_FROM_MSG) && (!cli_user(sptr)->lastmsg || strcmp(cli_user(sptr)->lastmsg, parv[parc - 1])))
+    cli_user(sptr)->last = CurrentTime;
+
   count = unique_name_vector(parv[1], ',', vector, MAXTARGETS);
 
   ccount = 0;
   count = unique_name_vector(parv[1], ',', vector, MAXTARGETS);
 
   ccount = 0;
@@ -211,15 +211,15 @@ int mo_privmsg(struct Client* cptr, struct Client* sptr, int parc, char* parv[])
 
   ClrFlag(sptr, FLAG_TS8);
 
 
   ClrFlag(sptr, FLAG_TS8);
 
-  if (feature_bool(FEAT_IDLE_FROM_MSG))
-    cli_user(sptr)->last = CurrentTime;
-
   if (parc < 2 || EmptyString(parv[1]))
     return send_reply(sptr, ERR_NORECIPIENT, MSG_PRIVATE);
 
   if (parc < 3 || EmptyString(parv[parc - 1]))
     return send_reply(sptr, ERR_NOTEXTTOSEND);
 
   if (parc < 2 || EmptyString(parv[1]))
     return send_reply(sptr, ERR_NORECIPIENT, MSG_PRIVATE);
 
   if (parc < 3 || EmptyString(parv[parc - 1]))
     return send_reply(sptr, ERR_NOTEXTTOSEND);
 
+  if (feature_bool(FEAT_IDLE_FROM_MSG) && && (!cli_user(sptr)->lastmsg || strcmp(cli_user(sptr)->lastmsg, parv[parc - 1])))
+    cli_user(sptr)->last = CurrentTime;
+
   count = unique_name_vector(parv[1], ',', vector, MAXTARGETS);
 
   for (i = 0; i < count; ++i) {
   count = unique_name_vector(parv[1], ',', vector, MAXTARGETS);
 
   for (i = 0; i < count; ++i) {