ソースを参照

* Change privmsg()/notice() to use bd::String

Bryan Drewery 15 年 前
コミット
a07b103f91

+ 8 - 8
src/chanprog.c

@@ -954,32 +954,32 @@ samechans(const char *nick, const char *delim)
   return ret;
 }
 
-struct chanset_t* find_common_opped_chan(const char* nick) {
+struct chanset_t* find_common_opped_chan(bd::String nick) {
   for (struct chanset_t* chan = chanset; chan; chan = chan->next) {
     if (channel_active(chan) && (me_op(chan) || me_voice(chan))) {
-      if (ismember(chan, nick))
+      if (ismember(chan, nick.c_str()))
         return chan;
     }
   }
   return NULL;
 }
 
-void privmsg(const char* target, const char* msg, int idx) {
+void privmsg(bd::String target, bd::String msg, int idx) {
   struct chanset_t* chan = NULL;
   if (have_cprivmsg && !strchr(CHANMETA, target[0]))
     chan = find_common_opped_chan(target);
   if (chan)
-    dprintf(idx, "CPRIVMSG %s %s :%s\n", target, chan->name, msg);
+    dprintf(idx, "CPRIVMSG %s %s :%s\n", target.c_str(), chan->name, msg.c_str());
   else
-    dprintf(idx, "PRIVMSG %s :%s\n", target, msg);
+    dprintf(idx, "PRIVMSG %s :%s\n", target.c_str(), msg.c_str());
 }
 
-void notice(const char* target, const char* msg, int idx) {
+void notice(bd::String target, bd::String msg, int idx) {
   struct chanset_t* chan = NULL;
   if (have_cnotice && !strchr(CHANMETA, target[0]))
     chan = find_common_opped_chan(target);
   if (chan)
-    dprintf(idx, "CNOTICE %s %s :%s\n", target, chan->name, msg);
+    dprintf(idx, "CNOTICE %s %s :%s\n", target.c_str(), chan->name, msg.c_str());
   else
-    dprintf(idx, "NOTICE %s :%s\n", target, msg);
+    dprintf(idx, "NOTICE %s :%s\n", target.c_str(), msg.c_str());
 }

+ 2 - 2
src/chanprog.h

@@ -32,8 +32,8 @@ void add_child_bots();
 bool is_hub(const char*);
 void load_internal_users();
 void setup_HQ(int);
-void privmsg(const char* target, const char* msg, int idx);
-void notice(const char* target, const char* msg, int idx);
+void privmsg(bd::String target, bd::String msg, int idx);
+void notice(bd::String target, bd::String msg, int idx);
 
 extern struct chanset_t		*chanset, *chanset_default;
 extern char			admin[], origbotnick[HANDLEN + 1], origbotname[NICKLEN], jupenick[NICKLEN], botname[NICKLEN], *def_chanset;

+ 1 - 1
src/cmds.c

@@ -4549,7 +4549,7 @@ void cmd_tcl(int idx, char *par)
 
   bd::String result(tcl_eval(par));
   if (dcc[idx].irc && strcmp(dcc[idx].u.chat->con_chan, "*")) {
-      privmsg(dcc[idx].u.chat->con_chan, tcl_eval(par).c_str(), DP_SERVER);
+      privmsg(dcc[idx].u.chat->con_chan, tcl_eval(par), DP_SERVER);
   } else
     dprintf(idx, result.c_str(), DP_SERVER);
 }

+ 1 - 1
src/libtcl.c

@@ -106,7 +106,7 @@ static int cmd_privmsg STDVAR {
   bd::String str = argv[2];
   for (int i = 3; i < argc; ++i)
     str += " " + bd::String(argv[i]);
-  privmsg(argv[1], str.c_str(), DP_SERVER);
+  privmsg(argv[1], str, DP_SERVER);
 
   return TCL_OK;
 }

+ 1 - 1
src/log.c

@@ -349,7 +349,7 @@ irc_log(struct chanset_t *chan, const char *format, ...)
   if ((chan && strcasecmp(chan->dname, relay_chan)) || !chan) {
     bd::String msg;
     msg = bd::String::printf("[%s] %s", chan ? chan->dname : "*" , va_out);
-    privmsg(relay_chan, msg.c_str(), DP_HELP);
+    privmsg(relay_chan, msg, DP_HELP);
   }
 /*
   chanout_but(-1, 1, "[%s] %s\n", chan->dname, va_out);

+ 14 - 14
src/mod/ctcp.mod/ctcp.c

@@ -407,7 +407,7 @@ static int ctcp_FINGER(char *nick, char *uhost, struct userrec *u, char *object,
   bd::String msg;
   msg = bd::String::printf("\001%s %s (%s) Idle %d second%s\001", keyword, "",
                    botuserhost, (int) idletime, idletime == 1 ? "" : "s");
-  notice(nick, msg.c_str(), DP_HELP);
+  notice(nick, msg, DP_HELP);
   return BIND_RET_BREAK;
 }
 
@@ -418,7 +418,7 @@ static int ctcp_ECHO(char *nick, char *uhost, struct userrec *u, char *object, c
   strlcpy(reply, text, sizeof(reply));
   bd::String msg;
   msg = bd::String::printf("\001%s %s\001", keyword, reply);
-  notice(nick, msg.c_str(), DP_HELP);
+  notice(nick, msg, DP_HELP);
   return BIND_RET_BREAK;
 }
 static int ctcp_PING(char *nick, char *uhost, struct userrec *u, char *object, char *keyword, char *text)
@@ -426,7 +426,7 @@ static int ctcp_PING(char *nick, char *uhost, struct userrec *u, char *object, c
   if (strlen(text) <= 80) {       /* bitchx ignores > 80 */
     bd::String msg;
     msg = bd::String::printf("\001%s %s\001", keyword, text);
-    notice(nick, msg.c_str(), DP_HELP);
+    notice(nick, msg, DP_HELP);
   }
   return BIND_RET_BREAK;
 }
@@ -476,11 +476,11 @@ static int ctcp_VERSION(char *nick, char *uhost, struct userrec *u, char *object
 
   bd::String msg;
   msg = bd::String::printf("\001%s %s%s\001", keyword, ctcpversion, s);
-  notice(nick, msg.c_str(), queue);
+  notice(nick, msg, queue);
 
   if (ctcpversion2[0]) {
     msg = bd::String::printf("\001%s %s\001", keyword, ctcpversion2);
-    notice(nick, msg.c_str(), DP_HELP);
+    notice(nick, msg, DP_HELP);
   }
   return BIND_RET_BREAK;
 }
@@ -490,7 +490,7 @@ static int ctcp_WHOAMI(char *nick, char *uhost, struct userrec *u, char *object,
   if (cloak_script > 0 && cloak_script < 9) {
     bd::String msg;
     msg = bd::String::printf("\002BitchX\002: Access Denied");
-    notice(nick, msg.c_str(), DP_HELP);
+    notice(nick, msg, DP_HELP);
   }
   return BIND_RET_BREAK;
 }
@@ -506,7 +506,7 @@ static int ctcp_OP(char *nick, char *uhost, struct userrec *u, char *object, cha
       *p = 0;
     bd::String msg;
     msg = bd::String::printf("\002BitchX\002: I'm not on %s or I'm not opped", chan);
-    notice(nick, msg.c_str(), DP_HELP);
+    notice(nick, msg, DP_HELP);
   }
   return BIND_RET_BREAK;
 }
@@ -526,14 +526,14 @@ static int ctcp_INVITE_UNBAN(char *nick, char *uhost, struct userrec *u, char *o
       if (chan->ircnet_status & CHAN_ACTIVE) {
         if (!strcasecmp(chan->name, chname)) {
           msg = bd::String::printf("\002BitchX\002: Access Denied");
-          notice(nick, msg.c_str(), DP_HELP);
+          notice(nick, msg, DP_HELP);
           return BIND_RET_LOG;
         }
       }
       chan = chan->next;
     }
     msg = bd::String::printf("\002BitchX\002: I'm not on that channel");
-    notice(nick, msg.c_str(), DP_HELP);
+    notice(nick, msg, DP_HELP);
   }
   return BIND_RET_BREAK;
 }
@@ -548,7 +548,7 @@ static int ctcp_USERINFO(char *nick, char *uhost, struct userrec *u, char *objec
   }
   bd::String msg;
   msg = bd::String::printf("\001%s %s\001", keyword, ctcpuserinfo);
-  notice(nick, msg.c_str(), DP_HELP);
+  notice(nick, msg, DP_HELP);
   return BIND_RET_BREAK;
 }
 
@@ -610,11 +610,11 @@ static int ctcp_CLIENTINFO(char *nick, char *uhost, struct userrec *u, char *obj
     strlcpy(buf, "UPTIME my uptime", sizeof(buf));
   else {
     msg = bd::String::printf("\001ERRMSG %s is not a valid function\001", text);
-    notice(nick, msg.c_str(), DP_HELP);
+    notice(nick, msg, DP_HELP);
     return BIND_RET_LOG;
   }
   msg = bd::String::printf("\001%s %s\001", keyword, buf);
-  notice(nick, msg.c_str(), DP_HELP);
+  notice(nick, msg, DP_HELP);
   return BIND_RET_BREAK;
 }
 
@@ -625,7 +625,7 @@ static int ctcp_TIME(char *nick, char *uhost, struct userrec *u, char *object, c
   strlcpy(tms, ctime(&now), sizeof(tms));
   bd::String msg;
   msg = bd::String::printf("\001%s %s\001", keyword, tms);
-  notice(nick, msg.c_str(), DP_HELP);
+  notice(nick, msg, DP_HELP);
   return BIND_RET_BREAK;
 }
 
@@ -659,7 +659,7 @@ static int ctcp_CHAT(char *nick, char *uhost, struct userrec *u, char *object, c
        * -poptix 5/1/1997 */
       bd::String msg;
       msg = bd::String::printf("\001DCC CHAT chat %lu %u\001", iptolong(getmyip()), dcc[ix].port);
-      privmsg(nick, msg.c_str(), DP_SERVER);
+      privmsg(nick, msg, DP_SERVER);
     }
     return BIND_RET_BREAK;
 }

+ 1 - 1
src/mod/irc.mod/chan.c

@@ -1668,7 +1668,7 @@ static int got341(char *from, char *msg)
   putlog(LOG_MISC, "*", "HIJACKED invite detected: %s to %s", nick, chan->dname);
   bd::String msg;
   msg = bd::String::printf("ALERT! \002%s was invited via a hijacked connection/process.\002", nick);
-  privmsg(chan->name, msg.c_str(), DP_MODE_NEXT);
+  privmsg(chan->name, msg, DP_MODE_NEXT);
   return 0;
 }
 #endif /* CACHE */

+ 3 - 3
src/mod/irc.mod/cmdsirc.c

@@ -121,7 +121,7 @@ static void cmd_act(int idx, char *par)
 	 chan->dname, par);
   bd::String msg;
   msg = bd::String::printf("\001ACTION %s\001", par);
-  privmsg(chan->name, msg.c_str(), DP_HELP);
+  privmsg(chan->name, msg, DP_HELP);
   dprintf(idx, "Action to %s: %s\n", chan->dname, par);
 }
 
@@ -1768,7 +1768,7 @@ static void cmd_adduser(int idx, char *par)
 
     bd::String msg;
     msg = bd::String::printf("*** You've been add to this botnet as '%s' with the host '%s'. Ask a botnet admin for the msg cmds. Your initial password is: %s", hand, p1, s2);
-    privmsg(nick, msg.c_str(), DP_HELP);
+    privmsg(nick, msg, DP_HELP);
   } else {
     dprintf(idx, "Added hostmask %s to %s.\n", p1, u->handle);
     addhost_by_handle(hand, p1);
@@ -1937,7 +1937,7 @@ static void cmd_play(int idx, char *par)
   while (stream.tell() < stream.length()) {
     str = stream.getline().chomp();
     if (str.length()) {
-      privmsg(chan->name, str.c_str(), DP_PLAY);
+      privmsg(chan->name, str, DP_PLAY);
       ++lines;
     }
   }

+ 1 - 1
src/mod/irc.mod/irc.c

@@ -201,7 +201,7 @@ void notice_invite(struct chanset_t *chan, char *handle, char *nick, char *uhost
   bd::String msg;
   msg = bd::String::printf("\001ACTION has invited %s(%s%s%s) to %s.%s\001",
     fhandle, nick, uhost ? "!" : "", uhost ? uhost : "", chan->dname, op ? ops : "");
-  privmsg(chan->name, msg.c_str(), DP_MODE);
+  privmsg(chan->name, msg, DP_MODE);
 }
 
 #ifdef CACHE

+ 14 - 14
src/mod/irc.mod/msgcmds.c

@@ -44,7 +44,7 @@ static int msg_bewm(char *nick, char *host, struct userrec *u, char *par)
 
   if (!u) {
     msg = bd::String::printf(STR("---- (%s!%s) attempted to gain secure invite, but is not a recognized user."), nick, host);
-    privmsg(chan->name, msg.c_str(), DP_SERVER);
+    privmsg(chan->name, msg, DP_SERVER);
 
     putlog(LOG_CMDS, "*", STR("(%s!%s) !*! BEWM"), nick, host);
     return BIND_RET_BREAK;
@@ -59,12 +59,12 @@ static int msg_bewm(char *nick, char *host, struct userrec *u, char *par)
   if (!chk_op(fr, chan))  {
     putlog(LOG_CMDS, "*", STR("(%s!%s) !%s! !BEWM"), nick, host, u->handle);
     msg = bd::String::printf(STR("---- %s (%s!%s) attempted to gain secure invite, but is missing a flag."), u->handle, nick, host);
-    privmsg(chan->name, msg.c_str(), DP_SERVER);
+    privmsg(chan->name, msg, DP_SERVER);
     return BIND_RET_BREAK;
   }
 
   msg = bd::String::printf("\001ACTION has invited \002%s\002 (%s!%s) to %s.\001", u->handle, nick, host, chan->dname);
-  privmsg(chan->name, msg.c_str(), DP_SERVER);
+  privmsg(chan->name, msg, DP_SERVER);
 
   cache_invite(chan, nick, host, u->handle, 0, 0);
   putlog(LOG_CMDS, "*", STR("(%s!%s) !%s! BEWM"), nick, host, u->handle);
@@ -118,7 +118,7 @@ static int msg_pass(char *nick, char *host, struct userrec *u, char *par)
   set_user(&USERENTRY_PASS, u, mynew);
   bd::String msg;
   msg = bd::String::printf("%s '%s'.", mynew == old ? "Password set to:" : "Password changed to:", mynew);
-  notice(nick, msg.c_str(), DP_HELP);
+  notice(nick, msg, DP_HELP);
   return BIND_RET_BREAK;
 }
 
@@ -145,7 +145,7 @@ static int msg_op(char *nick, char *host, struct userrec *u, char *par)
         msg = bd::String::printf("---- (%s!%s) attempted to OP for %s but is not currently in %s.", nick, host, par, homechan);
       else
         msg = bd::String::printf("---- (%s!%s) attempted to OP but is not currently in %s.", nick, host, homechan);
-      privmsg(homechan, msg.c_str(), DP_SERVER);
+      privmsg(homechan, msg, DP_SERVER);
       return BIND_RET_BREAK;
     }
   }
@@ -162,7 +162,7 @@ static int msg_op(char *nick, char *host, struct userrec *u, char *par)
               putlog(LOG_CMDS, "*", "(%s!%s) !%s! OP %s", nick, host, u->handle, par);
               if (manop_warn && chan->manop) {
                 msg = bd::String::printf("%s is currently set to punish for manual op.", chan->dname);
-                notice(nick, msg.c_str(), DP_HELP);
+                notice(nick, msg, DP_HELP);
               }
             }
           }
@@ -177,7 +177,7 @@ static int msg_op(char *nick, char *host, struct userrec *u, char *par)
               stats++;
               if (manop_warn && chan->manop) {
                 msg = bd::String::printf("%s is currently set to punish for manual op.", chan->dname);
-                notice(nick, msg.c_str(), DP_HELP);
+                notice(nick, msg, DP_HELP);
               }
             }
           }
@@ -221,14 +221,14 @@ static int msg_ident(char *nick, char *host, struct userrec *u, char *par)
       return BIND_RET_BREAK;
     } else if (u) {
       msg = bd::String::printf("You're not %s, you're %s.", who, u->handle);
-      notice(nick, msg.c_str(), DP_HELP);
+      notice(nick, msg, DP_HELP);
       return BIND_RET_BREAK;
     } else {
       putlog(LOG_CMDS, "*", "(%s!%s) !*! IDENT %s", nick, host, who);
       simple_snprintf(s, sizeof s, "%s!%s", nick, host);
       maskaddr(s, s1, 0); /* *!user@host */
       msg = bd::String::printf("Added hostmask: %s", s1);
-      notice(nick, msg.c_str(), DP_HELP);
+      notice(nick, msg, DP_HELP);
       addhost_by_handle(who, s1);
       check_this_user(who, 0, NULL);
       return BIND_RET_BREAK;
@@ -262,12 +262,12 @@ static int msg_invite(char *nick, char *host, struct userrec *u, char *par)
     bd::String msg;
     if (!(chan = findchan_by_dname(par))) {
       msg = bd::String::printf("Usage: /MSG %s %s <pass> <channel>", botname, msginvite);
-      notice(nick, msg.c_str(), DP_HELP);
+      notice(nick, msg, DP_HELP);
       return BIND_RET_BREAK;
     }
     if (!channel_active(chan)) {
       msg = bd::String::printf("%s: Not on that channel right now.", par);
-      notice(nick, msg.c_str(), DP_HELP);
+      notice(nick, msg, DP_HELP);
       return BIND_RET_BREAK;
     }
     /* We need to check access here also (dw 991002) */
@@ -321,7 +321,7 @@ static int msg_authstart(char *nick, char *host, struct userrec *u, char *par)
   auth->Status(AUTH_PASS);
   bd::String msg;
   msg = bd::String::printf(STR("auth%s %s"), u ? "." : "!", conf.bot->nick);
-  privmsg(nick, msg.c_str(), DP_HELP);
+  privmsg(nick, msg, DP_HELP);
 
   return BIND_RET_BREAK;
 }
@@ -333,7 +333,7 @@ AuthFinish(Auth *auth)
   auth->Done();
   bd::String msg;
   msg = bd::String::printf(STR("You are now authorized for cmds, see %chelp"), auth_prefix[0]);
-  notice(auth->nick, msg.c_str(), DP_HELP);
+  notice(auth->nick, msg, DP_HELP);
 }
 
 static int msg_auth(char *nick, char *host, struct userrec *u, char *par)
@@ -360,7 +360,7 @@ static int msg_auth(char *nick, char *host, struct userrec *u, char *par)
       auth->MakeHash();
       bd::String msg;
       msg = bd::String::printf(STR("-Auth %s %s"), auth->rand, conf.bot->nick);
-      privmsg(nick, msg.c_str(), DP_HELP);
+      privmsg(nick, msg, DP_HELP);
     } else {
       /* no auth_key and/or no SECPASS for the user, don't require a hash auth */
       AuthFinish(auth);

+ 1 - 1
src/mod/transfer.mod/transfer.c

@@ -752,7 +752,7 @@ static void dcc_get_pending(int idx, char *buf, int len)
   if (dcc[idx].sock == -1) {
     bd::String msg;
     msg = bd::String::printf("Bad connection (%s)", strerror(errno));
-    notice(dcc[idx].nick, msg.c_str(), DP_HELP);
+    notice(dcc[idx].nick, msg, DP_HELP);
     putlog(LOG_FILES, "*", "DCC bad connection: GET %s (%s!%s)",
 	   dcc[idx].u.xfer->origname, dcc[idx].nick, dcc[idx].host);
     fclose(dcc[idx].u.xfer->f);