diff -Ncr src/bin/idraw/idarrows.c src/bin/idraw/idarrows.c
*** src/bin/idraw/idarrows.c	Sat Feb  6 19:11:32 1999
--- src/bin/idraw/idarrows.c	Sat Feb  6 19:05:49 1999
***************
*** 295,311 ****
  }
  
  boolean ArrowMultiLine::contains (PointObj& po, Graphic* gs) {
!     return 
!         SF_MultiLine::contains(po, gs) || 
!         Head() && ArrowheadContains(_head, po, gs) ||
!         Tail() && ArrowheadContains(_tail, po, gs);
  }
  
  boolean ArrowMultiLine::intersects (BoxObj& bo, Graphic* gs) {
!     return 
!         SF_MultiLine::intersects(bo, gs) || 
!         Head() && ArrowheadIntersects(_head, bo, gs) ||
!         Tail() && ArrowheadIntersects(_tail, bo, gs);
  }
  
  void ArrowMultiLine::draw (Canvas* c, Graphic* gs) {
--- 295,331 ----
  }
  
  boolean ArrowMultiLine::contains (PointObj& po, Graphic* gs) {
!     PSPattern *pat;
!     boolean ret;
! 
!     if (Head() || Tail()) {
! 	pat = gs->GetPattern();
! 	gs->SetPattern(psnonepat);
!     }	
!     ret = (SF_MultiLine::contains(po, gs)
! 	   || (Head() && ArrowheadContains(_head, po, gs))
! 	   || (Tail() && ArrowheadContains(_tail, po, gs)));
!     if (Head() || Tail()) {
! 	gs->SetPattern(pat);
!     }
!     return ret;
  }
  
  boolean ArrowMultiLine::intersects (BoxObj& bo, Graphic* gs) {
!     PSPattern *pat;
!     boolean ret;
! 
!     if (Head() || Tail()) {
! 	pat = gs->GetPattern();
! 	gs->SetPattern(psnonepat);
!     }	
!     ret = (SF_MultiLine::intersects(bo, gs)
! 	   || (Head() && ArrowheadIntersects(_head, bo, gs))
! 	   || (Tail() && ArrowheadIntersects(_tail, bo, gs)));
!     if (Head() || Tail()) {
! 	gs->SetPattern(pat);
!     }
!     return ret;
  }
  
  void ArrowMultiLine::draw (Canvas* c, Graphic* gs) {
***************
*** 486,502 ****
  }
  
  boolean ArrowOpenBSpline::contains (PointObj& po, Graphic* gs) {
!     return 
!         SFH_OpenBSpline::contains(po, gs) || 
!         Head() && ArrowheadContains(_head, po, gs) ||
!         Tail() && ArrowheadContains(_tail, po, gs);
  }
  
  boolean ArrowOpenBSpline::intersects (BoxObj& bo, Graphic* gs) {
!     return 
!         SFH_OpenBSpline::intersects(bo, gs) || 
!         Head() && ArrowheadIntersects(_head, bo, gs) ||
!         Tail() && ArrowheadIntersects(_tail, bo, gs);
  }
  
  void ArrowOpenBSpline::draw (Canvas* c, Graphic* gs) {
--- 506,542 ----
  }
  
  boolean ArrowOpenBSpline::contains (PointObj& po, Graphic* gs) {
!     PSPattern *pat;
!     boolean ret;
! 
!     if (Head() || Tail()) {
! 	pat = gs->GetPattern();
! 	gs->SetPattern(psnonepat);
!     }	
!     ret = (SFH_OpenBSpline::contains(po, gs)
! 	   || (Head() && ArrowheadContains(_head, po, gs))
! 	   || (Tail() && ArrowheadContains(_tail, po, gs)));
!     if (Head() || Tail()) {
! 	gs->SetPattern(pat);
!     }
!     return ret;
  }
  
  boolean ArrowOpenBSpline::intersects (BoxObj& bo, Graphic* gs) {
!     PSPattern *pat;
!     boolean ret;
! 
!     if (Head() || Tail()) {
! 	pat = gs->GetPattern();
! 	gs->SetPattern(psnonepat);
!     }	
!     ret = (SFH_OpenBSpline::intersects(bo, gs)
! 	   || (Head() && ArrowheadIntersects(_head, bo, gs))
! 	   || (Tail() && ArrowheadIntersects(_tail, bo, gs)));
!     if (Head() || Tail()) {
! 	gs->SetPattern(pat);
!     }
!     return ret;
  }
  
  void ArrowOpenBSpline::draw (Canvas* c, Graphic* gs) {
