When the "new" version of the equate was compiled under Information flavor, the compiler warned that it was a Reality style LOCATE.
To its credit, the compiler defers the evaluation of the EQU until it is used, at which point, it evaluates it in context, so the compiler is evaluating "VALID.CC.TYPES<1,1>" as "A':@VM:'B':@VM:'D':@VM:'M':@VM:'S':@VM:'V'<1,1>" The vlist output below gives a good hint as to what is going on. Notice that the <field,value> is being applied to the last value of the EQU string prior to doing the build with the rest of the codes. In the Reality format, it is legitimate to omit the <field,value> specifier, in which case the program will do a field level search rather than a value level search. This quirk would only show up with the use of an EQUATE rather than a variable assignment. If you feel compelled to use an EQUATE for the codes, you could overcome the issue with a temporary assignment such as EQU VALID.CC.TYPES TO 'A':@VM:'B':@VM:'D':@VM:'M':@VM:'S':@VM:'V' ... CC.TYPES = VALID.CC.TYPES LOCATE X IN CC.TYPES<1,1> ... --------- VLIST of LOCATE on original equate ------------------ 00005: LOCATE X IN VALID.CC.TYPES<1,1> BY 'AL' SETTING LP THEN Press any key to continue... 00005 0000E : 060 dyn_extract "V" 1 1 0 => $R0 00005 0001A : 03A concat "A}B}D}M}S}" $R0 => $R1 00005 00022 : 0D4 locate X $R1 1 0 0 "AL" => LP 00005 00032 : 0C4 jumpf ------- u2-users mailing list [email protected] To unsubscribe please visit http://listserver.u2ug.org/
