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