[Dev-luatex] [PATCH] Respect find_{output,write}_file result
Marcel Fabian Krüger
tex at 2krueger.de
Sun May 26 21:50:29 CEST 2019
On 5/26/2019 6:34 PM, Hans Hagen wrote:
> indeed a bug but the solution is a bit different as we can avoid going
> via the string pool
>
> Hans
More like this?
Marcel
---
source/texk/web2c/luatexdir/tex/texfileio.c | 18 ++++++++----------
1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/source/texk/web2c/luatexdir/tex/texfileio.c b/source/texk/web2c/luatexdir/tex/texfileio.c
index 143e694e1..5480c30de 100644
--- a/source/texk/web2c/luatexdir/tex/texfileio.c
+++ b/source/texk/web2c/luatexdir/tex/texfileio.c
@@ -332,14 +332,13 @@ boolean lua_a_open_in(alpha_file * f, char *fn, int n)
boolean lua_a_open_out(alpha_file * f, char *fn, int n)
{
boolean test;
- str_number fnam;
+ const char *fnam;
int callback_id;
boolean ret = false;
callback_id = callback_defined(find_write_file_callback);
if (callback_id > 0) {
- fnam = 0;
- test = run_callback(callback_id, "dS->s", n, fn, &fnam);
- if ((test) && (fnam != 0) && (str_length(fnam) > 0)) {
+ test = run_callback(callback_id, "dS->R", n, fn, &fnam);
+ if ((test) && (fnam != NULL) && (strlen(fnam) > 0)) {
/*tex
There is no message here because if that is needed the macro
@@ -347,7 +346,7 @@ boolean lua_a_open_out(alpha_file * f, char *fn, int n)
messaging is left to \LUA\ then.
*/
- ret = open_outfile(f, fn, FOPEN_W_MODE);
+ ret = open_outfile(f, fnam, FOPEN_W_MODE);
}
} else {
if (openoutnameok(fn)) {
@@ -371,15 +370,14 @@ boolean lua_a_open_out(alpha_file * f, char *fn, int n)
boolean lua_b_open_out(alpha_file * f, char *fn)
{
boolean test;
- str_number fnam;
+ const char *fnam;
int callback_id;
boolean ret = false;
callback_id = callback_defined(find_output_file_callback);
if (callback_id > 0) {
- fnam = 0;
- test = run_callback(callback_id, "S->s", fn, &fnam);
- if ((test) && (fnam != 0) && (str_length(fnam) > 0)) {
- ret = open_outfile(f, fn, FOPEN_WBIN_MODE);
+ test = run_callback(callback_id, "S->R", fn, &fnam);
+ if ((test) && (fnam != NULL) && (strlen(fnam) > 0)) {
+ ret = open_outfile(f, fnam, FOPEN_WBIN_MODE);
}
} else {
if (openoutnameok(fn)) {
--
2.21.0
More information about the dev-luatex
mailing list