From 259331a015432cfd47eb5c6161c6ddf05288a01c Mon Sep 17 00:00:00 2001 From: Adam Harrison Date: Sun, 9 Jun 2024 13:11:27 -0400 Subject: Relaxed detection of datadir and core plugins to probably fix #112. --- src/lpm.c | 12 ++++++++---- src/lpm.lua | 26 ++++++++++++-------------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/lpm.c b/src/lpm.c index c464bae..ca0c015 100644 --- a/src/lpm.c +++ b/src/lpm.c @@ -610,6 +610,10 @@ static int lpm_certs(lua_State* L) { if (git_initialized) git_libgit2_opts(GIT_OPT_SET_SSL_CERT_LOCATIONS, NULL, path); strncpy(git_cert_path, path, MAX_PATH); + if (print_trace) { + fprintf(stderr, "[ssl] SSL directory set to %s.\n", git_cert_path); + fflush(stderr); + } status = mbedtls_x509_crt_parse_path(&x509_certificate, path); if (status < 0) return luaL_mbedtls_error(L, status, "mbedtls_x509_crt_parse_path failed to parse all CA certificates in %s", path); @@ -618,10 +622,6 @@ static int lpm_certs(lua_State* L) { fflush(stderr); } mbedtls_ssl_conf_ca_chain(&ssl_config, &x509_certificate, NULL); - if (print_trace) { - fprintf(stderr, "[ssl] SSL directory set to %s.\n", git_cert_path); - fflush(stderr); - } } else { if (strcmp(type, "system") == 0) { #if _WIN32 @@ -664,6 +664,10 @@ static int lpm_certs(lua_State* L) { if (git_initialized) git_libgit2_opts(GIT_OPT_SET_SSL_CERT_LOCATIONS, path, NULL); strncpy(git_cert_path, path, MAX_PATH); + if (print_trace) { + fprintf(stderr, "[ssl] SSL file set to %s.\n", git_cert_path); + fflush(stderr); + } status = mbedtls_x509_crt_parse_file(&x509_certificate, path); if (status < 0) return luaL_mbedtls_error(L, status, "mbedtls_x509_crt_parse_file failed to parse CA certificate %s", path); diff --git a/src/lpm.lua b/src/lpm.lua index f17fcb8..901c02e 100644 --- a/src/lpm.lua +++ b/src/lpm.lua @@ -1603,20 +1603,18 @@ function Bottle:all_addons() end end end - -- If we can't find the datadir, assume that we have the core plugins installed. - if not system.stat(self.lite_xl.datadir_path) then - for id, v in pairs(CORE_PLUGINS) do - if not hash[id] then - table.insert(t, Addon.new(nil, { - id = id, - type = "plugin", - location = "core", - organization = "singleton", - local_path = nil, - mod_version = self.lite_xl.mod_version, - path = "plugins" .. PATHSEP .. id .. ".lua" - })) - end + -- Ensure we have at least one instance of each core plugin. + for id, v in pairs(CORE_PLUGINS) do + if not hash[id] then + table.insert(t, Addon.new(nil, { + id = id, + type = "plugin", + location = "core", + organization = "singleton", + local_path = nil, + mod_version = self.lite_xl.mod_version, + path = "plugins" .. PATHSEP .. id .. ".lua" + })) end end self.all_addons_cache = t -- cgit v1.2.3