1 /* This file is part of the Project Athena Zephyr Notification System. 2 * It contains source for the ZGetSubscriptions function. 3 * 4 * Created by: Robert French 5 * 6 * Copyright (c) 1987 by the Massachusetts Institute of Technology. 7 * For copying and distribution information, see the file 8 * "mit-copyright.h". 9 */ 10 11 #include "internal.h" 12 13 #define min(a,b) ((a)<(b)?(a):(b)) 14 15 /* Prototype for -Wmissing-prototypes */ 16 Code_t ZGetSubscriptions(ZSubscription_t *subscription, int *numsubs); 17 ZGetSubscriptions(ZSubscription_t * subscription,int * numsubs)18Code_t ZGetSubscriptions(ZSubscription_t *subscription, int *numsubs) 19 { 20 int i; 21 22 if (!__subscriptions_list) 23 return (ZERR_NOSUBSCRIPTIONS); 24 25 if (__subscriptions_next == __subscriptions_num) 26 return (ZERR_NOMORESUBSCRIPTIONS); 27 28 for (i=0;i<min(*numsubs, __subscriptions_num-__subscriptions_next);i++) 29 subscription[i] = __subscriptions_list[i+__subscriptions_next]; 30 31 if (__subscriptions_num-__subscriptions_next < *numsubs) 32 *numsubs = __subscriptions_num-__subscriptions_next; 33 34 __subscriptions_next += *numsubs; 35 36 return (ZERR_NONE); 37 } 38