| 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 { |