]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/helpfile.c
mod-python: generalised the setting of the PYTHONPATH environment variable
[irc/evilnet/x3.git] / src / helpfile.c
index 8a98e3bdde8d16cb35c26edb654973765c79c7d8..b46d24a04d7d21b180780bc3692c451d57f1eeda 100644 (file)
@@ -5,7 +5,7 @@
  *
  * x3 is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -308,10 +308,18 @@ table_send(struct userNode *from, const char *to, unsigned int size, irc_send_fu
 
     if (irc_send)
         {} /* use that function */
-    else if (hi)
+    else if(IsChannelName(to)) {
+        irc_send = irc_privmsg;
+    }
+    else if (message_dest->no_notice) {
+        irc_send = irc_privmsg;
+    }
+    else if (hi) {
         irc_send = HANDLE_FLAGGED(hi, USE_PRIVMSG) ? irc_privmsg : irc_notice;
-    else
-        irc_send = IsChannelName(to) ? irc_privmsg : irc_notice;
+    }
+    else {
+        irc_send = irc_notice;
+    }
 
     /* Limit size to how much we can show at once */
     if (size > sizeof(line))
@@ -483,7 +491,10 @@ vsend_message(const char *dest, struct userNode *src, struct handle_info *handle
         size = DEFAULT_LINE_SIZE;
     switch (msg_type & 3) {
         case 0:
-            irc_send = irc_notice;
+            if(message_dest && message_dest->no_notice)
+               irc_send = irc_privmsg;
+            else
+               irc_send = irc_notice;
             break;
         case 2:
             irc_send = irc_wallchops;
@@ -501,7 +512,7 @@ vsend_message(const char *dest, struct userNode *src, struct handle_info *handle
     expand_pos = pos = 0;
     chars_sent = 0;
     while (input.list[ipos]) {
-       char ch, *value, *free_value;
+       char ch, *value = NULL, *free_value;
 
         while ((ch = input.list[ipos]) && (ch != '$') && (ch != '\n') && (pos < size)) {
            line[pos++] = ch;
@@ -555,6 +566,9 @@ vsend_message(const char *dest, struct userNode *src, struct handle_info *handle
        case 'b':
            value = use_color ? "\002" : "";
            break;
+       case 'k':
+           value = use_color ? "\003" : "";
+           break;
        case 'o':
            value = use_color ? "\017" : "";
            break;
@@ -586,6 +600,11 @@ vsend_message(const char *dest, struct userNode *src, struct handle_info *handle
         case 's':
             value = self->name;
             break;
+#ifdef HAVE_HELPSERV
+        case 'i':
+            value = strdup(get_helpserv_id(dest, src));
+            break;
+#endif
        case 'H':
            value = handle ? handle->handle : "Account";
            break;