@@ -107,11 +107,15 @@ impl Irc {
107107 casemapping : isupport:: CaseMap ,
108108 supports_echoes : bool ,
109109 ) -> Option < Vec < Message > > {
110- let to_targets = |target : & str , source| {
110+ let to_message_target = |target : & str , source| {
111+ if target == "*" || target. starts_with ( '$' ) {
112+ return message:: Target :: Server { source } ;
113+ }
114+
111115 let target =
112116 Target :: parse ( target, chantypes, statusmsg, casemapping) ;
113117
114- let message_target = match & target {
118+ match & target {
115119 Target :: Channel ( channel) => message:: Target :: Channel {
116120 channel : channel. clone ( ) ,
117121 source,
@@ -121,17 +125,15 @@ impl Irc {
121125 query : query. clone ( ) ,
122126 source,
123127 } ,
124- } ;
125-
126- ( target, message_target)
128+ }
127129 } ;
128130
129131 match self {
130132 Irc :: Msg ( targets, text) => Some (
131133 targets
132134 . split ( ',' )
133135 . map ( |target| {
134- let ( target , message_target) = to_targets (
136+ let message_target = to_message_target (
135137 target,
136138 message:: Source :: User ( user. clone ( ) ) ,
137139 ) ;
@@ -155,7 +157,7 @@ impl Irc {
155157 targets
156158 . split ( ',' )
157159 . map ( |target| {
158- let ( target , message_target) = to_targets (
160+ let message_target = to_message_target (
159161 target,
160162 message:: Source :: User ( user. clone ( ) ) ,
161163 ) ;
@@ -176,7 +178,7 @@ impl Irc {
176178 . collect ( ) ,
177179 ) ,
178180 Irc :: Me ( target, action) => {
179- let ( _ , message_target) = to_targets (
181+ let message_target = to_message_target (
180182 target,
181183 message:: Source :: Action ( Some ( user. clone ( ) ) ) ,
182184 ) ;
0 commit comments