diff --git a/unicodedomino.sty b/unicodedomino.sty index 8124b00587b31e8fadeea17ca420ac80aa7ae6f3..90447e347272e2cbe3f9855914608b72684236a4 100644 --- a/unicodedomino.sty +++ b/unicodedomino.sty @@ -28,7 +28,7 @@ % makes all UTF-8 available in listings. \NeedsTeXFormat{LaTeX2e}% -\ProvidesPackage{unicodedomino}[2018/08/06 1.5 Domino for unknown codepoints]% +\ProvidesPackage{unicodedomino}[2018/08/06 1.6 Domino for unknown codepoints]% \makeatletter% \ifx\numexpr\@undefined% @@ -62,16 +62,31 @@ % collect octet tokens, trim them and pass them on to handler \long\def\UTFviii@two@octets#1#2{% - \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}}% - \expandafter\unicodedomino@octets\unicodedomino@tmp\empty% + \ifx\protect\@typeset@protect% + \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}}% + \expandafter\unicodedomino@octets\unicodedomino@tmp\empty% + \else% + % protected, just write the original multibyte character + \string#1\string#2% + \fi% }% \long\def\UTFviii@three@octets#1#2#3{% - \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}\unicodedomino@last{\string#3}}% - \expandafter\unicodedomino@octets\unicodedomino@tmp\empty% + \ifx\protect\@typeset@protect% + \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}\unicodedomino@last{\string#3}}% + \expandafter\unicodedomino@octets\unicodedomino@tmp\empty% + \else% + % protected, just write the original multibyte character + \string#1\string#2\string#3% + \fi% }% \long\def\UTFviii@four@octets#1#2#3#4{% - \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}\unicodedomino@last{\string#3}\unicodedomino@last{\string#4}}% - \expandafter\unicodedomino@octets\unicodedomino@tmp\empty% + \ifx\protect\@typeset@protect% + \edef\unicodedomino@tmp{#1\unicodedomino@last{\string#2}\unicodedomino@last{\string#3}\unicodedomino@last{\string#4}}% + \expandafter\unicodedomino@octets\unicodedomino@tmp\empty% + \else% + % protected, just write the original multibyte character + \string#1\string#2\string#3\string#4% + \fi% }% % handle trimmed octets @@ -81,32 +96,26 @@ % main handler \def\UTFviii@defined#1{% - \ifx\protect\@typeset@protect% - % not protected - \ifx#1\relax% - % unknown character - \if\relax\expandafter\UTFviii@checkseq\string#1\empty\relax% - % valid codepoint / multibyte sequence - \PackageWarning{inputenc}{% - Unicode character \expandafter\UTFviii@splitcsname\string#1\relax\space% - not set up for use\MessageBreak with LaTeX, replacing% - }% - % note: warning is the same as in utf8ienc.dtx v1.2d except - % with the string “, replacing†added at the end - \expandafter\unicodedomino@domino\string#1\relax% - \else% - % invalid multibyte character - \PackageError{inputenc}{Invalid UTF-8 byte sequence:% - \expandafter\UTFviii@splitseq\string#1\relax}% - \UTFviii@invalid@help - \fi% + \ifx#1\relax% + % unknown character + \if\relax\expandafter\UTFviii@checkseq\string#1\empty\relax% + % valid codepoint / multibyte sequence + \PackageWarning{inputenc}{% + Unicode character \expandafter\UTFviii@splitcsname\string#1\relax\space% + not set up for use\MessageBreak with LaTeX, replacing% + }% + % note: warning is the same as in utf8ienc.dtx v1.2d except + % with the string “, replacing†added at the end + \expandafter\unicodedomino@domino\string#1\relax% \else% - % known character, expand - \expandafter#1% + % invalid multibyte character + \PackageError{inputenc}{Invalid UTF-8 byte sequence:% + \expandafter\UTFviii@splitseq\string#1\relax}% + \UTFviii@invalid@help \fi% \else% - % protected, just write the original multibyte character - \expandafter\@gobblefour\string#1% + % known character, expand + \expandafter#1% \fi% }%