diff options
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.dtx | 39 |
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 { |