anchor.diff:  insert_chars(Chars, {Buf, BufTail, Col}, Tty) ->
       {NewBuf, _NewBufTail, WriteBuf, NewCol} =
   	conv_buf(Chars, Buf, [], [], Col),
  -    M = move_cursor(NewCol + length(BufTail), NewCol, Tty),
  +    M = move_cursor(special_at_width(NewCol+length(BufTail), Tty), NewCol, Tty),
       {[WriteBuf, BufTail | M], {NewBuf, BufTail, NewCol}}.
   
   %%% delete characters at current position, (backwards if negative argument)
  
positive.code: 	       J -> get_tty_command(down, J, Type)
  	   end,
      [Tcol | Trow].
  
  %% %%% write out characters
  %% %%% make sure that there is data to send
  
negative.code:     NewBuf = nthtail(-N, Buf),
      NewCol = case Col + N of V when V >= 0 -> V; _ -> 0 end,
      M1 = move_cursor(Col, NewCol, Tty),
      M2 = move_cursor(special_at_width(NewCol+length(BufTail)-N, Tty), NewCol, Tty),
      {[M1, BufTail, lists:duplicate(-N, $ ) | M2],
       {NewBuf, BufTail, NewCol}}.
  
  