diff options
author | Sébastien Helleu <flashcode@flashtux.org> | 2023-06-27 21:44:54 +0200 |
---|---|---|
committer | Sébastien Helleu <flashcode@flashtux.org> | 2023-06-27 21:45:15 +0200 |
commit | b52047c69e34744f6b057edf0ee794143105f628 (patch) | |
tree | f45173070f02db1c7a21b54f405dd6223b8b88eb /src/plugins | |
parent | b551d6f247a4234ea425cc23eb9d57ea61f7d179 (diff) | |
download | weechat-b52047c69e34744f6b057edf0ee794143105f628.zip |
guile: fix crash on quit with Guile < 3 (issue #1965)
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/guile/weechat-guile.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/guile/weechat-guile.c b/src/plugins/guile/weechat-guile.c index b7b05d456..ce9cd4d87 100644 --- a/src/plugins/guile/weechat-guile.c +++ b/src/plugins/guile/weechat-guile.c @@ -1289,7 +1289,16 @@ weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[]) scm_install_gmp_memory_functions = 0; #endif /* defined(HAVE_GUILE_GMP_MEMORY_FUNCTIONS) && (SCM_MAJOR_VERSION < 3 || (SCM_MAJOR_VERSION == 3 && SCM_MINOR_VERSION == 0 && SCM_MICRO_VERSION < 8)) */ +#if defined(__MACH__) || SCM_MAJOR_VERSION < 3 + /* + * on GNU/Hurd or if using Guile < 3, use scm_with_guile() instead of + * scm_init_guile() to prevent crash on exit + */ scm_with_guile (&weechat_guile_init, NULL); +#else + /* any other OS (not GNU/Hurd) or Guile >= 3.x */ + scm_init_guile (); +#endif guile_module_weechat = scm_c_define_module ("weechat", &weechat_guile_api_module_init, |