# change the status of a line

chline=!trim $chline
!if $chline=$empty
 error=empty_data
 !exit
!endif
chline=$[rint($chline)]
!if NaN isin $chline
 error=bad_data
 !exit
!endif
!if $chline<1 or $chline>$linecnt
 error=out_range
 !exit
!endif

incidence=!line $chline of $inciline
parm1=!trim $parm1
parm2=!trim $parm2
!if $parm1!=$empty
 parm1=$[$parm1]
 !if $parm1 notitemof $incidence
  error=out_range
  !exit
 !endif
!endif
!if $parm2!=$empty
 parm2=$[$parm2]
 !if $parm2 notitemof $incidence
  error=out_range
  !exit
 !endif
 !if $parm1=$parm2
  error=same_line
  !exit
 !endif
!endif

l=!line $chline of $lines
l=!replace item number 5 by $minor in $l
!if $parm1$parm2!=$empty and $minor isin 1 3 4
 !distribute item $l into x1,y1,x2,y2
 !distribute item ,,, into xx1,yy1,xx2,yy2
 !if $parm1!=$empty
  ll=!line $parm1 of $points
  !distribute item $ll into xx1,yy1
 !endif
 !if $parm2!=$empty
  ll=!line $parm2 of $points
  !distribute item $ll into xx2,yy2
 !endif
 !if $xx1!=$empty
  !if $xx2!=$empty or abs($xx1-($x2))+abs($yy1-($y2))>$closeness
   l=!replace item number 1 by $xx1 in $l
   l=!replace item number 2 by $yy1 in $l
  !endif
 !endif
 !if $xx2!=$empty
  !if $xx1!=$empty or abs($xx2-($x1))+abs($yy2-($y1))>$closeness
   l=!replace item number 3 by $xx2 in $l
   l=!replace item number 4 by $yy2 in $l
  !endif
 !endif
!endif

lines=!replace line number $chline by $l in $lines

