summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/enctex/utf8warn.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-09-12 18:12:23 +0000
committerKarl Berry <karl@freefriends.org>2009-09-12 18:12:23 +0000
commit0aafe02d2a36f050c7902e7d47a2d1cb99147f17 (patch)
tree777bca8e934eb139a1c9953cfed5cfdec4f7236d /Master/texmf-dist/tex/generic/enctex/utf8warn.tex
parentf3f5f724bfb1c2f181b5ddab7c34248e64a075d8 (diff)
add new enctex file utf8warn.tex, by hand
git-svn-id: svn://tug.org/texlive/trunk@15238 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/enctex/utf8warn.tex')
-rw-r--r--Master/texmf-dist/tex/generic/enctex/utf8warn.tex165
1 files changed, 165 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/enctex/utf8warn.tex b/Master/texmf-dist/tex/generic/enctex/utf8warn.tex
new file mode 100644
index 00000000000..7a4680d4ea3
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/enctex/utf8warn.tex
@@ -0,0 +1,165 @@
+% Warnings for all undeclared UTF-8 codes
+% =======================================
+% Petr+Mirek Olsak Sep. 2009
+%
+% Suppose, you are using encTeX for reading UTF-8 codes in input.
+% Possibly, not all UTF-8 codes are declared by \mubyte..\endmubyte
+% in your macros. You can do
+%
+% \input utf8warn
+%
+% in order to print warning messages for all undeclared UTF-8 codes
+% scanned in input. The \mubytein have to be positive, of course.
+%
+% If undeclared UTF-8 code occures in input, the message
+%
+% WARNING: UTF-8 code <native-code> (^^hexa-code) is undeclared.
+%
+% will be printed on terminal and into log file. The \failedchar
+% (implicitly defined as black box) will be printed into document.
+%
+% Example: WARNING: UTF-8 code “ (^^e2^^80^^9c) is undeclared
+% means that double quote is not declared in your \mubyte table.
+% You can correct it by adding (for example):
+%
+% \mubyte \leftqquote ^^e2^^80^^9c\endmubyte
+% \def\leftqquote{``}
+
+\ifx\mubyte\undefined
+ \message{SORRY: the encTeX have to be active to use this macro}
+\endinput\fi
+
+% \warntwobytes, \warnthreebytes etc. will be inserted by encTeX before
+% all undeclared UTF-8 codes:
+
+\mubyte \warntwobytes #2^^c0\endmubyte
+\mubyte \warntwobytes #2^^c1\endmubyte
+\mubyte \warntwobytes #2^^c2\endmubyte
+\mubyte \warntwobytes #2^^c3\endmubyte
+\mubyte \warntwobytes #2^^c4\endmubyte
+\mubyte \warntwobytes #2^^c5\endmubyte
+\mubyte \warntwobytes #2^^c6\endmubyte
+\mubyte \warntwobytes #2^^c7\endmubyte
+\mubyte \warntwobytes #2^^c8\endmubyte
+\mubyte \warntwobytes #2^^c9\endmubyte
+\mubyte \warntwobytes #2^^ca\endmubyte
+\mubyte \warntwobytes #2^^cb\endmubyte
+\mubyte \warntwobytes #2^^cc\endmubyte
+\mubyte \warntwobytes #2^^cd\endmubyte
+\mubyte \warntwobytes #2^^ce\endmubyte
+\mubyte \warntwobytes #2^^cf\endmubyte
+\mubyte \warntwobytes #2^^d0\endmubyte
+\mubyte \warntwobytes #2^^d1\endmubyte
+\mubyte \warntwobytes #2^^d2\endmubyte
+\mubyte \warntwobytes #2^^d3\endmubyte
+\mubyte \warntwobytes #2^^d4\endmubyte
+\mubyte \warntwobytes #2^^d5\endmubyte
+\mubyte \warntwobytes #2^^d6\endmubyte
+\mubyte \warntwobytes #2^^d7\endmubyte
+\mubyte \warntwobytes #2^^d8\endmubyte
+\mubyte \warntwobytes #2^^d9\endmubyte
+\mubyte \warntwobytes #2^^da\endmubyte
+\mubyte \warntwobytes #2^^db\endmubyte
+\mubyte \warntwobytes #2^^dc\endmubyte
+\mubyte \warntwobytes #2^^dd\endmubyte
+\mubyte \warntwobytes #2^^de\endmubyte
+\mubyte \warntwobytes #2^^df\endmubyte
+
+\mubyte \warnthreebytes #3^^e0\endmubyte
+\mubyte \warnthreebytes #3^^e1\endmubyte
+\mubyte \warnthreebytes #3^^e2\endmubyte
+\mubyte \warnthreebytes #3^^e3\endmubyte
+\mubyte \warnthreebytes #3^^e4\endmubyte
+\mubyte \warnthreebytes #3^^e5\endmubyte
+\mubyte \warnthreebytes #3^^e6\endmubyte
+\mubyte \warnthreebytes #3^^e7\endmubyte
+\mubyte \warnthreebytes #3^^e8\endmubyte
+\mubyte \warnthreebytes #3^^e9\endmubyte
+\mubyte \warnthreebytes #3^^ea\endmubyte
+\mubyte \warnthreebytes #3^^eb\endmubyte
+\mubyte \warnthreebytes #3^^ec\endmubyte
+\mubyte \warnthreebytes #3^^ed\endmubyte
+\mubyte \warnthreebytes #3^^ee\endmubyte
+\mubyte \warnthreebytes #3^^ef\endmubyte
+
+\mubyte \warnfourbytes #4^^f0\endmubyte
+\mubyte \warnfourbytes #4^^f1\endmubyte
+\mubyte \warnfourbytes #4^^f2\endmubyte
+\mubyte \warnfourbytes #4^^f3\endmubyte
+\mubyte \warnfourbytes #4^^f4\endmubyte
+\mubyte \warnfourbytes #4^^f5\endmubyte
+\mubyte \warnfourbytes #4^^f6\endmubyte
+\mubyte \warnfourbytes #4^^f7\endmubyte
+
+\mubyte \warnfivebytes #5^^f8\endmubyte
+\mubyte \warnfivebytes #5^^f9\endmubyte
+\mubyte \warnfivebytes #5^^fa\endmubyte
+\mubyte \warnfivebytes #5^^fb\endmubyte
+
+\mubyte \warnsixbytes #6^^fc\endmubyte
+\mubyte \warnsixbytes #6^^fd\endmubyte
+
+% \failedchar will be inserted to document instead the real character.
+% It is defined as black box. You can re-define it, of course
+
+\def\failedchar{\leavevmode
+ \kern.05em\vrule height.7em depth.1em width.4em\kern.05em }
+
+% defs:
+
+\def\warntwobytes #1#2{\utfwarnmessage{#1#2}}
+\def\warnthreebytes #1#2#3{\utfwarnmessage{#1#2#3}}
+\def\warnfourbytes #1#2#3#4{\utfwarnmessage{#1#2#3#4}}
+\def\warnfivebytes #1#2#3#4#5{\utfwarnmessage{#1#2#3#4#5}}
+\def\warnsixbytes #1#2#3#4#5#6{\utfwarnmessage{#1#2#3#4#5#6}}
+
+\def\utfwarnmessage#1{\message{WARNING: UTF-8 code \printutfcode#1\end\space
+ (\printhexcode#1\end) is undefined.}\failedchar}
+
+\def\printutfcode#1{\ifx#1\end\else \noconvert#1\expandafter\printutfcode\fi}
+
+\def\printhexcode#1{\ifx#1\end\else^\empty^\hexx#1\expandafter\printhexcode\fi}
+
+\def\hexx#1{\ifcase`#1 00\or 01\or 02\or 03\or 04\or 05\or 06\or 07\or
+ 08\or 09\or 0a\or 0b\or 0c\or 0d\or 0e\or 0f\or
+ 10\or 11\or 12\or 13\or 14\or 15\or 16\or 17\or
+ 18\or 19\or 1a\or 1b\or 1c\or 1d\or 1e\or 1f\or
+ 20\or 21\or 22\or 23\or 24\or 25\or 26\or 27\or
+ 28\or 29\or 2a\or 2b\or 2c\or 2d\or 2e\or 2f\or
+ 30\or 31\or 32\or 33\or 34\or 35\or 36\or 37\or
+ 38\or 39\or 3a\or 3b\or 3c\or 3d\or 3e\or 3f\or
+ 40\or 41\or 42\or 43\or 44\or 45\or 46\or 47\or
+ 48\or 49\or 4a\or 4b\or 4c\or 4d\or 4e\or 4f\or
+ 50\or 51\or 52\or 53\or 54\or 55\or 56\or 57\or
+ 58\or 59\or 5a\or 5b\or 5c\or 5d\or 5e\or 5f\or
+ 60\or 61\or 62\or 63\or 64\or 65\or 66\or 67\or
+ 68\or 69\or 6a\or 6b\or 6c\or 6d\or 6e\or 6f\or
+ 70\or 71\or 72\or 73\or 74\or 75\or 76\or 77\or
+ 78\or 79\or 7a\or 7b\or 7c\or 7d\or 7e\or 7f\or
+ 80\or 81\or 82\or 83\or 84\or 85\or 86\or 87\or
+ 88\or 89\or 8a\or 8b\or 8c\or 8d\or 8e\or 8f\or
+ 90\or 91\or 92\or 93\or 94\or 95\or 96\or 97\or
+ 98\or 99\or 9a\or 9b\or 9c\or 9d\or 9e\or 9f\or
+ a0\or a1\or a2\or a3\or a4\or a5\or a6\or a7\or
+ a8\or a9\or aa\or ab\or ac\or ad\or ae\or af\or
+ b0\or b1\or b2\or b3\or b4\or b5\or b6\or b7\or
+ b8\or b9\or ba\or bb\or bc\or bd\or be\or bf\or
+ c0\or c1\or c2\or c3\or c4\or c5\or c6\or c7\or
+ c8\or c9\or ca\or cb\or cc\or cd\or ce\or cf\or
+ d0\or d1\or d2\or d3\or d4\or d5\or d6\or d7\or
+ d8\or d9\or da\or db\or dc\or dd\or de\or df\or
+ e0\or e1\or e2\or e3\or e4\or e5\or e6\or e7\or
+ e8\or e9\or ea\or eb\or ec\or ed\or ee\or ef\or
+ f0\or f1\or f2\or f3\or f4\or f5\or f6\or f7\or
+ f8\or f9\or fa\or fb\or fc\or fd\or fe\or ff\fi}
+
+% You can use macro \relaxutfwarn if you are \edefing scanned text,
+% because the scanned text may include the \warntwobytes
+% etc. sequences inserted by encTeX. Example:
+% \def\scansometext#1\par{{\relaxutfwarn\xdef\scanned{#1\scanned}...}...}
+
+\def\relaxutfwarn{\let\warntwobytes=\relax \let\warnthreebytes=\relax
+ \let\warnfourbytes=\relax \let\warnfivebytes=\relax \let\warnsixbytes=\relax}
+
+\endinput
+