************************* MASTER CODE ***************************************

The name of the first file in this disk's directory identifies the volume,
issue number and revision of the disk. The format of this filename is:

    !CDmvvii.rrr

where

    ! = the '!' character
    m =   C for C Users Journal, W for Windows/DOS Developer's Journal
    vv =  volume
    ii =  issue
    rrr = revision (001 for initial release, 002 for next update, etc.)

The file UPDATE.DOC contains information about any additions or
corrections to material on the disk since the original magazine
publication.

If you have obtained this code from a floppy diskette or from CompuServe, the 
headings under the column "FILENAME" represent the names of .ZIP files.  All 
files listed under the filename are archived in the .ZIP file.

If you have obtained this code from UUNET, the headings under the column 
"FILENAME" represent the names of subdirectories.  All files listed under the
"filename" are included in a subdirectory of that name.

Keywords: C C++ Compression Pattern Printable Bit Archive

The code listings for the February 1994 issue of The C Users Journal
include source for Philip Gage's Byte Pair Compression algorithm, Erick
Otto's text pattern matching, Thad Smith III's
binary-to-printable-character encoding algorithm, Siegfried Heintze's
class for bit arrays, and Pat LaBrocca's self-extracting archive.

*************************  FILE DESCRIPTION **********************************

The following files are included in the disk:

FILENAME		AUTHOR-NAME	TITLE			       PAGE
(Zip archive/
subdirectory name)
-------------------------------------------------------------------------------
plauger 		P.J. Plauger	Standard C			10

    xmsg.h	 - listing 1, A class to handle exceptions
    reraise.h    - listing 2, Definition of class reraise
    xlogic.h     - listing 3, A derived class to handle logic errors
    xruntime.h   - listing 4, A derived class to handle runtime errors
    xdomain.h    - listing 5, A derived class to handle domain errors
    xrange.h     - listing 6, A derived class to handle range errors
    badcast.h    - listing 7, A class to handle bad dynamic casts

saks 		 	Dan Saks	Stepping Up to C++		87
     
    mix.h	 - listing 1, A class hierarchy that mixes virtual and
                   non-virtual overriding
    testmix.cpp	 - listing 2, A test program for the hierarchy in
                   mix.h (listing 1)
    overload.h   - listing 3, A class with overloaded virtual functions
    hides.cpp    - listing 4, Demonstrates how a declaration in an
                   inner scope hides all functions with the same name
                   in an outer scope
    partial.h    - listing 5, A class hierarchy that overrides some but
                   not all overloaded virtual functions
    testpart.cpp - listing 6, A test program for partial.h (listing 5)
    
gage			Philip Gage	A New Algorithm for 		23
					Data Compression

    compress.c   - listing 3, The compression program
    expand.c     - listing 4, The expansion program

otto			Erick Otto	Two Fast Pattern-Matching	39
					Algorithms

    bm.c         - listing 1, The Boyer and Moore algorithm
    bzyatg.c     - listing 2, The Beaza-Yates and Gonnet algorithm
    freq.c       - listing 3, Generates a header file with frequency
                   distribution of specified file
    
smith			Thad Smith III	Coding with Printable		51
			                Characters

    code13_2.c   - listing 1, Codes 13-bit values into two characters
    conv2_13.c   - listing 2, Translates two characters back to 13 bits
    calc9_11.c   - listing 3, Calculation to encode 9 input bytes into
                   11 characters
    baz.h        - listing 4, External definitions of BAZ routines
    bazcom.h     - listing 5, Internal definitions for BAZ routines
    ebaz.c       - listing 6, Code to convert 9 bytes to 11 characters
    dbaz.c       - listing 7, Decodes 9 bytes from 11 characters
    crc16.h      - listing 8, Header for 16-bit CRC calculation
    crc16g.h     - listing 9, Calculates the CRC, a block at a time
    baz.c        - listing 10, Encodes binary file to BAZ911 file
    zab.c        - listing 11, Decodes BAZ911-encoded file

heintze	        	Siegfried Heintze	Intuitive Access to	67
						Bit Arrays

    bitarr.h	 - listing 1, Definition of classes BitField and
                   BitArray
    bitarr.cpp   - listing 2, Demonstrates operation of bit arrays
    
labrocca		P. J. LaBrocca		A Self-Extracting	75
						Archive for MS-DOS

    sea.h        - listing 1, Prefix header structure
    arch.c       - listing 2, Archiver
    extr.c       - listing 3, Extraction module
    makefile.mak - listing 4, Makefile for arch.exe and extr.exe
    remake.bat   - listing 5, A batch file to check MagicNumber
    remake.awk   - listing 6, An awk file to check the size
                   of MagicNumber

allison			Chuck Allison	Code Capsules: Variable-Length	103
					Argument Lists

    max1.c       - listing 1, A function to find the largest
                              of n integers
    vargs1.c     - listing 2, A function to extract integer/string
                              argument pairs
    vargs2.c     - listing 3, Encapsulates the parameter extraction
			      logic
    vargs3.c     - listing 4, Uses macros in stdarg.h to process
                              variable-length argument lists
    max2.c       - listing 5, Implements maxn via the stdarg macros
    concat.c     - listing 6, A function to concatenate a variable
                              number of strings
    tblrow.c     - listing 7, Uses a va_list to populate tables
    fatal.c      - listing 8, Uses vprintf to exit program with error
                              message
    prepend.c    - listing 9, Demonstrates use of prepend function
    preprint.c   - listing 10, Functions to build strings backwards
    commas.c     - listing 11, Uses prepend and preprintf functions to
                   format numbers with comma separators


letters			Letters to Editor	We Have Mail		118

    dyn2darr.c   - not listed in magazine, submitted by Steve Coffman
                   as improvement to P.J LaBrocca's code (see "Dynamic
                   Two-Dimensional Arrays," by P.J. LaBrocca, CUJ,
                   November 1993, page 72.
    dyn2darr.h   - not listed in magazine, submitted by Steve Coffman
                   as improvement to P.J. LaBrocca's code 
 

******************************************************************************


If you have questions regarding to the disk, please call or write us.

-----------------------------------------------------------------------------
                           R&D Publications, Inc.
                        1601 W. 23rd St. Suite 200
                            Lawrence, KS 66046
                              (913) 841-1631
-----------------------------------------------------------------------------

