anchor.diff:          repeat
             SetLength(STemp, Length(STemp)-1);
             S:= STemp+DotsString;
  -        until (Length(S)<=cMinLen) or (C.TextWidth(UTF8Encode(S))<=Width);
  +        until (Length(S)<=cMinLen) or (C.TextWidth(S)<=Width);
         end;
     end;
   
  -  Result:= UTF8Encode(S);
  +  Result:= S;
   end;
   
   
  
positive.code:   S, STemp: UnicodeString;
    N, i: integer;
  begin
    if Mode=attcNone then exit(Text);
    if C.TextWidth(Text)<=Width then exit(Text);
  
    S:= UTF8Decode(Text);
    STemp:= S;
  
    case Mode of
  
negative.code:         begin
            N:= (Length(STemp)+1) div 2 - i div 2;
            S:= Copy(STemp, 1, N)+DotsString+Copy(STemp, N+i, MaxInt);
            if (Length(S)<=cMinLen) or (C.TextWidth(S)<=Width) then Break;
          end;
        end;
  
  