anchor.diff:      beside(lay(S, Ctxt), beside(text("."),
   				lay_qualified_name_1(Ss, Ctxt))).
   
  +
  +
  +%% lay_string/1 defined by Huiqing Li;
  +lay_string([]) -> empty();
  +lay_string([{string, _, Str}]) ->
  +    text(io_lib:write_string(Str));
  +lay_string([{string, _, Str}|Ts]) ->
  +    case Ts of 
  +	[] -> 
  +	    text(io_lib:write_string(Str));
  +	_ -> above(text(io_lib:write_string(Str)), lay_string(Ts))
  +    end.
  +    
  +
   lay_string(S, Ctxt) ->
       %% S includes leading/trailing double-quote characters. The segment
       %% width is 2/3 of the ribbon width - this seems to work well.
  
positive.code: 	    text(erl_syntax:char_literal(Node));
  	
  	string ->
  	    lay_string(erl_syntax:string_literal(Node), Ctxt);
  
  	nil ->
  	    text("[]");
  
  
negative.code: 
  
  %% =====================================================================
  get_start_line(Node) ->
      case refac_util:get_range(Node) of 
  	{{L, _C}, _} ->
  	     L;
  	_ -> 0
      end.
  
  get_end_line(Node) ->
      case refac_util:get_range(Node) of 
  	{_, {L, _C}} ->
  	    L;
  	_-> 0
      end.
      
  