XeTeX Pull request on github texlive-source
Norbert Preining
norbert at preining.info
Thu Jan 5 01:58:56 CET 2023
Hi Martin, hi all
On Wed, 04 Jan 2023, Martin Hosken wrote:
> I have submitted a pull request against the github texlive-source repository https://github.com/TeX-Live/texlive-source/pull/58 It addresses a pretty obscure corner (XeTeXupwardsmode) bug in XeTeX. If anyone is willing to engage with it, I would appreciate it.
Thanks, but Github is at the moment only used for CI testing and binary
building, but main development is going on in the svn repo.
I attach the patch here in case anyone wants to look into it.
Best
Norbert
--
PREINING Norbert https://www.preining.info
Mercari Inc. + IFMGA Guide + TU Wien + TeX Live
GPG: 0x860CDC13 fp: F7D8 A928 26E3 16A1 9FA0 ACF0 6CAC A448 860C DC13
-------------- next part --------------
>From 52f2f458687dbd8ce5f0c4ae9577174e20100c60 Mon Sep 17 00:00:00 2001
From: Martin Hosken <martin_hosken at sil.org>
Date: Wed, 4 Jan 2023 13:02:51 +0700
Subject: [PATCH] Fix topskip for XeTeXupwardsmode
---
texk/web2c/xetexdir/xetex.web | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/texk/web2c/xetexdir/xetex.web b/texk/web2c/xetexdir/xetex.web
index 4871d9d588..98fed258f7 100644
--- a/texk/web2c/xetexdir/xetex.web
+++ b/texk/web2c/xetexdir/xetex.web
@@ -22995,8 +22995,16 @@ end;
@ @<Insert glue for |split_top_skip|...@>=
begin q:=new_skip_param(split_top_skip_code); link(prev_p):=q; link(q):=p;
{now |temp_ptr=glue_ptr(q)|}
-if width(temp_ptr)>height(p) then width(temp_ptr):=width(temp_ptr)-height(p)
-else width(temp_ptr):=0;
+if XeTeX_upwards then
+ begin
+ if width(temp_ptr)>depth(p) then width(temp_ptr):=width(temp_ptr)-depth(p)
+ else width(temp_ptr):=0;
+ end
+else
+ begin
+ if width(temp_ptr)>height(p) then width(temp_ptr):=width(temp_ptr)-height(p)
+ else width(temp_ptr):=0;
+ end;
p:=null;
end
@@ -23632,8 +23640,16 @@ endcases
begin if page_contents=empty then freeze_page_specs(box_there)
else page_contents:=box_there;
q:=new_skip_param(top_skip_code); {now |temp_ptr=glue_ptr(q)|}
-if width(temp_ptr)>height(p) then width(temp_ptr):=width(temp_ptr)-height(p)
-else width(temp_ptr):=0;
+if XeTeX_upwards then
+ begin
+ if width(temp_ptr)>depth(p) then width(temp_ptr):=width(temp_ptr)-depth(p)
+ else width(temp_ptr):=0;
+ end
+else
+ begin
+ if width(temp_ptr)>height(p) then width(temp_ptr):=width(temp_ptr)-height(p)
+ else width(temp_ptr):=0;
+ end;
link(q):=p; link(contrib_head):=q; goto continue;
end
More information about the tex-live
mailing list.