summaryrefslogtreecommitdiff
path: root/Build/source/texk/cjkutils/cjkutils-4.8.4/extconv/extconv.w
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/cjkutils/cjkutils-4.8.4/extconv/extconv.w')
-rw-r--r--Build/source/texk/cjkutils/cjkutils-4.8.4/extconv/extconv.w122
1 files changed, 122 insertions, 0 deletions
diff --git a/Build/source/texk/cjkutils/cjkutils-4.8.4/extconv/extconv.w b/Build/source/texk/cjkutils/cjkutils-4.8.4/extconv/extconv.w
new file mode 100644
index 00000000000..019976889b9
--- /dev/null
+++ b/Build/source/texk/cjkutils/cjkutils-4.8.4/extconv/extconv.w
@@ -0,0 +1,122 @@
+% This is the cweb file extconv.w of the CJK Package Ver. 4.8.4 18-Apr-2015
+
+% Copyright (C) 1994-2015 Werner Lemberg <wl@@gnu.org>
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program in doc/COPYING; if not, write to the Free
+% Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+% MA 02110-1301 USA
+
+% To print this CWEB file you should (but not must) use the CWEAVE of the
+% c2cweb-package (found at the CTAN archives, e.g. ftp.dante.de) and then say
+%
+% cweave +a extconv.w
+%
+% This (fully compatible) CWEAVE can transform CWEB-files with alternative
+% output rules (look at the position of braces below!) the author (it's me
+% too :-) prefer. Otherwise this file will be formatted traditionally.
+
+\def\title{extconv (CJK Version 4.8.4)}
+
+\def\topofcontents{
+ \null\vfill
+ \centerline{\titlefont The {\ttitlefont extconv} program}
+ \vskip 20pt
+ \centerline{(CJK Version 4.8.4)}
+ \vfill}
+
+\def\botofcontents{
+ \vfill
+ \noindent
+ Copyright \copyright\ 1996, 1998 by Werner Lemberg
+ \bigskip\noindent
+ Permission is granted to make and distribute verbatim copies of this
+ document provided that the copyright notice and this permission notice
+ are preserved on all copies.
+
+ \smallskip\noindent
+ Permission is granted to copy and distribute modified versions of this
+ document under the conditions for verbatim copying, provided that the
+ entire resulting derived work is distributed under the terms of a
+ permission notice identical to this one.}
+
+\pageno=\contentspagenumber \advance\pageno by 1
+\let\maybe=\iftrue
+\fullpageheight=240mm
+\pageheight=223mm
+\pagewidth=158mm
+\setpage
+\frenchspacing
+
+\noinx
+\nosecs
+\nocon
+
+@* Function and Use.
+This small program will convert Big~5+ or GBK encoded Chinese characters
+into a `preprocessed' form. The need of this program arises from the fact
+that these two encodings use the characters `\.{\\}', `\.{\{}', and `\.{\}}'
+which have special meanings in \TeX.
+
+Use this program as a filter:
+
+\hskip 2em \.{extconv < input\_file > output\_file}
+
+
+@* The program.
+The only function of this program is to replace all occurrences of Big~5+
+and GBK encoded characters \.{XY} (\.{X} and \.{Y} are the first and the
+second byte of the character) with
+\.{\char94 \char94 7fX\char94 \char94 7fZZZ\char94 \char94 7f}, where \.{ZZZ}
+represents the second byte as a decimal number. \.{0x7F} is used as an active
+character and delimiter.
+
+Additionally we define a \TeX\ macro at the very beginning to signal a
+preprocessed file.
+
+The following code is very simple. No error detection is done because \TeX\
+which will see the output of \.{extconv} complains loudly if something is
+wrong.
+
+@d banner
+"extconv (CJK ver. 4.8.4)"
+
+@c
+#include <stdio.h>
+#include <stdlib.h>@#
+
+
+int main(int argc, char *argv[])
+ {int ch;
+
+
+ fprintf(stdout, "\\def\\CJKpreproc{%s}", banner);@#
+
+ ch = fgetc(stdin);@#
+
+ while(!feof(stdin))
+ {if(ch >= 0x81 && ch <= 0xFE)
+ {fprintf(stdout, "\177%c\177", ch);@#
+
+ ch = fgetc(stdin);
+ if(!feof(stdin))
+ fprintf(stdout, "%d\177", ch);
+ }
+ else
+ fputc(ch, stdout);@#
+
+ ch = fgetc(stdin);
+ }
+ exit(EXIT_SUCCESS);
+ return 0; /* never reached */
+ }