anchor.diff:  
   // Returns S without double quotes
   Function StrUnDoubleQuote( const s: string ): string;
  +// Returns aString enclosed in single quotes
  +Function StrInSingleQuotes(const aString : String) : String;
  +// Returns aString enclosed in double quotes
  +Function StrInDoubleQuotes(const aString : String) : String;
  +
   
   //
   
  
positive.code: 
  // Returns first word from S
  Function StrFirstWord( const S: String ): string;
  
  // ------------ Seperated value utilities ---------------------
  
  
negative.code:                          Flag );
  end;
  
  function StrStartsWithIgnoringCase(const aReceiver: String; const aStartString: String): Boolean;
  var
    tmpStringPos : integer;
    tmpStartStringLength : integer;
  begin
    tmpStartStringLength := Length(aStartString);
  
    if Length(aReceiver) < tmpStartStringLength then
    begin
      result := false;
      exit;
    end;
  
    for tmpStringPos := 1 to tmpStartStringLength do
    begin
      if UpCase(aReceiver[tmpStringPos]) <> UpCase(aStartString[tmpStringPos]) then
      begin
        result := false;
        exit;
      end;
    end;
  
    result := true;
  end;
  
  function StrIsEmptyOrSpaces(const AText: string): boolean;
  begin
    Result := Trim(AText) = '';
  end;
  
  { TSerializableStringList }
  
  constructor TSerializableStringList.Create;
  begin
    LogEvent(LogObjConstDest, 'TSerializableStringList createdestroy');
    inherited Create;
    stringList := TStringList.Create;
  end;
  
  destructor TSerializableStringList.Destroy;
  begin
    LogEvent(LogObjConstDest, 'TSerializableStringList destroy');
    stringList.Free;
    inherited Destroy;
  end;
  
  function TSerializableStringList.getCount: LongInt;
  begin
    Result := stringlist.Count;
  end;
  
  function TSerializableStringList.get(const anIndex: LongInt): String;
  begin
    Result := stringList[anIndex];
  end;
  
  function TSerializableStringList.getSerializedString: String;
  var
    i: Integer;
  begin
    Result := '';
    for i := 0 to stringList.count-1 do
    begin
      if (i > 0) then result := result + '&';
      Result := Result + StrEscapeAllCharsBy(stringList[i], ['&'], '\');
    end;
  end;
  
  procedure TSerializableStringList.add(const aString: String);
  begin
    stringList.add(aString);
  end;
  
  procedure TSerializableStringList.readValuesFromSerializedString(const aSerializedString: String);
  begin
    if length(aSerializedString) < 1 then
      exit;
    LogEvent(LogObjConstDest, 'readValuesFromSerializedString');
    stringList.Clear;
    LogEvent(LogObjConstDest, 'readValuesFromSerializedString clear done');
    StrExtractStrings(stringList, aSerializedString, ['&'], '\');
  end;
  
  initialization
    InitHexDigitMap;
  
  End.
  