************************* 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: Aug94 C C++ Flood Scaling Graphics Multithreading OS/2 Extractors

The code listings for the August 1994 issue of C/C++ Users Journal
include source code for David Weber's Minimalist Scaling Algorithm,
Anton Treuenfel's Fast Flood-Visit Algorithm, and Michael Kelly's
implementation of Multithreading in OS/2 with Borland C++.

*************************  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:Extractors		10

    istream.h	 - listing 1, The header <istream>
    isxchar.c	 - listing 2, Implementation of a char extractor
    ws.c	 - listing 3, Implementation of the manipulator ws
    isxstrng.c	 - listing 4, Implementation of a string extractor
    isxstrem.c   - listing 5, Implementation of a streambuf extractor
    isxlong.c	 - listing 6, A long integer extractor
    isgetifl.c   - listing 7, Member function _Getifld(char *)
    isxint.c	 - listing 8, Implementation of an int extractor
    isxpnter.c	 - listing 9, A pointer to void extractor
    isxdbl.c	 - listing 10, A double extractor
    isgetffl.c	 - listing 11, Member function _Getffld(char *)
    xstod.c	 - listing 12, A simple _Stod function

weber			David Weber	Minimalist Scaling		27

    faxscale.c	 - listing 1, First cut at scaling algorithm
    scalesfl.c	 - listing 2, A sample procedure to call 
                              scale_fax_line
    sclfxln.c	 - listing 3, Function scale_fax_line with white space
			      optimization
    sclfxln.asm	 - listing 4, Assembly language implementation of
			      scale_fax_line
weber2			David Weber	Minimalist Scaling

    Complete source code, including code not listed in magazine

treu			Anton		An Efficient Flood-Visit	39
			Treuenfels	Algorithm

    uflood.c	 - listing 1, An algorithm which prevents a child's
			      shadow from falling on its parent line
    flood.c	 - listing 2, An algorithm that improves on uflood.c
    floodtst.c	 - listing 3, An algorithm that test uflood.c and
			      flood.c
    bgigrh.c	 - listing 4, Supporting graphics functions
    bgipixel.c	 - listing 5, A point examination function
    egapixel.c	 - listing 6, A point examination function optimized
			      for speed
    usrdef.h	 - listing 7, Definitions for graphics routines

treu2

    Complete source code, including code not listed in magazine

kelly			Michael Kelly	Multithreading with OS/2 and	67
					Borland C++

    ffilter.hpp	 - listing 1, Definition of class FileFilter
    ffilter.cpp  - listing 2, Implenatation of class FileFilter
    filt.asm	 - listing 3, The filter function
    filtfunc.hpp - listing 4, A header file for the filter function
    filtfunc.cpp - listing 5, A dummy wrapper to provide name mangling
    gofilter.cpp - listing 6, A test stub for the file filter utility
    gofilter.prj - not listed, project file for file filter utility

saks			Dan Saks	Stepping Up to C++: Designing	77
					Generic Container Classes,
					Part 2

    genq3.h	 - listing 1, Class definition for a generic queue
			      using void * elements
    genq3.cpp	 - listing 2, member function definitions for a
			      generic queue using void * elements
    strtst3.cpp	 - listing 3, A test program for a queue of void *
			      used as a queue of str
    strq3.h	 - listing 4, Class and inline member function
			      definitions for a type-safe queue of str
			      wrapped around a genq
    strq3.cpp	 - listing 5, Non-inline member function definitions
			      for a type-safe queue of str wrapped
			      around a genq
    strtst3c.cpp - listing 6, A test program for the strq wrapper
			      class with an output operator
    newapply.cpp - listing 7, New definitions for the apply functions
			      with a second void * parameter
    inserter.cpp - listing 8, An operator<< for strq using the new
			      apply function(s) instead of a global
			      variable

letters					We Have Mail			97

    pstring.h	 - listing 1, Header for Weitzel's string functions
    pstring.c	 - listing 2, Weitzel's string handling functions

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

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
-----------------------------------------------------------------------------

