summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx')
-rw-r--r--Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx39
1 files changed, 28 insertions, 11 deletions
diff --git a/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx b/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
index ceda070f907..57087ce8a82 100644
--- a/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
+++ b/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
@@ -149,10 +149,12 @@
% \begin{macrocode}
\prg_new_conditional:Nnn \@@_check_script:Nn {TF,T}
{
+%<debug>\typeout{:: _check_script:Nn}
\bool_if:NTF \l_@@_never_check_bool
{ \prg_return_true: }
%<*XE>
{
+%<debug>\typeout{::::~ checking~ script~ #2}
\@@_iv_str_to_num:Nx \l_@@_strnum_int {#2}
\int_set:Nn \l_tmpb_int { \XeTeXOTcountscripts #1 }
\int_zero:N \l_tmpa_int
@@ -175,8 +177,17 @@
\cs_if_eq:NNTF #1 \font
{ \tl_set:Nx \l_@@_tmp_tl {\curr@fontshape/\f@size} }
{ \tl_set:Nx \l_@@_tmp_tl {\cs_to_str:N #1} }
+%<debug>\typeout{::::~ checking:~"\l_@@_tmp_tl",~ "#2"}
\directlua{fontspec.check_ot_script("\l_@@_tmp_tl", "#2")}
- \bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
+ \bool_if:NTF \l__fontspec_check_bool
+ {
+%<debug>\typeout{::::::~ TRUE}
+ \prg_return_true:
+ }
+ {
+%<debug>\typeout{::::::~ FALSE}
+ \prg_return_false:
+ }
}
%</LU>
}
@@ -206,18 +217,23 @@
{
\@@_iv_str_to_num:Nx \l_@@_strnum_int {#2}
\@@_iv_str_to_num:Nx \l_@@_script_int {#3}
- \int_set:Nn \l_tmpb_int
+ \int_set:Nn \l_@@_tmpb_int
{ \XeTeXOTcountlanguages #1 \l_@@_script_int }
- \int_zero:N \l_tmpa_int
+ \int_zero:N \l_@@_tmpa_int
\bool_set_false:N \l__fontspec_check_bool
- \bool_until_do:nn { \int_compare_p:nNn \l_tmpa_int = \l_tmpb_int }
+ \bool_until_do:nn { \int_compare_p:nNn \l_@@_tmpa_int = \l_@@_tmpb_int }
{
- \ifnum\XeTeXOTlanguagetag #1 \l_@@_script_int \l_tmpa_int = \l_@@_strnum_int
- \bool_set_true:N \l__fontspec_check_bool
- \int_set:Nn \l_tmpa_int {\l_tmpb_int}
- \else
- \int_incr:N \l_tmpa_int
- \fi
+ \int_set:Nn \l_@@_tmpc_int
+ { \XeTeXOTlanguagetag #1 \l_@@_script_int \l_@@_tmpa_int }
+
+ \int_compare:nNnTF \l_@@_tmpc_int = \l_@@_strnum_int
+ {
+ \bool_set_true:N \l__fontspec_check_bool
+ \int_set:Nn \l_@@_tmpa_int {\l_@@_tmpb_int}
+ }
+ {
+ \int_incr:N \l_@@_tmpa_int
+ }
}
\bool_if:NTF \l__fontspec_check_bool \prg_return_true: \prg_return_false:
}
@@ -260,13 +276,14 @@
% \begin{macrocode}
\prg_new_conditional:Nnn \@@_check_ot_feat:Nnnn {TF,F}
{
- \bool_if:NTF \l_@@_never_check_bool
+ \bool_if:nTF {\l_@@_never_check_bool || \l_@@_scripts_missing_bool}
{ \prg_return_true: }
%<*XE>
{
%<debug>\typeout{::~ fontspec_check_ot_feat:nnn~ {#2}{#3}{#4}}
\@@_iv_str_to_num:Nx \l_@@_strnum_int {#2}
\@@_iv_str_to_num:Nx \l_@@_language_int {#3}
+ \@@_lang_dflt_correct:N \l_@@_language_int
\@@_iv_str_to_num:Nx \l_@@_script_int {#4}
\int_set:Nn \l_tmpb_int
{