comparison libpurple/plugins/perl/perl.c @ 24044:1f92d4aa8f3b

Return FALSE when a perl plugin cannot be loaded.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Mon, 01 Sep 2008 16:45:01 +0000
parents 6f47135f5378
children 77177e6000e4
comparison
equal deleted inserted replaced
24043:1b882e539c40 24044:1f92d4aa8f3b
464 464
465 static gboolean 465 static gboolean
466 load_perl_plugin(PurplePlugin *plugin) 466 load_perl_plugin(PurplePlugin *plugin)
467 { 467 {
468 PurplePerlScript *gps = (PurplePerlScript *)plugin->info->extra_info; 468 PurplePerlScript *gps = (PurplePerlScript *)plugin->info->extra_info;
469 gboolean loaded = TRUE;
469 char *atmp[3] = { plugin->path, NULL, NULL }; 470 char *atmp[3] = { plugin->path, NULL, NULL };
470 471
471 if (gps == NULL || gps->load_sub == NULL) 472 if (gps == NULL || gps->load_sub == NULL)
472 return FALSE; 473 return FALSE;
473 474
499 500
500 if (SvTRUE(ERRSV)) { 501 if (SvTRUE(ERRSV)) {
501 purple_debug(PURPLE_DEBUG_ERROR, "perl", 502 purple_debug(PURPLE_DEBUG_ERROR, "perl",
502 "Perl function %s exited abnormally: %s\n", 503 "Perl function %s exited abnormally: %s\n",
503 gps->load_sub, SvPVutf8_nolen(ERRSV)); 504 gps->load_sub, SvPVutf8_nolen(ERRSV));
505 loaded = FALSE;
504 } 506 }
505 507
506 PUTBACK; 508 PUTBACK;
507 FREETMPS; 509 FREETMPS;
508 LEAVE; 510 LEAVE;
509 } 511 }
510 512
511 return TRUE; 513 return loaded;
512 } 514 }
513 515
514 static void 516 static void
515 destroy_package(const char *package) 517 destroy_package(const char *package)
516 { 518 {