anchor.diff:      sl.Clear;
       s_items:= AHotkey;
       repeat
  -      s_item:= SGetItem(s_items, '|');
  +      s_item:= SGetItem(s_items, cKeyComboSeparator);
         if s_item='' then Break;
         sl.Add(s_item);
       until false;
  
positive.code: begin
    //check-1: is key registered for any other command?
    if not AOverwriteKey then
      if AppKeymapHasDuplicateForKey(AHotkey) then exit;
  
    c:= TJSONConfig.Create(nil);
    sl:= TStringlist.create;
  
negative.code:     end;
  end;
  
  function AppKeymapHasDuplicateForKey(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 AppKeymap.Count-1 do
    begin
      item:= AppKeymap.Items[i];
  