anchor.diff:  	{ok, Bin} ->
   	    Acc = binary_to_list(Bin),
   	    if
  +		Remain == dot ->
  +		    case find_dot(Acc, State#pstate.dotstate) of
  +			{more, DotState} ->
  +			    State2 = State#pstate{acc=[],
  +						  dotstate=DotState,
  +						  lines=[Acc|State#pstate.lines],
  +						  more=true},
  +			    {more, State2};
  +			{ok, DotState, Lines, NAcc} ->
  +			    
  +			    State2 = State#pstate{acc=NAcc,
  +						  dotstate=DotState,
  +						  lines=[Lines|State#pstate.lines],
  +						  more=false},
  +			    {done, State2}
  +		    end;
   		Remain =< length(Acc) ->
   		    {Lines, NAcc} = split_at(Acc, Remain),
   		    State2 = State#pstate{acc=NAcc,
  
positive.code: 	  lines,
  	  reply=[],
  	  more=true,
  	  remain
  	 }).
  
  -record(satt, {
  
negative.code: 
  %%
  
  %% State = 
  
  find_dot(Data, State) ->
      find_dot(State, Data, []).
  
  find_dot(State, [], Acc) ->
      {more, State};
  
  find_dot(0, [$\r|R], Acc) ->
      find_dot(1, R, [$\r|Acc]);
  find_dot(0, [C|R], Acc) ->
      find_dot(1, R, [C|Acc]);
  
  find_dot(1, [$\n|R], Acc) ->
      find_dot(2, R, [$\n|Acc]);
  find_dot(1, R, Acc) ->
      find_dot(0, R, Acc);
  
  find_dot(2, [$.|R], Acc) ->
      find_dot(3, R, [$\.|Acc]);
  find_dot(2, R, Acc) ->
      find_dot(0, R, Acc);
  
  find_dot(3, [$\r|R], Acc) ->
      find_dot(4, R, [$\r|Acc]);
  find_dot(3, R, Acc) ->
      find_dot(0, R, Acc);
  
  find_dot(4, [$\n|R], Acc) ->
      {ok, 0, lists:reverse(Acc), R};
  find_dot(4, R, Acc) ->
      find_dot(0, R, Acc).
  
  