Changeset de03334 for buddylist.c
- Timestamp:
- Jul 3, 2003, 9:31:03 PM (21 years ago)
- Branches:
- master, barnowl_perlaim, debian, owl, release-1.10, release-1.4, release-1.5, release-1.6, release-1.7, release-1.8, release-1.9
- Children:
- 5b85d19
- Parents:
- 210c261
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
buddylist.c
rceb8cfb rde03334 6 6 { 7 7 owl_list_create(&(b->buddies)); 8 owl_list_create(&(b->idletimes)); 8 9 } 9 10 … … 16 17 int i, j, found; 17 18 owl_message *m; 19 int *zero; 18 20 19 21 found=0; … … 27 29 28 30 if (!found) { 31 /* add the buddy */ 29 32 owl_list_append_element(&(b->buddies), owl_strdup(screenname)); 33 zero=owl_malloc(sizeof(int)); 34 *zero=0; 35 owl_list_append_element(&(b->idletimes), zero); 30 36 37 /* do a request for idle time */ 38 owl_buddylist_request_idletimes(owl_global_get_buddylist(&g)); 39 31 40 /* are we ingoring login messages for a while? */ 32 41 if (!owl_timer_is_expired(owl_global_get_aim_login_timer(&g))) return; … … 40 49 1); 41 50 owl_global_messagequeue_addmsg(&g, m); 51 42 52 } 43 53 } … … 57 67 found=1; 58 68 owl_free(owl_list_get_element(&(b->buddies), i)); 69 owl_free(owl_list_get_element(&(b->idletimes), i)); 59 70 owl_list_remove_element(&(b->buddies), i); 71 owl_list_remove_element(&(b->idletimes), i); 60 72 break; 61 73 } … … 75 87 } 76 88 89 /* send requests to the AIM server to retrieve info 90 * on all buddies. The AIM callback then fills in the 91 * values when the responses are received 92 */ 93 void owl_buddylist_request_idletimes(owl_buddylist *b) 94 { 95 int i, j; 96 97 j=owl_buddylist_get_size(b); 98 for (i=0; i<j; i++) { 99 owl_aim_get_idle(owl_buddylist_get_buddy(b, i)); 100 } 101 } 102 77 103 /* return the number of logged in buddies */ 78 104 int owl_buddylist_get_size(owl_buddylist *b) … … 87 113 } 88 114 115 /* get the idle time for buddy number 'n' */ 116 int owl_buddylist_get_idletime(owl_buddylist *b, int n) 117 { 118 int *foo; 119 120 foo=owl_list_get_element(&(b->idletimes), n); 121 return(*foo); 122 } 123 124 /* set the idle time for user 'screenname'. If the given 125 * screenname is not on the buddy list do nothing 126 */ 127 void owl_buddylist_set_idletime(owl_buddylist *b, char *screenname, int seconds) 128 { 129 int i, j, *idle; 130 131 j=owl_buddylist_get_size(b); 132 for (i=0; i<j; i++) { 133 if (!strcasecmp(owl_list_get_element(&(b->buddies), i), screenname)) { 134 owl_free(owl_list_get_element(&(b->idletimes), i)); 135 idle=owl_malloc(sizeof(int)); 136 *idle=seconds; 137 owl_list_replace_element(&(b->idletimes), i, idle); 138 return; 139 } 140 } 141 } 142 89 143 /* remove all buddies from the list */ 90 144 void owl_buddylist_clear(owl_buddylist *b) { 91 145 owl_list_free_all(&(b->buddies), owl_free); 146 owl_list_free_all(&(b->idletimes), owl_free); 92 147 owl_list_create(&(b->buddies)); 148 owl_list_create(&(b->idletimes)); 93 149 }
Note: See TracChangeset
for help on using the changeset viewer.