Merge pull request #5592 from keymanapp/chore/developer/5013-deadkey-value-1-based

chore(developer): debug deadkey 1-based values 🐞
This commit is contained in:
Marc Durdin 2021-08-20 10:51:16 +10:00 • committed by GitHub
commit 3456ec6a8b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 6 deletions

View file

@ -421,7 +421,7 @@ begin
context_items[n]._type := KM_KBP_CT_MARKER;
dk := FDeadkeys.GetFromPosition(i-1);
Assert(Assigned(dk));
context_items[n].marker := dk.Deadkey.Value+1; // TODO: remove +1 -1 messes for deadkey codes //GetDeadkeyMarker(i);
context_items[n].marker := dk.Deadkey.Value;
end
else
begin
@ -784,7 +784,7 @@ procedure TfrmDebug.ExecuteEventAction(n: Integer);
dk.Memo := memo;
dk.Deadkey := nil;
for i := 0 to debugkeyboard.Deadkeys.Count - 1 do
if debugkeyboard.Deadkeys[i].Value+1 = dkCode then
if debugkeyboard.Deadkeys[i].Value = dkCode then
begin
dk.Deadkey := debugkeyboard.Deadkeys[i];
Break;

View file

@ -255,7 +255,7 @@ begin
for i := 0 to DebugKeyboard.Deadkeys.Count - 1 do
if DebugKeyboard.Deadkeys[i].name = name then
begin
Result := DebugKeyboard.Deadkeys[i].Value+1;
Result := DebugKeyboard.Deadkeys[i].Value;
Exit;
end;
end;
@ -445,7 +445,7 @@ var
i: Integer;
begin
for i := 0 to FRegressionTest.DebugKeyboard.Deadkeys.Count - 1 do
if FRegressionTest.DebugKeyboard.Deadkeys[i].Value+1 = dkCode then
if FRegressionTest.DebugKeyboard.Deadkeys[i].Value = dkCode then
begin
Result := FRegressionTest.DebugKeyboard.Deadkeys[i].Name;
Exit;

View file

@ -87,7 +87,7 @@ begin
if dk.Position = startpos then
begin
s[i] := WChr(UC_SENTINEL);
s := Copy(s, 1, i) + WChr(CODE_DEADKEY) + WChr(dk.Deadkey.Value+1) + Copy(s, i+1, Length(s));
s := Copy(s, 1, i) + WChr(CODE_DEADKEY) + WChr(dk.Deadkey.Value) + Copy(s, i+1, Length(s));
Inc(i, 2);
Break;
end;

View file

@ -218,7 +218,10 @@ begin
dk := TDebugDeadKey.Create;
DeadKeys.Add(dk);
n := Pos(' ', s); if n = 0 then n := Length(s)+1;
dk.Value := StrToIntDef(Copy(s,1,n-1), -1);
// The deadkey value stored in the debug data is zero-based but
// we need to work with a 1-based value (0 conflates with
// end-of-string in extended strings)
dk.Value := StrToIntDef(Copy(s,1,n-1), -2) + 1;
dk.Name := Copy(s,n+1, 128);
end
else