anchor.diff:    path, s_item: string;
     Sep: TATStringSeparator;
   begin
  -  //check-1: is key registered for any other command?
  -  if not AOverwriteKey then
  -    if Keymap_HasDuplicateForKey(AKeymap, AHotkey, cKeyComboSeparator) then exit;
  -
     if ALexerName<>'' then
       SFilename:= AppFile_HotkeysForLexer(ALexerName)
     else
  
positive.code:       exit(item.Command);
    end;
  end;
  
  function Keymap_HasDuplicateForKey(AKeymap: TATKeymap; AHotkey, AKeyComboSeparator: string): boolean;
  var
    item: TATKeymapItem;
    i: integer;
  begin
    Result:= false;
    if AHotkey='' then exit;
  
    //KeyArrayToString has separator ' * '
    AHotkey:= StringReplace(AHotkey, AKeyComboSeparator, ' * ', [rfReplaceAll]);
  
    for i:= 0 to AKeymap.Count-1 do
    begin
      item:= AKeymap.Items[i];
      if (item.Keys1.ToString=AHotkey) or
         (item.Keys2.ToString=AHotkey) then exit(true);
    end;
  end;
  
  
  procedure Keymap_LoadConfig(AKeymap: TATKeymap; const AFileName: string; AForLexer: boolean);
  var
  
negative.code: 
      path:= AModuleName+','+AMethodName;
  
      //check: this command has already any key?
      if not AOverwriteKey then
        if c.GetValue(path+'/s1', sl, '') then exit;
  
  