texlive[63931] Master/texmf-dist: polyglossia (18jul22)

commits+karl at tug.org commits+karl at tug.org
Mon Jul 18 22:13:44 CEST 2022


Revision: 63931
          http://tug.org/svn/texlive?view=revision&revision=63931
Author:   karl
Date:     2022-07-18 22:13:44 +0200 (Mon, 18 Jul 2022)
Log Message:
-----------
polyglossia (18jul22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/polyglossia/README.md
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-arabic.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-korean.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/example-thai.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/examples.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.pdf
    trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex
    trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
    trunk/Master/texmf-dist/tex/latex/polyglossia/babelsh.def
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf
    trunk/Master/texmf-dist/tex/latex/polyglossia/hebrewcal.sty
    trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/polyglossia/README.md	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/doc/latex/polyglossia/README.md	2022-07-18 20:13:44 UTC (rev 63931)
@@ -1,4 +1,4 @@
-# THE POLYGLOSSIA PACKAGE v1.56
+# THE POLYGLOSSIA PACKAGE v1.57
 ## Multilingual typesetting with XeLaTeX and LuaLaTeX
 
 This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.

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

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

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

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

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

Modified: trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/doc/latex/polyglossia/polyglossia.tex	2022-07-18 20:13:44 UTC (rev 63931)
@@ -1,6 +1,6 @@
 % !TeX spellcheck = en_US
 % !TeX TS-program = xelatex
-\documentclass[11pt]{ltxdoc}
+\documentclass[11pt,nohyperref]{ltxdoc}
 \usepackage{xcolor}
 \usepackage{xspace,fancyvrb,longtable,booktabs}
 \usepackage[neverdecrease]{paralist}
@@ -1257,6 +1257,8 @@
 \subsection{hebrew}\label{hebrew}
 \paragraph*{Options:}
 	\begin{itemize}
+    \item \xpgboolkeyfalse[1.57]{fullyear} causes years from the current millenium to be printed with the thousands digit
+          (he-tav-shin-samekh-gimel). Without this option, thousands are not printed for the current millenium.
 	\item \xpgchoicekey{numerals}{\xpgvalue{hebrew} or \xpgpresetvalue{arabic}}
 	\item \xpgchoicekey{calendar}{\xpgvalue{hebrew} or \xpgpresetvalue{gregorian}}
 	\item \xpgboolkeyfalse{marcheshvan}
@@ -1263,6 +1265,9 @@
 		If \xpgvalue{true}, the second month of the civil year will be output as
 		\texthebrew{מרחשון} (Marcheshvan) rather than \texthebrew{חשון} (Heshvan),
 		which is the default.
+	\item \xpgchoicekey[1.57]{transliteration}{\xpgvalue{academy} or \xpgpresetvalue{alt}} With value \xpgvalue{academy}, transliteration
+	follows	the recommendations of the Hebrew Language Academy. The default (\xpgvalue{alt}) uses the received settings of
+	\pkg{babel} (\pkg{hebcal}) and	\pkg{polyglossia} (\pkg{hebrewcal}).
 	\end{itemize}
 \paragraph*{Commands:}
 	\begin{itemize}
@@ -2424,6 +2429,23 @@
 \section{Revision history}
 
 \bgroup\footnotesize
+\subsection*{1.57 (18-07-2022)}
+
+\subsubsection*{Bug fixes}
+\begin{itemize}
+	\item Fix passing of macros to \cmd\setmainlanguage\ and \cmd\setotherlanguage\ (\TXI{543}).
+	\item Fix ¦otherlanguage*¦ environment with bidi text (\TXP{544}).
+	\item Re-fix patching of French part headings with hyperref (\TXI{546}).
+	\item Fix Latin prosodic shorthand issues (\TXI{547}, \href{https://github.com/latex3/babel/issues/126}{Babel/\#126},
+	      \href{https://github.com/latex3/babel/issues/129}{Babel/\#129}).
+\end{itemize}
+
+\subsubsection*{New features}
+\begin{itemize}
+	\item New option \xpgoption{transliteration} to Hebrew and hebrewcal (\TXI{540}).
+	\item New option \xpgoption{fullyear} to Hebrew.
+\end{itemize}
+
 \subsection*{1.56 (20-04-2022)}
 
 \subsubsection*{Bug fixes}
@@ -3290,9 +3312,9 @@
 \TA{Zgarbul Andrey}, \TA{Oleg Domanov}, user \TA{fakhriaunur}, \TA{Philipp Gesang}, \TA{Kevin Godby}, \TA{Enrico Gregorio},
 \TA{Khaled Hosny}, \TA{Najib Idrissi}, user \TA{julroy67}, \TA{Dohyun Kim}, \TA{Phil Kime}, \TA{Mike Kroutikov},
 \TA{Ivan Kokan}, \TA{Caleb Maclennan}, \TA{José Mancera}, \TA{Miquel Ortega}, \TA{Yevgen Pogribnyi}, \TA{Will Robertson},
-\TA{Maïeul Rouquette}, \TA{Elie Roux}, \TA{Hugo Roy},  \TA{Guy Rutenberg}, \TA{Philipp Stephani}, \TA{Niranjan Tambe},
-\TA{Osman Tursun}, \TA{Keno Wehr}, \TA{Dominik Wujastyk}, \TA{Sertaç Ö. Yıldız}, \TA{Maksim Zholudev}, \TA{Yan Zhou},
-and \TA{Stefan Zlatinov}.
+\TA{Maïeul Rouquette}, \TA{Elie Roux}, \TA{Hugo Roy},  \TA{Guy Rutenberg}, \TA{Marcin Serwin}, \TA{Philipp Stephani},
+\TA{Niranjan Tambe}, \TA{Osman Tursun}, \TA{Keno Wehr}, \TA{Dominik Wujastyk}, \TA{Sertaç Ö. Yıldız}, \TA{Maksim Zholudev},
+\TA{Yan Zhou}, and \TA{Stefan Zlatinov}.
 Their respective contributions can be identified from the contributor statistics on
 \href{https://github.com/reutenauer/polyglossia/graphs/contributors}{GitHub}.
 

Modified: trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/source/latex/polyglossia/polyglossia.dtx	2022-07-18 20:13:44 UTC (rev 63931)
@@ -8,7 +8,7 @@
 \iffalse
 %</internal>
 %<*README>
-# THE POLYGLOSSIA PACKAGE v1.56
+# THE POLYGLOSSIA PACKAGE v1.57
 ## Multilingual typesetting with XeLaTeX and LuaLaTeX
 
 This package provides an alternative to Babel for users of XeLaTeX and LuaLaTeX.
@@ -372,7 +372,7 @@
 %<*driver>
 % !TeX spellcheck = en_US
 % !TeX TS-program = xelatex
-\documentclass[11pt]{ltxdoc}
+\documentclass[11pt,nohyperref]{ltxdoc}
 \usepackage{xcolor}
 \usepackage{xspace,fancyvrb,longtable,booktabs}
 \usepackage[neverdecrease]{paralist}
@@ -1640,6 +1640,8 @@
 % \subsection{hebrew}\label{hebrew}
 % \paragraph*{Options:}
 % 	\begin{itemize}
+%     \item \xpgboolkeyfalse[1.57]{fullyear} causes years from the current millenium to be printed with the thousands digit
+%           (he-tav-shin-samekh-gimel). Without this option, thousands are not printed for the current millenium.
 % 	\item \xpgchoicekey{numerals}{\xpgvalue{hebrew} or \xpgpresetvalue{arabic}}
 % 	\item \xpgchoicekey{calendar}{\xpgvalue{hebrew} or \xpgpresetvalue{gregorian}}
 % 	\item \xpgboolkeyfalse{marcheshvan}
@@ -1646,6 +1648,9 @@
 % 		If \xpgvalue{true}, the second month of the civil year will be output as
 % 		\texthebrew{מרחשון} (Marcheshvan) rather than \texthebrew{חשון} (Heshvan),
 % 		which is the default.
+% 	\item \xpgchoicekey[1.57]{transliteration}{\xpgvalue{academy} or \xpgpresetvalue{alt}} With value \xpgvalue{academy}, transliteration
+% 	follows	the recommendations of the Hebrew Language Academy. The default (\xpgvalue{alt}) uses the received settings of
+% 	\pkg{babel} (\pkg{hebcal}) and	\pkg{polyglossia} (\pkg{hebrewcal}).
 % 	\end{itemize}
 % \paragraph*{Commands:}
 % 	\begin{itemize}
@@ -2807,6 +2812,23 @@
 % \section{Revision history}
 % 
 % \bgroup\footnotesize
+% \subsection*{1.57 (18-07-2022)}
+% 
+% \subsubsection*{Bug fixes}
+% \begin{itemize}
+% 	\item Fix passing of macros to \cmd\setmainlanguage\ and \cmd\setotherlanguage\ (\TXI{543}).
+% 	\item Fix ¦otherlanguage*¦ environment with bidi text (\TXP{544}).
+% 	\item Re-fix patching of French part headings with hyperref (\TXI{546}).
+% 	\item Fix Latin prosodic shorthand issues (\TXI{547}, \href{https://github.com/latex3/babel/issues/126}{Babel/\#126},
+% 	      \href{https://github.com/latex3/babel/issues/129}{Babel/\#129}).
+% \end{itemize}
+% 
+% \subsubsection*{New features}
+% \begin{itemize}
+% 	\item New option \xpgoption{transliteration} to Hebrew and hebrewcal (\TXI{540}).
+% 	\item New option \xpgoption{fullyear} to Hebrew.
+% \end{itemize}
+% 
 % \subsection*{1.56 (20-04-2022)}
 % 
 % \subsubsection*{Bug fixes}
@@ -3673,9 +3695,9 @@
 % \TA{Zgarbul Andrey}, \TA{Oleg Domanov}, user \TA{fakhriaunur}, \TA{Philipp Gesang}, \TA{Kevin Godby}, \TA{Enrico Gregorio},
 % \TA{Khaled Hosny}, \TA{Najib Idrissi}, user \TA{julroy67}, \TA{Dohyun Kim}, \TA{Phil Kime}, \TA{Mike Kroutikov},
 % \TA{Ivan Kokan}, \TA{Caleb Maclennan}, \TA{José Mancera}, \TA{Miquel Ortega}, \TA{Yevgen Pogribnyi}, \TA{Will Robertson},
-% \TA{Maïeul Rouquette}, \TA{Elie Roux}, \TA{Hugo Roy},  \TA{Guy Rutenberg}, \TA{Philipp Stephani}, \TA{Niranjan Tambe},
-% \TA{Osman Tursun}, \TA{Keno Wehr}, \TA{Dominik Wujastyk}, \TA{Sertaç Ö. Yıldız}, \TA{Maksim Zholudev}, \TA{Yan Zhou},
-% and \TA{Stefan Zlatinov}.
+% \TA{Maïeul Rouquette}, \TA{Elie Roux}, \TA{Hugo Roy},  \TA{Guy Rutenberg}, \TA{Marcin Serwin}, \TA{Philipp Stephani},
+% \TA{Niranjan Tambe}, \TA{Osman Tursun}, \TA{Keno Wehr}, \TA{Dominik Wujastyk}, \TA{Sertaç Ö. Yıldız}, \TA{Maksim Zholudev},
+% \TA{Yan Zhou}, and \TA{Stefan Zlatinov}.
 % Their respective contributions can be identified from the contributor statistics on
 % \href{https://github.com/reutenauer/polyglossia/graphs/contributors}{GitHub}.
 % 
@@ -3701,7 +3723,7 @@
 % \subsection{polyglossia.sty}
 %    \begin{macrocode}
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{polyglossia}[2022/04/20 v1.56
+\ProvidesPackage{polyglossia}[2022/07/18 v1.57
   Modern multilingual typesetting with XeLaTeX and LuaLaTeX]
 \RequirePackage{etoolbox}
 \RequirePackage{makecmds}
@@ -5105,7 +5127,8 @@
   }
 }
 
-\newcommand{\setdefaultlanguage}[2][]{%
+\DeclareDocumentCommand \setdefaultlanguage { O{} m }
+{
   % latex is an internal language, so do not record
   \str_if_eq:eeF{#2}{latex}
   {
@@ -5118,11 +5141,11 @@
     \polyglossia_load_lang_definition:nn{#1}{#2}
     % define environment and command if not alias
     \str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
-       \use:c{\prop_item:Nn{\polyglossia at langsetup}
+       \use:c{\prop_item:Ne{\polyglossia at langsetup}
             {#2/DefineCommandsCmd}}
             {#2}
     }
-    \seq_gput_right:Nn \__xpg_langs_loaded {#2}
+    \exp_args:Nnx \seq_gput_right:Nn \__xpg_langs_loaded {#2}
   }
   \polyglossia at set@default at language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
     {\xpg_alias_base_lang:n{#2}}%
@@ -5418,13 +5441,13 @@
     \polyglossia_load_lang_definition:ee {#1} {#2}%
     % define environment and command if not alias
     \str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
-       \use:c{\prop_item:Nn{\polyglossia at langsetup}
+       \use:c{\prop_item:Ne{\polyglossia at langsetup}
              {#2/DefineCommandsCmd}}
              {#2}
     }
     \polyglossia at set@other at language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
       {\xpg_alias_base_lang:n{#2}}%
-    \seq_gput_right:Nn \__xpg_langs_loaded {#2}
+    \exp_args:Nnx \seq_gput_right:Nn \__xpg_langs_loaded {#2}
   }
 }
 
@@ -5568,7 +5591,7 @@
 {%
   \__xpg_otherlanguage:eee {#1} {#2} {\xpg_alias_base_lang:n{#2}}
 }
-{\group_end:}
+{\egroup}
 
 % internal wrapper
 % #1 option
@@ -5581,7 +5604,8 @@
     \msg_show:nnn { polyglossia } { languagenotloaded } {#2}
   }
   \xpg at otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}%
-  \polyglossia at lang@settextdirection:nn{#3}\group_begin:%
+  \polyglossia at lang@settextdirection:nn{#3}%
+  \bgroup
 }
 \cs_generate_variant:Nn \__xpg_otherlanguage:nnn {
   eee
@@ -6510,30 +6534,53 @@
 % \subsection{hebrewcal.sty}
 %    \begin{macrocode}
 \ProvidesPackage{hebrewcal}
-        [2019/12/03 v2.7 %
+        [2022/07/18 v2.8 %
          Hebrew calendar for polyglossia (adapted from hebcal.sty in Babel)]
-\RequirePackage{xkeyval}
-\ifluatex\RequirePackage{luabidi}\else\RequirePackage{bidi}\fi
 
-\newif\if at xpg@hebrewcal at marcheshvan
-\@xpg at hebrewcal@marcheshvanfalse
+\RequirePackage{iftex}
+\ifluatex
+  \RequirePackage{luabidi}
+\else
+  \RequirePackage{bidi}
+\fi
 
-\DeclareOption{marcheshvan}{\@xpg at hebrewcal@marcheshvantrue}
-
-\@ifundefined{if at xpg@hebrew at marcheshvan}{}{%
-  \if at xpg@hebrew at marcheshvan
-     \@xpg at hebrewcal@marcheshvantrue
-  \fi
-}
-
 %% TODO rewrite this on the basis of Reingold & Dershowitz 
 %%      on the model of hijrical (using calc)
 
 \@ifundefined{@Remainder}{\input{cal-util.def}}{}
 
-\define at boolkey{hebrew}[@hebrew@]{fullyear}[true]{}
-\setkeys{hebrew}{fullyear=false}
+%
+% OPTIONS
+%
+\RequirePackage{xkeyval}
 
+% marcheshvan=true|false
+\define at boolkey{hebrewcal}[@xpg at hebrew@]{marcheshvan}[true]{}
+
+% fullyear=true|false
+\define at boolkey{hebrewcal}[@xpg at hebrew@]{fullyear}[true]{}
+
+% transliteration=academy|alt
+\newif\if at hebrewcal@academytrans
+\@hebrewcal at academytransfalse
+\define at choicekey*+{hebrewcal}{transliteration}[\hcal at val\hcal at nr]{academy,alt}[alt]{%
+   \ifcase\hcal at nr\relax
+      % academy:
+     \@hebrewcal at academytranstrue
+   \or
+      % alt:
+      \@hebrewcal at academytransfalse
+   \fi
+   \PackageInfo{hebrewcal}{Setting transliteration=\hcal at val}%
+}{%
+  \PackageWarning{hebrewcal}{Unknown transliteration option `#1'}%
+}
+
+% Process
+\ProcessOptionsX*<hebrewcal>
+%%
+%% END OPTIONS
+
 \newcount\hebrewday  \newcount\hebrewmonth \newcount\hebrewyear
 \def\hebrewdate#1#2#3{%
     \HebrewFromGregorian{#1}{#2}{#3}%
@@ -6563,7 +6610,7 @@
        \else
          \ifnum#1<6000 % current millenium, print without thousands
            \@tempcnta=#1\relax
-           \if at hebrew@fullyear\else\advance\@tempcnta by -5000\fi
+           \if at xpg@hebrew at fullyear\else\advance\@tempcnta by -5000\fi
            \Hebrewnumeral{\@tempcnta}%
          \else % #1>6000
            \Hebrewnumeral{#1}%
@@ -6581,7 +6628,7 @@
         \ifcase#1%
            % nothing for 0
            \or תשרי%
-           \or\if at xpg@hebrewcal at marcheshvan מרחשון\else חשון\fi%
+           \or\if at xpg@hebrew at marcheshvan מרחשון\else חשון\fi%
            \or כסלו%
            \or טבת%
            \or שבט%
@@ -6605,18 +6652,23 @@
     \else%
         \ifcase #1%
             % nothing for 0
-            \or Tishrei%
-            \or\if at xpg@hebrewcal at marcheshvan Marcheshvan\else Heshvan\fi%
+            \or \if at hebrewcal@academytrans Tishri \else Tishrei \fi%
+            \or%
+              \if at hebrewcal@academytrans%
+                 \if at xpg@hebrew at marcheshvan Marẖeshvan\else Heshvan\fi%
+              \else%
+                 \if at xpg@hebrew at marcheshvan Marcheshvan\else Heshvan\fi%
+              \fi%
             \or Kislev%
-            \or Tebeth%
-            \or Shebat%
+            \or \if at hebrewcal@academytrans Tevet \else Tebeth \fi%
+            \or \if at hebrewcal@academytrans Shvat \else Shebat \fi%
             \or Adar I%
             \or Adar II%
             \or Nisan%
-            \or Iyar%
+            \or \if at hebrewcal@academytrans Iyyar \else Iyar \fi%
             \or Sivan%
             \or Tammuz%
-            \or Av%
+            \or \if at hebrewcal@academytrans Av \else Ab \fi%
             \or Elul%
         \fi
     \fi}
@@ -6727,12 +6779,12 @@
                0 \or%          % Tishri
               30 \or%          % Heshvan
               59 \or%          % Kislev
-              89 \or%          % Tebeth
-             118 \or%          % Shebat
+              89 \or%          % Tevet
+             118 \or%          % Shvat
              148 \or%          % Adar I
              148 \or%          % Adar II
              177 \or%          % Nisan
-             207 \or%          % Iyar
+             207 \or%          % Iyyar
              236 \or%          % Sivan
              266 \or%          % Tammuz
              295 \or%          % Av
@@ -6854,8 +6906,10 @@
                 \tmpy = \tmpx%
         \repeat%
         \global\advance #5 by -1%
-        \global\advance #4 by -\tmpy}}
-\ProcessOptions*
+        \global\advance #4 by -\tmpy%
+   }%
+}
+
 %    \end{macrocode}
 % \iffalse
 %</hebrewcal.sty>
@@ -8495,9 +8549,9 @@
   \bbl at afterfi\endinput
 \fi
 \ProvidesFile{babelsh.def}
-         [2019/09/30 %
+         [2022/06/21 %
          Babel common definitions for shorthands^^J
-         Taken verbatim from babel files (2019/09/27 v3.34)]
+         Taken verbatim from babel files (2022/06/06 v3.76)]
 %
 % ------------------------------------------------------------------------------
 %
@@ -8505,15 +8559,40 @@
 %
 % ------------------------------------------------------------------------------
 %
+\def\bbl at error#1#2{%
+  \begingroup
+    \def\\{\MessageBreak}%
+    \PackageError{babel}{#1}{#2}%
+  \endgroup}
+%
+% ------------------------------------------------------------------------------
+%
+% lines 69 to 73 from babel.sty
+%
+% ------------------------------------------------------------------------------
+%
+\def\bbl at info#1{%
+  \begingroup
+    \def\\{\MessageBreak}%
+    \PackageInfo{babel}{#1}%
+  \endgroup}
+%
+% ------------------------------------------------------------------------------
+%
+% lines 75 to 80 from babel.sty
+%
+% ------------------------------------------------------------------------------
+%
 \def\bbl at stripslash{\expandafter\@gobble\string}
 \def\bbl at add#1#2{%
   \bbl at ifunset{\bbl at stripslash#1}%
     {\def#1{#2}}%
     {\expandafter\def\expandafter#1\expandafter{#1#2}}}
+\def\bbl at xin@{\@expandtwoargs\in@}
 %
 % ------------------------------------------------------------------------------
 %
-% line 73 to 74 from babel.sty
+% line 97 to 98 from babel.sty
 %
 % ------------------------------------------------------------------------------
 %
@@ -8522,7 +8601,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% line 399 from babel.sty
+% line 376 from babel.sty
 %
 % ------------------------------------------------------------------------------
 %
@@ -8530,10 +8609,18 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 432 to 445 from babel.sty
+% lines 414 to 435 from babel.sty
 %
 % ------------------------------------------------------------------------------
 %
+\def\bbl at sh@string#1{%
+  \ifx#1\@empty\else
+    \ifx#1t\string~%
+    \else\ifx#1c\string,%
+    \else\string#1%
+    \fi\fi
+    \expandafter\bbl at sh@string
+  \fi}
 \ifx\bbl at opt@shorthands\@nnil
   \def\bbl at ifshorthand#1#2#3{#2}%
 \else\ifx\bbl at opt@shorthands\@empty
@@ -8551,7 +8638,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% line 450 from babel.sty
+% line 440 from babel.sty
 %
 % ------------------------------------------------------------------------------
 %
@@ -8559,91 +8646,45 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 389 to 424 from switch.def
+% lines 387 to 406 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
-\ifx\PackageError\@undefined
-  \def\bbl at error#1#2{%
-    \begingroup
-      \newlinechar=`\^^J
-      \def\\{^^J(babel) }%
-      \errhelp{#2}\errmessage{\\#1}%
-    \endgroup}
-  \def\bbl at warning#1{%
-    \begingroup
-      \newlinechar=`\^^J
-      \def\\{^^J(polyglossia) }%
-      \message{\\#1}%
-    \endgroup}
-  \def\bbl at info#1{%
-    \begingroup
-      \newlinechar=`\^^J
-      \def\\{^^J}%
-      \wlog{#1}%
-    \endgroup}
+\let\bbl at opt@shorthands\@nnil
+\def\bbl at ifshorthand#1#2#3{#2}%
+\let\bbl at language@opts\@empty
+\ifx\babeloptionstrings\@undefined
+  \let\bbl at opt@strings\@nnil
 \else
-  \def\bbl at error#1#2{%
-    \begingroup
-      \def\\{\MessageBreak}%
-      \PackageError{polyglossia}{#1}{#2}%
-    \endgroup}
-  \def\bbl at warning#1{%
-    \begingroup
-      \def\\{\MessageBreak}%
-      \PackageWarning{polyglossia}{#1}%
-    \endgroup}
-  \def\bbl at info#1{%
-    \begingroup
-      \def\\{\MessageBreak}%
-      \PackageInfo{polyglossia}{#1}%
-    \endgroup}
+  \let\bbl at opt@strings\babeloptionstrings
 \fi
-%
-% ------------------------------------------------------------------------------
-%
-% lines 48 to 69 from babel.def
-%
-% ------------------------------------------------------------------------------
-%
-\ifx\bbl at ifshorthand\@undefined
-  \let\bbl at opt@shorthands\@nnil
-  \def\bbl at ifshorthand#1#2#3{#2}%
-  \let\bbl at language@opts\@empty
-  \ifx\babeloptionstrings\@undefined
-    \let\bbl at opt@strings\@nnil
-  \else
-    \let\bbl at opt@strings\babeloptionstrings
-  \fi
-  \def\BabelStringsDefault{generic}
-  \def\bbl at tempa{normal}
-  \ifx\babeloptionmath\bbl at tempa
-    \def\bbl at mathnormal{\noexpand\textormath}
-  \fi
-  \def\AfterBabelLanguage#1#2{}
-  \ifx\BabelModifiers\@undefined\let\BabelModifiers\relax\fi
-  \let\bbl at afterlang\relax
-  \def\bbl at opt@safe{BR}
-  \ifx\@uclclist\@undefined\let\@uclclist\@empty\fi
-  \ifx\bbl at trace\@undefined\def\bbl at trace#1{}\fi
-  \expandafter\newif\csname ifbbl at single\endcsname
+\def\BabelStringsDefault{generic}
+\def\bbl at tempa{normal}
+\ifx\babeloptionmath\bbl at tempa
+  \def\bbl at mathnormal{\noexpand\textormath}
 \fi
+\def\AfterBabelLanguage#1#2{}
+\ifx\BabelModifiers\@undefined\let\BabelModifiers\relax\fi
+\let\bbl at afterlang\relax
+\def\bbl at opt@safe{BR}
+\ifx\@uclclist\@undefined\let\@uclclist\@empty\fi
+\ifx\bbl at trace\@undefined\def\bbl at trace#1{}\fi
+\expandafter\newif\csname ifbbl at single\endcsname
 %
 % ------------------------------------------------------------------------------
 %
-% line 108 from babel.def
+% line 938 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
 \def\bbl at csarg#1#2{\expandafter#1\csname bbl@#2\endcsname}%
-
+%
 % ------------------------------------------------------------------------------
 %
-% lines 110 to 116 from babel.def
+% lines 941 to 947 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
-
 \def\bbl at loop#1#2#3{\bbl@@loop#1{#3}#2,\@nnil,}
 \def\bbl at loopx#1#2{\expandafter\bbl at loop\expandafter#1\expandafter{#2}}
 \def\bbl@@loop#1#2#3,{%
@@ -8651,10 +8692,10 @@
     \def#1{#3}#2\bbl at afterfi\bbl@@loop#1{#2}%
   \fi}
 \def\bbl at for#1#2#3{\bbl at loopx#1{#2}{\ifx#1\@empty\else#3\fi}}
-
+%
 % ------------------------------------------------------------------------------
 %
-% lines 125 to 130 from babel.def
+% lines 956 to 965 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -8661,26 +8702,44 @@
 \def\bbl at exp#1{%
   \begingroup
     \let\\\noexpand
-    \def\<##1>{\expandafter\noexpand\csname##1\endcsname}%
+    \let\<\bbl at exp@en
+    \let\[\bbl at exp@ue
     \edef\bbl at exp@aux{\endgroup#1}%
   \bbl at exp@aux}
+\def\bbl at exp@en#1>{\expandafter\noexpand\csname#1\endcsname}%
+\def\bbl at exp@ue#1]{%
+  \unexpanded\expandafter\expandafter\expandafter{\csname#1\endcsname}}%
 %
 % ------------------------------------------------------------------------------
 %
-% lines 144 to 149 from babel.def
+% lines 979 to 998 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
-\def\bbl at ifunset#1{%
-  \expandafter\ifx\csname#1\endcsname\relax
-    \expandafter\@firstoftwo
-  \else
-    \expandafter\@secondoftwo
-  \fi}
+\begingroup
+  \gdef\bbl at ifunset#1{%
+    \expandafter\ifx\csname#1\endcsname\relax
+      \expandafter\@firstoftwo
+    \else
+      \expandafter\@secondoftwo
+    \fi}
+  \bbl at ifunset{ifcsname}% TODO. A better test?
+    {}%
+    {\gdef\bbl at ifunset#1{%
+       \ifcsname#1\endcsname
+         \expandafter\ifx\csname#1\endcsname\relax
+           \bbl at afterelse\expandafter\@firstoftwo
+         \else
+           \bbl at afterfi\expandafter\@secondoftwo
+         \fi
+       \else
+         \expandafter\@firstoftwo
+       \fi}}
+\endgroup
 %
 % ------------------------------------------------------------------------------
 %
-% lines 234 to 243 from babel.def
+% lines 1075 to 1084 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -8697,7 +8756,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 255 to 258 from babel.def
+% lines 1152 to 1155 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -8708,7 +8767,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 293 to 301 from babel.def
+% line 1185 from babel.def
 %
 % NOTE: In order to avoid importing more unneeded definitions, this macro
 %       does nothing for us.
@@ -8719,7 +8778,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 443 to 558 from babel.def
+% lines 1348 to 1463 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -8770,7 +8829,7 @@
 \def\@initiate at active@char#1#2#3{%
   \bbl at csarg\edef{oricat@#2}{\catcode`#2=\the\catcode`#2\relax}%
   \ifx#1\@undefined
-    \bbl at csarg\edef{oridef@#2}{\let\noexpand#1\noexpand\@undefined}%
+    \bbl at csarg\def{oridef@#2}{\def#1{\active at prefix#1\@undefined}}%
   \else
     \bbl at csarg\let{oridef@@#2}#1%
     \bbl at csarg\edef{oridef@#2}{%
@@ -8842,7 +8901,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 561 to 755 from babel.def
+% lines 1466 to 1516 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -8855,27 +8914,55 @@
   \else
     \bbl at afterfi\csname#1 at sh@#2 at sel\endcsname
   \fi}
-\def\active at prefix#1{%
-  \ifx\protect\@typeset at protect
-  \else
-    \ifx\protect\@unexpandable at protect
-      \noexpand#1%
-    \else
-      \protect#1%
-    \fi
-    \expandafter\@gobble
-  \fi}
+\begingroup
+\bbl at ifunset{ifincsname}% TODO. Ugly. Correct? Only Plain?
+  {\gdef\active at prefix#1{%
+     \ifx\protect\@typeset at protect
+     \else
+       \ifx\protect\@unexpandable at protect
+         \noexpand#1%
+       \else
+         \protect#1%
+       \fi
+       \expandafter\@gobble
+     \fi}}
+  {\gdef\active at prefix#1{%
+     \ifincsname
+       \string#1%
+       \expandafter\@gobble
+     \else
+       \ifx\protect\@typeset at protect
+       \else
+         \ifx\protect\@unexpandable at protect
+           \noexpand#1%
+         \else
+           \protect#1%
+         \fi
+         \expandafter\expandafter\expandafter\@gobble
+       \fi
+     \fi}}
+\endgroup
 \newif\if at safe@actives
 \@safe at activesfalse
 \def\bbl at restore@actives{\if at safe@actives\@safe at activesfalse\fi}
+\chardef\bbl at activated\z@
 \def\bbl at activate#1{%
+  \chardef\bbl at activated\@ne
   \bbl at withactive{\expandafter\let\expandafter}#1%
     \csname bbl at active@\string#1\endcsname}
 \def\bbl at deactivate#1{%
+  \chardef\bbl at activated\tw@
   \bbl at withactive{\expandafter\let\expandafter}#1%
     \csname bbl at normal@\string#1\endcsname}
 \def\bbl at firstcs#1#2{\csname#1\endcsname}
 \def\bbl at scndcs#1#2{\csname#2\endcsname}
+%
+% ------------------------------------------------------------------------------
+%
+% lines 1525 to 1702 from babel.def
+%
+% ------------------------------------------------------------------------------
+%
 \def\declare at shorthand#1#2{\@decl at short{#1}#2\@nil}
 \def\@decl at short#1#2#3\@nil#4{%
   \def\bbl at tempa{#3}%
@@ -8909,7 +8996,7 @@
     \expandafter\@firstoftwo
   \fi}
 \def\user at group{user}
-\def\language at group{english}
+\def\language at group{english} % TODO. I don't like defaults
 \def\system at group{system}
 \def\useshorthands{%
   \@ifstar\bbl at usesh@s{\bbl at usesh@x{}}}
@@ -8924,8 +9011,8 @@
      #1%
      \bbl at activate{#2}}%
     {\bbl at error
-       {Cannot declare a shorthand turned off (\string#2)}
-       {Sorry, but you cannot use shorthands which have been\\%
+       {I can't declare a shorthand turned off (\string#2)}
+       {Sorry, but you can't use shorthands which have been\\%
         turned off in the package options}}}
 \def\user at language@group{user@\language at group}
 \def\bbl at set@user at generic#1#2{%
@@ -8967,7 +9054,7 @@
         turned off in the package options}}}
 \def\@notshorthand#1{%
   \bbl at error{%
-    The character `\string #1' should be made a shorthand character;\\%
+    The character '\string #1' should be made a shorthand character;\\%
     add the command \string\useshorthands\string{#1\string} to
     the preamble.\\%
     I will ignore your instruction}%
@@ -8980,14 +9067,27 @@
   \ifx#2\@nnil\else
     \bbl at ifunset{bbl at active@\string#2}%
       {\bbl at error
-         {I cannot switch `\string#2' on or off--not a shorthand}%
+         {I can't switch '\string#2' on or off--not a shorthand}%
          {This character is not a shorthand. Maybe you made\\%
-          a typing mistake? I will ignore your instruction}}%
-      {\ifcase#1%
+          a typing mistake? I will ignore your instruction.}}%
+      {\ifcase#1%   off, on, off*
          \catcode`#212\relax
        \or
          \catcode`#2\active
+         \bbl at ifunset{bbl at shdef@\string#2}%
+           {}%
+           {\bbl at withactive{\expandafter\let\expandafter}#2%
+              \csname bbl at shdef@\string#2\endcsname
+            \bbl at csarg\let{shdef@\string#2}\relax}%
+         \ifcase\bbl at activated\or
+           \bbl at activate{#2}%
+         \else
+           \bbl at deactivate{#2}%
+         \fi
        \or
+         \bbl at ifunset{bbl at shdef@\string#2}%
+           {\bbl at withactive{\bbl at csarg\let{shdef@\string#2}}#2}%
+           {}%
          \csname bbl at oricat@\string#2\endcsname
          \csname bbl at oridef@\string#2\endcsname
        \fi}%
@@ -8999,7 +9099,7 @@
      {\bbl at putsh@i#1\@empty\@nnil}%
      {\csname bbl at active@\string#1\endcsname}}
 \def\bbl at putsh@i#1#2\@nnil{%
-  \csname\languagename @sh@\string#1@%
+  \csname\language at group @sh@\string#1@%
     \ifx\@empty#2\else\string#2@\fi\endcsname}
 \ifx\bbl at opt@shorthands\@nnil\else
   \let\bbl at s@initiate at active@char\initiate at active@char
@@ -9044,7 +9144,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 890 to 927 from babel.def
+% lines 1863 to 1900 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -14301,9 +14401,9 @@
    % Change part heading
    % With titlesec
    \ifcsdef{titleformat}{%
-     \ifcsdef{H at old@part}{% Hyperref
-        \let\xpg at save@part at format\H at old@part%
-        \patchcmd{\H at old@part}%
+     \ifcsdef{NR at part}{% Hyperref (nameref)
+        \let\xpg at save@part at format\NR at part%
+        \patchcmd{\NR at part}%
                   {\partname\nobreakspace\thepart}%
                   {\xpg at french@part\nobreakspace\partname}%
                   {}%
@@ -14328,9 +14428,9 @@
      }{%  (not \ifdefined\sectionformat)
        % With memoir
        \ifcsdef{@memptsize}{%
-         \ifcsdef{H at old@part}{% Hyperref
-           \let\xpg at save@part at format\H at old@part%
-           \patchcmd{\H at old@part}{\printpartname \partnamenum \printpartnum}%
+         \ifcsdef{NR at part}{% Hyperref (nameref)
+           \let\xpg at save@part at format\NR at part%
+           \patchcmd{\NR at part}{\printpartname \partnamenum \printpartnum}%
                             {\partnamefont\xpg at french@part\partnamenum\printpartname}%
                             {}%
                             {\xpg at warning{Failed to patch part for French}}%
@@ -14345,9 +14445,9 @@
           }%
        }{%  (not \ifdefined\@memptsize)
          % With standard classes
-         \ifcsdef{H at old@part}{% Hyperref
-           \let\xpg at save@part at format\H at old@part%
-           \patchcmd{\H at old@part}%
+         \ifcsdef{NR at part}{% Hyperref
+           \let\xpg at save@part at format\NR at part%
+           \patchcmd{\NR at part}%
                     {\partname\nobreakspace\thepart}%
                     {\xpg at french@part\nobreakspace\partname}%
                     {}%
@@ -14360,7 +14460,7 @@
                        {\xpg at french@part\nobreakspace\partname}%
                        {}%
                        {\ifcsdef{part}{\xpg at warning{Failed to patch part for French}}{}}%
-            }{}%  (end \ifdefined \H at old@part)
+            }{}%  (end \ifdefined \NR at part)
          }%  (end \ifdefined\@part)
        }% (end \ifdefined\@memptsize)
      }% (end \ifdefined\sectionformat)
@@ -14372,8 +14472,8 @@
    \ifcsdef{titleformat}{%
       % With titlesec
      \ifcsdef{xpg at save@part at format}{%
-        \ifcsdef{H at old@part}{%
-            \let\H at old@part\xpg at save@part at format%
+        \ifcsdef{NR at part}{%
+            \let\NR at part\xpg at save@part at format%
         }{%
             \let\@part\xpg at save@part at format%
         }%
@@ -14387,8 +14487,8 @@
      }{%
         % With memoir and standard classes
         \ifcsdef{xpg at save@part at format}{%
-           \ifcsdef{H at old@part}{%
-              \let\H at old@part\xpg at save@part at format%
+           \ifcsdef{NR at part}{%
+              \let\NR at part\xpg at save@part at format%
            }{%
               \let\@part\xpg at save@part at format%
            }%
@@ -15846,6 +15946,11 @@
 % BCP-47 compliant aliases
 \setlanguagealias*{hebrew}{he}
 
+% hebrewcal options
+\define at key{hebrew}{marcheshvan}[true]{\setkeys{hebrewcal}{marcheshvan=#1}}
+\define at key{hebrew}{transliteration}[alt]{\setkeys{hebrewcal}{transliteration=#1}}
+\define at key{hebrew}{fullyear}[true]{\setkeys{hebrewcal}{fullyear=#1}}
+
 \newif\if at calendar@hebrew
 \def\tmp at hebrew{hebrew}
 \define at key{hebrew}{calendar}[gregorian]{%
@@ -15857,13 +15962,6 @@
     \@calendar at hebrewfalse%
 	\fi}
 
-\newif\if at xpg@hebrew at marcheshvan
-\@xpg at hebrew@marcheshvanfalse
-
-\define at boolkey{hebrew}[@xpg at hebrew@]{marcheshvan}[true]{}
-
-% hebrewcal.sty also defines the boolean key fullyear (default=false)
-
 \newif\if at hebrew@numerals
 \def\tmp at hebrew{hebrew}
 \define at key{hebrew}{numerals}[arabic]{%
@@ -15877,7 +15975,7 @@
 \setkeys{hebrew}{numerals}
 
 % Register default options
-\xpg at initialize@gloss at options{hebrew}{numerals=arabic,calendar=gregorian,marcheshvan=false}
+\xpg at initialize@gloss at options{hebrew}{numerals=arabic,calendar=gregorian,marcheshvan=false,fullyear=false}
 
 \def\captionshebrew{%
   \def\prefacename{מבוא}%
@@ -18620,7 +18718,7 @@
 % 
 % \subsection{gloss-latin.ldf}
 %    \begin{macrocode}
-\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin v.2.4 2021-10-25]
+\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin v.2.5 2022-06-21]
 
 \ExplSyntaxOn
 
@@ -19245,6 +19343,9 @@
 % The active = character may cause problems with key=value interfaces.
 % We have to make sure here that no problems can occur outside a Latin
 % prosodic shorthand environment.
+% The active ^ character may cause problems with TeX's ^^xx convention
+% for hexadecimal input. We have to make sure here that no problems can
+% occur outside a Latin prosodic shorthand environment.
 % The active ' character may cause problems with the unicode-math package
 % (in case Latin is used as a secondary language, see #394). We have to
 % turn it off if Latin is not the main language.
@@ -19258,6 +19359,7 @@
         \iflatin at prosodicshorthands
         \else
           \shorthandoff {=}
+          \shorthandoff* {^}
         \fi
       }
       {
@@ -19266,6 +19368,10 @@
         % Latin defining such a shorthand in polyglossia.
         \shorthandoff {=}
         % The following command should not be called if the main language
+        % defines a ^ shorthand. However, there are no languages besides
+        % Latin defining such a shorthand in polyglossia.
+        \shorthandoff* {^}
+        % The following command should not be called if the main language
         % defines a ' shorthand. However, there are no languages besides
         % Latin defining such a shorthand in polyglossia.
         \shorthandoff {'}
@@ -19308,8 +19414,9 @@
 \cs_new:Npn \polyglossia_latin_prosodic_shorthands:
   {
     \def \language at group {latin}
-    % The '=' shorthand is normally turned off to avoid problems with key=value
-    % interfaces. We turn it on here to enable prosodic shorthands.
+    % The '=' and '^' shorthands are normally turned off to avoid problems with
+    % key=value interfaces and TeX's ^^xx convention for hexadecimal input. We
+    % turn them on here to enable prosodic shorthands.
     \shorthandon {=}
     \bbl at activate {=}
     \declare at shorthand {latin} {=}
@@ -19322,6 +19429,7 @@
             \polyglossia_latin_put_macron:N
           }
       }
+    \shorthandon {^}
     \bbl at activate {^}
     \declare at shorthand {latin} {^}
       {
@@ -19547,7 +19655,7 @@
     \peek_meaning:NTF #2
       {
         #1
-        \iffontchar \font "35E \relax % U+35E: combining double macron
+        \iffontchar \font "35E \relax % U+035E: combining double macron
           \char "35E \relax
         \else
           \msg_warning:nn {polyglossia} {latin / no-double-macron-font}
@@ -19593,6 +19701,10 @@
   {
     \bbl at deactivate {"}
     \bbl at deactivate {'}
+  }
+
+\cs_new:Npn \polyglossia_latin_no_prosodic_shorthands:
+  {
     \bbl at deactivate {=}
     \bbl at deactivate {^}
     % The active '=' character may cause problems with key=value interfaces.
@@ -19599,6 +19711,10 @@
     % We have to make sure here that no problems can occur outside a Latin
     % prosodic shorthand environment.
     \shorthandoff {=}
+    % The active '^' character may cause problems with TeX's ^^xx convention
+    % for hexadecimal input. We have to make sure here that no problems can
+    % occur outside a Latin prosodic shorthand environment.
+    \shorthandoff* {^}
   }
 
 
@@ -19622,6 +19738,9 @@
     \iflatin at babelshorthands
       \polyglossia_latin_no_shorthands:
     \fi
+    \iflatin at prosodicshorthands
+      \polyglossia_latin_no_prosodic_shorthands:
+    \fi
     \xpgla at savedvalues
     \polyglossia_latin_no_punctuation_spacing:
     \polyglossia_latin_modern_character_codes:
@@ -19639,9 +19758,13 @@
       }
     \iflatin at babelshorthands
       \polyglossia_latin_shorthands:
+    \else
+      \polyglossia_latin_no_shorthands:
     \fi
     \iflatin at prosodicshorthands
       \polyglossia_latin_prosodic_shorthands:
+    \else
+      \polyglossia_latin_no_prosodic_shorthands:
     \fi
   }
 
@@ -19670,7 +19793,7 @@
 
 %%   Copyright (C) Claudio Beccari 2013-2016
 %%   Copyright (C) Élie Roux 2016-2019
-%%   Copyright (C) Keno Wehr 2019-2020
+%%   Copyright (C) Keno Wehr 2019-2022
 %%
 %%   Permission is hereby granted, free of charge, to any person obtaining
 %%   a copy of this software and associated documentation files
@@ -21680,7 +21803,7 @@
 
 \def\polish at vlna{%
     \ifluatex
-       \singlechars{polish}{AaIiOoUuWwZz}
+       \singlechars{polish}{AaIiOoUuWwZz}%
        \preventsingleon
     \else
         % Code taken and adapted from xevlna.sty

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/babelsh.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/babelsh.def	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/babelsh.def	2022-07-18 20:13:44 UTC (rev 63931)
@@ -3,9 +3,9 @@
   \bbl at afterfi\endinput
 \fi
 \ProvidesFile{babelsh.def}
-         [2019/09/30 %
+         [2022/06/21 %
          Babel common definitions for shorthands^^J
-         Taken verbatim from babel files (2019/09/27 v3.34)]
+         Taken verbatim from babel files (2022/06/06 v3.76)]
 %
 % ------------------------------------------------------------------------------
 %
@@ -13,15 +13,40 @@
 %
 % ------------------------------------------------------------------------------
 %
+\def\bbl at error#1#2{%
+  \begingroup
+    \def\\{\MessageBreak}%
+    \PackageError{babel}{#1}{#2}%
+  \endgroup}
+%
+% ------------------------------------------------------------------------------
+%
+% lines 69 to 73 from babel.sty
+%
+% ------------------------------------------------------------------------------
+%
+\def\bbl at info#1{%
+  \begingroup
+    \def\\{\MessageBreak}%
+    \PackageInfo{babel}{#1}%
+  \endgroup}
+%
+% ------------------------------------------------------------------------------
+%
+% lines 75 to 80 from babel.sty
+%
+% ------------------------------------------------------------------------------
+%
 \def\bbl at stripslash{\expandafter\@gobble\string}
 \def\bbl at add#1#2{%
   \bbl at ifunset{\bbl at stripslash#1}%
     {\def#1{#2}}%
     {\expandafter\def\expandafter#1\expandafter{#1#2}}}
+\def\bbl at xin@{\@expandtwoargs\in@}
 %
 % ------------------------------------------------------------------------------
 %
-% line 73 to 74 from babel.sty
+% line 97 to 98 from babel.sty
 %
 % ------------------------------------------------------------------------------
 %
@@ -30,7 +55,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% line 399 from babel.sty
+% line 376 from babel.sty
 %
 % ------------------------------------------------------------------------------
 %
@@ -38,10 +63,18 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 432 to 445 from babel.sty
+% lines 414 to 435 from babel.sty
 %
 % ------------------------------------------------------------------------------
 %
+\def\bbl at sh@string#1{%
+  \ifx#1\@empty\else
+    \ifx#1t\string~%
+    \else\ifx#1c\string,%
+    \else\string#1%
+    \fi\fi
+    \expandafter\bbl at sh@string
+  \fi}
 \ifx\bbl at opt@shorthands\@nnil
   \def\bbl at ifshorthand#1#2#3{#2}%
 \else\ifx\bbl at opt@shorthands\@empty
@@ -59,7 +92,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% line 450 from babel.sty
+% line 440 from babel.sty
 %
 % ------------------------------------------------------------------------------
 %
@@ -67,91 +100,45 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 389 to 424 from switch.def
+% lines 387 to 406 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
-\ifx\PackageError\@undefined
-  \def\bbl at error#1#2{%
-    \begingroup
-      \newlinechar=`\^^J
-      \def\\{^^J(babel) }%
-      \errhelp{#2}\errmessage{\\#1}%
-    \endgroup}
-  \def\bbl at warning#1{%
-    \begingroup
-      \newlinechar=`\^^J
-      \def\\{^^J(polyglossia) }%
-      \message{\\#1}%
-    \endgroup}
-  \def\bbl at info#1{%
-    \begingroup
-      \newlinechar=`\^^J
-      \def\\{^^J}%
-      \wlog{#1}%
-    \endgroup}
+\let\bbl at opt@shorthands\@nnil
+\def\bbl at ifshorthand#1#2#3{#2}%
+\let\bbl at language@opts\@empty
+\ifx\babeloptionstrings\@undefined
+  \let\bbl at opt@strings\@nnil
 \else
-  \def\bbl at error#1#2{%
-    \begingroup
-      \def\\{\MessageBreak}%
-      \PackageError{polyglossia}{#1}{#2}%
-    \endgroup}
-  \def\bbl at warning#1{%
-    \begingroup
-      \def\\{\MessageBreak}%
-      \PackageWarning{polyglossia}{#1}%
-    \endgroup}
-  \def\bbl at info#1{%
-    \begingroup
-      \def\\{\MessageBreak}%
-      \PackageInfo{polyglossia}{#1}%
-    \endgroup}
+  \let\bbl at opt@strings\babeloptionstrings
 \fi
-%
-% ------------------------------------------------------------------------------
-%
-% lines 48 to 69 from babel.def
-%
-% ------------------------------------------------------------------------------
-%
-\ifx\bbl at ifshorthand\@undefined
-  \let\bbl at opt@shorthands\@nnil
-  \def\bbl at ifshorthand#1#2#3{#2}%
-  \let\bbl at language@opts\@empty
-  \ifx\babeloptionstrings\@undefined
-    \let\bbl at opt@strings\@nnil
-  \else
-    \let\bbl at opt@strings\babeloptionstrings
-  \fi
-  \def\BabelStringsDefault{generic}
-  \def\bbl at tempa{normal}
-  \ifx\babeloptionmath\bbl at tempa
-    \def\bbl at mathnormal{\noexpand\textormath}
-  \fi
-  \def\AfterBabelLanguage#1#2{}
-  \ifx\BabelModifiers\@undefined\let\BabelModifiers\relax\fi
-  \let\bbl at afterlang\relax
-  \def\bbl at opt@safe{BR}
-  \ifx\@uclclist\@undefined\let\@uclclist\@empty\fi
-  \ifx\bbl at trace\@undefined\def\bbl at trace#1{}\fi
-  \expandafter\newif\csname ifbbl at single\endcsname
+\def\BabelStringsDefault{generic}
+\def\bbl at tempa{normal}
+\ifx\babeloptionmath\bbl at tempa
+  \def\bbl at mathnormal{\noexpand\textormath}
 \fi
+\def\AfterBabelLanguage#1#2{}
+\ifx\BabelModifiers\@undefined\let\BabelModifiers\relax\fi
+\let\bbl at afterlang\relax
+\def\bbl at opt@safe{BR}
+\ifx\@uclclist\@undefined\let\@uclclist\@empty\fi
+\ifx\bbl at trace\@undefined\def\bbl at trace#1{}\fi
+\expandafter\newif\csname ifbbl at single\endcsname
 %
 % ------------------------------------------------------------------------------
 %
-% line 108 from babel.def
+% line 938 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
 \def\bbl at csarg#1#2{\expandafter#1\csname bbl@#2\endcsname}%
-
+%
 % ------------------------------------------------------------------------------
 %
-% lines 110 to 116 from babel.def
+% lines 941 to 947 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
-
 \def\bbl at loop#1#2#3{\bbl@@loop#1{#3}#2,\@nnil,}
 \def\bbl at loopx#1#2{\expandafter\bbl at loop\expandafter#1\expandafter{#2}}
 \def\bbl@@loop#1#2#3,{%
@@ -159,10 +146,10 @@
     \def#1{#3}#2\bbl at afterfi\bbl@@loop#1{#2}%
   \fi}
 \def\bbl at for#1#2#3{\bbl at loopx#1{#2}{\ifx#1\@empty\else#3\fi}}
-
+%
 % ------------------------------------------------------------------------------
 %
-% lines 125 to 130 from babel.def
+% lines 956 to 965 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -169,26 +156,44 @@
 \def\bbl at exp#1{%
   \begingroup
     \let\\\noexpand
-    \def\<##1>{\expandafter\noexpand\csname##1\endcsname}%
+    \let\<\bbl at exp@en
+    \let\[\bbl at exp@ue
     \edef\bbl at exp@aux{\endgroup#1}%
   \bbl at exp@aux}
+\def\bbl at exp@en#1>{\expandafter\noexpand\csname#1\endcsname}%
+\def\bbl at exp@ue#1]{%
+  \unexpanded\expandafter\expandafter\expandafter{\csname#1\endcsname}}%
 %
 % ------------------------------------------------------------------------------
 %
-% lines 144 to 149 from babel.def
+% lines 979 to 998 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
-\def\bbl at ifunset#1{%
-  \expandafter\ifx\csname#1\endcsname\relax
-    \expandafter\@firstoftwo
-  \else
-    \expandafter\@secondoftwo
-  \fi}
+\begingroup
+  \gdef\bbl at ifunset#1{%
+    \expandafter\ifx\csname#1\endcsname\relax
+      \expandafter\@firstoftwo
+    \else
+      \expandafter\@secondoftwo
+    \fi}
+  \bbl at ifunset{ifcsname}% TODO. A better test?
+    {}%
+    {\gdef\bbl at ifunset#1{%
+       \ifcsname#1\endcsname
+         \expandafter\ifx\csname#1\endcsname\relax
+           \bbl at afterelse\expandafter\@firstoftwo
+         \else
+           \bbl at afterfi\expandafter\@secondoftwo
+         \fi
+       \else
+         \expandafter\@firstoftwo
+       \fi}}
+\endgroup
 %
 % ------------------------------------------------------------------------------
 %
-% lines 234 to 243 from babel.def
+% lines 1075 to 1084 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -205,7 +210,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 255 to 258 from babel.def
+% lines 1152 to 1155 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -216,7 +221,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 293 to 301 from babel.def
+% line 1185 from babel.def
 %
 % NOTE: In order to avoid importing more unneeded definitions, this macro
 %       does nothing for us.
@@ -227,7 +232,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 443 to 558 from babel.def
+% lines 1348 to 1463 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -278,7 +283,7 @@
 \def\@initiate at active@char#1#2#3{%
   \bbl at csarg\edef{oricat@#2}{\catcode`#2=\the\catcode`#2\relax}%
   \ifx#1\@undefined
-    \bbl at csarg\edef{oridef@#2}{\let\noexpand#1\noexpand\@undefined}%
+    \bbl at csarg\def{oridef@#2}{\def#1{\active at prefix#1\@undefined}}%
   \else
     \bbl at csarg\let{oridef@@#2}#1%
     \bbl at csarg\edef{oridef@#2}{%
@@ -350,7 +355,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 561 to 755 from babel.def
+% lines 1466 to 1516 from babel.def
 %
 % ------------------------------------------------------------------------------
 %
@@ -363,27 +368,55 @@
   \else
     \bbl at afterfi\csname#1 at sh@#2 at sel\endcsname
   \fi}
-\def\active at prefix#1{%
-  \ifx\protect\@typeset at protect
-  \else
-    \ifx\protect\@unexpandable at protect
-      \noexpand#1%
-    \else
-      \protect#1%
-    \fi
-    \expandafter\@gobble
-  \fi}
+\begingroup
+\bbl at ifunset{ifincsname}% TODO. Ugly. Correct? Only Plain?
+  {\gdef\active at prefix#1{%
+     \ifx\protect\@typeset at protect
+     \else
+       \ifx\protect\@unexpandable at protect
+         \noexpand#1%
+       \else
+         \protect#1%
+       \fi
+       \expandafter\@gobble
+     \fi}}
+  {\gdef\active at prefix#1{%
+     \ifincsname
+       \string#1%
+       \expandafter\@gobble
+     \else
+       \ifx\protect\@typeset at protect
+       \else
+         \ifx\protect\@unexpandable at protect
+           \noexpand#1%
+         \else
+           \protect#1%
+         \fi
+         \expandafter\expandafter\expandafter\@gobble
+       \fi
+     \fi}}
+\endgroup
 \newif\if at safe@actives
 \@safe at activesfalse
 \def\bbl at restore@actives{\if at safe@actives\@safe at activesfalse\fi}
+\chardef\bbl at activated\z@
 \def\bbl at activate#1{%
+  \chardef\bbl at activated\@ne
   \bbl at withactive{\expandafter\let\expandafter}#1%
     \csname bbl at active@\string#1\endcsname}
 \def\bbl at deactivate#1{%
+  \chardef\bbl at activated\tw@
   \bbl at withactive{\expandafter\let\expandafter}#1%
     \csname bbl at normal@\string#1\endcsname}
 \def\bbl at firstcs#1#2{\csname#1\endcsname}
 \def\bbl at scndcs#1#2{\csname#2\endcsname}
+%
+% ------------------------------------------------------------------------------
+%
+% lines 1525 to 1702 from babel.def
+%
+% ------------------------------------------------------------------------------
+%
 \def\declare at shorthand#1#2{\@decl at short{#1}#2\@nil}
 \def\@decl at short#1#2#3\@nil#4{%
   \def\bbl at tempa{#3}%
@@ -417,7 +450,7 @@
     \expandafter\@firstoftwo
   \fi}
 \def\user at group{user}
-\def\language at group{english}
+\def\language at group{english} % TODO. I don't like defaults
 \def\system at group{system}
 \def\useshorthands{%
   \@ifstar\bbl at usesh@s{\bbl at usesh@x{}}}
@@ -432,8 +465,8 @@
      #1%
      \bbl at activate{#2}}%
     {\bbl at error
-       {Cannot declare a shorthand turned off (\string#2)}
-       {Sorry, but you cannot use shorthands which have been\\%
+       {I can't declare a shorthand turned off (\string#2)}
+       {Sorry, but you can't use shorthands which have been\\%
         turned off in the package options}}}
 \def\user at language@group{user@\language at group}
 \def\bbl at set@user at generic#1#2{%
@@ -475,7 +508,7 @@
         turned off in the package options}}}
 \def\@notshorthand#1{%
   \bbl at error{%
-    The character `\string #1' should be made a shorthand character;\\%
+    The character '\string #1' should be made a shorthand character;\\%
     add the command \string\useshorthands\string{#1\string} to
     the preamble.\\%
     I will ignore your instruction}%
@@ -488,14 +521,27 @@
   \ifx#2\@nnil\else
     \bbl at ifunset{bbl at active@\string#2}%
       {\bbl at error
-         {I cannot switch `\string#2' on or off--not a shorthand}%
+         {I can't switch '\string#2' on or off--not a shorthand}%
          {This character is not a shorthand. Maybe you made\\%
-          a typing mistake? I will ignore your instruction}}%
-      {\ifcase#1%
+          a typing mistake? I will ignore your instruction.}}%
+      {\ifcase#1%   off, on, off*
          \catcode`#212\relax
        \or
          \catcode`#2\active
+         \bbl at ifunset{bbl at shdef@\string#2}%
+           {}%
+           {\bbl at withactive{\expandafter\let\expandafter}#2%
+              \csname bbl at shdef@\string#2\endcsname
+            \bbl at csarg\let{shdef@\string#2}\relax}%
+         \ifcase\bbl at activated\or
+           \bbl at activate{#2}%
+         \else
+           \bbl at deactivate{#2}%
+         \fi
        \or
+         \bbl at ifunset{bbl at shdef@\string#2}%
+           {\bbl at withactive{\bbl at csarg\let{shdef@\string#2}}#2}%
+           {}%
          \csname bbl at oricat@\string#2\endcsname
          \csname bbl at oridef@\string#2\endcsname
        \fi}%
@@ -507,7 +553,7 @@
      {\bbl at putsh@i#1\@empty\@nnil}%
      {\csname bbl at active@\string#1\endcsname}}
 \def\bbl at putsh@i#1#2\@nnil{%
-  \csname\languagename @sh@\string#1@%
+  \csname\language at group @sh@\string#1@%
     \ifx\@empty#2\else\string#2@\fi\endcsname}
 \ifx\bbl at opt@shorthands\@nnil\else
   \let\bbl at s@initiate at active@char\initiate at active@char
@@ -552,7 +598,7 @@
 %
 % ------------------------------------------------------------------------------
 %
-% lines 890 to 927 from babel.def
+% lines 1863 to 1900 from babel.def
 %
 % ------------------------------------------------------------------------------
 %

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-french.ldf	2022-07-18 20:13:44 UTC (rev 63931)
@@ -364,9 +364,9 @@
    % Change part heading
    % With titlesec
    \ifcsdef{titleformat}{%
-     \ifcsdef{H at old@part}{% Hyperref
-        \let\xpg at save@part at format\H at old@part%
-        \patchcmd{\H at old@part}%
+     \ifcsdef{NR at part}{% Hyperref (nameref)
+        \let\xpg at save@part at format\NR at part%
+        \patchcmd{\NR at part}%
                   {\partname\nobreakspace\thepart}%
                   {\xpg at french@part\nobreakspace\partname}%
                   {}%
@@ -391,9 +391,9 @@
      }{%  (not \ifdefined\sectionformat)
        % With memoir
        \ifcsdef{@memptsize}{%
-         \ifcsdef{H at old@part}{% Hyperref
-           \let\xpg at save@part at format\H at old@part%
-           \patchcmd{\H at old@part}{\printpartname \partnamenum \printpartnum}%
+         \ifcsdef{NR at part}{% Hyperref (nameref)
+           \let\xpg at save@part at format\NR at part%
+           \patchcmd{\NR at part}{\printpartname \partnamenum \printpartnum}%
                             {\partnamefont\xpg at french@part\partnamenum\printpartname}%
                             {}%
                             {\xpg at warning{Failed to patch part for French}}%
@@ -408,9 +408,9 @@
           }%
        }{%  (not \ifdefined\@memptsize)
          % With standard classes
-         \ifcsdef{H at old@part}{% Hyperref
-           \let\xpg at save@part at format\H at old@part%
-           \patchcmd{\H at old@part}%
+         \ifcsdef{NR at part}{% Hyperref
+           \let\xpg at save@part at format\NR at part%
+           \patchcmd{\NR at part}%
                     {\partname\nobreakspace\thepart}%
                     {\xpg at french@part\nobreakspace\partname}%
                     {}%
@@ -423,7 +423,7 @@
                        {\xpg at french@part\nobreakspace\partname}%
                        {}%
                        {\ifcsdef{part}{\xpg at warning{Failed to patch part for French}}{}}%
-            }{}%  (end \ifdefined \H at old@part)
+            }{}%  (end \ifdefined \NR at part)
          }%  (end \ifdefined\@part)
        }% (end \ifdefined\@memptsize)
      }% (end \ifdefined\sectionformat)
@@ -435,8 +435,8 @@
    \ifcsdef{titleformat}{%
       % With titlesec
      \ifcsdef{xpg at save@part at format}{%
-        \ifcsdef{H at old@part}{%
-            \let\H at old@part\xpg at save@part at format%
+        \ifcsdef{NR at part}{%
+            \let\NR at part\xpg at save@part at format%
         }{%
             \let\@part\xpg at save@part at format%
         }%
@@ -450,8 +450,8 @@
      }{%
         % With memoir and standard classes
         \ifcsdef{xpg at save@part at format}{%
-           \ifcsdef{H at old@part}{%
-              \let\H at old@part\xpg at save@part at format%
+           \ifcsdef{NR at part}{%
+              \let\NR at part\xpg at save@part at format%
            }{%
               \let\@part\xpg at save@part at format%
            }%

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-hebrew.ldf	2022-07-18 20:13:44 UTC (rev 63931)
@@ -19,6 +19,11 @@
 % BCP-47 compliant aliases
 \setlanguagealias*{hebrew}{he}
 
+% hebrewcal options
+\define at key{hebrew}{marcheshvan}[true]{\setkeys{hebrewcal}{marcheshvan=#1}}
+\define at key{hebrew}{transliteration}[alt]{\setkeys{hebrewcal}{transliteration=#1}}
+\define at key{hebrew}{fullyear}[true]{\setkeys{hebrewcal}{fullyear=#1}}
+
 \newif\if at calendar@hebrew
 \def\tmp at hebrew{hebrew}
 \define at key{hebrew}{calendar}[gregorian]{%
@@ -30,13 +35,6 @@
     \@calendar at hebrewfalse%
 	\fi}
 
-\newif\if at xpg@hebrew at marcheshvan
-\@xpg at hebrew@marcheshvanfalse
-
-\define at boolkey{hebrew}[@xpg at hebrew@]{marcheshvan}[true]{}
-
-% hebrewcal.sty also defines the boolean key fullyear (default=false)
-
 \newif\if at hebrew@numerals
 \def\tmp at hebrew{hebrew}
 \define at key{hebrew}{numerals}[arabic]{%
@@ -50,7 +48,7 @@
 \setkeys{hebrew}{numerals}
 
 % Register default options
-\xpg at initialize@gloss at options{hebrew}{numerals=arabic,calendar=gregorian,marcheshvan=false}
+\xpg at initialize@gloss at options{hebrew}{numerals=arabic,calendar=gregorian,marcheshvan=false,fullyear=false}
 
 \def\captionshebrew{%
   \def\prefacename{מבוא}%

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-latin.ldf	2022-07-18 20:13:44 UTC (rev 63931)
@@ -1,4 +1,4 @@
-\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin v.2.4 2021-10-25]
+\ProvidesFile{gloss-latin.ldf}[polyglossia: module for Latin v.2.5 2022-06-21]
 
 \ExplSyntaxOn
 
@@ -623,6 +623,9 @@
 % The active = character may cause problems with key=value interfaces.
 % We have to make sure here that no problems can occur outside a Latin
 % prosodic shorthand environment.
+% The active ^ character may cause problems with TeX's ^^xx convention
+% for hexadecimal input. We have to make sure here that no problems can
+% occur outside a Latin prosodic shorthand environment.
 % The active ' character may cause problems with the unicode-math package
 % (in case Latin is used as a secondary language, see #394). We have to
 % turn it off if Latin is not the main language.
@@ -636,6 +639,7 @@
         \iflatin at prosodicshorthands
         \else
           \shorthandoff {=}
+          \shorthandoff* {^}
         \fi
       }
       {
@@ -644,6 +648,10 @@
         % Latin defining such a shorthand in polyglossia.
         \shorthandoff {=}
         % The following command should not be called if the main language
+        % defines a ^ shorthand. However, there are no languages besides
+        % Latin defining such a shorthand in polyglossia.
+        \shorthandoff* {^}
+        % The following command should not be called if the main language
         % defines a ' shorthand. However, there are no languages besides
         % Latin defining such a shorthand in polyglossia.
         \shorthandoff {'}
@@ -686,8 +694,9 @@
 \cs_new:Npn \polyglossia_latin_prosodic_shorthands:
   {
     \def \language at group {latin}
-    % The '=' shorthand is normally turned off to avoid problems with key=value
-    % interfaces. We turn it on here to enable prosodic shorthands.
+    % The '=' and '^' shorthands are normally turned off to avoid problems with
+    % key=value interfaces and TeX's ^^xx convention for hexadecimal input. We
+    % turn them on here to enable prosodic shorthands.
     \shorthandon {=}
     \bbl at activate {=}
     \declare at shorthand {latin} {=}
@@ -700,6 +709,7 @@
             \polyglossia_latin_put_macron:N
           }
       }
+    \shorthandon {^}
     \bbl at activate {^}
     \declare at shorthand {latin} {^}
       {
@@ -925,7 +935,7 @@
     \peek_meaning:NTF #2
       {
         #1
-        \iffontchar \font "35E \relax % U+35E: combining double macron
+        \iffontchar \font "35E \relax % U+035E: combining double macron
           \char "35E \relax
         \else
           \msg_warning:nn {polyglossia} {latin / no-double-macron-font}
@@ -971,6 +981,10 @@
   {
     \bbl at deactivate {"}
     \bbl at deactivate {'}
+  }
+
+\cs_new:Npn \polyglossia_latin_no_prosodic_shorthands:
+  {
     \bbl at deactivate {=}
     \bbl at deactivate {^}
     % The active '=' character may cause problems with key=value interfaces.
@@ -977,6 +991,10 @@
     % We have to make sure here that no problems can occur outside a Latin
     % prosodic shorthand environment.
     \shorthandoff {=}
+    % The active '^' character may cause problems with TeX's ^^xx convention
+    % for hexadecimal input. We have to make sure here that no problems can
+    % occur outside a Latin prosodic shorthand environment.
+    \shorthandoff* {^}
   }
 
 
@@ -1000,6 +1018,9 @@
     \iflatin at babelshorthands
       \polyglossia_latin_no_shorthands:
     \fi
+    \iflatin at prosodicshorthands
+      \polyglossia_latin_no_prosodic_shorthands:
+    \fi
     \xpgla at savedvalues
     \polyglossia_latin_no_punctuation_spacing:
     \polyglossia_latin_modern_character_codes:
@@ -1017,9 +1038,13 @@
       }
     \iflatin at babelshorthands
       \polyglossia_latin_shorthands:
+    \else
+      \polyglossia_latin_no_shorthands:
     \fi
     \iflatin at prosodicshorthands
       \polyglossia_latin_prosodic_shorthands:
+    \else
+      \polyglossia_latin_no_prosodic_shorthands:
     \fi
   }
 
@@ -1048,7 +1073,7 @@
 
 %%   Copyright (C) Claudio Beccari 2013-2016
 %%   Copyright (C) Élie Roux 2016-2019
-%%   Copyright (C) Keno Wehr 2019-2020
+%%   Copyright (C) Keno Wehr 2019-2022
 %%
 %%   Permission is hereby granted, free of charge, to any person obtaining
 %%   a copy of this software and associated documentation files

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/gloss-polish.ldf	2022-07-18 20:13:44 UTC (rev 63931)
@@ -143,7 +143,7 @@
 
 \def\polish at vlna{%
     \ifluatex
-       \singlechars{polish}{AaIiOoUuWwZz}
+       \singlechars{polish}{AaIiOoUuWwZz}%
        \preventsingleon
     \else
         % Code taken and adapted from xevlna.sty

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/hebrewcal.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/hebrewcal.sty	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/hebrewcal.sty	2022-07-18 20:13:44 UTC (rev 63931)
@@ -1,28 +1,51 @@
 \ProvidesPackage{hebrewcal}
-        [2019/12/03 v2.7 %
+        [2022/07/18 v2.8 %
          Hebrew calendar for polyglossia (adapted from hebcal.sty in Babel)]
-\RequirePackage{xkeyval}
-\ifluatex\RequirePackage{luabidi}\else\RequirePackage{bidi}\fi
 
-\newif\if at xpg@hebrewcal at marcheshvan
-\@xpg at hebrewcal@marcheshvanfalse
+\RequirePackage{iftex}
+\ifluatex
+  \RequirePackage{luabidi}
+\else
+  \RequirePackage{bidi}
+\fi
 
-\DeclareOption{marcheshvan}{\@xpg at hebrewcal@marcheshvantrue}
-
-\@ifundefined{if at xpg@hebrew at marcheshvan}{}{%
-  \if at xpg@hebrew at marcheshvan
-     \@xpg at hebrewcal@marcheshvantrue
-  \fi
-}
-
 %% TODO rewrite this on the basis of Reingold & Dershowitz 
 %%      on the model of hijrical (using calc)
 
 \@ifundefined{@Remainder}{\input{cal-util.def}}{}
 
-\define at boolkey{hebrew}[@hebrew@]{fullyear}[true]{}
-\setkeys{hebrew}{fullyear=false}
+%
+% OPTIONS
+%
+\RequirePackage{xkeyval}
 
+% marcheshvan=true|false
+\define at boolkey{hebrewcal}[@xpg at hebrew@]{marcheshvan}[true]{}
+
+% fullyear=true|false
+\define at boolkey{hebrewcal}[@xpg at hebrew@]{fullyear}[true]{}
+
+% transliteration=academy|alt
+\newif\if at hebrewcal@academytrans
+\@hebrewcal at academytransfalse
+\define at choicekey*+{hebrewcal}{transliteration}[\hcal at val\hcal at nr]{academy,alt}[alt]{%
+   \ifcase\hcal at nr\relax
+      % academy:
+     \@hebrewcal at academytranstrue
+   \or
+      % alt:
+      \@hebrewcal at academytransfalse
+   \fi
+   \PackageInfo{hebrewcal}{Setting transliteration=\hcal at val}%
+}{%
+  \PackageWarning{hebrewcal}{Unknown transliteration option `#1'}%
+}
+
+% Process
+\ProcessOptionsX*<hebrewcal>
+%%
+%% END OPTIONS
+
 \newcount\hebrewday  \newcount\hebrewmonth \newcount\hebrewyear
 \def\hebrewdate#1#2#3{%
     \HebrewFromGregorian{#1}{#2}{#3}%
@@ -52,7 +75,7 @@
        \else
          \ifnum#1<6000 % current millenium, print without thousands
            \@tempcnta=#1\relax
-           \if at hebrew@fullyear\else\advance\@tempcnta by -5000\fi
+           \if at xpg@hebrew at fullyear\else\advance\@tempcnta by -5000\fi
            \Hebrewnumeral{\@tempcnta}%
          \else % #1>6000
            \Hebrewnumeral{#1}%
@@ -70,7 +93,7 @@
         \ifcase#1%
            % nothing for 0
            \or תשרי%
-           \or\if at xpg@hebrewcal at marcheshvan מרחשון\else חשון\fi%
+           \or\if at xpg@hebrew at marcheshvan מרחשון\else חשון\fi%
            \or כסלו%
            \or טבת%
            \or שבט%
@@ -94,18 +117,23 @@
     \else%
         \ifcase #1%
             % nothing for 0
-            \or Tishrei%
-            \or\if at xpg@hebrewcal at marcheshvan Marcheshvan\else Heshvan\fi%
+            \or \if at hebrewcal@academytrans Tishri \else Tishrei \fi%
+            \or%
+              \if at hebrewcal@academytrans%
+                 \if at xpg@hebrew at marcheshvan Marẖeshvan\else Heshvan\fi%
+              \else%
+                 \if at xpg@hebrew at marcheshvan Marcheshvan\else Heshvan\fi%
+              \fi%
             \or Kislev%
-            \or Tebeth%
-            \or Shebat%
+            \or \if at hebrewcal@academytrans Tevet \else Tebeth \fi%
+            \or \if at hebrewcal@academytrans Shvat \else Shebat \fi%
             \or Adar I%
             \or Adar II%
             \or Nisan%
-            \or Iyar%
+            \or \if at hebrewcal@academytrans Iyyar \else Iyar \fi%
             \or Sivan%
             \or Tammuz%
-            \or Av%
+            \or \if at hebrewcal@academytrans Av \else Ab \fi%
             \or Elul%
         \fi
     \fi}
@@ -216,12 +244,12 @@
                0 \or%          % Tishri
               30 \or%          % Heshvan
               59 \or%          % Kislev
-              89 \or%          % Tebeth
-             118 \or%          % Shebat
+              89 \or%          % Tevet
+             118 \or%          % Shvat
              148 \or%          % Adar I
              148 \or%          % Adar II
              177 \or%          % Nisan
-             207 \or%          % Iyar
+             207 \or%          % Iyyar
              236 \or%          % Sivan
              266 \or%          % Tammuz
              295 \or%          % Av
@@ -343,6 +371,8 @@
                 \tmpy = \tmpx%
         \repeat%
         \global\advance #5 by -1%
-        \global\advance #4 by -\tmpy}}
-\ProcessOptions*
+        \global\advance #4 by -\tmpy%
+   }%
+}
+
 \endinput

Modified: trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty	2022-07-18 20:12:59 UTC (rev 63930)
+++ trunk/Master/texmf-dist/tex/latex/polyglossia/polyglossia.sty	2022-07-18 20:13:44 UTC (rev 63931)
@@ -1,5 +1,5 @@
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{polyglossia}[2022/04/20 v1.56
+\ProvidesPackage{polyglossia}[2022/07/18 v1.57
   Modern multilingual typesetting with XeLaTeX and LuaLaTeX]
 \RequirePackage{etoolbox}
 \RequirePackage{makecmds}
@@ -1403,7 +1403,8 @@
   }
 }
 
-\newcommand{\setdefaultlanguage}[2][]{%
+\DeclareDocumentCommand \setdefaultlanguage { O{} m }
+{
   % latex is an internal language, so do not record
   \str_if_eq:eeF{#2}{latex}
   {
@@ -1416,11 +1417,11 @@
     \polyglossia_load_lang_definition:nn{#1}{#2}
     % define environment and command if not alias
     \str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
-       \use:c{\prop_item:Nn{\polyglossia at langsetup}
+       \use:c{\prop_item:Ne{\polyglossia at langsetup}
             {#2/DefineCommandsCmd}}
             {#2}
     }
-    \seq_gput_right:Nn \__xpg_langs_loaded {#2}
+    \exp_args:Nnx \seq_gput_right:Nn \__xpg_langs_loaded {#2}
   }
   \polyglossia at set@default at language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
     {\xpg_alias_base_lang:n{#2}}%
@@ -1716,13 +1717,13 @@
     \polyglossia_load_lang_definition:ee {#1} {#2}%
     % define environment and command if not alias
     \str_if_eq:eeT {\prop_item:Ne \__xpg_alias {#2/target}} {#2} {
-       \use:c{\prop_item:Nn{\polyglossia at langsetup}
+       \use:c{\prop_item:Ne{\polyglossia at langsetup}
              {#2/DefineCommandsCmd}}
              {#2}
     }
     \polyglossia at set@other at language:ee {\xpg_alias_add_to_option_i:nn{#2}{#1}}
       {\xpg_alias_base_lang:n{#2}}%
-    \seq_gput_right:Nn \__xpg_langs_loaded {#2}
+    \exp_args:Nnx \seq_gput_right:Nn \__xpg_langs_loaded {#2}
   }
 }
 
@@ -1866,7 +1867,7 @@
 {%
   \__xpg_otherlanguage:eee {#1} {#2} {\xpg_alias_base_lang:n{#2}}
 }
-{\group_end:}
+{\egroup}
 
 % internal wrapper
 % #1 option
@@ -1879,7 +1880,8 @@
     \msg_show:nnn { polyglossia } { languagenotloaded } {#2}
   }
   \xpg at otherlanguage[\xpg_alias_add_to_option_i:nn{#2}{#1}]{#3}%
-  \polyglossia at lang@settextdirection:nn{#3}\group_begin:%
+  \polyglossia at lang@settextdirection:nn{#3}%
+  \bgroup
 }
 \cs_generate_variant:Nn \__xpg_otherlanguage:nnn {
   eee



More information about the tex-live-commits mailing list.