From 1ecf8b73c2570794c61fc9773c79a9b8b76c4567 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 21 Dec 2012 17:23:38 +0000 Subject: manual update of enctex files in csplain.tar.gz git-svn-id: svn://tug.org/texlive/trunk@28601 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/generic/enctex/utf8unkn.tex | 56 +++++++++++++++++------ 1 file changed, 42 insertions(+), 14 deletions(-) (limited to 'Master/texmf-dist/tex') diff --git a/Master/texmf-dist/tex/generic/enctex/utf8unkn.tex b/Master/texmf-dist/tex/generic/enctex/utf8unkn.tex index 462a23acbaf..88a9027906c 100644 --- a/Master/texmf-dist/tex/generic/enctex/utf8unkn.tex +++ b/Master/texmf-dist/tex/generic/enctex/utf8unkn.tex @@ -2,6 +2,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Feb. 6. 2003 Petr Olsak % +% Oct. 2012: More robust macros by \long, \noexpand, \badutfinput (P.O.) +% % This macro sets all others UTF-8 codes (not declared formerly or % later) as "unknown" by encTeX primitives. You need the version % Feb. 2003 of encTeX or later. @@ -13,7 +15,7 @@ \def\setunknowncodes {\bgroup \def\a ##1{\mubyte \warntwobytes ####2 ##1\endmubyte} - \a ^^c0 \a ^^c1 \a ^^c2 \a ^^c3 \a ^^c4 \a ^^c5 \a ^^c6 \a ^^c7 + \a ^^c2 \a ^^c3 \a ^^c4 \a ^^c5 \a ^^c6 \a ^^c7 \a ^^c8 \a ^^c9 \a ^^ca \a ^^cb \a ^^cc \a ^^cd \a ^^ce \a ^^cf \a ^^d0 \a ^^d1 \a ^^d2 \a ^^d3 \a ^^d4 \a ^^d5 \a ^^d6 \a ^^d7 \a ^^d8 \a ^^d9 \a ^^da \a ^^db \a ^^dc \a ^^dd \a ^^de \a ^^df @@ -24,20 +26,48 @@ \mubyte \writeparameter \relax \endmubyte \def\writeparameter{} -\def\warntwobytes #1#2{% +\long\def\warntwobytes #1#2{% \ifx\writeparameter\relax % write parameter copies unknown code - \noconvert#1\noconvert#2% to output without any change + \expandafter\noconvert\noexpand#1% + \expandafter\noconvert\noexpand#2% to output without any change \else - \message{WARNING: unknown UTF-8 code: ``\noconvert#1\noconvert#2''}% - \leavevmode\hbox{\vrule width.5em height.5em}% - \fi} -\def\warnthreebytes #1#2#3{\ifx\writeparameter\relax - \noconvert#1\noconvert#2\noconvert#3% + \if\noexpand#2\relax \badutfinput \else + \ifnum`#2<128 \badutfinput \else + \missingutfchar{\expandafter\noconvert\noexpand#1% + \expandafter\noconvert\noexpand#2}% + \fi\fi\fi} +\long\def\warnthreebytes #1#2#3{\ifx\writeparameter\relax + \expandafter\noconvert\noexpand#1% + \expandafter\noconvert\noexpand#2% + \expandafter\noconvert\noexpand#3% \else - \message{WARNING: unknown UTF-8 code: - ``\noconvert#1\noconvert#2\noconvert#3''}% - \leavevmode\hbox{\vrule width.5em height.5em}% - \fi} + \if\noexpand#2\relax \badutfinput \else + \ifnum`#2<128 \badutfinput \else + \missingutfchar{\expandafter\noconvert\noexpand#1% + \expandafter\noconvert\noexpand#2% + \expandafter\noconvert\noexpand#3}% + \fi\fi\fi} +\def\badutfinput{% + \errhelp={Try to set mubytein=0 or input utf8off or input mixcodes.} + \errmessage{UTF-8 INPUT IS CORRUPTED ! + \space May be you are using another input encoding}} +\def\missingutfchar#1{{\day=0 + \ifnum\day=0 % this makes me more robust in message prameter + \newlinechar=`^^J \chardef\$=\xprncode255 + \xprncodes=1 \message{WARNING: unknown UTF-8 code: `#1 =}% + \xprncodes=0 \message{#1' (line: \the\inputlineno)}% + \xprncodes=\$ + \leavevmode\hbox{\kern.05em\vrule width.5em height.5em\kern.05em}% + \else unknown UTF-8 code `#1'\fi}} + +% \xprncodes=1 or \xprncodes=0 .. set/unset printability of 128..255 chars + +\def\xprncodes=#1 {% + \count255=128 + \loop \xprncode\count255=#1\advance\count255 by 1 + \ifnum \count255<256 \repeat +} + \ifx\unknowncodes\relax \endinput \fi % you can \let\unknowncodes\relax % if you don't want to active @@ -45,5 +75,3 @@ \setunknowncodes \endinput - - -- cgit v1.2.3