From e07ce12dddb83f509fee7906c5c9a8141a16ab0d Mon Sep 17 00:00:00 2001 From: Ven0m0 <82972344+Ven0m0@users.noreply.github.com> Date: Sun, 3 May 2026 04:54:51 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=A7=AA=20Add=20tests=20for=20SetKey=20edg?= =?UTF-8?q?e=20cases=20and=20fix=20regex=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- .../v2/CitraConfigHelpers.ahk | 2 +- .../v2/CitraConfigHelpers_Test.ahk | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Other/Citra_per_game_config/v2/CitraConfigHelpers.ahk b/Other/Citra_per_game_config/v2/CitraConfigHelpers.ahk index 48a40fc..3decac3 100644 --- a/Other/Citra_per_game_config/v2/CitraConfigHelpers.ahk +++ b/Other/Citra_per_game_config/v2/CitraConfigHelpers.ahk @@ -38,7 +38,7 @@ RegExEscape(str) { SetKey(content, key, value) { pat := "m)^(" . RegExEscape(key) . ")\s*=.*$" if RegExMatch(content, pat) - return RegExReplace(content, pat, "$1=" value, , 1) + return RegExReplace(content, pat, "$1=" StrReplace(value, "$", "$$"), , 1) else return content "`n" key "=" value } diff --git a/Other/Citra_per_game_config/v2/CitraConfigHelpers_Test.ahk b/Other/Citra_per_game_config/v2/CitraConfigHelpers_Test.ahk index d1c56b0..cb88443 100644 --- a/Other/Citra_per_game_config/v2/CitraConfigHelpers_Test.ahk +++ b/Other/Citra_per_game_config/v2/CitraConfigHelpers_Test.ahk @@ -73,6 +73,22 @@ TestSetKey() { content2 := "path\to\file=exists`n" result := SetKey(content2, "path\to\file", "updated") AssertEqual(InStr(result, "path\to\file=updated") > 0, true, "SetKey updates key with backslashes") + + ; Test 6: Empty value + result := SetKey(content, "key1", "") + AssertEqual(InStr(result, "key1=") > 0 && InStr(result, "key1=value1") == 0, true, "SetKey handles empty value") + + ; Test 7: Value with literal $ sign + result := SetKey(content, "key1", "val$ue") + AssertEqual(InStr(result, "key1=val$ue") > 0, true, "SetKey handles value with literal $ sign") + + ; Test 8: Value with literal $1 + result := SetKey(content, "key2", "val$1ue") + AssertEqual(InStr(result, "key2=val$1ue") > 0, true, "SetKey handles value with literal $1") + + ; Test 9: Add new key with $ sign + result := SetKey(content, "key4", "new$val") + AssertEqual(InStr(result, "key4=new$val") > 0, true, "SetKey adds new key with $ sign") } TestReplaceInFile() {