ecMacroRec

procedure TecMacroRecorder.BeforeCommand

       case Command of
         smGotoXY,
         smGotoXY+smSelection: //AT
           FRecorded.Add(Command, GetRelativePos);

function TecMacroRecorder.Play

          //AT
          smGotoXY,
          smGotoXY+smSelection:
           begin
            p := GetAbsolutePos(m[i].Data);
            //swap smGotoXY and smGotoXY+smSelection because they really swapped here (why?)
            Cmd := m[i].Command;
            if Cmd<smSelection then
              Inc(Cmd, smSelection)
            else
              Dec(Cmd, smSelection);
            SyntMemo.ExecCommand(Cmd, {$IFNDEF EC_DOTNET}@{$ENDIF}p);
           end;
