libpurple/protocols/facebook/api.c

changeset 41289
bcd5530b1462
parent 41288
600e7b4219de
child 41290
6b5fe1c14970
equal deleted inserted replaced
41288:600e7b4219de 41289:bcd5530b1462
3262 fb_api_publish(api, "/typing", "%s", json); 3262 fb_api_publish(api, "/typing", "%s", json);
3263 g_free(json); 3263 g_free(json);
3264 } 3264 }
3265 3265
3266 FbApiEvent * 3266 FbApiEvent *
3267 fb_api_event_dup(const FbApiEvent *event, gboolean deep) 3267 fb_api_event_dup(const FbApiEvent *event)
3268 { 3268 {
3269 FbApiEvent *ret; 3269 FbApiEvent *ret;
3270 3270
3271 if (event == NULL) { 3271 if (event == NULL) {
3272 return NULL; 3272 return NULL;
3273 } 3273 }
3274 3274
3275 ret = g_memdup2(event, sizeof *event); 3275 ret = g_memdup2(event, sizeof *event);
3276 3276 ret->text = g_strdup(event->text);
3277 if (deep) {
3278 ret->text = g_strdup(event->text);
3279 }
3280 3277
3281 return ret; 3278 return ret;
3282 } 3279 }
3283 3280
3284 void 3281 void
3301 g_free(event); 3298 g_free(event);
3302 } 3299 }
3303 } 3300 }
3304 3301
3305 FbApiMessage * 3302 FbApiMessage *
3306 fb_api_message_dup(const FbApiMessage *msg, gboolean deep) 3303 fb_api_message_dup(const FbApiMessage *msg)
3307 { 3304 {
3308 FbApiMessage *ret; 3305 FbApiMessage *ret;
3309 3306
3310 if (msg == NULL) { 3307 if (msg == NULL) {
3311 return NULL; 3308 return NULL;
3312 } 3309 }
3313 3310
3314 ret = g_memdup2(msg, sizeof *msg); 3311 ret = g_memdup2(msg, sizeof *msg);
3315 3312 ret->text = g_strdup(msg->text);
3316 if (deep) {
3317 ret->text = g_strdup(msg->text);
3318 }
3319 3313
3320 return ret; 3314 return ret;
3321 } 3315 }
3322 3316
3323 void 3317 void
3361 g_free(presence); 3355 g_free(presence);
3362 } 3356 }
3363 } 3357 }
3364 3358
3365 FbApiThread * 3359 FbApiThread *
3366 fb_api_thread_dup(const FbApiThread *thrd, gboolean deep) 3360 fb_api_thread_dup(const FbApiThread *thrd)
3367 { 3361 {
3368 FbApiThread *ret; 3362 FbApiThread *ret;
3369 FbApiUser *user;
3370 GSList *l;
3371 3363
3372 if (thrd == NULL) { 3364 if (thrd == NULL) {
3373 return NULL; 3365 return NULL;
3374 } 3366 }
3375 3367
3376 ret = g_memdup2(thrd, sizeof *thrd); 3368 ret = g_memdup2(thrd, sizeof *thrd);
3377 3369 ret->topic = g_strdup(thrd->topic);
3378 if (deep) { 3370 ret->users = g_slist_copy_deep(thrd->users, (GCopyFunc)fb_api_user_dup, NULL);
3379 ret->users = NULL;
3380
3381 for (l = thrd->users; l != NULL; l = l->next) {
3382 user = fb_api_user_dup(l->data, TRUE);
3383 ret->users = g_slist_prepend(ret->users, user);
3384 }
3385
3386 ret->topic = g_strdup(thrd->topic);
3387 ret->users = g_slist_reverse(ret->users);
3388 }
3389 3371
3390 return ret; 3372 return ret;
3391 } 3373 }
3392 3374
3393 void 3375 void
3433 g_free(typg); 3415 g_free(typg);
3434 } 3416 }
3435 } 3417 }
3436 3418
3437 FbApiUser * 3419 FbApiUser *
3438 fb_api_user_dup(const FbApiUser *user, gboolean deep) 3420 fb_api_user_dup(const FbApiUser *user)
3439 { 3421 {
3440 FbApiUser *ret; 3422 FbApiUser *ret;
3441 3423
3442 if (user == NULL) { 3424 if (user == NULL) {
3443 return NULL; 3425 return NULL;
3444 } 3426 }
3445 3427
3446 ret = g_memdup2(user, sizeof *user); 3428 ret = g_memdup2(user, sizeof *user);
3447 3429 ret->name = g_strdup(user->name);
3448 if (deep) { 3430 ret->icon = g_strdup(user->icon);
3449 ret->name = g_strdup(user->name); 3431 ret->csum = g_strdup(user->csum);
3450 ret->icon = g_strdup(user->icon);
3451 ret->csum = g_strdup(user->csum);
3452 }
3453 3432
3454 return ret; 3433 return ret;
3455 } 3434 }
3456 3435
3457 void 3436 void

mercurial