Corrections to the 1st printing of the Hacker's Guide to Visual FoxPro.

Thanks to all of our readers who caught us on errors, misstatements, and omissions.

Pg. vi. Brad Schulz's name is misspelt<g>. Sorry, Brad!

Pg. ix. Tamar's CompuServe id is 73227,3303.

Pg. 96. APPEND FROM <table> FOR DELETED() does copy all deleted records; this is because the deleted flag is now copied with the record. However, basing the FOR clause of APPEND FORM on a reference to a field of the source table is still a problem.

Pg. 100. The problem with Visual FoxPro parsing a continuation semi-colon with no preceding space and the next line beginning at the margin has been fixed. A command like:

SELECT *;

FROM MyTable

does execute correctly in 3.0; earlier versions of FoxPro do have this problem, however.

Pg. 106. In the ZAP section, it is SET SAFETY, and not SET CONFIRM, which pops up the confirmation dialog.

Pg. 174. In the Usage diagram for ADEL(), there should be an "=" between nReturn and ADEL, as follows:

nReturn = ADEL( aArray, nPos [, nRowOrCol ] )

Pg. 224. In the next-to-last line, the constant should be 1040187392 not 503316480.

Pg. 267. The 3rd line should be:

? oContainer[1].NewOne.Name && Returns "NewOne"

Pg. 438. Note that GETFLDSTATE() returns .NULL. when the record pointer is at EOF().

Pg. 442. In the Usage diagram and parameter table for PEMSTATUS(), cAttribute should be nAttribute.

Pg. 496. At least in 3.0b (we no longer have 3.0 available for testing), the arrow keys do reflect modifiers when passed to KeyPress. However, some keys do not.

Pg. 505. The last line of the Usage diagram for List and ListItem should be:

cValue = oObject.ListItem(nItemId [,nColumn ])

Pg. 537. In the first table, the values for 2 and 4 should be reversed. A value of 2 produces the "Abort, Retry, Ignore" dialog while 4 gives the options of "Yes, No."

Pg. 701, at the bottom, Brad Schulz suggests that you can get the name of the printer back by creating a dummy report and parsing the field EXPR in the first record of the FRX.

Pg. 821. In the bug comment on the bottom of the page, we were mistaken in thinking that DOS switched printer ports. In DOS, too, you need to SET PRINTER TO LPTx:

Pg. 824, in the Usage lines for _PLENGTH and _PLINENO, both should be preceded by an underscore.

Pg. 878. The author of GENMENUX is Andrew Ross MacNeill. James Hollingsworth is the author of the Restart utility.

Thanks to everyone who pointed out our mistakes, including Steve Black, Dan Freeman, Chain Caron, Paul Maskens, Brad Schulz, Doug Hennig, Andrew Ross MacNeill, Hans Remiens and Edwin Weston.