texlive/source-luacore.dif

44 lines
1.5 KiB
Plaintext

---
texk/kpathsea/tex-file.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
--- texk/kpathsea/tex-file.c
+++ texk/kpathsea/tex-file.c 2024-03-22 09:23:02.305892751 +0000
@@ -21,7 +21,9 @@
#include <kpathsea/c-fopen.h>
#include <kpathsea/c-pathch.h>
+#include <errno.h>
#include <stdarg.h>
+#include <unistd.h>
#include <kpathsea/cnf.h>
#include <kpathsea/absolute.h>
#include <kpathsea/concatn.h>
@@ -1316,13 +1318,25 @@ kpathsea_name_ok (kpathsea kpse, const_s
TEXMFSYSVAR. */
if (extended) {
const_string texmfvar = kpathsea_var_value (kpse, "TEXMFVAR");
+ string cache = kpathsea_var_value (kpse, "VARTEXFONTS");
+ string tmp = concat3 (cache, "/", "k_p_s_e_t_e_s_t_.tmp");
+ int fa = access(tmp, W_OK);
+ free (tmp);
+ if (fa != 0) {
+ string home = getenv ("HOME");
+ cache = concat3 (home, "/", ".cache/texmf/fonts");
+ }
if (!abs_fname_ok (expanded_fname, texmfvar)) {
const_string texmfsysvar
= kpathsea_var_value (kpse, "TEXMFSYSVAR");
if (!abs_fname_ok (expanded_fname, texmfsysvar)) {
- goto not_ok; /* nothing left to check. */
+ if (!abs_fname_ok (expanded_fname, cache)) {
+ goto not_ok; /* nothing left to check. */
+ }
}
}
+ if (fa != 0)
+ free (cache);
} else {
goto not_ok; /* not extended */
}