*** actions.c.orig	Fri Feb  5 17:22:21 1999
--- actions.c	Tue Mar 23 17:45:51 1999
***************
*** 773,782 ****
--- 773,784 ----
      TVSCREENSetZoomState( !d->zoom_on, fullscreen );
      TVTOOLSSetToggleState( TV_TOOLITEM_FULLSCREEN, d->zoom_on );
      
+ #if !defined(__OpenBSD__)
      /*  This is an ugly hack.  Changing the video mode can take a while,  */
      /*    If this was initiated by a remote event, this delay messes up   */
      /*    remote key debouncing.  Just flush the buffer of any repeats.   */
      TVREMOTEFlush();
+ #endif
  }
  
  
*** remote.c.orig	Tue Jun 30 14:02:04 1998
--- remote.c	Tue Mar 23 17:46:28 1999
***************
*** 1,3 ****
--- 1,4 ----
+ #if !defined(__OpenBSD__)
  /*
   * remote.c
   *
***************
*** 734,736 ****
--- 735,738 ----
          RMPRINTF(( "TVREMOTE:  Flushing buffer (key = %d)\n", btn ));
      }
  }
+ #endif
*** tv.c.orig	Fri Feb  5 17:29:00 1999
--- tv.c	Tue Mar 23 17:51:54 1999
***************
*** 216,221 ****
--- 216,222 ----
  
  static void TVRemoteCallback( const char key[] )
  {
+ #if !defined(__OpenBSD__)
      TV_BOOL handled;
  
      /*  First, pass these through the user's Remote translation table      */
***************
*** 226,231 ****
--- 227,233 ----
          /*    generic "key" handler and take the default behavior.  */
          TVACTIONKeyEventHdlr( key, &handled );
      }
+ #endif
  }
  
  
***************
*** 639,645 ****
  }
  
  
! void main( int argc, char *argv[] )
  {
      static XtActionsRec S_tv_actions[] = {
          { "WMDeleteWindow", (XtActionProc) TVWMDeleteWindow }
--- 641,647 ----
  }
  
  
! int main( int argc, char *argv[] )
  {
      static XtActionsRec S_tv_actions[] = {
          { "WMDeleteWindow", (XtActionProc) TVWMDeleteWindow }
***************
*** 699,710 ****
--- 701,714 ----
      XtAddEventHandler( top_level, (EventMask) 0, True, _XEditResCheckMessages,
                         NULL );
  
+ #if !defined(__OpenBSD__)
      /*  Attach remote, if configured  */
      if ( App_res.remote_type[0] && !STREQ( App_res.remote_type, "None" ) && 
                                     !STREQ( App_res.remote_type, "none" ) ) {
          TVREMOTEOpen( app_context, App_res.remote_type, TVRemoteCallback );
          TVREMOTETRANSParse( XtDisplay( top_level ) );
      }
+ #endif
      
      XtVaSetValues( top_level, XtNallowShellResize, True,
                               NULL );
*** tvcapture.c.orig	Fri Feb  5 17:29:39 1999
--- tvcapture.c	Tue Mar 23 17:48:40 1999
***************
*** 50,56 ****
  #  define BT848SFMT METEORSFMT
  #endif
  
! #if defined(__FreeBSD__)
  #  define DEV_BT848   "/dev/bktr%d"
  #  define DEV_TUNER   "/dev/tuner%d"
  #elif defined(linux)
--- 50,56 ----
  #  define BT848SFMT METEORSFMT
  #endif
  
! #if defined(__FreeBSD__) || defined(__OpenBSD__)
  #  define DEV_BT848   "/dev/bktr%d"
  #  define DEV_TUNER   "/dev/tuner%d"
  #elif defined(linux)
*** tvutil.c.orig	Sun May 31 01:57:55 1998
--- tvutil.c	Tue Mar 23 17:52:27 1999
***************
*** 34,45 ****
  #include <ctype.h>
  #include <fcntl.h>
  #include <signal.h>
! #if defined(__FreeBSD__)
! #  include <sys/types.h>
! #  include <sys/sysctl.h>
! #elif defined(linux)
! #  include <linux/sysctl.h>
! #endif
  #include <unistd.h>
  #include "tvdefines.h"
  #include "tvutil.h"
--- 34,40 ----
  #include <ctype.h>
  #include <fcntl.h>
  #include <signal.h>
! #include <sys/types.h>
  #include <unistd.h>
  #include "tvdefines.h"
  #include "tvutil.h"
***************
*** 99,124 ****
  
  void CleanupChildFileDesc()
  {
!     static int Max_files_per_proc = -1;
  
! #if defined(__FreeBSD__)
!     int    mib[2] = { CTL_KERN, KERN_MAXFILESPERPROC };
! #elif defined(linux)
!     int    mib[2] = { CTL_KERN, FOPEN_MAX };
! #endif
!     int    i;
!     size_t len;
! 
!     /*  Close all file descriptors but stdin/out/err  */
!     if ( Max_files_per_proc < 0 ) {
!         len = sizeof( Max_files_per_proc );
!         if ( sysctl( mib, 2, &Max_files_per_proc, &len, NULL, 0 ) < 0 ) {
!             perror( "sysctl() failed" );
!             _exit( CHILD_PREPFAIL_STATUS );        /*  Skip atexit() functs  */
!         }
!     }
!     for ( i = 3; i < Max_files_per_proc; i++ )
!         close( i );
  }
  
  
--- 94,103 ----
  
  void CleanupChildFileDesc()
  {
!     int i;
  
!     for ( i = 3; i < getdtablesize(); i++ )
! 	close( i );
  }
  
  
*** voxware.h.orig	Sat Jan 10 09:16:51 1998
--- voxware.h	Tue Mar 23 17:44:18 1999
***************
*** 32,37 ****
--- 32,39 ----
  
  #if defined(__FreeBSD__)
  #  include <machine/soundcard.h>
+ #elif defined(__OpenBSD__)
+ #  include <soundcard.h>
  #elif defined(linux)
  #  include <sys/soundcard.h>
  #else
