From: rich@Rice.edu (& Murphey)
Subject: [386BSD] Interviews 3.1 beta 3 patches
Reply-To: Rich@rice.edu
Organization: Department of Electrical and Computer Engineering, Rice
	University
Date: Thu, 17 Dec 1992 20:21:13 GMT


For those 386BSD users unfamiliar with interviews, it is a C++ class
library and set of applicatiions for building graphical user interfaces.

It includes a WYSIWYG document editor (doc), a WYSIWYG interface
builder (ibuild), a structured graphics editor (idraw), and others.

Below are patches for compiling Interviews 3.1 beta 3 on 386BSD with
gcc 2.3.2.  These patches are also available by anonymous ftp from
interviews.stanford.edu (36.22.0.175)  in
/pub/contrib/iv3.1.3-386bsd-gcc-2.3.2.patches.

386BSD binaries are available via anon ftp from ref.tfs.com
(140.145.254.251) in /usr/packages/interviews/iv-hasty/iv-inst.tar.Z.

All the applications including doc and ibuild work.

  Amancio Hasty <hasty@netcom.com>
  Rich Murphey <Rich@Rice.edu>

diff -rcb orig/iv/src/bin/doc/DocViewer.c iv/src/bin/doc/DocViewer.c
*** orig/iv/src/bin/doc/DocViewer.c	Mon Jun  8 02:29:48 1992
--- iv/src/bin/doc/DocViewer.c	Mon Dec 14 23:10:02 1992
***************
*** 233,239 ****
          ), this
      );
      listener->key(true);
!     listener->button(true);
      _top->body(listener);
  
      _pages = new DocDeck();
--- 233,239 ----
          ), this
      );
      listener->key(true);
!     listener->button(true, Event::any);
      _top->body(listener);
  
      _pages = new DocDeck();
diff -rcb orig/iv/src/bin/iclass/dialogs.c iv/src/bin/iclass/dialogs.c
*** orig/iv/src/bin/iclass/dialogs.c	Wed Sep 23 11:45:09 1992
--- iv/src/bin/iclass/dialogs.c	Mon Dec 14 23:09:58 1992
***************
*** 45,51 ****
  #if !defined(AIXV3) && !defined(hpux) && !(defined(sun) && OSMajorVersion >= 5)
  /* sigh, not all systems have this prototype */
  extern "C" {
!     char* getcwd(char*, int);
  }
  #endif
  
--- 45,51 ----
  #if !defined(AIXV3) && !defined(hpux) && !(defined(sun) && OSMajorVersion >= 5)
  /* sigh, not all systems have this prototype */
  extern "C" {
!     char* getcwd(char*, unsigned int);
  }
  #endif
  
diff -rcb orig/iv/src/bin/scripts/Imakefile iv/src/bin/scripts/Imakefile
*** orig/iv/src/bin/scripts/Imakefile	Thu Sep 12 17:01:39 1991
--- iv/src/bin/scripts/Imakefile	Mon Dec 14 23:09:56 1992
***************
*** 10,16 ****
  REMIND_MACROS = /usr/local/lib/remind/macros
  
  AllTarget($(PROGRAMS))
! 
  CppScriptTarget(cpu,cpu.cpp,-DCPU='"'"$(ARCH)"'"',always)
  CppScriptTarget(ibmkmf,ibmkmf.cpp,-DCONFIGDIRSPEC='$(CONFIGDIRSPEC)',always)
  CppScriptTarget(ivmkmf,ivmkmf.cpp,-DCONFIGDIRSPEC='$(CONFIGDIRSPEC)',always)
--- 10,16 ----
  REMIND_MACROS = /usr/local/lib/remind/macros
  
  AllTarget($(PROGRAMS))
! CPP	= /usr/bin/cpp
  CppScriptTarget(cpu,cpu.cpp,-DCPU='"'"$(ARCH)"'"',always)
  CppScriptTarget(ibmkmf,ibmkmf.cpp,-DCONFIGDIRSPEC='$(CONFIGDIRSPEC)',always)
  CppScriptTarget(ivmkmf,ivmkmf.cpp,-DCONFIGDIRSPEC='$(CONFIGDIRSPEC)',always)
diff -rcb orig/iv/src/bin/scripts/remind.cpp iv/src/bin/scripts/remind.cpp
*** orig/iv/src/bin/scripts/remind.cpp	Wed Jun  3 23:37:00 1992
--- iv/src/bin/scripts/remind.cpp	Mon Dec 14 23:09:52 1992
***************
*** 34,40 ****
  ' > $tmp
  
  cat $MacrosFile $RemindersFile \
!     | /lib/cpp \
      | egrep -f $tmp \
      | awk '
  	/[0-9][0-9]?:[0-9][0-9]?/ {
--- 34,40 ----
  ' > $tmp
  
  cat $MacrosFile $RemindersFile \
!     | /usr/bin/cpp \
      | egrep -f $tmp \
      | awk '
  	/[0-9][0-9]?:[0-9][0-9]?/ {
diff -rcb orig/iv/src/config/InterViews/TIFF.def iv/src/config/InterViews/TIFF.def
*** orig/iv/src/config/InterViews/TIFF.def	Thu Jun  4 18:04:00 1992
--- iv/src/config/InterViews/TIFF.def	Mon Dec  7 00:08:05 1992
***************
*** 90,95 ****
--- 90,100 ----
   *
   */
  #ifndef TIFFStdCDefines
+ #if defined(i386bsdArchitecture)
+ #define TIFFStdCDefines \
+     -DCOLORIMETRY_SUPPORT -DYCBCR_SUPPORT -DMMAP_SUPPORT \
+     -DHAVE_IEEEFP=1 -DUSE_VARARGS=1 -DUSE_PROTOTYPES=1 -DUSE_CONST=1
+ #endif
  #if defined(SGIArchitecture)
  #define TIFFStdCDefines \
      -DCOLORIMETRY_SUPPORT -DJPEG_SUPPORT -DYCBCR_SUPPORT -DCMYK_SUPPORT \
diff -rcb orig/iv/src/config/InterViews/arch.def iv/src/config/InterViews/arch.def
*** orig/iv/src/config/InterViews/arch.def	Mon Sep 30 11:22:49 1991
--- iv/src/config/InterViews/arch.def	Mon Dec  7 01:57:40 1992
***************
*** 376,381 ****
--- 376,397 ----
  #define MacroFile InterViews/iv-convex.cf
  #endif /* __convex__ */
  
+ #ifdef __386BSD__ 
+ #undef 386BSD
+ #undef 386bsd
+ #define i386bsdArchitecture
+ #define ArchitectureName 386BSD
+ #define architectureName 386bsd
+ #define MacroIncludeFile <InterViews/iv-x386.cf>
+ #define MacroFile InterViews/iv-x386.cf
+ #define OSName			386BSD
+ #define OSMajorVersion		4
+ #define OSMinorVersion		3
+ #define OSRelease		/* nothing */
+ #define OSDefines		/* nothing */
+ #define OSVendor		/* nothing */
+ #endif /* __386BSD__ */
+ 
  #ifndef ArchitectureName
  XCOMM WARNING: Imakefile not configured; guessing at definitions!!!
  XCOMM This might mean that BOOTSTRAPCFLAGS was not set when building imake.
diff -rcb orig/iv/src/config/InterViews/local.def iv/src/config/InterViews/local.def
*** orig/iv/src/config/InterViews/local.def	Tue Sep  8 17:43:39 1992
--- iv/src/config/InterViews/local.def	Tue Dec 15 00:43:48 1992
***************
*** 2,15 ****
   * For now, just assume cfront 2.0.
   * If you are using cfront 2.1, then use -Dcplusplus_2_1.
   */
! #undef LanguageCCDefines
! #define LanguageCCDefines -Dcplusplus_2_0
  
  /*
   * If you are using gcc/g++, then uncomment the include below.
   */
  /* #include <InterViews/gcc.def> */
  
  /*
   * Default customization of kits.
   * Possible flags to define:
--- 2,42 ----
   * For now, just assume cfront 2.0.
   * If you are using cfront 2.1, then use -Dcplusplus_2_1.
   */
! /* #undef LanguageCCDefines
! #define LanguageCCDefines -Dcplusplus_2_0 */
  
  /*
   * If you are using gcc/g++, then uncomment the include below.
   */
  /* #include <InterViews/gcc.def> */
+ /*
+  * Definitions for gcc/g++.
+  */
+ 
+ #undef LanguageCCDefines
+ #define LanguageCCDefines -Dcplusplus_2_1
+ 
+ #ifndef CCDriver
+ #define CCDriver /usr/local/bin/g++
+ #endif
+ 
+ #ifdef CppCmd
+ #undef CppCmd
+ #endif
+ #define CppCmd /usr/bin/cpp
  
+ #ifndef DependCCFlags
+ #define DependCCFlags $(CCDEFINES) $(CCINCLUDES) -I/usr/local/lib/g++-include
+ #endif
+ 
+ #ifndef ExtraCCLdLibs
+ #define ExtraCCLdLibs -lg++ -lcompat
+ #endif
+ 
+ #undef HasSunOSSharedLibraries
+ #define HasSunOSSharedLibraries NO
+ 
+ 
  /*
   * Default customization of kits.
   * Possible flags to define:
***************
*** 28,36 ****
  /*
   * If you are using g++, define BuildRPCClasses to NO.
   */
! #if defined(SGIArchitecture) || defined(SunArchitecture)
  #undef BuildRPCClasses
! #define BuildRPCClasses YES
  #endif
  
  /*
--- 55,63 ----
  /*
   * If you are using g++, define BuildRPCClasses to NO.
   */
! #if defined(SGIArchitecture) || defined(SunArchitecture) || defined(i386bsdArchitecture)
  #undef BuildRPCClasses
! #define BuildRPCClasses NO
  #endif
  
  /*
***************
*** 49,55 ****
   * installed data files.
   */
  #undef InstalledRoot
! #define InstalledRoot /interviews
  
  /*
   * If the X11 config files are not in /usr/lib/X11/config, the X11
--- 76,82 ----
   * installed data files.
   */
  #undef InstalledRoot
! #define InstalledRoot /usr/packages/iv3.1.3
  
  /*
   * If the X11 config files are not in /usr/lib/X11/config, the X11
***************
*** 60,70 ****
   * If you have to set XConfigDir, don't forget to override XCONFIGDIR
   * on the command line when saying "make World" for the first time.
   */
! /*
  #undef XConfigDir
! #define XConfigDir /usr/X11R5/lib/X11/config
  #undef XIncDir
! #define XIncDir /usr/X11R5/include
  #undef XLibDir
! #define XLibDir /usr/X11R5/lib
! */
--- 87,96 ----
   * If you have to set XConfigDir, don't forget to override XCONFIGDIR
   * on the command line when saying "make World" for the first time.
   */
! 
  #undef XConfigDir
! #define XConfigDir /usr/X386/lib/X11/config
  #undef XIncDir
! #define XIncDir /usr/X386/include
  #undef XLibDir
! #define XLibDir /usr/X386/lib
diff -rcb orig/iv/src/include/InterViews/action.h iv/src/include/InterViews/action.h
*** orig/iv/src/include/InterViews/action.h	Mon Jun  1 16:07:00 1992
--- iv/src/include/InterViews/action.h	Mon Dec 14 23:09:41 1992
***************
*** 33,39 ****
  
  #include <InterViews/_enter.h>
  
! class Action : public Resource {
  protected:
      Action();
      virtual ~Action();
--- 33,39 ----
  
  #include <InterViews/_enter.h>
  
! class Action : virtual public Resource {
  protected:
      Action();
      virtual ~Action();
diff -rcb orig/iv/src/include/InterViews/bitmap.h iv/src/include/InterViews/bitmap.h
*** orig/iv/src/include/InterViews/bitmap.h	Tue Feb 11 17:22:48 1992
--- iv/src/include/InterViews/bitmap.h	Mon Dec 14 23:09:38 1992
***************
*** 38,44 ****
  class Font;
  class Transformer;
  
! class Bitmap : public Resource {
  public:
      Bitmap(
  	const void*, unsigned int width, unsigned int height,
--- 38,44 ----
  class Font;
  class Transformer;
  
! class Bitmap : virtual public Resource {
  public:
      Bitmap(
  	const void*, unsigned int width, unsigned int height,
diff -rcb orig/iv/src/include/InterViews/brush.h iv/src/include/InterViews/brush.h
*** orig/iv/src/include/InterViews/brush.h	Tue Feb 11 11:33:37 1992
--- iv/src/include/InterViews/brush.h	Mon Dec 14 23:09:40 1992
***************
*** 38,44 ****
  class BrushImpl;
  class Display;
  
! class Brush : public Resource {
  public:
      Brush(Coord width);
      Brush(int pattern, Coord width);
--- 38,44 ----
  class BrushImpl;
  class Display;
  
! class Brush : virtual public Resource {
  public:
      Brush(Coord width);
      Brush(int pattern, Coord width);
diff -rcb orig/iv/src/include/InterViews/color.h iv/src/include/InterViews/color.h
*** orig/iv/src/include/InterViews/color.h	Wed Feb 26 19:18:27 1992
--- iv/src/include/InterViews/color.h	Mon Dec 14 23:09:39 1992
***************
*** 38,44 ****
  typedef float ColorIntensity;
  typedef unsigned int ColorOp;
  
! class Color : public Resource {
  public:
      enum { Copy, Xor, Invisible };
  
--- 38,44 ----
  typedef float ColorIntensity;
  typedef unsigned int ColorOp;
  
! class Color : virtual public Resource {
  public:
      enum { Copy, Xor, Invisible };
  
diff -rcb orig/iv/src/include/InterViews/font.h iv/src/include/InterViews/font.h
*** orig/iv/src/include/InterViews/font.h	Wed Jun  3 18:42:16 1992
--- iv/src/include/InterViews/font.h	Mon Dec 14 23:09:39 1992
***************
*** 93,99 ****
  inline Coord FontBoundingBox::font_ascent() const { return font_ascent_; }
  inline Coord FontBoundingBox::font_descent() const { return font_descent_; }
  
! class Font : public Resource {
  public:
      Font(const String&, float scale = 1.0);
      Font(const char*, float scale = 1.0);
--- 93,99 ----
  inline Coord FontBoundingBox::font_ascent() const { return font_ascent_; }
  inline Coord FontBoundingBox::font_descent() const { return font_descent_; }
  
! class Font : virtual public Resource {
  public:
      Font(const String&, float scale = 1.0);
      Font(const char*, float scale = 1.0);
diff -rcb orig/iv/src/include/InterViews/glyph.h iv/src/include/InterViews/glyph.h
*** orig/iv/src/include/InterViews/glyph.h	Mon Apr 13 11:59:05 1992
--- iv/src/include/InterViews/glyph.h	Mon Dec 14 23:09:46 1992
***************
*** 42,48 ****
  typedef long GlyphIndex;
  typedef unsigned int GlyphBreakType;
  
! class Glyph : public Resource {
  public:
      enum { no_break, pre_break, in_break, post_break };
  
--- 42,48 ----
  typedef long GlyphIndex;
  typedef unsigned int GlyphBreakType;
  
! class Glyph : virtual public Resource {
  public:
      enum { no_break, pre_break, in_break, post_break };
  
diff -rcb orig/iv/src/include/InterViews/handler.h iv/src/include/InterViews/handler.h
*** orig/iv/src/include/InterViews/handler.h	Tue Feb 11 11:33:42 1992
--- iv/src/include/InterViews/handler.h	Mon Dec 14 23:09:46 1992
***************
*** 31,37 ****
  
  class Event;
  
! class Handler : public Resource {
  protected:
      Handler();
      virtual ~Handler();
--- 31,37 ----
  
  class Event;
  
! class Handler : virtual public Resource {
  protected:
      Handler();
      virtual ~Handler();
diff -rcb orig/iv/src/include/InterViews/pattern.h iv/src/include/InterViews/pattern.h
*** orig/iv/src/include/InterViews/pattern.h	Tue Feb 11 11:33:43 1992
--- iv/src/include/InterViews/pattern.h	Mon Dec 14 23:09:45 1992
***************
*** 35,41 ****
  
  class PatternRep;
  
! class Pattern : public Resource {
  public:
      enum {
  	solid = 0xffff,
--- 35,41 ----
  
  class PatternRep;
  
! class Pattern : virtual public Resource {
  public:
      enum {
  	solid = 0xffff,
diff -rcb orig/iv/src/include/InterViews/raster.h iv/src/include/InterViews/raster.h
*** orig/iv/src/include/InterViews/raster.h	Tue Feb 11 11:33:44 1992
--- iv/src/include/InterViews/raster.h	Mon Dec 14 23:09:44 1992
***************
*** 37,43 ****
  
  class RasterRep;
  
! class Raster : public Resource {
  public:
      Raster(unsigned long width, unsigned long height);
      Raster(const Raster&);
--- 37,43 ----
  
  class RasterRep;
  
! class Raster : virtual public  Resource {
  public:
      Raster(unsigned long width, unsigned long height);
      Raster(const Raster&);
diff -rcb orig/iv/src/include/InterViews/selection.h iv/src/include/InterViews/selection.h
*** orig/iv/src/include/InterViews/selection.h	Mon May 11 12:12:38 1992
--- iv/src/include/InterViews/selection.h	Mon Dec 14 23:09:42 1992
***************
*** 34,40 ****
  class SelectionManagerRep;
  class String;
  
! class SelectionManager : public Resource {
  public:
      SelectionManager(Display*, const char*);
      SelectionManager(Display*, const String&);
--- 34,40 ----
  class SelectionManagerRep;
  class String;
  
! class SelectionManager : virtual public Resource {
  public:
      SelectionManager(Display*, const char*);
      SelectionManager(Display*, const String&);
diff -rcb orig/iv/src/include/InterViews/style.h iv/src/include/InterViews/style.h
*** orig/iv/src/include/InterViews/style.h	Fri Sep  4 16:13:29 1992
--- iv/src/include/InterViews/style.h	Mon Dec 14 23:09:43 1992
***************
*** 41,47 ****
  class String;
  class StyleRep;
  
! class Style : public Resource {
  public:
      Style();
      Style(const String& name);
--- 41,47 ----
  class String;
  class StyleRep;
  
! class Style : virtual public Resource {
  public:
      Style();
      Style(const String& name);
diff -rcb orig/iv/src/include/InterViews/telltale.h iv/src/include/InterViews/telltale.h
*** orig/iv/src/include/InterViews/telltale.h	Mon Mar 16 16:35:51 1992
--- iv/src/include/InterViews/telltale.h	Mon Dec 14 23:09:48 1992
***************
*** 36,42 ****
  
  typedef unsigned int TelltaleFlags;
  
! class TelltaleState : public Resource, public Observable {
  public:
      TelltaleState(const TelltaleFlags = 0);
      virtual ~TelltaleState();
--- 36,42 ----
  
  typedef unsigned int TelltaleFlags;
  
! class TelltaleState : virtual public Resource, public Observable {
  public:
      TelltaleState(const TelltaleFlags = 0);
      virtual ~TelltaleState();
***************
*** 109,115 ****
  Telltale_access(choose,chosen,TelltaleState::is_chosen)
  Telltale_access(enable,enabled,TelltaleState::is_enabled)
  
! class TelltaleGroup : public Resource {
  public:
      TelltaleGroup();
      virtual ~TelltaleGroup();
--- 109,115 ----
  Telltale_access(choose,chosen,TelltaleState::is_chosen)
  Telltale_access(enable,enabled,TelltaleState::is_enabled)
  
! class TelltaleGroup : virtual public Resource {
  public:
      TelltaleGroup();
      virtual ~TelltaleGroup();
diff -rcb orig/iv/src/include/InterViews/transformer.h iv/src/include/InterViews/transformer.h
*** orig/iv/src/include/InterViews/transformer.h	Tue Sep 15 17:35:48 1992
--- iv/src/include/InterViews/transformer.h	Mon Dec 14 23:09:47 1992
***************
*** 34,40 ****
  
  #include <InterViews/_enter.h>
  
! class Transformer : public Resource {
  public:
      Transformer();	/* identity */
      Transformer(const Transformer&);
--- 34,40 ----
  
  #include <InterViews/_enter.h>
  
! class Transformer : virtual public Resource {
  public:
      Transformer();	/* identity */
      Transformer(const Transformer&);
diff -rcb orig/iv/src/lib/IV-X11/xwindow.c iv/src/lib/IV-X11/xwindow.c
*** orig/iv/src/lib/IV-X11/xwindow.c	Thu Sep 24 17:24:25 1992
--- iv/src/lib/IV-X11/xwindow.c	Mon Dec 14 23:09:36 1992
***************
*** 63,71 ****
  #endif
  
  /* no standard place for this */
! extern "C" {
      extern int ioctl(int, int, ...);
! }
  
  implementPtrList(WindowVisualList,WindowVisual)
  
--- 63,71 ----
  #endif
  
  /* no standard place for this */
! /* extern "C" {
      extern int ioctl(int, int, ...);
! } */
  
  implementPtrList(WindowVisualList,WindowVisual)
  
diff -rcb orig/iv/src/lib/TIFF/prototypes.h iv/src/lib/TIFF/prototypes.h
*** orig/iv/src/lib/TIFF/prototypes.h	Tue Feb 18 20:20:12 1992
--- iv/src/lib/TIFF/prototypes.h	Mon Dec 14 23:09:26 1992
***************
*** 25,30 ****
--- 25,31 ----
   */
  
  #if USE_PROTOTYPES
+ va_dcl
  #define	DECLARE1(f,t1,a1)		f(t1 a1)
  #define	DECLARE2(f,t1,a1,t2,a2)		f(t1 a1, t2 a2)
  #define	DECLARE3(f,t1,a1,t2,a2,t3,a3)	f(t1 a1, t2 a2, t3 a3)
Newsgroups: comp.unix.bsd