|
Ken, Your last message regarding this finally triggered it for me. I _knew_ all along it was the 'offset vs position' thing, but due to a massive brain fart this week I couldn't for the life of me determine where to handle that 1 byte difference. To make the statement read: Eval RtnText = %Subst(MsgText:2:LMsgR) instead of: Eval RtnText = %Subst(MsgText:1:LMsgR) just grated on me to no end. Since Brad had essentially written this and I was swiping statements (Hi Brad!) right out of his code, I knew he had to have handled it somewhere. But the source for V4R3 and later was unavailable to me. The source _I_ had access to was V4R2 and earlier. Anyway I started thinking about it again and it hit me. The field MsgText is defined like this: D WPMsgText DS Based(TextPtr) D MsgText 132 The previous statement in the source setting the pointer reads: Eval TextPtr = %Addr(Data(OsMsg)) 'Data' is an array defined 1A Dim(32767). So since OsMsg is an _offset_ not a _position_, I changed this statement to: Eval TextPtr = %Addr(Data(OsMsg + 1)) and now I feel better. And it works, too. -- -Jeff The opinions expressed are my own and not necessarily the opinion of my company. Unless I say so.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.