v3.23.8 review: the mixed-case command lookup and the flat-list docs
Two findings from the review of2b994a7(andc9ab15c, reviewed clean): - trCommandCode() uppercased the query but compared it with the raw CMD_NAMES values, so the one mixed-case entry ('End of the proactive UICC session', 0x81) never matched. No visible effect today (0x81 has no table entry - it falls back to the flat list), but a future map entry for a mixed-case name would silently not group. The comparison is now case-insensitive, pinned by a test. - The docs now say that the commands the spec's tables omit (SEND SS / SEND USSD / SEND SHORT MESSAGE / GEOGRAPHICAL LOCATION REQUEST / End of the proactive UICC session) keep the flat list, like ANY and the drain's rows. Also added independent semantic pins for the parsed table (REFRESH 03/08, PLAY TONE 09, TIMER MANAGEMENT 24, LAUNCH BROWSER 26, OPEN CHANNEL 28/3A/3B, the MMS commands 27/3D, GET READER STATUS 38 - a column-shift regression in the parse would break them). 861 frontend + 842 Python.
This commit is contained in:
+3
-1
@@ -8094,7 +8094,9 @@ const TR_RESULT_ALIASES = {
|
||||
function trCommandCode(name) {
|
||||
const want = String(name === undefined || name === null ? '' : name).toUpperCase();
|
||||
for (const k in CMD_NAMES) {
|
||||
if (CMD_NAMES[k] === want) return parseInt(k, 16);
|
||||
// case-insensitive: CMD_NAMES carries a mixed-case entry
|
||||
// ('End of the proactive UICC session')
|
||||
if (String(CMD_NAMES[k]).toUpperCase() === want) return parseInt(k, 16);
|
||||
}
|
||||
return NaN;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user