From cf4a631cc9e8513fbffd100fe84b30e982179fab Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 7 May 2026 08:48:43 -0600 Subject: [PATCH 1/3] Fix global var curr suit bug --- rummy/deck.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/rummy/deck.cpp b/rummy/deck.cpp index e067581..6bd9938 100644 --- a/rummy/deck.cpp +++ b/rummy/deck.cpp @@ -289,11 +289,21 @@ void Deck::CompileStream(std::istream &ss, std::map &meta curr_suit = suit_name; } } else { - std::string suit_card_name = curr_suit; - std::replace(suit_card_name.begin(), suit_card_name.end(), '/', '.'); - // use suit name as prefix - name_prefix = suit_card_name + "."; - global_name = name_prefix + local_name; + // standalone variable needs to reset curr_suit + if (local_name.find('.') != std::string::npos) { + global_name = local_name; + auto dot_pos = local_name.find_last_of('.'); + std::string suit_name = local_name.substr(0, dot_pos); + local_name = local_name.substr(dot_pos + 1, std::string::npos); + std::replace(suit_name.begin(), suit_name.end(), '.', '/'); + curr_suit = suit_name; + } else { + std::string suit_card_name = curr_suit; + std::replace(suit_card_name.begin(), suit_card_name.end(), '/', '.'); + // use suit name as prefix + name_prefix = suit_card_name + "."; + global_name = name_prefix + local_name; + } } // Variable updates From cd801a918d50ff0a1722aa23c95c006670a8012d Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 7 May 2026 08:49:09 -0600 Subject: [PATCH 2/3] Update pips --- external/pips | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/external/pips b/external/pips index b2db868..dd0d2ed 160000 --- a/external/pips +++ b/external/pips @@ -1 +1 @@ -Subproject commit b2db8688baee3f3465e679a83496ca577d192282 +Subproject commit dd0d2edee97411141b05f435f7fe386ac3d0ced8 From 5642a96409115d621e4b554f87c0fd0d7463279f Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 7 May 2026 08:59:57 -0600 Subject: [PATCH 3/3] make sure name_prefix and global_name are set --- rummy/deck.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rummy/deck.cpp b/rummy/deck.cpp index 6bd9938..442c8c5 100644 --- a/rummy/deck.cpp +++ b/rummy/deck.cpp @@ -287,15 +287,17 @@ void Deck::CompileStream(std::istream &ss, std::map &meta local_name = local_name.substr(dot_pos + 1, std::string::npos); std::replace(suit_name.begin(), suit_name.end(), '.', '/'); curr_suit = suit_name; + name_prefix = suit_name + "."; } } else { // standalone variable needs to reset curr_suit if (local_name.find('.') != std::string::npos) { - global_name = local_name; auto dot_pos = local_name.find_last_of('.'); std::string suit_name = local_name.substr(0, dot_pos); local_name = local_name.substr(dot_pos + 1, std::string::npos); std::replace(suit_name.begin(), suit_name.end(), '.', '/'); + name_prefix = suit_name + "."; + global_name = name_prefix + local_name; curr_suit = suit_name; } else { std::string suit_card_name = curr_suit;