Alaska Software Inc. - Re: User able to bypass VALID by pressing Escape (PDR ID 6217 ":original wrong when execution VALID clause")
Username: Password:
AuthorTopic: Re: User able to bypass VALID by pressing Escape (PDR ID 6217 ":original wrong when execution VALID clause")
Andreas Gehrs-Pahl

View the complete thread for this message in:

Re: User able to bypass VALID by pressing Escape (PDR ID 6217 ":original wrong when execution VALID clause")
on Thu, 27 Aug 2015 16:03:11 -0400
Patrick,

>We have several legacy Clipper applications that have been converted to 
>xBase++, and we are trying to address a problem where users are able to 
>press Escape to bypass the VALID (postblock).  We found the above 
>referenced PDR in the KB, but this issue has apparently been open for a 
>very long time.

I'm not sure if this PDR applies to your issue or not. The issue described 
in this PDR is simply the fact that the GetActive():Original value changes 
to the same value as the GetActive():Buffer value, when data is entered, and 
doesn't keep its "Original" value.

The fact that the ESC key will always cancel a Read -- while ignoring and 
not executing the Valid clause -- is the same behavior as you will get in 
Clipper. So I'm not quite sure what your actual issue is.

>We're wondering what others have done to address this issue.  We 
>considered modifying GetReader in GetSys.prg (possibly to use :Cargo), 
>but that seemed drastic and we weren't sure how to link the application 
>to replace the default GetSys.

I'm not sure if you want to change the GetReader in the "GetSys.prg" file, 
but if you do, simply do the following in the "\Source\Runtime\Sys\" 
directory:

PBuild Project.xpj

Then copy the file: "\Source\Runtime\Sys\Lib\XppSys.dll" into your Runtime 
and Lib directories and "\Source\Runtime\Sys\Lib\XppSys.lib" in the Lib 
directory. You may want to keep a copy of any modified and created files 
in a separate location, though, as updating to a newer (or restoring an 
older) Xbase++ version will eradicate those files and any changes you may 
have made.

If you still use Xbase++ 1.9 (or earlier), then the "GetSys.prg" file will 
be in the "\XppW32\Source\Sys\" directory, while the corresponding Project 
file will be here: "\XppW32\Source\DLL\Project.xpj". The resulting DLL and 
LIB files will be in the "\XppW32\Source\DLL\Lib" directory.

Hope that helps,

Andreas

Andreas Gehrs-Pahl
Absolute Software, LLC

phone: (989) 723-9927
email: Andreas.GP@Charter.net
web:   http://www.Aerospace-History.net