-+-+-+-+-+-+-+-+ START OF PART 2 -+-+-+-+-+-+-+-+ X '`09subl`09#108,sp`09`09' ! ; end of outbuf X '`09movl`09sp,-(r2)`09' ! ; make outbuf X '`09movzwl`09#100,-(r2)`09' ! ; make outbuf X '`09pushl`09r5`09`09`09' ! ; #5 Second sub string A X '`09pushl`09r6`09`09`09' ! ; #4 first sub string B X '`09pushl`09r2`09`09`09' ! ; #3 outbuf X '`09pushl`09r3`09`09`09' ! ; #2 outlen X '`09pushl`09r4`09`09`09' ! ; #1 ctrstr X '`09calls`09#5,@#7FFEDF50`09`09' ! ; calls #05,g`5Esys$fao X '`09blbs`09r0,N103$' X '`09jmp`09cdberr' X 'N103$:`09movw`09(r3),(r2)`09`09' ! ; complete ptr to final text X '`09jmp`09cdbcom' X !; check if all alpha numerical + .-_$% returns non zero`20 X 'cdbck1:`09cmpb`09#`5Ex41,(r1)' X '`09bgtr`09cdbck11' X '`09cmpb`09#`5Ex5A,(r1)' X '`09bgeq`09cdbck19' X 'cdbck11: cmpb`09#`5Ex61,(r1)' X '`09bgtr`09cdbck12' X '`09cmpb`09#`5Ex7A,(r1)' X '`09bgeq`09cdbck19' X 'cdbck12: cmpb`09#`5Ex30,(r1)' X '`09bgtr`09cdbck13' X '`09cmpb`09#`5Ex39,(r1)' X '`09bgeq`09cdbck19' X 'cdbck13: cmpb`09#`5Ex24,(r1)' X '`09beql`09cdbck19' X '`09cmpb`09#`5Ex25,(r1)' X '`09beql`09cdbck19' X '`09cmpb`09#`5Ex2D,(r1)' X '`09beql`09cdbck19' X '`09cmpb`09#`5Ex2E,(r1)' X '`09beql`09cdbck19' X '`09cmpb`09#`5Ex5F,(r1)' X '`09rsb' X 'cdbck19: incl`09r1' X '`09sobgtr`09r0,cdbck1' X '`09rsb' X !; check if we have at least one dot (then r0 > 0) X 'cdbck2:`09cmpb`09#`5Ex2E,(r1)' X '`09bneq`09cdbck29' X '`09rsb' X 'cdbck29: incl`09r1' X '`09sobgtr`09r0,cdbck2' X '`09rsb' X !; X 'cdberr: movab`09@B`5E4(ap),r2`09' !; If SYS$FAO fails, use original V addr X 'cdbcom:`09MOVQ #`5EX00000001,-(SP)' X '`09movl`09B`5E8(ap),-(sp)' X '`09pushl`09r2' X '`09CALLS #04,L`5EADD_ADDR' X '`09ret`09`09`09' !; this is the only RET for ALTER_TO XEXI X! Above was the new code X! Below is the patch in the existing code that X! will make use of the ALTER_TO new code XRE XMAIL$$ADD_ADDR X'MOVQ #`5EX00000001,-(SP)' X'MOVQ B`5E04(AP),-(SP)' X'CALLS #04,W`5EADD_ADDR' X'RET' XEXIT X'MOVQ B`5E04(AP),-(SP)' X'CALLS #02,ALTER_TO' X'RET' XEXIT X! And now update if we reached this point without a single error XU X!---------------------- end of patch ---------------------- $ CALL UNPACK MAILSHR_PATCH_FOR_AT_02.COM;11 1534595522 $ v=f$verify(v) $ EXIT