[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xchat-perl
Subject:    additions to perl.c
From:       Mike Guidero <kymermosst () penguinpowered ! com>
Date:       2000-05-26 21:14:26
[Download RAW message or body]

okay, now that there's a devel version i can compile (1.5.2)... i've ported my
remaining current additions to it.

Summary:
- added IRC::perl_script_list()  returns a list of loaded scripts and versions
- added IRC::user_list_short(channel,server)  returns a list of nicks and
addresses suitable for assigning to a hash (leaves out +o and +v status), such
as:  my %UList = IRC::user_list_short($Chan, $Serv);

These are both tested, and work correctly.

I'll also answer any questions, such as 'what for?' and all that.

-- 
Mike Guidero [KD7ILU] - Genius in disguise.
*** Al Gore asks: "Are Cheerios are bagel or donut seeds?" ***
PGP Public Key: (Unavailable at this time)
Fingerprint   : DD87 C663 1767 B11F  1EDE D2AA 0DD1 89C6  56D7 109A
["perl.c-diff-mag" (text/plain)]

126a127,128
> XS (XS_IRC_user_list_short); /*MAG*/
> XS (XS_IRC_perl_script_list); /*MAG*/
307a310,311
> 	newXS ("IRC::user_list_short", XS_IRC_user_list_short, "IRC"); /*MAG*/
> 	newXS ("IRC::perl_script_list", XS_IRC_perl_script_list, "IRC"); /*MAG*/
1127a1132,1204
> 
> /* MAG030600: BEGIN IRC::user_list_short */
> /*
> 
>    IRC::user_list_short( channel, server )
>    returns a shorter user list consisting of pairs of nick & user@host
>    suitable for assigning to a hash.  modified IRC::user_list()
>    
>  */
> XS (XS_IRC_user_list_short)
> {
> 	struct User *user;
> 	struct session *sess;
> 	char *channel, *server;
> 	GSList *list = sess_list;
> 	int i = 0, junk;
> 	dXSARGS;
> 	items = 0;
> 
> 	channel = SvPV (ST (0), junk);
> 	server = SvPV (ST (1), junk);
> 
> 	while (list)
> 	{
> 		sess = (struct session *) list->data;
> 		if (!server[0] || !strcasecmp (sess->server->servername, server))
> 		{
> 			if (!strcasecmp (sess->channel, channel) && !sess->is_dialog && !sess->is_shell)
> 			{
>         	    list = sess->userlist;
>         	    while (list)
>             	{
>             		user = (struct User *)list->data;
> 					XST_mPV (i, user->nick);
> 					i++;
> 					if (user->hostname)
> 						XST_mPV (i, user->hostname);
> 					else
> 						XST_mPV (i, "FETCHING");
> 					i++;
> 					list = list->next;
> 				}
> 				XSRETURN (i);
> 			}
> 		}
> 		list = list->next;
> 	}
> 	XSRETURN (i);
> }
> /* MAG030600: END */
> 
> 
> /* MAG030600 BEGIN IRC::perl_script_list() */
> /* return a list of currently loaded perl script names and versions */
> XS (XS_IRC_perl_script_list) {
> 	int i = 0;
> 	GSList *handler;
> 
> 	dXSARGS;
> 
> 	handler = perl_list;
> 	while (handler)
> 	{
> 		struct perlscript *scp = handler->data;
> 		XST_mPV (i, scp->name);
> 		i++;
> 		XST_mPV (i, scp->version);
> 		i++;
> 		handler = handler->next;
> 	}
> 	XSRETURN(i);
> }
> /* MAG030600 END */

-
XChat-perl:    mailing list for XChat perl scripters
Archive:       http://mail.nl.linux.org/
Posted By:     Mike Guidero <kymermosst@penguinpowered.com>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic