diff options
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/tex/printing.c')
-rw-r--r-- | Build/source/texk/web2c/luatexdir/tex/printing.c | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/Build/source/texk/web2c/luatexdir/tex/printing.c b/Build/source/texk/web2c/luatexdir/tex/printing.c index 9cfca1faf28..31125d2ebca 100644 --- a/Build/source/texk/web2c/luatexdir/tex/printing.c +++ b/Build/source/texk/web2c/luatexdir/tex/printing.c @@ -1304,24 +1304,39 @@ void end_diagnostic(boolean blank_line) void print_input_level(void) { - int m = level_max; - if (m) { - int l = input_ptr; - int c = level_chr > 0 ? level_chr : '.'; - if (l > m) { - tprint_nl("["); - print_int((l/m)*m); - print(']'); - l = l % m; + int callback_id = callback_defined(input_level_string_callback); + if (callback_id>0) { + char *s = NULL; + if (run_callback(callback_id, "d->S", input_ptr, &s)) { + if (s && strlen(s) > 0) { + tprint_nl(s); + free(s); + } else { + print_ln(); + } } else { print_ln(); } - while (l > 0) { - print(c); - l--; - } } else { - print_ln(); + int m = level_max; + if (m) { + int l = input_ptr; + int c = level_chr > 0 ? level_chr : '.'; + if (l > m) { + tprint_nl("["); + print_int((l/m)*m); + print(']'); + l = l % m; + } else { + print_ln(); + } + while (l > 0) { + print(c); + l--; + } + } else { + print_ln(); + } } } |