[comp.sources.misc] v08i068: cz text to PostScript system, part 04 of 14

allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc) (10/01/89)

Posting-number: Volume 8, Issue 68
Submitted-by: howard@dahlbeck.ericsson.se (Howard Gayle)
Archive-name: cz/part04

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then feed it
# into a shell via "sh file" or similar.  To overwrite existing files,
# type "sh file -c".
# The tool that generated this appeared in the comp.sources.unix newsgroup;
# send mail to comp-sources-unix@uunet.uu.net if you want that tool.
# If this archive is complete, you will see the following message at the end:
#		"End of archive 4 (of 14)."
# Contents:  8859-1.m4 Makefile T-61.m4 bytefreq.c cz-Gnews.el
#   dkus.code
# Wrapped by howard@dahlbeck on Mon Sep 25 07:15:15 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f '8859-1.m4' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'8859-1.m4'\"
else
echo shar: Extracting \"'8859-1.m4'\" \(14218 characters\)
sed "s/^X//" >'8859-1.m4' <<'END_OF_FILE'
Xdnl 8859-1.m4 - m4 include file with ISO 8859/1 reencoding
Xdnl
Xdnl $Header: 8859-1.m4,v 1.3 89/07/07 07:17:12 howard Exp $
Xdnl
Xdnl The following is based on code written by Timothy Hayes and Glenn Reid:
X/ISOLatin1Encoding where
X   {% ifelse
X   PPOP % ignore dictionary
X   /BuiltinEncoding(*)PDEF % Display in version string.
X   save % Ignore following definition.
X   true
X   }
X   {% else
X   /BuiltinEncoding()PDEF % Display in version string.
X   false
X   }
Xifelse
X
X/ISOLatin1Encoding[%def
X/.notdef       % 0/ 0    0    0   0  NUL (null)
X/.notdef       % 0/ 1    1    1   1  SOH (start of heading)
X/.notdef       % 0/ 2    2    2   2  STX (start of text)
X/.notdef       % 0/ 3    3    3   3  ETX (end of text)
X/.notdef       % 0/ 4    4    4   4  EOT (end of transmission)
X/.notdef       % 0/ 5    5    5   5  ENQ (enquiry)
X/.notdef       % 0/ 6    6    6   6  ACK (acknowledge)
X/.notdef       % 0/ 7    7    7   7  BEL (bell)
X/.notdef       % 0/ 8   10    8   8  BS  (backspace)
X/.notdef       % 0/ 9   11    9   9  HT  (horizontal tabulation)
X/.notdef       % 0/10   12   10   A  LF  (line feed)
X/.notdef       % 0/11   13   11   B  VT  (vertical tabulation)
X/.notdef       % 0/12   14   12   C  FF  (form feed)
X/.notdef       % 0/13   15   13   D  CR  (carriage return)
X/.notdef       % 0/14   16   14   E  SO  (shift out)
X/.notdef       % 0/15   17   15   F  SI  (shift in)
X/.notdef       % 1/ 0   20   16  10  DLE (data link escape)
X/.notdef       % 1/ 1   21   17  11  DC1 (device control 1)
X/.notdef       % 1/ 2   22   18  12  DC2 (device control 2)
X/.notdef       % 1/ 3   23   19  13  DC3 (device control 3)
X/.notdef       % 1/ 4   24   20  14  DC4 (device control 4)
X/.notdef       % 1/ 5   25   21  15  NAK (negative aknowledge)
X/.notdef       % 1/ 6   26   22  16  SYN (synchronous idle)
X/.notdef       % 1/ 7   27   23  17  ETB (end of transmission block)
X/.notdef       % 1/ 8   30   24  18  CAN (cancel)
X/.notdef       % 1/ 9   31   25  19  EM  (end of medium)
X/.notdef       % 1/10   32   26  1A  SUB (substitute character)
X/.notdef       % 1/11   33   27  1B  ESC (escape)
X/.notdef       % 1/12   34   28  1C  IS4/FS (information separator 4 / file separator)
X/.notdef       % 1/13   35   29  1D  IS3/GS (information separator 3 / group separator)
X/.notdef       % 1/14   36   30  1E  IS2/RS (information separator 2 / record separator)
X/.notdef       % 1/15   37   31  1F  IS1/US (information separator 1 / unit separator)
X/space         % 2/ 0   40   32  20  space
X/exclam        % 2/ 1   41   33  21  exclamation mark
X/quotedbl      % 2/ 2   42   34  22  quotation mark
X/numbersign    % 2/ 3   43   35  23  number sign
X/dollar        % 2/ 4   44   36  24  dollar sign
X/percent       % 2/ 5   45   37  25  percent sign
X/ampersand     % 2/ 6   46   38  26  ampersand
X/quoteright    % 2/ 7   47   39  27  apostrophe
X/parenleft     % 2/ 8   50   40  28  left parenthesis
X/parenright    % 2/ 9   51   41  29  right parenthesis
X/asterisk      % 2/10   52   42  2A  asterisk
X/plus          % 2/11   53   43  2B  plus sign
X/comma         % 2/12   54   44  2C  comma
X/minus         % 2/13   55   45  2D  hyphen, minus sign
X/period        % 2/14   56   46  2E  full stop
X/slash         % 2/15   57   47  2F  solidus
X/zero          % 3/ 0   60   48  30  digit zero
X/one           % 3/ 1   61   49  31  digit one
X/two           % 3/ 2   62   50  32  digit two
X/three         % 3/ 3   63   51  33  digit three
X/four          % 3/ 4   64   52  34  digit four
X/five          % 3/ 5   65   53  35  digit five
X/six           % 3/ 6   66   54  36  digit six
X/seven         % 3/ 7   67   55  37  digit seven
X/eight         % 3/ 8   70   56  38  digit eight
X/nine          % 3/ 9   71   57  39  digit nine
X/colon         % 3/10   72   58  3A  colon
X/semicolon     % 3/11   73   59  3B  semicolon
X/less          % 3/12   74   60  3C  less-than sign
X/equal         % 3/13   75   61  3D  equals sign
X/greater       % 3/14   76   62  3E  greater-than sign
X/question      % 3/15   77   63  3F  question mark
X/at            % 4/ 0  100   64  40  commercial at
X/A             % 4/ 1  101   65  41  A
X/B             % 4/ 2  102   66  42  B
X/C             % 4/ 3  103   67  43  C
X/D             % 4/ 4  104   68  44  D
X/E             % 4/ 5  105   69  45  E
X/F             % 4/ 6  106   70  46  F
X/G             % 4/ 7  107   71  47  G
X/H             % 4/ 8  110   72  48  H
X/I             % 4/ 9  111   73  49  I
X/J             % 4/10  112   74  4A  J
X/K             % 4/11  113   75  4B  K
X/L             % 4/12  114   76  4C  L
X/M             % 4/13  115   77  4D  M
X/N             % 4/14  116   78  4E  N
X/O             % 4/15  117   79  4F  O
X/P             % 5/ 0  120   80  50  P
X/Q             % 5/ 1  121   81  51  Q
X/R             % 5/ 2  122   82  52  R
X/S             % 5/ 3  123   83  53  S
X/T             % 5/ 4  124   84  54  T
X/U             % 5/ 5  125   85  55  U
X/V             % 5/ 6  126   86  56  V
X/W             % 5/ 7  127   87  57  W
X/X             % 5/ 8  130   88  58  X
X/Y             % 5/ 9  131   89  59  Y
X/Z             % 5/10  132   90  5A  Z
X/bracketleft   % 5/11  133   91  5B  left square bracket
X/backslash     % 5/12  134   92  5C  reverse solidus
X/bracketright  % 5/13  135   93  5D  right square bracket
X/asciicircum   % 5/14  136   94  5E  circumflex accent
X/underscore    % 5/15  137   95  5F  low line, underline
X/quoteleft     % 6/ 0  140   96  60  grave accent
X/a             % 6/ 1  141   97  61  a
X/b             % 6/ 2  142   98  62  b
X/c             % 6/ 3  143   99  63  c
X/d             % 6/ 4  144  100  64  d
X/e             % 6/ 5  145  101  65  e
X/f             % 6/ 6  146  102  66  f
X/g             % 6/ 7  147  103  67  g
X/h             % 6/ 8  150  104  68  h
X/i             % 6/ 9  151  105  69  i
X/j             % 6/10  152  106  6A  j
X/k             % 6/11  153  107  6B  k
X/l             % 6/12  154  108  6C  l
X/m             % 6/13  155  109  6D  m
X/n             % 6/14  156  110  6E  n
X/o             % 6/15  157  111  6F  o
X/p             % 7/ 0  160  112  70  p
X/q             % 7/ 1  161  113  71  q
X/r             % 7/ 2  162  114  72  r
X/s             % 7/ 3  163  115  73  s
X/t             % 7/ 4  164  116  74  t
X/u             % 7/ 5  165  117  75  u
X/v             % 7/ 6  166  118  76  v
X/w             % 7/ 7  167  119  77  w
X/x             % 7/ 8  170  120  78  x
X/y             % 7/ 9  171  121  79  y
X/z             % 7/10  172  122  7A  z
X/braceleft     % 7/11  173  123  7B  left curly bracket
X/bar           % 7/12  174  124  7C  vertical line
X/braceright    % 7/13  175  125  7D  right curly bracket
X/asciitilde    % 7/14  176  126  7E  tilde
X/.notdef       % 7/15  177  127  7F  DEL (delete)
X/.notdef       % 8/ 0  200  128  80
X/.notdef       % 8/ 1  201  129  81
X/.notdef       % 8/ 2  202  130  82
X/.notdef       % 8/ 3  203  131  83
X/.notdef       % 8/ 4  204  132  84
X/.notdef       % 8/ 5  205  133  85
X/.notdef       % 8/ 6  206  134  86
X/.notdef       % 8/ 7  207  135  87
X/.notdef       % 8/ 8  210  136  88
X/.notdef       % 8/ 9  211  137  89
X/.notdef       % 8/10  212  138  8A
X/.notdef       % 8/11  213  139  8B
X/.notdef       % 8/12  214  140  8C
X/.notdef       % 8/13  215  141  8D
X/.notdef       % 8/14  216  142  8E
X/.notdef       % 8/15  217  143  8F
X/dotlessi      % 9/ 0  220  144  90
X/grave         % 9/ 1  221  145  91
X/acute         % 9/ 2  222  146  92
X/circumflex    % 9/ 3  223  147  93
X/tilde         % 9/ 4  224  148  94
X/macron        % 9/ 5  225  149  95
X/breve         % 9/ 6  226  150  96
X/dotaccent     % 9/ 7  227  151  97
X/dieresis      % 9/ 8  230  152  98
X/.notdef       % 9/ 9  231  153  99
X/ring          % 9/10  232  154  9A
X/cedilla       % 9/11  233  155  9B
X/.notdef       % 9/12  234  156  9C
X/hungarumlaut  % 9/13  235  157  9D
X/ogonek        % 9/14  236  158  9E
X/caron         % 9/15  237  159  9F
X/space         %10/ 0  240  160  A0  NBSP (no-break space)
X/exclamdown    %10/ 1  241  161  A1  inverted exclamation mark
X/cent          %10/ 2  242  162  A2  cent sign
X/sterling      %10/ 3  243  163  A3  pound sign
X/currency      %10/ 4  244  164  A4  general currency sign
X/yen           %10/ 5  245  165  A5  yen sign
X/brokenbar     %10/ 6  246  166  A6  broken vertical line
X/section       %10/ 7  247  167  A7  section sign
X/dieresis      %10/ 8  250  168  A8  diaeresis
X/copyright     %10/ 9  251  169  A9  copyright sign
X/ordfeminine   %10/10  252  170  AA  ordinal indicator, feminine
X/guillemotleft %10/11  253  171  AB  angle quotation mark left
X/logicalnot    %10/12  254  172  AC  not sign
X/hyphen        %10/13  255  173  AD  soft hyphen
X/registered    %10/14  256  174  AE  registered sign
X/macron        %10/15  257  175  AF  macron
X/degree        %11/ 0  260  176  B0  degree sign
X/plusminus     %11/ 1  261  177  B1  plus or minus sign
X/twosuperior   %11/ 2  262  178  B2  superscript two
X/threesuperior %11/ 3  263  179  B3  superscript three
X/acute         %11/ 4  264  180  B4  acute accent
X/mu            %11/ 5  265  181  B5  micro sign
X/paragraph     %11/ 6  266  182  B6  pilcrow
X/periodcentered%11/ 7  267  183  B7  middle dot
X/cedilla       %11/ 8  270  184  B8  cedilla
X/onesuperior   %11/ 9  271  185  B9  superscript one
X/ordmasculine  %11/10  272  186  BA  ordinal indicator, masculine
X/guillemotright%11/11  273  187  BB  angle quotation mark right
X/onequarter    %11/12  274  188  BC  fraction one-quarter
X/onehalf       %11/13  275  189  BD  fraction one-half
X/threequarters %11/14  276  190  BE  fraction three-quarters
X/questiondown  %11/15  277  191  BF  inverted question mark
X/Agrave        %12/ 0  300  192  C0  capital A with grave accent
X/Aacute        %12/ 1  301  193  C1  capital A with acute accent
X/Acircumflex   %12/ 2  302  194  C2  capital A with circumflex accent
X/Atilde        %12/ 3  303  195  C3  capital A with tilde
X/Adieresis     %12/ 4  304  196  C4  capital A with diaeresis or umlaut mark
X/Aring         %12/ 5  305  197  C5  capital A with ring
X/AE            %12/ 6  306  198  C6  capital AE diphthong
X/Ccedilla      %12/ 7  307  199  C7  capital C with cedilla
X/Egrave        %12/ 8  310  200  C8  capital E with grave accent
X/Eacute        %12/ 9  311  201  C9  capital E with acute accent
X/Ecircumflex   %12/10  312  202  CA  capital E with circumflex accent
X/Edieresis     %12/11  313  203  CB  capital E with diaeresis or umlaut mark
X/Igrave        %12/12  314  204  CC  capital I with grave accent
X/Iacute        %12/13  315  205  CD  capital I with acute accent
X/Icircumflex   %12/14  316  206  CE  capital I with circumflex accent
X/Idieresis     %12/15  317  207  CF  capital I with diaeresis or umlaut mark
X/Eth           %13/ 0  320  208  D0  capital D with stroke, Icelandic eth
X/Ntilde        %13/ 1  321  209  D1  capital N with tilde
X/Ograve        %13/ 2  322  210  D2  capital O with grave accent
X/Oacute        %13/ 3  323  211  D3  capital O with acute accent
X/Ocircumflex   %13/ 4  324  212  D4  capital O with circumflex accent
X/Otilde        %13/ 5  325  213  D5  capital O with tilde
X/Odieresis     %13/ 6  326  214  D6  capital O with diaeresis or umlaut mark
X/multiply      %13/ 7  327  215  D7  multiplication sign
X/Oslash        %13/ 8  330  216  D8  capital O with slash
X/Ugrave        %13/ 9  331  217  D9  capital U with grave accent
X/Uacute        %13/10  332  218  DA  capital U with acute accent
X/Ucircumflex   %13/11  333  219  DB  capital U with circumflex accent
X/Udieresis     %13/12  334  220  DC  capital U with diaeresis or umlaut mark
X/Yacute        %13/13  335  221  DD  capital Y with acute accent
X/Thorn         %13/14  336  222  DE  capital thorn, Icelandic
X/germandbls    %13/15  337  223  DF  small sharp s, German
X/agrave        %14/ 0  340  224  E0  small a with grave accent
X/aacute        %14/ 1  341  225  E1  small a with acute accent
X/acircumflex   %14/ 2  342  226  E2  small a with circumflex accent
X/atilde        %14/ 3  343  227  E3  small a with tilde
X/adieresis     %14/ 4  344  228  E4  small a with diaeresis or umlaut mark
X/aring         %14/ 5  345  229  E5  small a with ring
X/ae            %14/ 6  346  230  E6  small ae diphthong
X/ccedilla      %14/ 7  347  231  E7  small c with cedilla
X/egrave        %14/ 8  350  232  E8  small e with grave accent
X/eacute        %14/ 9  351  233  E9  small e with acute accent
X/ecircumflex   %14/10  352  234  EA  small e with circumflex accent
X/edieresis     %14/11  353  235  EB  small e with diaeresis or umlaut mark
X/igrave        %14/12  354  236  EC  small i with grave accent
X/iacute        %14/13  355  237  ED  small i with acute accent
X/icircumflex   %14/14  356  238  EE  small i with circumflex accent
X/idieresis     %14/15  357  239  EF  small i with diaeresis or umlaut mark
X/eth           %15/ 0  360  240  F0  small d with stroke, Icelandic eth
X/ntilde        %15/ 1  361  241  F1  small n with tilde
X/ograve        %15/ 2  362  242  F2  small o with grave accent
X/oacute        %15/ 3  363  243  F3  small o with acute accent
X/ocircumflex   %15/ 4  364  244  F4  small o with circumflex accent
X/otilde        %15/ 5  365  245  F5  small o with tilde
X/odieresis     %15/ 6  366  246  F6  small o with diaeresis or umlaut mark
X/divide        %15/ 7  367  247  F7  division sign
X/oslash        %15/ 8  370  248  F8  small o with slash
X/ugrave        %15/ 9  371  249  F9  small u with grave accent
X/uacute        %15/10  372  250  FA  small u with acute accent
X/ucircumflex   %15/11  373  251  FB  small u with circumflex accent
X/udieresis     %15/12  374  252  FC  small u with diaeresis or umlaut mark
X/yacute        %15/13  375  253  FD  small y with acute accent
X/thorn         %15/14  376  254  FE  small thorn, Icelandic
X/ydieresis     %15/15  377  255  FF  small y with diaeresis or umlaut mark
X]PDEF
X
X% boolean still on stack from previous "ifelse" statement
X{restore}if
X
X`/'REENCOD % /NewName  /OldName REENCOD
X   {% def
X   PFNDFNT dup length dict % Create dictionary as big as OldName.
X   begin % Use it.
X         { % forall
X         1 index/FID ne{PDEF}{PPOP PPOP}ifelse
X         }
X      forall % For each key / value pair in OldName except /Fid, define it.
X      /Encoding ISOLatin1Encoding PDEF % Use different encoding.
X      currentdict % Push new dictionary.
X   end
X   definefont PPOP
X   }PBIND PDEF
END_OF_FILE
if test 14218 -ne `wc -c <'8859-1.m4'`; then
    echo shar: \"'8859-1.m4'\" unpacked with wrong size!
fi
# end of '8859-1.m4'
fi
if test -f 'Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Makefile'\"
else
echo shar: Extracting \"'Makefile'\" \(7461 characters\)
sed "s/^X//" >'Makefile' <<'END_OF_FILE'
X# Makefile - main GNU make file for cz
X#
X# $Header: Makefile,v 1.18 89/09/23 17:00:19 howard Exp $
X#
X# Copyright 1989 Howard Lee Gayle
X# This file is written in the ISO 8859/1 character set.
X#
X# This program is free software; you can redistribute it and/or modify
X# it under the terms of the GNU General Public License version 1,
X# as published by the Free Software Foundation.
X#
X# This program is distributed in the hope that it will be useful,
X# but WITHOUT ANY WARRANTY; without even the implied warranty of
X# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
X# GNU General Public License for more details.
X#
X# You should have received a copy of the GNU General Public License
X# along with this program; if not, write to the Free Software
X# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X
Xinclude MakeCommon
X
X# Commands:
X
X# Binary file encoder.
XABE=abe
X
X# Put a file into the distribution directory.
XDISTO=mkDistO
X
X# Echo arguments.
XECHO=echo
X
X# Elisp compiler.
XELCMP=emacs -batch -q -f batch-byte-compile
X
X# Install a non-executable file.
XINSTF=mkInstF
X
X# Install an executable file.
XINSTX=mkInstX
X
X# Lint command.
XLINT=lint
X
X# Make shar files.
XSHAR=makekit
X
X# Spelling-check LaTeX source.
XSPELL_LATEX=mkSpellLT
X
X# Command options:
X
X# Make files immune to IBM.
XABEFLAGS=+ebcdic
X
X# Set commands at start of Bourne shell files, usually absolute paths.
XBDEFS='l=lpr'
X
X# C compiler options.
XCFLAGS=-O4
X
X# C library search path.
XLIBPATH=-L/usr/local/free/howard/0
X
X# C libraries to link in.
XLIBES=-lhoward -lm
X
X# Options to lint.
XLINTFLAGS=-abchux
X
X# Lint libraries.
XLL=/usr/local/free/howard/0/llib-howard.ln
X
X
X# Directories:
X
X# Install Bourne shell files here.
XBID=../bin
X
X# Install C executables here.
XCID=../bin
X
X# Install encoding files here.
XCODEID=../lib
X
X# Install compiled elisp here.
XELID=../el
X
X# Install man entries here.
XMID=../man
X
X# Install .ps files here.
XPSID=../lib
X
X# Install .rc files here.  This must be an absolute path.
XRCID=/usr/local/free/cz/2/lib
X
X# Install test texts here.
XTID=../test
X
X# Install test PostScript files here.
XTPSID=../test
X
X# Install trigram tables here.
XTTID=../lib
X
X# Sources:
X
X# Bourne shell files.
XBS := $(filter %.b,$(SRCS))
X
X# BibTeX bibliography file.
XBIBS := $(filter %.bib,$(SRCS))
X
X# Encoding files.
XCODES:=$(filter %.code,$(SRCS))
X
X# C programs.
XCS := $(filter %.c,$(SRCS))
X
X# Elisp source.
XELS := $(filter %.el,$(SRCS))
X
X# Frequency tables.
XFRS := $(filter %.fr,$(SRCS))
X
X# C include files.
XHS := $(filter %.h,$(SRCS))
X
X# LaTeX source.
XLATEXS := $(filter %.tex,$(SRCS))
X
X# Manuals.
XM1S := $(filter %.1,$(SRCS))# Section 1.
Xms := $(M1S)
X
X# M4 macro processor sources.  (Not manual entries for section 4.)
XM4S := $(filter %.m4,$(SRCS))
X
X# M4 that will turn into PostScript.
XP4S := $(filter %.p4,$(SRCS))
X
X# Cz command files.
XRCS := $(filter %.rc,$(SRCS))
X
X# Test PostScript files.
XTPSS := $(filter %.ps,$(SRCS))
X
X# Test texts.
XTS = 8859-1.t 8859-1-fox.t T-61.t char8-dec.t char8-hex.t char8-oct.t
X
X# All ordinary source files.  Removed by make clobber.
Xsrc := $(BS) $(BIBS) $(CODES) $(CS) $(ELS) $(FRS) $(HS) \
X       $(ms) $(M4S) $(P4S) $(RCS) $(LATEXS) $(TPSS) $(TS)
X
X# Absolutely all source files.
Xallsrc := README FREEZE MakeCommon Makefile uMakefile $(src)
X
X
X# Targets and installs:
X
X# Bourne shell files.
Xbt := $(subst .b,,$(BS))
Xbi := $(patsubst %,$(BID)/%,$(bt))
X
X# C programs.
Xct := $(subst .c,,$(CS))
Xci := $(patsubst %,$(CID)/%,$(ct))
Xlt := $(patsubst %.c,%-l,$(CS))# Phony lint targets for C programs.
Xst := $(subst .c,.s,$(CS))# Assembler targets for C programs.
X
X# Encoding files.
Xcodei := $(patsubst %,$(CODEID)/%,$(CODES))
X
X# Compiled elisp.
Xelt := $(subst .el,.elc,$(ELS))
Xeli := $(patsubst %,$(ELID)/%,$(elt))
X
X# LaTeX.
Xifdef FMTLATEX
Xlatext := $(subst .tex,.texf,$(LATEXS))
Xspellt := $(patsubst %.tex,%-s,$(LATEXS))#Phony targets for spelling checking.
Xendif
X
X# Manual entries.
Xcat1i := $(patsubst %,$(MID)/cat1/%,$(M1S))
Xm1i   := $(patsubst %,$(MID)/man1/%,$(M1S))
Xcati  := $(cat1i)
Xmi    := $(m1i)
X
X# Formatted manual entries, e.g. PostScript.
Xifdef FMTMAN
Xft := $(patsubst %,%.f,$(ms))
Xendif
X
X# PostScript from M4.
Xpst := $(subst .p4,.ps,$(P4S))
Xpsi := $(patsubst %,$(PSID)/%,$(pst))
X
X# Control files.
Xrci := $(patsubst %,$(RCID)/%,$(RCS))
X
X# Test text.
Xti := $(patsubst %,$(TID)/%,$(TS))
X
X# Test PostScript.
Xtpsi := $(patsubst %,$(TPSID)/%,$(TPSS))
X
X# Trigram tables.
Xttt =  dkus.tt seus.tt
Xtti := $(patsubst %,$(TTID)/%,$(ttt))
X
Xtargets := $(bt) $(ct) $(elt) $(ft) $(latext) $(pst) $(RCS) $(TPSS) $(TS) $(ttt)
X
X# Distribution:
Xdist := $(patsubst %,$(DD)/%,$(allsrc) $(ft) $(latext))
X
X# Don't use built-in rules.
X.SUFFIXES:
X.PHONY: clean clobber default dist install shar vars $(lt) $(spellt)
X
Xdefault: $(targets)
X
Xvars:
X	@$(ECHO) 'SRCS:' $(SRCS)
X	@$(ECHO) 'BS:' $(BS)
X	@$(ECHO) 'CS:' $(CS)
X	@$(ECHO) 'CZS:' $(CZS)
X	@$(ECHO) 'ELS:' $(ELS)
X	@$(ECHO) 'HS:' $(HS)
X	@$(ECHO) 'M1S:' $(M1S)
X	@$(ECHO) 'P4S:' $(P4S)
X	@$(ECHO) 'RCS:' $(RCS)
X	@$(ECHO) 'allsrc:' $(allsrc)
X	@$(ECHO) 'bt:' $(bt)
X	@$(ECHO) 'ct:' $(ct)
X	@$(ECHO) 'elt:' $(elt)
X	@$(ECHO) 'ft:' $(ft)
X	@$(ECHO) 'lt:' $(lt)
X	@$(ECHO) 'pst:' $(pst)
X	@$(ECHO) 'st:' $(st)
X	@$(ECHO) 'CFLAGS:' $(CFLAGS)
X	@$(ECHO) 'DEFS:' $(DEFS)
X	@$(ECHO) 'dist:' $(dist)
X	@$(ECHO) 'ai:' $(ai)
X	@$(ECHO) 'bi:' $(bi)
X	@$(ECHO) 'cati:' $(cati)
X	@$(ECHO) 'm1i:' $(m1i)
X	@$(ECHO) 'psi:' $(psi)
X	@$(ECHO) 'rci:' $(rci)
X
Xclean:
X	-$(RM) depend $(st)
X
Xclobber: clean
X	-$(RM) $(src) $(targets) FREEZE FREEZE.*
X
X$(bt): %: %.b
X	$(RM) $@
X	$(ECHO) '  $(BDEFS)' > $@
X	$(CAT) $< >> $@
X	$(CHMOD) +x $@
X
X$(ct): %: %.c
X	$(CC) -o $@ $(CFLAGS) $(DEFS) -DDEFPATH='"'$(RCID)'"' $(INCLUDES) \
X        $(LIBPATH) $*.c $(LIBES)
X
X$(elt): %.elc: %.el
X	$(ELCMP) $<
X
X$(lt): %-l: %.c $(LL)
X	$(LINT) $(LINTFLAGS) $(DEFS) -DDEFPATH='"'$(RCID)'"' $(INCLUDES) $< \
X		$(LL)
X
Xifdef FMTMAN
X$(ft): %.f: %
X	$(RM) $@
X	$(FMTMAN) $< > $@
Xendif
X
Xifdef FMTLATEX
X$(latext): %.texf: %.tex $(BIBS)
X	$(FMTLATEX) $* $@
X
X$(spellt): %-s: %.tex
X	$(SPELL_LATEX) $<
Xendif
X
X$(pst): %.ps: %.p4 ps-abbrev.m4
X	$(M4) $*.p4 | \
X		$(SED) -e 's;%.*;;' \
X		-e 's;	; ;g' \
X		-e 's;^  *;;' \
X		-e 's;  *$$;;' \
X		-e 's;  *; ;g' \
X		-e '/^$$/d' > $@
X
Xdkus.tt: 78freq2tt dkus.code dk.fr us.fr
X	$(RM) $@
X	./78freq2tt -d dkus.code dk.fr us.fr $@
X
Xseus.tt: 78freq2tt seus.code se.fr us.fr
X	$(RM) $@
X	./78freq2tt -d seus.code se.fr us.fr $@
X
Xshar: $(allsrc)
X	$(RM) test.abe
X	$(ABE) $(ABEFLAGS) $(TS) > test.abe
X	$(SHAR) README FREEZE MakeCommon Makefile uMakefile \
X        $(BS) $(BIBS) $(CODES) $(CS) $(ELS) $(FRS) $(HS) \
X        $(ms) $(M4S) $(P4S) $(RCS) $(LATEXS) $(TPSS) test.abe
X
X$(st): %.s: %.c
X	$(CC) -S $(DEFS) -DDEFPATH='"'$(RCID)'"' $(INCLUDES) $<
X
Xifdef WORK
X
Xdist: $(dist)
X
X$(dist): $(DD)/%: %
X	$(DISTO) $< $(DD)
X
X.DEFAULT:
X	$(UNCMPRS) $@
X
Xelse # WORK
X
Xinstall: $(bi) $(ci) $(cati) $(codei) $(eli) $(mi) $(psi) \
X         $(rci) $(ti) $(tpsi) $(tti)
X
X$(bi): $(BID)/%: %
X	$(INSTF) $< $(BID)
X
X$(ci): $(CID)/%: %
X	$(INSTX) $< $(CID)
X
X$(codei): $(CODEID)/%: %
X	$(INSTF) $< $(CODEID)
X
X$(m1i): $(MID)/man1/%: %
X	$(INSTF) $< $(MID)/man1
X
Xifdef CATMAN
X$(cat1i): $(m1i)
X	$(CATMAN) -M $(MID) 1
Xendif
X
X$(eli): $(ELID)/%: %
X	$(INSTF) $< $(ELID)
X
X$(psi): $(PSID)/%: %
X	$(INSTF) $< $(PSID)
X
X$(rci): $(RCID)/%: %
X	$(INSTF) $< $(RCID)
X
X$(ti): $(TID)/%: %
X	$(INSTF) $< $(TID)
X
X$(tpsi): $(TPSID)/%: %
X	$(INSTF) $< $(TPSID)
X
X$(tti): $(TTID)/%: %
X	$(INSTF) $< $(TTID)
X
X$(allsrc): %: $(DD)/%
X	$(DISTI) $@ $(DD)
X
X.DEFAULT:
X	$(DISTI) $@ $(DD)
X
Xendif # WORK
X
X8859-1.ps: 8859-1.m4
XT-61.ps: T-61.m4
Xinclude depend
END_OF_FILE
if test 7461 -ne `wc -c <'Makefile'`; then
    echo shar: \"'Makefile'\" unpacked with wrong size!
fi
# end of 'Makefile'
fi
if test -f 'T-61.m4' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'T-61.m4'\"
else
echo shar: Extracting \"'T-61.m4'\" \(14094 characters\)
sed "s/^X//" >'T-61.m4' <<'END_OF_FILE'
Xdnl T-61.m4 - m4 include file with CCITT T-61 reencoding
Xdnl
Xdnl $Header: T-61.m4,v 1.2 89/07/07 07:17:41 howard Exp $
Xdnl
Xdnl The following is based on code written by Timothy Hayes and Glenn Reid:
X/BuiltinEncoding()d % Display in version string.
X
X/T61Encoding[%def
X/.notdef       % 0/ 0    0    0   0  NUL (null)
X/.notdef       % 0/ 1    1    1   1  SOH (start of heading)
X/.notdef       % 0/ 2    2    2   2  STX (start of text)
X/.notdef       % 0/ 3    3    3   3  ETX (end of text)
X/.notdef       % 0/ 4    4    4   4  EOT (end of transmission)
X/.notdef       % 0/ 5    5    5   5  ENQ (enquiry)
X/.notdef       % 0/ 6    6    6   6  ACK (acknowledge)
X/.notdef       % 0/ 7    7    7   7  BEL (bell)
X/.notdef       % 0/ 8   10    8   8  BS  (backspace)
X/.notdef       % 0/ 9   11    9   9  HT  (horizontal tabulation)
X/.notdef       % 0/10   12   10   A  LF  (line feed)
X/.notdef       % 0/11   13   11   B  VT  (vertical tabulation)
X/.notdef       % 0/12   14   12   C  FF  (form feed)
X/.notdef       % 0/13   15   13   D  CR  (carriage return)
X/.notdef       % 0/14   16   14   E  SO  (shift out)
X/.notdef       % 0/15   17   15   F  SI  (shift in)
X/.notdef       % 1/ 0   20   16  10  DLE (data link escape)
X/.notdef       % 1/ 1   21   17  11  DC1 (device control 1)
X/.notdef       % 1/ 2   22   18  12  DC2 (device control 2)
X/.notdef       % 1/ 3   23   19  13  DC3 (device control 3)
X/.notdef       % 1/ 4   24   20  14  DC4 (device control 4)
X/.notdef       % 1/ 5   25   21  15  NAK (negative aknowledge)
X/.notdef       % 1/ 6   26   22  16  SYN (synchronous idle)
X/.notdef       % 1/ 7   27   23  17  ETB (end of transmission block)
X/.notdef       % 1/ 8   30   24  18  CAN (cancel)
X/.notdef       % 1/ 9   31   25  19  EM  (end of medium)
X/.notdef       % 1/10   32   26  1A  SUB (substitute character)
X/.notdef       % 1/11   33   27  1B  ESC (escape)
X/.notdef       % 1/12   34   28  1C  IS4/FS (information separator 4 / file separator)
X/.notdef       % 1/13   35   29  1D  IS3/GS (information separator 3 / group separator)
X/.notdef       % 1/14   36   30  1E  IS2/RS (information separator 2 / record separator)
X/.notdef       % 1/15   37   31  1F  IS1/US (information separator 1 / unit separator)
X/space         % 2/ 0   40   32  20  space
X/exclam        % 2/ 1   41   33  21  exclamation mark
X/quotedbl      % 2/ 2   42   34  22  quotation mark
X/numbersign    % 2/ 3   43   35  23  number sign
X/dollar        % 2/ 4   44   36  24  dollar sign
X/percent       % 2/ 5   45   37  25  percent sign
X/ampersand     % 2/ 6   46   38  26  ampersand
X/quoteright    % 2/ 7   47   39  27  apostrophe
X/parenleft     % 2/ 8   50   40  28  left parenthesis
X/parenright    % 2/ 9   51   41  29  right parenthesis
X/asterisk      % 2/10   52   42  2A  asterisk
X/plus          % 2/11   53   43  2B  plus sign
X/comma         % 2/12   54   44  2C  comma
X/minus         % 2/13   55   45  2D  hyphen, minus sign
X/period        % 2/14   56   46  2E  full stop
X/slash         % 2/15   57   47  2F  solidus
X/zero          % 3/ 0   60   48  30  digit zero
X/one           % 3/ 1   61   49  31  digit one
X/two           % 3/ 2   62   50  32  digit two
X/three         % 3/ 3   63   51  33  digit three
X/four          % 3/ 4   64   52  34  digit four
X/five          % 3/ 5   65   53  35  digit five
X/six           % 3/ 6   66   54  36  digit six
X/seven         % 3/ 7   67   55  37  digit seven
X/eight         % 3/ 8   70   56  38  digit eight
X/nine          % 3/ 9   71   57  39  digit nine
X/colon         % 3/10   72   58  3A  colon
X/semicolon     % 3/11   73   59  3B  semicolon
X/less          % 3/12   74   60  3C  less-than sign
X/equal         % 3/13   75   61  3D  equals sign
X/greater       % 3/14   76   62  3E  greater-than sign
X/question      % 3/15   77   63  3F  question mark
X/at            % 4/ 0  100   64  40  commercial at
X/A             % 4/ 1  101   65  41  A
X/B             % 4/ 2  102   66  42  B
X/C             % 4/ 3  103   67  43  C
X/D             % 4/ 4  104   68  44  D
X/E             % 4/ 5  105   69  45  E
X/F             % 4/ 6  106   70  46  F
X/G             % 4/ 7  107   71  47  G
X/H             % 4/ 8  110   72  48  H
X/I             % 4/ 9  111   73  49  I
X/J             % 4/10  112   74  4A  J
X/K             % 4/11  113   75  4B  K
X/L             % 4/12  114   76  4C  L
X/M             % 4/13  115   77  4D  M
X/N             % 4/14  116   78  4E  N
X/O             % 4/15  117   79  4F  O
X/P             % 5/ 0  120   80  50  P
X/Q             % 5/ 1  121   81  51  Q
X/R             % 5/ 2  122   82  52  R
X/S             % 5/ 3  123   83  53  S
X/T             % 5/ 4  124   84  54  T
X/U             % 5/ 5  125   85  55  U
X/V             % 5/ 6  126   86  56  V
X/W             % 5/ 7  127   87  57  W
X/X             % 5/ 8  130   88  58  X
X/Y             % 5/ 9  131   89  59  Y
X/Z             % 5/10  132   90  5A  Z
X/bracketleft   % 5/11  133   91  5B  left square bracket
X/backslash     % 5/12  134   92  5C  reverse solidus
X/bracketright  % 5/13  135   93  5D  right square bracket
X/asciicircum   % 5/14  136   94  5E  circumflex accent
X/underscore    % 5/15  137   95  5F  low line, underline
X/quoteleft     % 6/ 0  140   96  60  grave accent
X/a             % 6/ 1  141   97  61  a
X/b             % 6/ 2  142   98  62  b
X/c             % 6/ 3  143   99  63  c
X/d             % 6/ 4  144  100  64  d
X/e             % 6/ 5  145  101  65  e
X/f             % 6/ 6  146  102  66  f
X/g             % 6/ 7  147  103  67  g
X/h             % 6/ 8  150  104  68  h
X/i             % 6/ 9  151  105  69  i
X/j             % 6/10  152  106  6A  j
X/k             % 6/11  153  107  6B  k
X/l             % 6/12  154  108  6C  l
X/m             % 6/13  155  109  6D  m
X/n             % 6/14  156  110  6E  n
X/o             % 6/15  157  111  6F  o
X/p             % 7/ 0  160  112  70  p
X/q             % 7/ 1  161  113  71  q
X/r             % 7/ 2  162  114  72  r
X/s             % 7/ 3  163  115  73  s
X/t             % 7/ 4  164  116  74  t
X/u             % 7/ 5  165  117  75  u
X/v             % 7/ 6  166  118  76  v
X/w             % 7/ 7  167  119  77  w
X/x             % 7/ 8  170  120  78  x
X/y             % 7/ 9  171  121  79  y
X/z             % 7/10  172  122  7A  z
X/braceleft     % 7/11  173  123  7B  left curly bracket
X/bar           % 7/12  174  124  7C  vertical line
X/braceright    % 7/13  175  125  7D  right curly bracket
X/asciitilde    % 7/14  176  126  7E  tilde
X/.notdef       % 7/15  177  127  7F  DEL (delete)
X/emdash        % 8/ 0  200  128  80
X/Lslash        % 8/ 1  201  129  81  capital L with stroke
X/OE            % 8/ 2  202  130  82  capital OE ligature
X/Scaron        % 8/ 3  203  131  83  capital S with caron
X/Ydieresis     % 8/ 4  204  132  84  capital Y with diaeresis or umlaut mark
X/Zcaron        % 8/ 5  205  133  85  capital Z with caron
X/.notdef       % 8/ 6  206  134  86
X/.notdef       % 8/ 7  207  135  87
X/endash        % 8/ 8  210  136  88
X/lslash        % 8/ 9  211  137  89  small l with stroke
X/oe            % 8/10  212  138  8A  small oe ligature
X/scaron        % 8/11  213  139  8B  small s with caron
X/.notdef       % 8/12  214  140  8C
X/zcaron        % 8/13  215  141  8D  small z with caron
X/.notdef       % 8/14  216  142  8E
X/.notdef       % 8/15  217  143  8F
X/dotlessi      % 9/ 0  220  144  90
X/grave         % 9/ 1  221  145  91
X/acute         % 9/ 2  222  146  92
X/circumflex    % 9/ 3  223  147  93
X/tilde         % 9/ 4  224  148  94
X/macron        % 9/ 5  225  149  95
X/breve         % 9/ 6  226  150  96
X/dotaccent     % 9/ 7  227  151  97
X/dieresis      % 9/ 8  230  152  98
X/.notdef       % 9/ 9  231  153  99
X/ring          % 9/10  232  154  9A
X/cedilla       % 9/11  233  155  9B
X/.notdef       % 9/12  234  156  9C
X/hungarumlaut  % 9/13  235  157  9D
X/ogonek        % 9/14  236  158  9E
X/caron         % 9/15  237  159  9F
X/space         %10/ 0  240  160  A0  NBSP (no-break space)
X/exclamdown    %10/ 1  241  161  A1  inverted exclamation mark
X/cent          %10/ 2  242  162  A2  cent sign
X/sterling      %10/ 3  243  163  A3  pound sign
X/currency      %10/ 4  244  164  A4  general currency sign
X/yen           %10/ 5  245  165  A5  yen sign
X/brokenbar     %10/ 6  246  166  A6  broken vertical line
X/section       %10/ 7  247  167  A7  section sign
X/dieresis      %10/ 8  250  168  A8  diaeresis
X/copyright     %10/ 9  251  169  A9  copyright sign
X/ordfeminine   %10/10  252  170  AA  ordinal indicator, feminine
X/guillemotleft %10/11  253  171  AB  angle quotation mark left
X/logicalnot    %10/12  254  172  AC  not sign
X/hyphen        %10/13  255  173  AD  soft hyphen
X/registered    %10/14  256  174  AE  registered sign
X/macron        %10/15  257  175  AF  macron
X/degree        %11/ 0  260  176  B0  degree sign
X/plusminus     %11/ 1  261  177  B1  plus or minus sign
X/twosuperior   %11/ 2  262  178  B2  superscript two
X/threesuperior %11/ 3  263  179  B3  superscript three
X/acute         %11/ 4  264  180  B4  acute accent
X/mu            %11/ 5  265  181  B5  micro sign
X/paragraph     %11/ 6  266  182  B6  pilcrow
X/periodcentered%11/ 7  267  183  B7  middle dot
X/cedilla       %11/ 8  270  184  B8  cedilla
X/onesuperior   %11/ 9  271  185  B9  superscript one
X/ordmasculine  %11/10  272  186  BA  ordinal indicator, masculine
X/guillemotright%11/11  273  187  BB  angle quotation mark right
X/onequarter    %11/12  274  188  BC  fraction one-quarter
X/onehalf       %11/13  275  189  BD  fraction one-half
X/threequarters %11/14  276  190  BE  fraction three-quarters
X/questiondown  %11/15  277  191  BF  inverted question mark
X/Agrave        %12/ 0  300  192  C0  capital A with grave accent
X/Aacute        %12/ 1  301  193  C1  capital A with acute accent
X/Acircumflex   %12/ 2  302  194  C2  capital A with circumflex accent
X/Atilde        %12/ 3  303  195  C3  capital A with tilde
X/Adieresis     %12/ 4  304  196  C4  capital A with diaeresis or umlaut mark
X/Aring         %12/ 5  305  197  C5  capital A with ring
X/AE            %12/ 6  306  198  C6  capital AE diphthong
X/Ccedilla      %12/ 7  307  199  C7  capital C with cedilla
X/Egrave        %12/ 8  310  200  C8  capital E with grave accent
X/Eacute        %12/ 9  311  201  C9  capital E with acute accent
X/Ecircumflex   %12/10  312  202  CA  capital E with circumflex accent
X/Edieresis     %12/11  313  203  CB  capital E with diaeresis or umlaut mark
X/Igrave        %12/12  314  204  CC  capital I with grave accent
X/Iacute        %12/13  315  205  CD  capital I with acute accent
X/Icircumflex   %12/14  316  206  CE  capital I with circumflex accent
X/Idieresis     %12/15  317  207  CF  capital I with diaeresis or umlaut mark
X/Eth           %13/ 0  320  208  D0  capital D with stroke, Icelandic eth
X/Ntilde        %13/ 1  321  209  D1  capital N with tilde
X/Ograve        %13/ 2  322  210  D2  capital O with grave accent
X/Oacute        %13/ 3  323  211  D3  capital O with acute accent
X/Ocircumflex   %13/ 4  324  212  D4  capital O with circumflex accent
X/Otilde        %13/ 5  325  213  D5  capital O with tilde
X/Odieresis     %13/ 6  326  214  D6  capital O with diaeresis or umlaut mark
X/multiply      %13/ 7  327  215  D7  multiplication sign
X/Oslash        %13/ 8  330  216  D8  capital O with slash
X/Ugrave        %13/ 9  331  217  D9  capital U with grave accent
X/Uacute        %13/10  332  218  DA  capital U with acute accent
X/Ucircumflex   %13/11  333  219  DB  capital U with circumflex accent
X/Udieresis     %13/12  334  220  DC  capital U with diaeresis or umlaut mark
X/Yacute        %13/13  335  221  DD  capital Y with acute accent
X/Thorn         %13/14  336  222  DE  capital thorn, Icelandic
X/germandbls    %13/15  337  223  DF  small sharp s, German
X/agrave        %14/ 0  340  224  E0  small a with grave accent
X/aacute        %14/ 1  341  225  E1  small a with acute accent
X/acircumflex   %14/ 2  342  226  E2  small a with circumflex accent
X/atilde        %14/ 3  343  227  E3  small a with tilde
X/adieresis     %14/ 4  344  228  E4  small a with diaeresis or umlaut mark
X/aring         %14/ 5  345  229  E5  small a with ring
X/ae            %14/ 6  346  230  E6  small ae diphthong
X/ccedilla      %14/ 7  347  231  E7  small c with cedilla
X/egrave        %14/ 8  350  232  E8  small e with grave accent
X/eacute        %14/ 9  351  233  E9  small e with acute accent
X/ecircumflex   %14/10  352  234  EA  small e with circumflex accent
X/edieresis     %14/11  353  235  EB  small e with diaeresis or umlaut mark
X/igrave        %14/12  354  236  EC  small i with grave accent
X/iacute        %14/13  355  237  ED  small i with acute accent
X/icircumflex   %14/14  356  238  EE  small i with circumflex accent
X/idieresis     %14/15  357  239  EF  small i with diaeresis or umlaut mark
X/eth           %15/ 0  360  240  F0  small d with stroke, Icelandic eth
X/ntilde        %15/ 1  361  241  F1  small n with tilde
X/ograve        %15/ 2  362  242  F2  small o with grave accent
X/oacute        %15/ 3  363  243  F3  small o with acute accent
X/ocircumflex   %15/ 4  364  244  F4  small o with circumflex accent
X/otilde        %15/ 5  365  245  F5  small o with tilde
X/odieresis     %15/ 6  366  246  F6  small o with diaeresis or umlaut mark
X/divide        %15/ 7  367  247  F7  division sign
X/oslash        %15/ 8  370  248  F8  small o with slash
X/ugrave        %15/ 9  371  249  F9  small u with grave accent
X/uacute        %15/10  372  250  FA  small u with acute accent
X/ucircumflex   %15/11  373  251  FB  small u with circumflex accent
X/udieresis     %15/12  374  252  FC  small u with diaeresis or umlaut mark
X/yacute        %15/13  375  253  FD  small y with acute accent
X/thorn         %15/14  376  254  FE  small thorn, Icelandic
X/ydieresis     %15/15  377  255  FF  small y with diaeresis or umlaut mark
X]PDEF
X
X`/'REENCOD % /NewName  /OldName 
X   {% def
X   PFNDFNT dup length dict % Create dictionary as big as OldName.
X   begin % Use it.
X         {% forall
X         1 index/FID ne{PDEF}{PPOP PPOP}ifelse
X         }
X      forall % For each key / value pair in OldName except /Fid, define it.
X      /Encoding T61Encoding PDEF % Use different encoding.
X      currentdict
X   end
X   definefont PPOP
X}PBIND PDEF
END_OF_FILE
if test 14094 -ne `wc -c <'T-61.m4'`; then
    echo shar: \"'T-61.m4'\" unpacked with wrong size!
fi
# end of 'T-61.m4'
fi
if test -f 'bytefreq.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'bytefreq.c'\"
else
echo shar: Extracting \"'bytefreq.c'\" \(4601 characters\)
sed "s/^X//" >'bytefreq.c' <<'END_OF_FILE'
X/*
X * bytefreq - frequency-count the bytes in a list of files
X */
X
X#ifndef lint
Xstatic char _cpyrgt[] = "Copyright 1989 Howard Lee Gayle";
X#endif lint
X
X/*
X * This program is free software; you can redistribute it and/or modify
X * it under the terms of the GNU General Public License version 1,
X * as published by the Free Software Foundation.
X *
X * This program is distributed in the hope that it will be useful,
X * but WITHOUT ANY WARRANTY; without even the implied warranty of
X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
X * GNU General Public License for more details.
X *
X * You should have received a copy of the GNU General Public License
X * along with this program; if not, write to the Free Software
X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X */
X
X#include <stdio.h>
X#include <howard/port.h>
X#include <howard/version.h>
X#include <howard/usage.h>
X
XMAINVER ("@(#)$Header: bytefreq.c,v 1.8 89/08/18 08:14:36 howard Exp $");
XUSAGE ("[-b] [-d] < file-list");
X
X#include <ctype.h>
X#include <howard/malf.h>
X#include <howard/registers.i>
X
Xtypedef struct /* Data for one byte.*/
X   {
X   double b_freq; /* Frequency.*/
X   ulongT b_cnt;  /* Count.*/
X   rcharT b_byte; /* The byte.*/
X   }
XbyT;
XPRIVATE byT bytes[256]; /* The byte array.*/
X
XPRIVATE char eIntern[] = "Internal error %s";
X
X/* output - output the frequency table                                  */
X
XPRIVATE void output()
X
X/* Function:
X *	Display bytes[] on standard output.
X */
X{
XR1 byT    *bp; /* Steps through bytes[].*/
XR2 rcharT  b;  /* Current byte.*/
X
XPUTCHAR ('\n');
Xfor (bp = bytes; bp != &bytes[256]; ++bp)
X   {
X   b = bp->b_byte;
X   PRINTF ("%2d/%2d  8#%03o  %3d  16#%02x  %c  %10lu  %12.10f\n",
X      b / 16, b % 16, b, b, b, (isprint (b) ? b : ' '),
X      bp->b_cnt, bp->b_freq);
X   }
X}
X
X/* qsort1 - auxiliary function for sorting bytes[]                         */
X
XPRIVATE int qsort1 (bp1, bp2)
XR1 byT *bp1;
XR2 byT *bp2;
X
X/* Function:
X *	Called from qsort when sorting bytes[] into descending order.
X * Returns:
X *	
X */
X{
Xif (bp2->b_cnt >  bp1->b_cnt) return (1);
Xif (bp2->b_cnt == bp1->b_cnt) return (0);
Xreturn (-1);
X}
X
X/* main - main function							*/
X
XPUBLIC int main (argc, argv)
X   int    argc; /* Number of arguments.*/
XR6 bStrT *argv; /* Points to array of argument strings.*/
X
X/* Function:
X *	Compute a byte-frequency table of a list of files.
X * Algorithm:
X *	Decode the arguments.  Read the standard input line by line.
X *      Treat each line as a file name and open it.
X *      Read each file byte by byte.
X *      Update the count for the corresponding byte.
X *      For output in byte order, call output().
X *      For output in decreasing frequency order, sort, then call output().
X */
X
X{
XR5     rcharT    c;                   /* Option letter.*/
Xextern int       optind;              /* See getopt (3).*/
Xextern cStrT     optarg;              /* See getopt (3).*/
XR3     ulongT    t = 0;               /* Total bytes.*/
XR1     streamT   ifp;                 /* Current input stream.*/
XR2     rcharT    b;                   /* Current input byte.*/
XR4     byT      *bp;                  /* Steps through bytes[].*/
X       double    dt;                  /* Total bytes. */
XR7     boolT     byteflg = FALSE;     /* Set for output in byte order.*/
XR8     boolT     descendflg = FALSE;  /* Set for output in descending order.*/
X       unsigned  ln = 0;              /* Line number (not used).*/
X       byteT     ib[MFILE];           /* Input line buffer. */
X
Xwhile (EOF != (c = getopt (argc, (cStrT *) argv, "bd")))
X   {
X   switch (c)
X      {
X      case '?':
X         usage();
X         break;
X      case 'b':
X         byteflg = TRUE;
X         break;
X      case 'd':
X         descendflg = TRUE;
X         break;
X      default:
X         malf1 (eIntern, "main 1");
X         break;
X      }
X   }
Xargv += optind;
Xif ((NULBSTR != *argv) || (!byteflg && !descendflg)) usage();
Xfor (b = 0; b != 256; ++b)
X   bytes[b].b_byte = b;
Xwhile (NULBSTR != getlin (ib, MFILE, stdin, S("Standard Input"), &ln, 0))
X   {
X   ifp = mfopen (ib, "r");
X   while (EOF != (b = getc (ifp)))
X      {
X      ++bytes[b].b_cnt;
X      ++t;
X      }
X   if (ferror (ifp)) malf1 ("%s: Read error", ib);
X   mfclose (ifp, ib);
X   }
XPRINTF ("Total bytes: %lu\n", t);
Xif (0 != t)
X   {
X   dt = t;
X   for (bp = bytes; bp != &bytes[256]; ++bp)
X      bp->b_freq = ((double) bp->b_cnt) / dt;
X   if (byteflg) output();
X   if (descendflg)
X      {
X      qsort ((cStrT) bytes, 256, sizeof (byT), qsort1);
X      output();
X      }
X   }
Xmfflush (stdout, S("Standard Output"));
Xexit (SUCCESS);
X
X#ifdef lint
Xreturn (SUCCESS);
X#endif
X}
END_OF_FILE
if test 4601 -ne `wc -c <'bytefreq.c'`; then
    echo shar: \"'bytefreq.c'\" unpacked with wrong size!
fi
# end of 'bytefreq.c'
fi
if test -f 'cz-Gnews.el' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'cz-Gnews.el'\"
else
echo shar: Extracting \"'cz-Gnews.el'\" \(1539 characters\)
sed "s/^X//" >'cz-Gnews.el' <<'END_OF_FILE'
X;; cz-Gnews.el - Gnews interface to cz(1)
X;;
X;; $Header: cz-Gnews.el,v 1.2 89/09/22 07:41:31 howard Exp $
X;;
X;; Copyright   1989 Howard Lee Gayle
X;; This file is written in the ISO 8859/1 character set.
X;;
X;; $Header: cz-Gnews.el,v 1.2 89/09/22 07:41:31 howard Exp $
X;;
X;; This program is free software; you can redistribute it and/or modify
X;; it under the terms of the GNU General Public License version 1,
X;; as published by the Free Software Foundation.
X;;
X;; This program is distributed in the hope that it will be useful,
X;; but WITHOUT ANY WARRANTY; without even the implied warranty of
X;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
X;; GNU General Public License for more details.
X;;
X;; You should have received a copy of the GNU General Public License
X;; along with this program; if not, write to the Free Software
X;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X
X(require 'cz)
X(require 'hook-add)
X
X(defun Gnews-cz ()
X   "Laser-print the current article."
X   (interactive)
X   (if article-grab-point (article-forward-intern nil))
X   (cz-region-1 1 (article-max)
X      (concat
X         (article-field "Newsgroups")
X         "."
X         (int-to-string article-current)
X         " "
X         (cz-simple-from (article-field "From"))
X         ": "
X         (article-field "Subject")
X      )
X   )
X)
X
X(defun Gnews-cz-bind ()
X   "Set up local key binding for Gnews-cz."
X   (local-set-key "L" 'Gnews-cz)
X)
X
X(hook-add 'article-hook 'Gnews-cz-bind)
X(hook-add 'group-hook   'Gnews-cz-bind)
X
X(provide 'Gnews-cz)
END_OF_FILE
if test 1539 -ne `wc -c <'cz-Gnews.el'`; then
    echo shar: \"'cz-Gnews.el'\" unpacked with wrong size!
fi
# end of 'cz-Gnews.el'
fi
if test -f 'dkus.code' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'dkus.code'\"
else
echo shar: Extracting \"'dkus.code'\" \(1200 characters\)
sed "s/^X//" >'dkus.code' <<'END_OF_FILE'
X; dkus.code - trigram letter encoding for Danish or US English
X;
X; Copyright 1989 Howard Lee Gayle
X; This file is written in the ISO 8859/1 character set.
X;
X; $Header: dkus.code,v 1.1 89/08/26 13:33:36 howard Exp $
X;
X; This program is free software; you can redistribute it and/or modify
X; it under the terms of the GNU General Public License version 1,
X; as published by the Free Software Foundation.
X;
X; This program is distributed in the hope that it will be useful,
X; but WITHOUT ANY WARRANTY; without even the implied warranty of
X; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
X; GNU General Public License for more details.
X;
X; You should have received a copy of the GNU General Public License
X; along with this program; if not, write to the Free Software
X; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X
X 0 'a' 'A'
X 1 'b' 'B'
X 2 'c' 'C'
X 3 'd' 'D'
X 4 'e' 'E'
X 5 'f' 'F'
X 6 'g' 'G'
X 7 'h' 'H'
X 8 'i' 'I'
X 9 'j' 'J'
X10 'k' 'K'
X11 'l' 'L'
X12 'm' 'M'
X13 'n' 'N'
X14 'o' 'O'
X15 'p' 'P'
X16 'q' 'Q'
X17 'r' 'R'
X18 's' 'S'
X19 't' 'T'
X20 'u' 'U'
X21 'v' 'V'
X22 'w' 'W'
X23 'x' 'X'
X24 'y' 'Y'
X25 'z' 'Z'
X26 '}' ']' 8#345# 8#305#
X27 '{' '[' 8#346# 8#306#
X28 '|' '\' 8#370# 8#330#
END_OF_FILE
if test 1200 -ne `wc -c <'dkus.code'`; then
    echo shar: \"'dkus.code'\" unpacked with wrong size!
fi
# end of 'dkus.code'
fi
echo shar: End of archive 4 \(of 14\).
cp /dev/null ark4isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 14 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0