view src/protocols/zephyr/ZGetSubs.c @ 13515:f5d4300aeed8

[gaim-migrate @ 15891] Fix sf bug #1443092, Events logging not working properly? "signed on" and "signed off" for people in your buddy list are now correctly logged to the system log. Richard, someone had already left a note in this function to make a change after the string freeze (I think it was you). We should still make a change after the string freeze, but the change is different now than it was before this commit. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Wed, 15 Mar 2006 04:41:44 +0000
parents 7c2e2c4d45a4
children
line wrap: on
line source

/* This file is part of the Project Athena Zephyr Notification System.
 * It contains source for the ZGetSubscriptions function.
 *
 *	Created by:	Robert French
 *
 *	Copyright (c) 1987 by the Massachusetts Institute of Technology.
 *	For copying and distribution information, see the file
 *	"mit-copyright.h". 
 */

#include "internal.h"

#define min(a,b) ((a)<(b)?(a):(b))

/* Prototype for -Wmissing-prototypes */
Code_t ZGetSubscriptions(ZSubscription_t *subscription, int *numsubs);

Code_t ZGetSubscriptions(ZSubscription_t *subscription, int *numsubs)
{
    int i;
	
    if (!__subscriptions_list)
	return (ZERR_NOSUBSCRIPTIONS);

    if (__subscriptions_next == __subscriptions_num)
	return (ZERR_NOMORESUBSCRIPTIONS);
	
    for (i=0;i<min(*numsubs, __subscriptions_num-__subscriptions_next);i++)
	subscription[i] = __subscriptions_list[i+__subscriptions_next];

    if (__subscriptions_num-__subscriptions_next < *numsubs)
	*numsubs = __subscriptions_num-__subscriptions_next;

    __subscriptions_next += *numsubs;
	
    return (ZERR_NONE);
}