[comp.sys.apollo] InterViews on Apollo

noell@mcnc.org (Matthew S. Noell) (10/08/90)

Has anyone successfully compiled and run Interviews on an Apollo.
When I recieved the latest version of C++ based on AT&T version 2.0
they also included a copy of InterViews which I was able to compile.
However, I tried to run Idraw and noticed a few quirks in the way it
behaved as far as keyboard input.  Probably something with event handling.
I have no idea what was wrong because the error appeared at random
times.  We are running SR10.2 on a DN3500.

Thanks in advance,
Matt Noell

--
Matthew Noell                       Motorola, Inc.
Technology Simulation               APRDL
	                            MailDrop K-10
Phone: (512) 928-5013	            3501 Ed Bluestein Blvd.
Email: matt@ace3.sps.mot.com        Austin, TX, 78721

glenn@huxley.huxley.bitstream.com (Glenn P. Parker) (10/09/90)

In article <7172@alvin.mcnc.org>
matt@ace3.sps.mot.com (Matthew S. Noell) writes:

> Has anyone successfully compiled and run Interviews on an Apollo.
> When I recieved the latest version of C++ based on AT&T version 2.0
> they also included a copy of InterViews which I was able to compile.
> However, I tried to run Idraw and noticed a few quirks in the way it
> behaved as far as keyboard input.  Probably something with event handling.
> I have no idea what was wrong because the error appeared at random
> times.  We are running SR10.2 on a DN3500.

Yeah, there's a few problems with the modified InterViews source code as
delivered.  I think I tracked down most (maybe all) of them and sent them
to John Vasta at Apollo (vasta@apollo.hp.com).  I have been using the
resulting library for a little while now with no problems.

The following is paraphrased from my mail to John:
===========================================================================

I have isolated the problem to some of the include files in the
InterViews/Std directory (generic.h, stream.h, and string.h), and an
erroneous streams implementation.

The first two include files (as delivered in InterViews 2.6 along with
Domain C++ 2.0) were C++ 1.2 files.  I replaced them with the corresponding
C++ 2.0 versions.  InterViews provides its own C++ 1.2 compatible streams
library, which should be completely removed from the Makefiles for Apollos.

The rest of the bugs all resulted from the way in which function prototypes
influence argument expansion during function calls.  string.h was the
source of many insidious bugs because of the declarations of strchr() and
strrchr(), functions which are used quite a bit in the StringBrowser and
FileBrowser classes.  Rather than replacing the string.h file, I modified
the prototypes for these two functions to make the last argument a "long"
instead of a "char".

One final thing (I'm not sure if this caused any bugs, but it might have).
Apollo's ctype.h defines macros that override the library implementations
of toupper() and tolower().  The macros do not check for a valid domain
([a-z] and [A-Z] respectively) before transforming their arguments.  I have
suppressed the macros inside InterViews/Std/ctype.h.

===========================================================================
I am running SR10.2 on a 3500 with Apollo C++ 2.0,
and I use the BSD 4.3 environment.

If you don't know about it already, there is an InterViews user's mailing
list that you can join by sending mail to:

    interviews-request@interviews.stanford.edu

Enjoy.
--
Glenn P. Parker       glenn@bitstream.com       Bitstream, Inc.
                      uunet!huxley!glenn        215 First Street
                      BIX: parker               Cambridge, MA 02142-1270