HDTenEightyP/NetNews huggingface dataset:
From: eanv20@castle.ed.ac.uk (John Woods)
Newsgroups: comp.lang.c++,comp.object
Subject: Re: HELP : Array of objects of diff classes ??
Date: 21 Jan 93 13:23:31 GMT
Organization: Edinburgh University

vinay> I have a problem related to programming in an object oriented fashion.
vinay>	Here`s the problem description :
vinay>	There is an object class called Holder. The object holder can
vinay> hold various things : Pencils, Pens, Erasers etc. I`ve declared
vinay> different classes for these things ( class PENCIL, class PEN,
vinay> class ERASER etc. ).  
vinay> The user of this program will choose at the runtime what objects to put
vinay> in the holder. The problem is how do i store this information (i.e the
vinay> contents ) in class HOLDER. I cannot create a single array of objects
vinay> because each object is of different class.

maxtal>	Forget Object Oriented Fashions, whatever they are.

I'm not sure that's such a good idea, myself :-)

maxtal>	Use a discriminated union. Oh, C++ doesn't have one,
maxtal>so emulate one with an idiom.  Below I use pointers for 
maxtal>illustration, you can put copies of the actual objects in
maxtal>if you like (just get rid of appropriate *'s)

	[ code deleted ]

maxtal>Do not be scared of using a switch. 

I'm not sure that's such a good idea, either.  I'd avoid them like the
plague.  My own feeling as to what would constitute an approach in the
`object oriented fashion' follows:

All things, like `pen', `eraser', `pencil' etc.  share the property
that they can be put in the holder.  So, define class HolderTool.
Then define subclasses of this, such as Pencil, Pen and Eraser.  Then
one's holder is simply an array of HolderTool instances. 

What language are you using, BTW?

				... John Woods
-- 
 /******* cut here ******* John Woods ******* cut here ********
 * Philosophy: Forsan et haec olim meminisse iuvabit (Virgil) *
 * Disclaimer: Every statement in this file is possibly !true *
 ******** cut here ******* John Woods ******* cut here *******/
From: jordan@aero.org (Larry M. Jordan)
Newsgroups: comp.lang.c++
Subject: C++ Wrapper for XView
Date: 21 Jan 1993 21:29:21 GMT
Organization: The Aerospace Corporation
NNTP-Posting-Host: daystrom.aero.org

I think I recall seeing a product annoucement for a set of
C++ Wrapper classes for XView.  I have forgotten the product
name and who the manufacturer is.  Does anyone remember?  Please
post or respond to me directly.

Thanks in advance.

--Larry Jordan

Newsgroups: comp.lang.c++
From: pjl@cs.uiuc.edu (Paul Lucas)
Subject: Re: Template Use <sigh>
Organization: University of Illinois at Urbana-Champaign
Date: Fri, 22 Jan 1993 11:50:36 GMT

In <1jmldjINN6u3@rs6000.bham.ac.uk> pickerig@eee.bham.ac.uk (Guy Pickering) writes:

>I imagine this an FAQ, so please excuse my ignorance (anyone know where
>to get an FAQ list?).

	If you wait long enough, it shows up here every now and again.

>I am starting to use templates (AT&T V3.01), I define the templates in
>a separate directory to my main source code. I keep getting the following
>warnings and errors:

>  CC[ptlink] warning: template definition file LookupTable.C not found

	The documentation says: if your .h files really end in .h, then
	your .c files must end in .c; if .H, then .C.

	So, change your case.  You also have to put the -I path on your
	final build line.  This too is in the documentation.

>I do not have a full understanding of how template code is created. I
>assume it is not the same as the usual compile-link phases for C/C++ code.

	Read the documentation for details; it's too much typing to
	explain it here.
-- 
	- Paul J. Lucas
	  AT&T Bell Laboratories
	  Naperville, IL
From: nikki@trmphrst.demon.co.uk (Nikki Locke)
Newsgroups: comp.lang.c++
Subject: Re: When Are Global Objects with a Constructor Initialized?
Date: 27 Jan 93 11:44:32 GMT
Reply-To: nikki@trmphrst.demon.co.uk
Organization: Trumphurst Ltd.
X-Mailer: cppnews $Revision: 1.31 $

In article <1993Jan25.024402.10801@alchemy.chem.utoronto.ca> mbersohn@alchemy.chem.utoronto.ca (M. Bersohn) writes:
> Hello C++ experts:
> 	Does anyone know when global objects of a class with
> a constructor that does initializations are initialized,
> at compile time or at the beginning of execution?

At run time.

> 	 One might ask "Why care?". I intend to have
> over 100,000 of such objects so I don't want to 
> proceed in this way if they all have to be initialized
> at the beginning of every run of the program.

Looks like you will have to rethink, then.

-- 
Nikki Locke,Trumphurst Ltd.(PC and Unix consultancy) nikki@trmphrst.demon.co.uk
trmphrst.demon.co.uk is NOT affiliated with ANY other sites at demon.co.uk.
From: pickerig@eee.bham.ac.uk (Guy Pickering)
Newsgroups: comp.lang.c++
Subject: Was: Template Use <sigh>
Date: 22 Jan 1993 15:48:29 GMT
Organization: The University of Birmingham, England
NNTP-Posting-Host: nanda_devi.eee.bham.ac.uk
X-Newsreader: TIN [version 1.1 PL6]

Firstly, thank you to all those who replied...I am at least half way
there, but wondering if brute force and ignorance isn't the answer.

Anyway, my problem in more detail is this: I have three directories
which contain the following:

  1/ The .C and .H files defining the template class LookupTable.
  2/ The .C and .H files of an algorithm which uses LookupTable<unsigned
     char>
  3/ A main.C which binds the whole lot together, but does not itself
     use LookupTable<unsigned char>

The problem is that at link time, no template instantiation takes
place and then the real linker complains about all my member functions
of LookupTable<unsigned char> being unresolved.

The AT&T C++ manual says:

  If there are any unresolved symbols, the instantiator builds a list of
  class templates and function templates that must be instantiated....

There are unresolved symbols, yet the instantiator doesn't do anything
about them.

What am I doing wrong??? Any ideas?

Guy. 

--
+--------------------------------+-----------------------------------------+
| Guy Pickering                  | School of Electronic & Electrical Eng,  |
| E-MAIL: G.PICKERING@uk.ac.bham | University of Birmingham,               |
| Tel: (021) 414 4340            | Edgbaston, Birmingham. B15 2TT.         |
+--------------------------------+-----------------------------------------+
From: ppollet@cismibm.univ-lyon1.fr (Patrick POLLET)
Newsgroups: comp.lang.c++
Subject: Re: Turbo Vision Dialog Editor
Date: Mon, 25 Jan 1993 10:24:10 GMT
Organization: INSA  CENTRE INFORMATIQUE DU 1er CYCLE
Distribution: usa
NNTP-Posting-Host: pc110-02.insa-lyon.fr

In article <1jv1mbINN9fr@aludra.usc.edu> dliao@aludra.usc.edu (David Liao) writes:
>From: dliao@aludra.usc.edu (David Liao)
>Subject: Turbo Vision Dialog Editor
>Date: 24 Jan 1993 13:28:43 -0800

>I heard there is a dialog editor for Turbo Vision C++.  Does anyone
>know where I can obtain it?  Preferably a FTP site.


>David Liao
>dliao@usc.edu
>University of Southern California

go to vtucs.cc.vt.edu . it the "home "of the list TURBOVIS

ppollet@cismibm.univ-lyon1.fr (Patrick POLLET)
--------------------------------------------------------
Dr Patrick L.Pollet
Institut National des Sciences Appliquees
Centre Informatique du 1er Cycle  Bat 110
20 Avenue A.Einstein
69621 Villeurbanne Cedex France
--------------------------------------------------------
Phone: 72 43 83 80 -   la premiere erreur c'est
Fax  : 72 43 85 33 -   de se lever le matin  ... GASTON
-------------------------------------------------------
Newsgroups: comp.lang.c++
From: rjackson@gmuvax2.gmu.edu (Richard L Jackson Jr)
Subject: NIHCL/DEC C++/RISC Ultrix exist yet?
Organization: George Mason University, Fairfax, Virginia, USA
Date: Fri, 22 Jan 1993 14:25:28 GMT

Hi all,

Has the NIH class library been ported to DEC C++/DEC Ultrix (RISC)
environment yet?

Thank you,
Richard Jackson
From: schrod@iti.informatik.th-darmstadt.de (Joachim Schrod)
Newsgroups: comp.lang.c++
Subject: Re: Is (p) instead of (p!=NULL) portable?
Date: 26 Jan 1993 17:14:10 GMT
Organization: TH Darmstadt, FG Systemprogrammierung
Distribution: world
NNTP-Posting-Host: spice.iti.informatik.th-darmstadt.de

In article <1993Jan26.091708.11214@cbfsb.cb.att.com>, nh@cbnewsg.cb.att.com (nicholas.hounsome) writes:
> From article <1993Jan25.125627.29030@ugle.unit.no>, by robert@alkymi.unit.no (Robert Schmidt):
> > 
> > [is `if (p)' portable?]
> 
> It is NOT portable for C.

That's not correct. Read the FAQ of comp.lang.c for an answer, I
don't want to re-iterate the FM here. (Grab it by anon ftp from
rtfm.mit.edu, in the usenet/news.answers subtree.)

--
Joachim
Newsgroups: comp.lang.c++
From: suresh@papaya.iss.nus.sg (Suresh Thennarangam - Research Scholar)
Subject: Re: Need access to array index in ctor
Organization: Institute Of Systems Science, NUS
Date: Sat, 23 Jan 1993 05:08:00 GMT

In article <C1A1nx.K2L@undergrad.math.waterloo.edu> wgsteven@mobius10.math.uwaterloo.ca (Warren Stevens) writes:
>I am creating a class, called block, that needs to know it's index in a
>constructor if it is created as part of an array.  For instance,
>
>	House	block[512];
>
>would call block::block() 512 times.  Each time the constructor is called, 
>i need to know what the index being created is.
>
>Is there some way to do this easily?
>
>Thanks,
>
>Warren

Off the top of my head ( no flames please :->) here's a simple hack ...

Define a static member variable in the class, set it to zero and increment
it in the constructor .. a kind of class instance counter (this group has 
seen  a major discussion on class instance counting so I'm not going to 
restart the same thread )

Within the constructor, the value of the static counter variable index will 
give you the index of the instance being instantiated. 

Assumptions:
1> No other instances (besides the array)have already been created.
2> The constructors for an array of classes declaration are called in order
  of increasing index( Can this be guranteed ? Anyone ?). A simple way to
  verify if this is happening will be to print out the value of
  (this - counter). It should be the same each time .. i.e the address of the
  zero'th variable of the array.


      __                  
     (_   / /  o_   o  o |_
     __)/(_( __) (_(_ /_)| )_


***************************************************************************
* Suresh Thennarangam               *  EMail: suresh@iss.nus.sg(Internet) *
* Research Scholar                  *         ISSST@NUSVM.BITNET          *
* Institute Of Systems Science      *  Tel:  (065) 772 2588.              *
* National University Of Singapore  *  Facs.: (065) 778 2571              *
* Heng Mui Keng Terrace             *  Telex: ISSNUS RS 39988             *
* Singapore 0511.                   *                                     *
***************************************************************************
Xref: sparky comp.lang.c++:19833 comp.lang.smalltalk:2810
From: harvey@opl.com (Harvey Reed)
Newsgroups: comp.lang.c++,comp.lang.smalltalk
Subject: Re: CLASS variable in C++ ?
Date: 24 Jan 93 19:12:33 GMT
Followup-To: comp.lang.c++

bub@qut.edu.au writes:


>	How to implement Class Variable and Class Method in C++?

Are you refering to C++ "static" members? These are members that are
accessible to all objects, and can be thought of a "class level".


-- 
++harvey
===========================================================================
internet:       harvey@opl.com  /  hreed@cs.ulowell.edu  /  h.reed@ieee.org
voice/fax:      617-965-0220    /  617-965-7599
From: ski8032@tamsun.tamu.edu (Suman Kumar Inala)
Newsgroups: comp.lang.c++
Subject: Help w/ default arguments and more
Date: 22 Jan 1993 18:41:09 -0600
Organization: Texas A&M University
NNTP-Posting-Host: tamsun.tamu.edu
Keywords: default arguments swapping []

I would like to be able to do something like this:

class X {
    int x;
public:
    X(void) { x = 3; }
    int func(int arg = this->x) { return arg; }
};

In other words, I would like the default argument to
one of a classes methods to be one of the members of
the class.  This is of course possible if I were
to make x static, but this is not acceptable.  BC complains
that this may only be used in member functions; simply
expressing "int arg = x" gives the legitimate complaint
that x is not associated with an object.  The
following is a workaround, but I don't like it much:

class X {
    int x;
public:
    X(void) { x = 3; }
    int func(void) { return x; }
    int func(int arg) { return arg; }
};

Is there a better solution?  Also, I know I'm missing
something simple here, but the following doesn't work:


#define SWAP_INT(a, b) { a ^= b; b ^= a; a ^= b; }
inline void swap(int a, int b) {  a ^= b; b ^= a; a ^= b; }

The SWAP_INT macro works, but not my inline function.  Why?

Also, I declared a class Map which contains a 2D array.  I
would have liked to overload the [] operator to take two
arguments, so that I could treat it in a natural way,
indexing the elements of the map using array notation.
(Is this perhaps bad practise?)

Map map(80, 20); // Dimensions of map are 80 columns, 20 rows

cout << map[3][4];

But the [] operator may only be declared to take one argument.
It would be nice if the following notation could be used were
it possible for [] to take more than one argument, though it
is not traditional C notation:

cout << map[3, 4];

So my question is why [] is limited to one argument.   I don't
think that doing so would not break any existing code, since
if the [] operator was declared to have only one operand, the
expression

cout << map[3, 4]  <==> cout << map[4]

but otherwise would know to pass 3 & 4 to the operator []
function, similar to the way the ()'s operator works.

Finally, I derived the class xstream from iostream to provide
a streamable screen class for mode X (a graphics mode on the
PC).  The question is, when should I use a parameterized
manipulator and when should I use a simple function call.
Right now, I have a parameterized manipulator which takes 4
arguments:

xout << setviewport( 20, 20, 200, 210 ) << "text... "; // etc

Is it a good practise to have parameterized manipulators
with more than two arguments?  Does it matter?  Should
I say xout.setviewport( ... ) instead?

Thank you for your time.

-- 
Till next time,                \o/   \o/
                                V \o/ V     email:pinky@tamu.edu
<>  Sam  Inala  <>                 V

Xref: sparky comp.lang.c++:20075 comp.object:5110
From: nikki@trmphrst.demon.co.uk (Nikki Locke)
Newsgroups: comp.lang.c++,comp.object
Subject: Re: HELP : Array of objects of diff classes ??
Date: 25 Jan 93 19:50:08 GMT
Reply-To: nikki@trmphrst.demon.co.uk
Followup-To: comp.lang.c++
Organization: Trumphurst Ltd.
X-Mailer: cppnews $Revision: 1.31 $

> >In article <1993Jan19.112059.2882@ucc.su.OZ.AU> maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
answers a question on how to create and use heterogeneous collections, 
specifically a Holder which can contain PENCILs, PENs & ERASERs.

MAX>I assume that it reasonable to allow Holder to hold any one of these objects
MAX>because there is some similarity between these objects.  e.g., they are all
MAX>drawing tools or whatever.  This concept of similarity should be captured by
MAX>classifiying each of these item classes as subclasses (or specializations) of
MAX>the common class (e.g., drawing_object - which may be abstract).  Then, the
MAX>Holder class simply has to be declared to be able to hold objects of type
MAX>drawing_object.  Then, any instance of PENCIL, PEN, ERASER and any other class
MAX>derived from drawing_object cam be held by a Holder instance.  Aggregates can
MAX>hold heterogeneous collections etc.

In article <mcampbel.727881449@eola.cs.ucf.edu> mcampbel@cs.ucf.edu (Mike Campbell ) writes:
> I've been following this thread with some interest, and I find your reply 
> interesting.  
> 
> I agree with your analysis of the problem re: subclasses, however, what if
> you buy/purchase/steal classes from multiple vendors/coworkers/victims ?
> They necessarily will not have a common base class.  (Or is this correctly
> deemed "superclass?")

So miltiply derive from the vendors class and from a common base class of 
your own.

> Borland does this - they have a common base class, "Object", as I recall, and
> all of the storage classes can hold 'objects'.  This allows the storage 
> classes to hold just about anything in their provided class library, as every-
> thing is derived from the 'object' class.

Which just goes to show how badly designed Borlands class library is !
[ fx: Flameproof shields UP :-]

> Any ideas/thoughts from anyone on how to handle dissimilar base classes in a
> 'holder' class?

Re-think your design - you almost certainly don't need heterogenous 
collections.

If you really _do_ need them, then either ...

1) Use a different language.
2) Wait for run-time type identification to arrive in C++
3) Write your own RTTI (like Borland did).

-- 
Nikki Locke,Trumphurst Ltd.(PC and Unix consultancy) nikki@trmphrst.demon.co.uk
trmphrst.demon.co.uk is NOT affiliated with ANY other sites at demon.co.uk.
Newsgroups: comp.lang.c++
From: nh@cbnewsg.cb.att.com (nicholas.hounsome)
Subject: Re: Dynamic Linking and Sun Sparcs, do they mix?
Organization: AT&T
Date: Thu, 28 Jan 1993 09:11:12 GMT

I have started to investigate DLLs on the sun and all seems to work 
as expected.

This was my first test program which incidentaly gives me some good ideas for
a simple config file reader or debugging interface:

#include <stdio.h>
#include <dlfcn.h>
int a()
{
    printf("a called\n");
}

int b()
{
    printf("b called\n");
}

main()
{
    char buf[200];
    void *handle;
    void *handle2;
    void *handle3;
    int (*f)();
    handle = dlopen(NULL,1);
    handle2 = dlopen("/usr/lib/libc.so.1.7",1);
    handle3 = dlopen("/usr/openwin/lib/libX11.so.4.3",1);
    while(gets(buf))
    {
        f = dlsym(handle,buf);
        if( f )
            f(buf) ;
        else
        {
            f = dlsym(handle2,buf);
            if( f )
                f("called %s\n",buf) ;
            else
            {
                f = dlsym(handle3,buf);
                if( f )
                    f("called %s\n",buf) ;
                else
                {
                    printf("no function %s\n", buf);
                }
            }
        }
    }
}

Nick Hounsome
Newsgroups: comp.lang.c++
From: jordi@scsun.unige.ch (Steve JORDI)
Subject: Fast get/putimage with BC++ 3.x ???
Reply-To: jordi@scsun.unige.ch
Organization: University of Geneva	
Date: Fri, 22 Jan 1993 17:19:32 GMT

Hello there,
does anybody know if fast getimage/putimage routines exist somewhere.
I would like to use them with Trubo C++ or Borland C++ for fast
DOS Graphics ?

Thanks for any help.

Sincerely,

Steve Jordi                

+-------------------------+----------------------------------------------+
| Dpt of Geophysics       | Fax: + 41 22 320-5732                        |
| University of Geneva    | E-mail: Internet:   jordi@scsun.unige.ch     |
| 13, Rue des Maraichers  |                     jordi@sc2a.unige.ch      |
| 1211 GENEVA 4           |           Bitnet:   jordi@cgeuge52.bitnet    |
| Switzerland             |       Compuserve:   70143,3056               |
+-------------------------+----------------------------------------------+
From: robison1@husc10.harvard.edu (Keith Robison)
Newsgroups: comp.lang.c++
Subject: Linking problem with static member
Keywords: static, liner, Sun
Date: 21 Jan 93 18:10:14 GMT

I'm having a small problem with a static member function which
I wish to declare in the class (and .h file) but wish to 
define in a .cc file (so that it goes in a .o file).  This
code compiles fine, but I get a linking error when done.

ld: Undefined symbol 
   KERBioseqFormatGuide::newGuide(SeqFormat) 


Any help will be appreciated.

Thanks.

Keith Robison
Harvard University
Department of Cellular & Developmental Biology
Department of Genetics / HHMI

robison@biosun.harvard.edu 




// The class definition:
class KERBioseqFormatGuide 
{
 public:
  enum SeqFormat {unknownFormat, /* for auto-detection of formats */
		  genbankFormat, /* GenBank/EMBL/DDBJ flatfile format */
		  fastaFormat,   /* FASTA/Pearson format */
		  ncbiServerFormat,  /* NCBI E-mail server Swiss-Prot */
		  gcgFormat,	 /* GCG format */
		  swissprotFormat
		 };

 protected:
    SeqFormat currentFormat;
 private:
    const SeqFormat selfFormat;
	
 public:
   KERBioseqFormatGuide(SeqFormat ownFormat) 
	: currentFormat(ownFormat), selfFormat(ownFormat) 
	{} // cout<<"creating format#"<<(int) identifySelf()<<endl; /*dbg*/};
   virtual  ~KERBioseqFormatGuide() {};

   inline SeqFormat identifySelf() const;
   SeqFormat identifyCurrent() const;
    int needsChanging() const;
   static KERBioseqFormatGuide* newGuide 
	(KERBioseqFormatGuide::SeqFormat newFormat);
 ...
}


//the .cc file: -- putting "static" here makes no difference
 KERBioseqFormatGuide* KERBioseqFormatGuide::newGuide 
	(KERBioseqFormatGuide::SeqFormat newFormat)
{
   KERBioseqFormatGuide* guidePt;
   switch (newFormat)
     {
     case  KERBioseqFormatGuide::fastaFormat:
       guidePt = new KERFastaFormatGuide();
       break;
     case  KERBioseqFormatGuide::genbankFormat:
       guidePt = new KERGenbankFormatGuide();
       break;
     case  KERBioseqFormatGuide::swissprotFormat:
       guidePt = new KERGenbankFormatGuide();
       break;

     default:
       guidePt = new KERUnknownFormatGuide();
       break;
     }
    return guidePt;
 }
From: dmarer@td2cad.intel.com (Dennis Marer)
Newsgroups: comp.lang.c++
Subject: Re: is 'this' obsolete??!!
Date: 21 Jan 93 23:44:28 GMT
Organization: Intel Corporation, Santa Clara, CA USA

In article <1993Jan21.181219.25491@ugle.unit.no> robert@alkymi.unit.no (Robert Schmidt) writes:
>
>I recently heard someone mention that the use of 'this' is obsolete,
>and that another method is preferred...  I've forgotton how, sorry.
>I also found this claim in the on-line help of Borland C++ 3.1.
>
>Can you elaborate on this?  What is the preferred method, if 'my sources'
>are correct?
>
>Please reply via e-mail, thanks!
>
>robert@alkymi.unit.no

Me too - all of the Borland manuals and help files claim 'this' is obsolete,
and should be replaced by some method using the new operator...naturally,
they don't give an example, so I continue to use 'this'.  Any suggestions?

Dennis
dmarer@td2cad.intel.com
Newsgroups: comp.lang.c++
From: pickerig@eee.bham.ac.uk (Guy Pickering)
Newsgroups: comp.lang.c++
Subject: Re: Was: Template Use <sigh>
Date: 28 Jan 1993 10:03:29 GMT
Organization: The University of Birmingham, England
NNTP-Posting-Host: nanda_devi.eee.bham.ac.uk
X-Newsreader: TIN [version 1.1 PL6]

Thanks to all that replied, I have now solved my problem. Although
templates are a pain to get working the first time, I think they
are worth it in the long run.

Guy.

--
+--------------------------------+-----------------------------------------+
| Guy Pickering                  | School of Electronic & Electrical Eng,  |
| E-MAIL: G.PICKERING@uk.ac.bham | University of Birmingham,               |
| Tel: (021) 414 4340            | Edgbaston, Birmingham. B15 2TT.         |
+--------------------------------+-----------------------------------------+


Newsgroups: comp.lang.c++
From: gregb@gout.austin.ibm.com
Subject: Re: C++ compilers and OS/2
Date: Fri, 22 Jan 1993 14:41:34 GMT
News-Software: IBM OS/2 PM RN (NR/2) v0.16g by O. Vishnepolsky and R. Rogers
Reply-To: gregb@pro-lep.cts.com
Organization: IBM Austin

In <1993Jan22.004442.15678@gandalf.UMCS.Maine.EDU> jurlwin@gandalf.UMCS.Maine.EDU (Jeff Urlwin) writes:
>In article <1993Jan18.090225.16828@greco-prog.fr> rabussea@jack.greco-prog.fr (Denis Rabusseau) writes:
>>
>>Can someone give a list of C++ compilers for OS/2 v2.0 and more ?
>To the best of my knowledge:
>
>Zortech C++
>Microway C++
>Borland C++ (in beta, was due 4th Q last year, now 1st Q this year)
>IBM C++ (in beta (really alpha...) don't know when it's due)
Gnu C++  (available at ftp-os2.nmsu.edu)
__________________________________________________________
Greg Bryant                                 (512) 795-0323
Delta Music Systems                             Austin, TX
INET: gregb@pro-lep.cts.com
ARPA: wixer!pro-lep!gregb@cs.utexas.edu
Just consulting.   Not an employee.   Not representing IBM