CheckIfText still enforces the old 1.0-era rule that each text chunk may contain at most a single \1 and \2 placeholder. CheckIfText increments dh/dl when it finds a placeholder but immediately compares the byte against 1 and falls into clrDXThenFail if the placeholder appears twice, so the chunk is never stored as text. The TextStringArgs structure was widened to hold counts. The rest of ResEdit (e.g., CheckItemForStringArgs) already interprets RAD_stringArgs as real counters, decrementing them until every @1/@2 in the translation is accounted for, so it expects the parser to preserve the actual counts instead of rejecting repeated placeholders.
CheckIfText still enforces the old 1.0-era rule that each text chunk may contain at most a single \1 and \2 placeholder. CheckIfText increments dh/dl when it finds a placeholder but immediately compares the byte against 1 and falls into clrDXThenFail if the placeholder appears twice, so the chunk is never stored as text. The TextStringArgs structure was widened to hold counts. The rest of ResEdit (e.g., CheckItemForStringArgs) already interprets RAD_stringArgs as real counters, decrementing them until every @1/@2 in the translation is accounted for, so it expects the parser to preserve the actual counts instead of rejecting repeated placeholders.