texlive[49718] Master/texmf-dist: fontspec (15jan19)

commits+karl at tug.org commits+karl at tug.org
Tue Jan 15 22:40:03 CET 2019


Revision: 49718
          http://tug.org/svn/texlive?view=revision&revision=49718
Author:   karl
Date:     2019-01-15 22:40:03 +0100 (Tue, 15 Jan 2019)
Log Message:
-----------
fontspec (15jan19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
    trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
    trunk/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf
    trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-opentype.dtx
    trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx
    trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-lang.dtx
    trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx
    trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
    trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx
    trunk/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
    trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
    trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
    trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.lua
    trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.sty

Modified: trunk/Master/texmf-dist/doc/latex/fontspec/CHANGES.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/fontspec/CHANGES.md	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/doc/latex/fontspec/CHANGES.md	2019-01-15 21:40:03 UTC (rev 49718)
@@ -1,6 +1,11 @@
 Change history
 ==============
 
+## v2.6k (2019/01/16)
+
+    * Fix crash when loading fonts that are missing a requested script.
+
+
 ## v2.6j (2019/01/10)
 
     * Re-sync with `expl3` for deprecated commands.

Modified: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec-code.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/fontspec/fontspec.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-opentype.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-opentype.dtx	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-feat-opentype.dtx	2019-01-15 21:40:03 UTC (rev 49718)
@@ -423,37 +423,39 @@
 \cs_new:Nn \fontspec_new_script:nn
   {
     \keys_define:nn { fontspec-opentype } { Script / #1 .code:n =
-      \bool_set_false:N \l_@@_script_exist_bool
-      \clist_map_inline:nn {#2}
-        {
-          \@@_check_script:NnTF \l_fontspec_font {####1}
-            {
-              \tl_set:Nn \l_fontspec_script_tl {####1}
-              \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
-              \bool_set_true:N \l_@@_script_exist_bool
-              \tl_gset:Nx \g_@@_single_feat_tl { script=####1 }
-              \clist_map_break:
-            }
-            { }
-        }
-      \bool_if:NF \l_@@_script_exist_bool
-        {
-          \str_if_eq:nnTF {#1} {Latin}
-            {
-              \@@_warning:nx {script-not-exist} {#1}
-            }
-            {
-              \@@_check_script:NnTF \l_fontspec_font {latn}
-                {
-                  \@@_warning:nx {script-not-exist-latn} {#1}
-                  \tl_set:Nn \l_fontspec_script_tl {latn}
-                  \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
-                }
-                {
-                  \@@_warning:nx {script-not-exist} {#1}
-                }
-            }
-        }
+      {
+        \bool_set_false:N \l_@@_scriptlang_exist_bool
+        \clist_map_inline:nn {#2}
+          {
+            \@@_check_script:NnT \l_fontspec_font {####1}
+              {
+                \tl_set:Nn \l_fontspec_script_tl {####1}
+                \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
+                \bool_set_true:N \l_@@_scriptlang_exist_bool
+                \tl_gset:Nx \g_@@_single_feat_tl { script=####1 }
+                \clist_map_break:
+              }
+          }
+        \bool_if:NF \l_@@_scriptlang_exist_bool
+          {
+            \str_if_eq:eeTF {#1} {Latin}
+              {
+                \@@_warning:nx {script-not-exist} {#1}
+              }
+              {
+                \@@_check_script:NnTF \l_fontspec_font {latn}
+                  {
+                    \@@_warning:nx {script-not-exist-latn} {#1}
+                    \tl_set:Nn \l_fontspec_script_tl {latn}
+                    \int_set:Nn \l_@@_script_int {\l_@@_strnum_int}
+                  }
+                  {
+                    \@@_warning:nx {script-not-exist} {#1}
+                    \keys_set:nn {fontspec-opentype} { Script = Default }
+                  }
+              }
+          }
+      }
     }
   }
 %    \end{macrocode}
@@ -462,28 +464,38 @@
 % \subsection{Language}
 %
 %    \begin{macrocode}
-\keys_define:nn { fontspec-opentype } { Language .choice: }
+\keys_define:nn {fontspec-opentype} { Language .choice: }
 \cs_new:Nn \fontspec_new_lang:nn
   {
     \keys_define:nn { fontspec-opentype } { Language / #1 .code:n =
-    \@@_check_lang:NnTF \l_fontspec_font {#2}
       {
-        \tl_set:Nn \l_fontspec_lang_tl {#2}
-        \int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
-        \tl_gset:Nx \g_@@_single_feat_tl { language=#2 }
+        \bool_set_false:N \l_@@_scriptlang_exist_bool
+        \clist_map_inline:nn {#2}
+          {
+            \@@_check_lang:NnTF \l_fontspec_font {#2}
+              {
+                \tl_set:Nn \l_fontspec_lang_tl {#2}
+                \int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
+                \tl_gset:Nx \g_@@_single_feat_tl { language=#2 }
+                \bool_set_true:N \l_@@_scriptlang_exist_bool
+                \clist_map_break:
+              }
+          }
+        \bool_if:NF \l_@@_scriptlang_exist_bool
+          {
+            \@@_warning:nx {language-not-exist} {#1}
+            \keys_set:nn {fontspec-opentype} { Language = Default }
+          }
       }
-      {
-        \@@_warning:nx {language-not-exist} {#1}
-        \keys_set:nn { fontspec-opentype } { Language = Default }
-      }
     }
   }
 %    \end{macrocode}
 %
 % \paragraph{Default}
-%
+% I can't remember why this has to be special-cased. From memory, the OpenType default
+% language is hardcoded to have a zero value, although this might be some \XeTeX-specific thing.
 %    \begin{macrocode}
-\@@_keys_define_code:nnn {fontspec-opentype}{ Language / Default }
+\@@_keys_define_code:nnn {fontspec-opentype} { Language / Default }
   {
     \tl_set:Nn \l_fontspec_lang_tl {DFLT}
     \int_zero:N \l_@@_language_int
@@ -491,36 +503,7 @@
   }
 %    \end{macrocode}
 %
-% \paragraph{Turkish} Turns out that many fonts use `TUR' as their Turkish language tag rather than the specified `TRK'. So we check for both:
-%    \begin{macrocode}
-\keys_define:nn {fontspec-opentype}
-  {
-    Language / Turkish .code:n =
-      {
-        \@@_check_lang:NnTF \l_fontspec_font {TRK}
-          {
-            \int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
-            \tl_set:Nn \l_fontspec_lang_tl {TRK}
-            \tl_gset:Nn \g_@@_single_feat_tl { language=TRK }
-          }
-          {
-            \@@_check_lang:NnTF \l_fontspec_font {TUR}
-              {
-                \int_set:Nn \l_@@_language_int {\l_@@_strnum_int}
-                \tl_set:Nn \l_fontspec_lang_tl {TUR}
-                \tl_gset:Nn \g_@@_single_feat_tl { language=TUR }
-              }
-              {
-                \@@_warning:nx {language-not-exist} {Turkish}
-                \keys_set:nn {fontspec-opentype} {Language=Default}
-              }
-          }
-      }
-  }
-%    \end{macrocode}
-% TODO: generalise the above
 %
-%
 % \section{Backwards compatibility}
 %
 %    \begin{macrocode}

Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-internal.dtx	2019-01-15 21:40:03 UTC (rev 49718)
@@ -328,9 +328,9 @@
               {
                 \tl_set:Nn \l_@@_lang_name_tl {Default}
               }
+%<debug>  \typeout{:::: Script=\l_@@_script_name_tl, Language=\l_@@_lang_name_tl}
             \keys_set:nx {fontspec-opentype} {Script=\l_@@_script_name_tl}
             \keys_set:nx {fontspec-opentype} {Language=\l_@@_lang_name_tl}
-%<debug>  \typeout{:::: Script=\l_@@_script_name_tl, Language=\l_@@_lang_name_tl}
           }
       }
   }
@@ -1139,11 +1139,8 @@
       { \@@_error:nx {ot-tag-too-long} {#2#3#4#5#6} }
 
     \str_if_eq:eeTF {#2#3#4#5#6} {DFLT}
+      { \int_zero:N #1 }
       {
-        \int_set:Nn #1 {0}
-      }
-      {
-
         \int_set:Nn #1
           {
               `#2 * "1000000

Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-lang.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-lang.dtx	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-lang.dtx	2019-01-15 21:40:03 UTC (rev 49718)
@@ -354,6 +354,7 @@
 \newfontlanguage{Thai}{THA}
 \newfontlanguage{Tahitian}{THT}
 \newfontlanguage{Tibetan}{TIB}
+\newfontlanguage{Turkish}{TRK,TUR}
 \newfontlanguage{Turkmen}{TKM}
 \newfontlanguage{Temne}{TMN}
 \newfontlanguage{Tswana}{TNA}

Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-msg.dtx	2019-01-15 21:40:03 UTC (rev 49718)
@@ -135,14 +135,14 @@
  {
   OpenType tag '#1' is too long; script, language, and feature tags must be four characters or fewer.
  }
-\@@_msg_new:nnn {fontspec} {script-not-exist-latn}
+\@@_msg_new:nnn {fontspec} {script-not-exist}
  {
-  Font '\l_fontspec_fontname_tl' does not contain script '#1'.\\
-  'Latin' script used instead.
+  Font '\l_fontspec_fontname_tl' does not contain script '#1'.
  }
-\@@_msg_new:nnn {fontspec} {script-not-exist}
+\@@_msg_new:nnn {fontspec} {script-not-exist-latn}
  {
   Font '\l_fontspec_fontname_tl' does not contain script '#1'.
+  `Script=Latin` used instead.
  }
 \@@_msg_new:nnn {fontspec} {aat-feature-not-exist}
  {
@@ -173,8 +173,7 @@
  {
   Language '#1' not available
   for font '\l_fontspec_fontname_tl'
-  with script '\l_@@_script_name_tl'.\\
-  'Default' language used instead.
+  with script '\l_@@_script_name_tl'.
  }
 \@@_msg_new:nnn {fontspec} {only-xetex-feature}
  {

Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-opentype.dtx	2019-01-15 21:40:03 UTC (rev 49718)
@@ -147,7 +147,7 @@
 % font. \cmd\l_@@_script_int\ is used to store
 % the number corresponding to the script tag string.
 %    \begin{macrocode}
-\prg_new_conditional:Nnn \@@_check_script:Nn {TF}
+\prg_new_conditional:Nnn \@@_check_script:Nn {TF,T}
   {
     \bool_if:NTF \l_@@_never_check_bool
       { \prg_return_true: }

Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec-code-vars.dtx	2019-01-15 21:40:03 UTC (rev 49718)
@@ -60,7 +60,7 @@
 \bool_new:N \l_@@_alias_bool
 \bool_new:N \l_@@_external_bool
 \bool_new:N \l_@@_defining_encoding_bool
-\bool_new:N \l_@@_script_exist_bool
+\bool_new:N \l_@@_scriptlang_exist_bool
 \bool_new:N \g_@@_em_normalise_slant_bool
 \bool_new:N \l_@@_proceed_bool
 \bool_new:N \l_@@_check_feat_bool

Modified: trunk/Master/texmf-dist/source/latex/fontspec/fontspec.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/fontspec/fontspec.dtx	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/source/latex/fontspec/fontspec.dtx	2019-01-15 21:40:03 UTC (rev 49718)
@@ -71,7 +71,7 @@
 \ProvidesExplFile{fontspec.dtx}
 %</dtx>
 %<*fontspec>
-  {2019/01/10}{2.6j}{Font selection for XeLaTeX and LuaLaTeX}
+  {2019/01/16}{2.6k}{Font selection for XeLaTeX and LuaLaTeX}
 %</fontspec>
 %    \end{macrocode}
 %
@@ -90,8 +90,8 @@
 %<lua>local fontspec    = fontspec
 %<lua>fontspec.module   = {
 %<lua>    name          = "fontspec",
-%<lua>    version       = "2.6j",
-%<lua>    date          = "2019/01/10",
+%<lua>    version       = "2.6k",
+%<lua>    date          = "2019/01/16",
 %<lua>    description   = "Font selection for XeLaTeX and LuaLaTeX",
 %<lua>    author        = "Khaled Hosny, Philipp Gesang, Will Robertson",
 %<lua>    copyright     = "Khaled Hosny, Philipp Gesang, Will Robertson",

Modified: trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-luatex.sty	2019-01-15 21:40:03 UTC (rev 49718)
@@ -41,7 +41,7 @@
 
 \RequirePackage{xparse}
 \ProvidesExplPackage{fontspec-luatex}%
-  {2019/01/10}{2.6j}{Font selection for XeLaTeX and LuaLaTeX}
+  {2019/01/16}{2.6k}{Font selection for XeLaTeX and LuaLaTeX}
 
 %%^^A%%  fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
 %%^^A%%  fontspec-code-vars.dtx -- part of FONTSPEC <wspr.io/fontspec>
@@ -68,7 +68,7 @@
 \bool_new:N \l__fontspec_alias_bool
 \bool_new:N \l__fontspec_external_bool
 \bool_new:N \l__fontspec_defining_encoding_bool
-\bool_new:N \l__fontspec_script_exist_bool
+\bool_new:N \l__fontspec_scriptlang_exist_bool
 \bool_new:N \g__fontspec_em_normalise_slant_bool
 \bool_new:N \l__fontspec_proceed_bool
 \bool_new:N \l__fontspec_check_feat_bool
@@ -308,14 +308,14 @@
  {
   OpenType tag '#1' is too long; script, language, and feature tags must be four characters or fewer.
  }
-\__fontspec_msg_new:nnn {fontspec} {script-not-exist-latn}
+\__fontspec_msg_new:nnn {fontspec} {script-not-exist}
  {
-  Font '\l_fontspec_fontname_tl' does not contain script '#1'.\\
-  'Latin' script used instead.
+  Font '\l_fontspec_fontname_tl' does not contain script '#1'.
  }
-\__fontspec_msg_new:nnn {fontspec} {script-not-exist}
+\__fontspec_msg_new:nnn {fontspec} {script-not-exist-latn}
  {
   Font '\l_fontspec_fontname_tl' does not contain script '#1'.
+  `Script=Latin` used instead.
  }
 \__fontspec_msg_new:nnn {fontspec} {aat-feature-not-exist}
  {
@@ -346,8 +346,7 @@
  {
   Language '#1' not available
   for font '\l_fontspec_fontname_tl'
-  with script '\l__fontspec_script_name_tl'.\\
-  'Default' language used instead.
+  with script '\l__fontspec_script_name_tl'.
  }
 \__fontspec_msg_new:nnn {fontspec} {only-xetex-feature}
  {
@@ -1808,7 +1807,7 @@
 \cs_new:Nn \__fontspec_swap_plus_minus:n { \__fontspec_swap_plus_minus_aux:Nq #1 \q_nil }
 \cs_new:Npn \__fontspec_swap_plus_minus_aux:Nq #1#2 \q_nil
   { \str_case:nn {#1} { {+} {-#2} {-} {+#2} } }
-\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF}
+\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF,T}
   {
     \bool_if:NTF \l__fontspec_never_check_bool
       { \prg_return_true: }
@@ -2754,85 +2753,72 @@
 \cs_new:Nn \fontspec_new_script:nn
   {
     \keys_define:nn { fontspec-opentype } { Script / #1 .code:n =
-      \bool_set_false:N \l__fontspec_script_exist_bool
-      \clist_map_inline:nn {#2}
-        {
-          \__fontspec_check_script:NnTF \l_fontspec_font {####1}
-            {
-              \tl_set:Nn \l_fontspec_script_tl {####1}
-              \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
-              \bool_set_true:N \l__fontspec_script_exist_bool
-              \tl_gset:Nx \g__fontspec_single_feat_tl { script=####1 }
-              \clist_map_break:
-            }
-            { }
-        }
-      \bool_if:NF \l__fontspec_script_exist_bool
-        {
-          \str_if_eq:nnTF {#1} {Latin}
-            {
-              \__fontspec_warning:nx {script-not-exist} {#1}
-            }
-            {
-              \__fontspec_check_script:NnTF \l_fontspec_font {latn}
-                {
-                  \__fontspec_warning:nx {script-not-exist-latn} {#1}
-                  \tl_set:Nn \l_fontspec_script_tl {latn}
-                  \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
-                }
-                {
-                  \__fontspec_warning:nx {script-not-exist} {#1}
-                }
-            }
-        }
+      {
+        \bool_set_false:N \l__fontspec_scriptlang_exist_bool
+        \clist_map_inline:nn {#2}
+          {
+            \__fontspec_check_script:NnT \l_fontspec_font {####1}
+              {
+                \tl_set:Nn \l_fontspec_script_tl {####1}
+                \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
+                \bool_set_true:N \l__fontspec_scriptlang_exist_bool
+                \tl_gset:Nx \g__fontspec_single_feat_tl { script=####1 }
+                \clist_map_break:
+              }
+          }
+        \bool_if:NF \l__fontspec_scriptlang_exist_bool
+          {
+            \str_if_eq:eeTF {#1} {Latin}
+              {
+                \__fontspec_warning:nx {script-not-exist} {#1}
+              }
+              {
+                \__fontspec_check_script:NnTF \l_fontspec_font {latn}
+                  {
+                    \__fontspec_warning:nx {script-not-exist-latn} {#1}
+                    \tl_set:Nn \l_fontspec_script_tl {latn}
+                    \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
+                  }
+                  {
+                    \__fontspec_warning:nx {script-not-exist} {#1}
+                    \keys_set:nn {fontspec-opentype} { Script = Default }
+                  }
+              }
+          }
+      }
     }
   }
-\keys_define:nn { fontspec-opentype } { Language .choice: }
+\keys_define:nn {fontspec-opentype} { Language .choice: }
 \cs_new:Nn \fontspec_new_lang:nn
   {
     \keys_define:nn { fontspec-opentype } { Language / #1 .code:n =
-    \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
       {
-        \tl_set:Nn \l_fontspec_lang_tl {#2}
-        \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
-        \tl_gset:Nx \g__fontspec_single_feat_tl { language=#2 }
+        \bool_set_false:N \l__fontspec_scriptlang_exist_bool
+        \clist_map_inline:nn {#2}
+          {
+            \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
+              {
+                \tl_set:Nn \l_fontspec_lang_tl {#2}
+                \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
+                \tl_gset:Nx \g__fontspec_single_feat_tl { language=#2 }
+                \bool_set_true:N \l__fontspec_scriptlang_exist_bool
+                \clist_map_break:
+              }
+          }
+        \bool_if:NF \l__fontspec_scriptlang_exist_bool
+          {
+            \__fontspec_warning:nx {language-not-exist} {#1}
+            \keys_set:nn {fontspec-opentype} { Language = Default }
+          }
       }
-      {
-        \__fontspec_warning:nx {language-not-exist} {#1}
-        \keys_set:nn { fontspec-opentype } { Language = Default }
-      }
     }
   }
-\__fontspec_keys_define_code:nnn {fontspec-opentype}{ Language / Default }
+\__fontspec_keys_define_code:nnn {fontspec-opentype} { Language / Default }
   {
     \tl_set:Nn \l_fontspec_lang_tl {DFLT}
     \int_zero:N \l__fontspec_language_int
     \tl_gset:Nn \g__fontspec_single_feat_tl { language=DFLT }
   }
-\keys_define:nn {fontspec-opentype}
-  {
-    Language / Turkish .code:n =
-      {
-        \__fontspec_check_lang:NnTF \l_fontspec_font {TRK}
-          {
-            \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
-            \tl_set:Nn \l_fontspec_lang_tl {TRK}
-            \tl_gset:Nn \g__fontspec_single_feat_tl { language=TRK }
-          }
-          {
-            \__fontspec_check_lang:NnTF \l_fontspec_font {TUR}
-              {
-                \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
-                \tl_set:Nn \l_fontspec_lang_tl {TUR}
-                \tl_gset:Nn \g__fontspec_single_feat_tl { language=TUR }
-              }
-              {
-                \__fontspec_warning:nx {language-not-exist} {Turkish}
-                \keys_set:nn {fontspec-opentype} {Language=Default}
-              }
-          }
-      }
-  }
 \cs_new:Nn \__fontspec_ot_compat:nn
   {
     \aliasfontfeatureoption {#1} {#2Off} {No#2}
@@ -3349,6 +3335,7 @@
 \newfontlanguage{Thai}{THA}
 \newfontlanguage{Tahitian}{THT}
 \newfontlanguage{Tibetan}{TIB}
+\newfontlanguage{Turkish}{TRK,TUR}
 \newfontlanguage{Turkmen}{TKM}
 \newfontlanguage{Temne}{TMN}
 \newfontlanguage{Tswana}{TNA}

Modified: trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty	2019-01-15 21:40:03 UTC (rev 49718)
@@ -41,7 +41,7 @@
 
 \RequirePackage{xparse}
 \ProvidesExplPackage{fontspec-xetex}%
-  {2019/01/10}{2.6j}{Font selection for XeLaTeX and LuaLaTeX}
+  {2019/01/16}{2.6k}{Font selection for XeLaTeX and LuaLaTeX}
 
 %%^^A%%  fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
 %%^^A%%  fontspec-code-vars.dtx -- part of FONTSPEC <wspr.io/fontspec>
@@ -68,7 +68,7 @@
 \bool_new:N \l__fontspec_alias_bool
 \bool_new:N \l__fontspec_external_bool
 \bool_new:N \l__fontspec_defining_encoding_bool
-\bool_new:N \l__fontspec_script_exist_bool
+\bool_new:N \l__fontspec_scriptlang_exist_bool
 \bool_new:N \g__fontspec_em_normalise_slant_bool
 \bool_new:N \l__fontspec_proceed_bool
 \bool_new:N \l__fontspec_check_feat_bool
@@ -308,14 +308,14 @@
  {
   OpenType tag '#1' is too long; script, language, and feature tags must be four characters or fewer.
  }
-\__fontspec_msg_new:nnn {fontspec} {script-not-exist-latn}
+\__fontspec_msg_new:nnn {fontspec} {script-not-exist}
  {
-  Font '\l_fontspec_fontname_tl' does not contain script '#1'.\\
-  'Latin' script used instead.
+  Font '\l_fontspec_fontname_tl' does not contain script '#1'.
  }
-\__fontspec_msg_new:nnn {fontspec} {script-not-exist}
+\__fontspec_msg_new:nnn {fontspec} {script-not-exist-latn}
  {
   Font '\l_fontspec_fontname_tl' does not contain script '#1'.
+  `Script=Latin` used instead.
  }
 \__fontspec_msg_new:nnn {fontspec} {aat-feature-not-exist}
  {
@@ -346,8 +346,7 @@
  {
   Language '#1' not available
   for font '\l_fontspec_fontname_tl'
-  with script '\l__fontspec_script_name_tl'.\\
-  'Default' language used instead.
+  with script '\l__fontspec_script_name_tl'.
  }
 \__fontspec_msg_new:nnn {fontspec} {only-xetex-feature}
  {
@@ -1757,11 +1756,8 @@
       { \__fontspec_error:nx {ot-tag-too-long} {#2#3#4#5#6} }
 
     \str_if_eq:eeTF {#2#3#4#5#6} {DFLT}
+      { \int_zero:N #1 }
       {
-        \int_set:Nn #1 {0}
-      }
-      {
-
         \int_set:Nn #1
           {
               `#2 * "1000000
@@ -1851,7 +1847,7 @@
 \cs_new:Nn \__fontspec_swap_plus_minus:n { \__fontspec_swap_plus_minus_aux:Nq #1 \q_nil }
 \cs_new:Npn \__fontspec_swap_plus_minus_aux:Nq #1#2 \q_nil
   { \str_case:nn {#1} { {+} {-#2} {-} {+#2} } }
-\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF}
+\prg_new_conditional:Nnn \__fontspec_check_script:Nn {TF,T}
   {
     \bool_if:NTF \l__fontspec_never_check_bool
       { \prg_return_true: }
@@ -2898,85 +2894,72 @@
 \cs_new:Nn \fontspec_new_script:nn
   {
     \keys_define:nn { fontspec-opentype } { Script / #1 .code:n =
-      \bool_set_false:N \l__fontspec_script_exist_bool
-      \clist_map_inline:nn {#2}
-        {
-          \__fontspec_check_script:NnTF \l_fontspec_font {####1}
-            {
-              \tl_set:Nn \l_fontspec_script_tl {####1}
-              \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
-              \bool_set_true:N \l__fontspec_script_exist_bool
-              \tl_gset:Nx \g__fontspec_single_feat_tl { script=####1 }
-              \clist_map_break:
-            }
-            { }
-        }
-      \bool_if:NF \l__fontspec_script_exist_bool
-        {
-          \str_if_eq:nnTF {#1} {Latin}
-            {
-              \__fontspec_warning:nx {script-not-exist} {#1}
-            }
-            {
-              \__fontspec_check_script:NnTF \l_fontspec_font {latn}
-                {
-                  \__fontspec_warning:nx {script-not-exist-latn} {#1}
-                  \tl_set:Nn \l_fontspec_script_tl {latn}
-                  \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
-                }
-                {
-                  \__fontspec_warning:nx {script-not-exist} {#1}
-                }
-            }
-        }
+      {
+        \bool_set_false:N \l__fontspec_scriptlang_exist_bool
+        \clist_map_inline:nn {#2}
+          {
+            \__fontspec_check_script:NnT \l_fontspec_font {####1}
+              {
+                \tl_set:Nn \l_fontspec_script_tl {####1}
+                \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
+                \bool_set_true:N \l__fontspec_scriptlang_exist_bool
+                \tl_gset:Nx \g__fontspec_single_feat_tl { script=####1 }
+                \clist_map_break:
+              }
+          }
+        \bool_if:NF \l__fontspec_scriptlang_exist_bool
+          {
+            \str_if_eq:eeTF {#1} {Latin}
+              {
+                \__fontspec_warning:nx {script-not-exist} {#1}
+              }
+              {
+                \__fontspec_check_script:NnTF \l_fontspec_font {latn}
+                  {
+                    \__fontspec_warning:nx {script-not-exist-latn} {#1}
+                    \tl_set:Nn \l_fontspec_script_tl {latn}
+                    \int_set:Nn \l__fontspec_script_int {\l__fontspec_strnum_int}
+                  }
+                  {
+                    \__fontspec_warning:nx {script-not-exist} {#1}
+                    \keys_set:nn {fontspec-opentype} { Script = Default }
+                  }
+              }
+          }
+      }
     }
   }
-\keys_define:nn { fontspec-opentype } { Language .choice: }
+\keys_define:nn {fontspec-opentype} { Language .choice: }
 \cs_new:Nn \fontspec_new_lang:nn
   {
     \keys_define:nn { fontspec-opentype } { Language / #1 .code:n =
-    \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
       {
-        \tl_set:Nn \l_fontspec_lang_tl {#2}
-        \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
-        \tl_gset:Nx \g__fontspec_single_feat_tl { language=#2 }
+        \bool_set_false:N \l__fontspec_scriptlang_exist_bool
+        \clist_map_inline:nn {#2}
+          {
+            \__fontspec_check_lang:NnTF \l_fontspec_font {#2}
+              {
+                \tl_set:Nn \l_fontspec_lang_tl {#2}
+                \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
+                \tl_gset:Nx \g__fontspec_single_feat_tl { language=#2 }
+                \bool_set_true:N \l__fontspec_scriptlang_exist_bool
+                \clist_map_break:
+              }
+          }
+        \bool_if:NF \l__fontspec_scriptlang_exist_bool
+          {
+            \__fontspec_warning:nx {language-not-exist} {#1}
+            \keys_set:nn {fontspec-opentype} { Language = Default }
+          }
       }
-      {
-        \__fontspec_warning:nx {language-not-exist} {#1}
-        \keys_set:nn { fontspec-opentype } { Language = Default }
-      }
     }
   }
-\__fontspec_keys_define_code:nnn {fontspec-opentype}{ Language / Default }
+\__fontspec_keys_define_code:nnn {fontspec-opentype} { Language / Default }
   {
     \tl_set:Nn \l_fontspec_lang_tl {DFLT}
     \int_zero:N \l__fontspec_language_int
     \tl_gset:Nn \g__fontspec_single_feat_tl { language=DFLT }
   }
-\keys_define:nn {fontspec-opentype}
-  {
-    Language / Turkish .code:n =
-      {
-        \__fontspec_check_lang:NnTF \l_fontspec_font {TRK}
-          {
-            \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
-            \tl_set:Nn \l_fontspec_lang_tl {TRK}
-            \tl_gset:Nn \g__fontspec_single_feat_tl { language=TRK }
-          }
-          {
-            \__fontspec_check_lang:NnTF \l_fontspec_font {TUR}
-              {
-                \int_set:Nn \l__fontspec_language_int {\l__fontspec_strnum_int}
-                \tl_set:Nn \l_fontspec_lang_tl {TUR}
-                \tl_gset:Nn \g__fontspec_single_feat_tl { language=TUR }
-              }
-              {
-                \__fontspec_warning:nx {language-not-exist} {Turkish}
-                \keys_set:nn {fontspec-opentype} {Language=Default}
-              }
-          }
-      }
-  }
 \cs_new:Nn \__fontspec_ot_compat:nn
   {
     \aliasfontfeatureoption {#1} {#2Off} {No#2}
@@ -3493,6 +3476,7 @@
 \newfontlanguage{Thai}{THA}
 \newfontlanguage{Tahitian}{THT}
 \newfontlanguage{Tibetan}{TIB}
+\newfontlanguage{Turkish}{TRK,TUR}
 \newfontlanguage{Turkmen}{TKM}
 \newfontlanguage{Temne}{TMN}
 \newfontlanguage{Tswana}{TNA}

Modified: trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.lua
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.lua	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.lua	2019-01-15 21:40:03 UTC (rev 49718)
@@ -23,8 +23,8 @@
 local fontspec    = fontspec
 fontspec.module   = {
     name          = "fontspec",
-    version       = "2.6j",
-    date          = "2019/01/10",
+    version       = "2.6k",
+    date          = "2019/01/16",
     description   = "Font selection for XeLaTeX and LuaLaTeX",
     author        = "Khaled Hosny, Philipp Gesang, Will Robertson",
     copyright     = "Khaled Hosny, Philipp Gesang, Will Robertson",

Modified: trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.sty	2019-01-15 21:39:42 UTC (rev 49717)
+++ trunk/Master/texmf-dist/tex/latex/fontspec/fontspec.sty	2019-01-15 21:40:03 UTC (rev 49718)
@@ -21,7 +21,7 @@
 
 \RequirePackage{xparse}
 \ProvidesExplPackage{fontspec}%
-  {2019/01/10}{2.6j}{Font selection for XeLaTeX and LuaLaTeX}
+  {2019/01/16}{2.6k}{Font selection for XeLaTeX and LuaLaTeX}
 
 %%^^A%%  fontspec-code-load.dtx -- part of FONTSPEC <wspr.io/fontspec>
 \sys_if_engine_luatex:T



More information about the tex-live-commits mailing list