/[weechat]/weechat/src/plugins/perl/wee-perl.c
ViewVC logotype

Diff of /weechat/src/plugins/perl/wee-perl.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.7 by flashcode, Sat Nov 29 10:37:37 2003 UTC revision 1.8 by flashcode, Sat Nov 29 16:18:02 2003 UTC
# Line 138  static XS (XS_IRC_print) Line 138  static XS (XS_IRC_print)
138  }  }
139    
140  /*  /*
141     * IRC::print_with_channel: print message to a specific channel/server
142     *                          (server is optional)
143     */
144    
145    static XS (XS_IRC_print_with_channel)
146    {
147        int i, integer;
148        char *message, *channel, *server = NULL;
149        t_gui_window *ptr_window;
150        t_irc_server *ptr_server;
151        t_irc_channel *ptr_channel;
152        dXSARGS;
153        
154        /* server specified */
155        if (items > 2)
156        {
157            server = SvPV (ST (2), integer);
158            if (!server[0])
159                server = NULL;
160        }
161        
162        /* look for window for printing message */
163        channel = SvPV (ST (1), integer);
164        ptr_window = NULL;
165        for (ptr_server = irc_servers; ptr_server;
166             ptr_server = ptr_server->next_server)
167        {
168            if (!server || (strcasecmp (ptr_server->name, server)) == 0)
169            {
170                for (ptr_channel = ptr_server->channels; ptr_channel;
171                     ptr_channel = ptr_channel->next_channel)
172                {
173                    if (strcasecmp (ptr_channel->name, channel) == 0)
174                    {
175                        ptr_window = ptr_channel->window;
176                        break;
177                    }
178                }
179            }
180            if (ptr_window)
181                break;
182        }
183        
184        /* window found => display message & return 1 */
185        if (ptr_window)
186        {
187            message = SvPV (ST (0), integer);
188            irc_display_prefix (ptr_window, PREFIX_PLUGIN);
189            gui_printf (ptr_window, "%s", message);
190            XSRETURN_YES;
191        }
192            
193        /* no window found => return 0 */
194        XSRETURN_NO;
195    }
196    
197    /*
198   * IRC::add_message_handler: add handler for messages (privmsg, ...)   * IRC::add_message_handler: add handler for messages (privmsg, ...)
199   */   */
200    
# Line 191  xs_init (pTHX) Line 248  xs_init (pTHX)
248      newXS ("DynaLoader::boot_DynaLoader", boot_DynaLoader, __FILE__);      newXS ("DynaLoader::boot_DynaLoader", boot_DynaLoader, __FILE__);
249      newXS ("IRC::register", XS_IRC_register, "IRC");      newXS ("IRC::register", XS_IRC_register, "IRC");
250      newXS ("IRC::print", XS_IRC_print, "IRC");      newXS ("IRC::print", XS_IRC_print, "IRC");
251        newXS ("IRC::print_with_channel", XS_IRC_print_with_channel, "IRC");
252      newXS ("IRC::add_message_handler", XS_IRC_add_message_handler, "IRC");      newXS ("IRC::add_message_handler", XS_IRC_add_message_handler, "IRC");
253      newXS ("IRC::add_command_handler", XS_IRC_add_command_handler, "IRC");      newXS ("IRC::add_command_handler", XS_IRC_add_command_handler, "IRC");
254  }  }

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26