home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a009 / 5.ddi / DOC.LIF / ERRATA.DOC < prev   
Encoding:
Text File  |  1991-04-14  |  21.5 KB  |  860 lines

  1. Document:    Clipper 5.0 Documentation Errata
  2.              Copyright (c) 1991, Nantucket Corporation
  3.  
  4. Version:     5.01a (April 19, 1991)
  5.  
  6. Summary:     This document gives a summary of corrections that should be
  7.              made to your printed documentation.  This document is
  8.              organized by book, chapter, and page number.
  9.  
  10. ========================================================================
  11. 1  Getting Started
  12.  
  13. 1.1  Chapter 1: Installation
  14.  
  15. 1.1.1  Page 1-4 Clipper 5.0 Development Environment Directory Structure
  16.  
  17. Table 1-1 should read:
  18.    
  19.    \CLIPPER5
  20.       .
  21.       .
  22.       .
  23.       \SOURCE
  24.          .
  25.          .
  26.          .
  27.          \SAMPLE
  28.          \SYS           Subsystem source files
  29.  
  30. ------------------------------------------------------------------------
  31. 1.2  Chapter 3: Creating a First Program
  32.  
  33. 1.2.1  Page 3-2 Linking Your Program
  34.  
  35. The .RTLink command-line should read:
  36.  
  37.    RTLINK FILE First
  38.  
  39. ========================================================================
  40. 2  Quick Reference
  41.  
  42. 2.1  Chapter 1: Statements
  43.  
  44. 2.1.1  Page 1-5 STATIC
  45.  
  46. Last sentence on this page should read:
  47.  
  48.    Static variables are visible only within the procedure or program
  49.    (.prg) file in which they are declared and have a lifetime of the
  50.    entire program.
  51.  
  52. ------------------------------------------------------------------------
  53. 2.2  Chapter 3: Standard Commands
  54.  
  55. 2.2.1  Page 3-15 USE
  56.  
  57. The syntax for the ALIAS clause should read:
  58.    
  59.    [ALIAS <xcAlias>]
  60.  
  61. ------------------------------------------------------------------------
  62. 2.3  Chapter 4: Standard Functions
  63.  
  64. 2.3.1  Page 4-6 DEVPOS()
  65.  
  66. The syntax for this function should read:
  67.  
  68.    DEVPOS(<nRow>, <nCol>) --> NIL
  69.  
  70.  
  71. 2.3.2  Page 4-7 EXP()
  72.  
  73. The syntax for EXP() should read:
  74.  
  75.    EXP(<nExponent>) --> nExp
  76.  
  77.  
  78. 2.3.3  Page 4-8 FIELDNAME()
  79.  
  80. The syntax for this function should read:
  81.  
  82.    FIELDNAME(<nPosition>) --> cFieldName
  83.  
  84.  
  85. 2.3.4  Page 4-9 FRENAME()
  86.  
  87. The syntax for FRENAME() should read:
  88.  
  89.    FRENAME(<cOldFile>, <cNewFile>) --> nSuccess
  90.  
  91.  
  92. 2.3.5  Page 4-10 INKEY()
  93.  
  94. The last clause of the description should read:
  95.  
  96.    ..., and returns its INKEY() code as a numeric value.
  97.  
  98.  
  99. 2.3.6  Page 4-11 LASTKEY()
  100.  
  101. The description for this function should read:
  102.  
  103.    Returns the INKEY() code of the last key extracted from the keyboard.
  104.  
  105.  
  106. 2.3.7  Page 4-13 NETERR()
  107.  
  108. The description for this function should read:
  109.  
  110.    Returns true (.T.) if a USE, USE...EXCLUSIVE, USE...SHARED, APPEND
  111.    BLANK, FLOCK(), or RLOCK() fails in a network environment.
  112.  
  113.  
  114. 2.3.8  Page 4-14 NEXTKEY()
  115.  
  116. The description for this function should read:
  117.  
  118.    Returns the INKEY() code of the next key pending in the keyboard as a
  119.    numeric value.
  120.  
  121.  
  122. 2.3.9  Page 4-16 ROUND()
  123.  
  124. The description for this function should begin as follows:
  125.  
  126.    Returns <nNumber> rounded to...
  127.  
  128. ------------------------------------------------------------------------
  129. 2.4  Chapter 5: Standard Classes
  130.  
  131. 2.4.1  Page 5-1 - 5-2 Error Class, Exported Instance Variables
  132.  
  133. Add "assignable" to all Error class exported instance variable syntax
  134. statements.
  135.  
  136.  
  137. 2.4.2  Page 5-3 GetNew(), Class Function
  138.  
  139. The syntax for the GetNew() function should read:
  140.  
  141.    GetNew([<nRow>], [<nCol>], [<bBlock>], [<cVarName>],
  142.       [<cGetPicture>], [<cColorString>]) --> oGet
  143.  
  144.  
  145. 2.4.3  Page 5-13 setColumn()
  146.  
  147. The syntax for setColumn() should read:
  148.  
  149.    setColumn(<nColumn>, <oColumnNew>) --> oColumnCurrent
  150.    
  151. The first sentence of the description should read:
  152.  
  153.    ...specified by <oColumnNew>.
  154.  
  155. ------------------------------------------------------------------------
  156. 2.5  Chapter 9: The Clipper Debugger
  157.  
  158. 2.5.1   Page 9-1 ?
  159.  
  160. The syntax for the ? command should read:
  161.  
  162.    ? | ?? <exp>
  163.  
  164.  
  165. 2.5.2   Page 9-1 ANIMATE
  166.  
  167. The description for ANIMATE should read:
  168.  
  169.    Executes an application in Animate Mode until a Breakpoint or
  170.    Tracepoint is reached.
  171.  
  172.  
  173. 2.5.3   Page 9-1 BP
  174.  
  175. The syntax for the BP command should read:
  176.  
  177.    BP [AT] <lineNum> [[IN] <idProgramFile>]]
  178.    BP <idFunction> | <idProcedure>
  179.  
  180.  
  181. 2.5.4   Page 9-1 CALLSTACK
  182.  
  183. The syntax for the CALLSTACK command should read:
  184.  
  185.    CALLSTACK [on | OFF]
  186.  
  187.  
  188. 2.5.5   Page 9-1 DELETE
  189.  
  190. The syntax for the DELETE command should read:
  191.  
  192.    DELETE ALL [BP | TP | WP]
  193.    DELETE BP | TP | WP <number>
  194.  
  195.  
  196. 2.5.6   Page 9-1 FIND
  197.  
  198. The syntax for the FIND command should read:
  199.  
  200.    FIND <searchString>
  201.  
  202.  
  203. 2.5.7   Page 9-2 GOTO
  204.  
  205. The syntax for the GOTO command should read:
  206.  
  207.    GOTO <lineNum>
  208.  
  209. The description should read:
  210.  
  211.    Moves the cursor in the Code Window from its current position to the
  212.    specified line number.
  213.  
  214.  
  215. 2.5.8   Page 9-2 INPUT
  216.  
  217. The syntax for the INPUT command should read:
  218.  
  219.    INPUT <idScriptFile>
  220.  
  221.  
  222. 2.5.9   Page 9-2 INSPECT CALLSTACK
  223.  
  224. The INSPECT CALLSTACK command has been removed.
  225.  
  226.  
  227. 2.5.10  Page 9-2 INSPECT WP
  228.  
  229. The INSPECT WP command has been removed.
  230.  
  231.  
  232. 2.5.11  Page 9-2 LIST
  233.  
  234. The syntax for the LIST command should read:
  235.  
  236.    LIST BP | TP | WP
  237.    
  238. The description should read:
  239.  
  240.    Lists all Watchpoints, Tracepoints, and Breakpoints.
  241.  
  242.  
  243. 2.5.12  Page 9-2 NEW
  244.  
  245. The NEW command has been removed.
  246.  
  247.  
  248. 2.5.13  Page 9-2 NUM
  249.  
  250. The syntax for the NUM command should read:
  251.  
  252.    NUM [ON | off]
  253.  
  254.  
  255. 2.5.14  Page 9-3 PP
  256.  
  257. The PP command has been removed.
  258.  
  259.  
  260. 2.5.15  Page 9-3 SPEED
  261.  
  262. The syntax for the SPEED command should read:
  263.  
  264.    SPEED <delay>
  265.  
  266. The description should read:
  267.  
  268.    Sets the display in Animate Mode to a specified speed.
  269.  
  270.  
  271. 2.5.16  Page 9-3 STEP
  272.  
  273. The STEP command does not allow an argument.  The syntax for this
  274. command should read:
  275.  
  276.    STEP
  277.    
  278. The description should read:
  279.  
  280.    Executes an application in Single Step Mode.
  281.  
  282.  
  283. 2.5.17  Page 9-3 VIEW
  284.  
  285. The syntax for the VIEW command should read:
  286.  
  287.    VIEW <idFileName>
  288.  
  289. ========================================================================
  290. 3  Reference
  291.  
  292. 3.1  Introduction
  293.  
  294. 3.1.1  page vi, Table: Typographical Conventions
  295.  
  296. Row 10 of the table should read:
  297.  
  298.    Assert()    User-defined functions...
  299.  
  300. ------------------------------------------------------------------------
  301. 3.2  Chapter 1: Basic Concepts
  302.  
  303. 3.2.1   Page 1-2 and 1-4 A Typical Clipper Program, code examples
  304.  
  305. Line 4 of MainMenu() should read:
  306.  
  307.    SET MESSAGE TO 23 CENTER
  308.  
  309.  
  310. 3.2.2   Page 1-2 A Typical Clipper Program, code example
  311.  
  312. Line 2 of the code example '#include "Database.prg"' should be deleted.
  313.  
  314.  
  315. 3.2.3   Page 1-11 Passing by Value, code example
  316.  
  317. Line 3 of the code example should read:
  318.  
  319.    SayIt( Customer->Name, nNumber )
  320.  
  321.  
  322. 3.2.4   Page 1-11 Passing by Reference
  323.  
  324. The last sentence of the last paragraph on page 1-11 should read:
  325.  
  326.    Variables other than field variables and array elements can be passed
  327.    by reference...
  328.  
  329.  
  330. 3.2.5   Page 1-13 Argument Checking
  331.  
  332. The second sentence of the last paragraph should be replaced with:
  333.  
  334.    To ascertain this information, compare the parameter in question to
  335.    NIL.  If it is equal, you can either supply a default value or
  336.    generate an argument error.
  337.  
  338.  
  339. 3.2.6   Page 1-17 Decision Making Structures
  340.  
  341. The last sentence of first paragraph of this section should read:
  342.  
  343.    Clipper has two such structures, IF...ENDIF and DO CASE...ENDCASE,
  344.    but they are identical in functionality.
  345.  
  346.  
  347. 3.2.7   Page 1-18 Error Handling Structures
  348.  
  349. The last sentence of the page refers to a non-existent chapter and
  350. should be deleted.
  351.  
  352.  
  353. 3.2.8   Page 1-30 and 1-31 Memo Data Type 
  354.  
  355. Insert the following paragraphs after the first paragraph of the Memo
  356. section:
  357.  
  358.    The contents of a memo (.dbt) file are handled in blocks of 512
  359.    bytes.  Each memo field in the database (.dbf) file contains the
  360.    block number in ASCII which identifies the memo field data location. 
  361.    If the memo field contains no data there is no number in the database
  362.    (.dbf) file.  When the user writes to a memo field, the next
  363.    available block is used and its number is stored in the block number
  364.    field.
  365.    
  366.    In Clipper, when you change a memo field with less than 512 bytes,
  367.    the existing block is used until the block is filled.  Once full, the
  368.    block is discarded and copied to a new location.
  369.  
  370.  
  371. 3.2.9   Page 1-45 Increment and Decrement Operators
  372.  
  373. The first row of Table 1-16 should read:
  374.  
  375.    ++    Prefix or Postfix Increment
  376.  
  377.  
  378. 3.2.10  Page 1-52 Compile and Run, code example
  379.  
  380. The third code example should read:
  381.  
  382.    bBlock := &( "{ |exp| QOUT(exp) }" )
  383.    .
  384.    .
  385.    .
  386.    EVAL(bBlock, DATE())
  387.  
  388.  
  389. 3.2.11  Page 1-61 Arrays as Function Arguments and Return Values
  390.  
  391. The last paragraph of this section should read:
  392.  
  393.    Arrays can be returned as values from functions.  For example:
  394.  
  395.  
  396. 3.2.12  Page 1-66 Searching an Array, code example
  397.  
  398. Line 1 of the first code example should read:
  399.  
  400.    LOCAL aArray := { "Tom", "Mary", "Sue", "Mary" }
  401.  
  402.  
  403. 3.2.13  Page 1-76 Work Area Attributes
  404.  
  405. The last three rows of Table 1-19 should read:
  406.  
  407.    RECCOUNT()|LASTREC()    Number of records
  408.    RECNO()                 Record number
  409.    SELECT()                Work area number
  410.  
  411.  
  412. 3.2.14  Page 1-79 Index Files
  413.  
  414. The last paragraph of this section beginning with "An alternate method
  415. is provided..." should be deleted.
  416.  
  417.  
  418. 3.2.15  Page 1-88 Writing to a File
  419.  
  420. The last sentence of this section should read:
  421.  
  422.    The I2BIN() and L2BIN() functions are provided to convert Clipper
  423.    numeric values to binary form and return the results as character
  424.    strings.  These character strings can then be written to a binary
  425.    file.
  426.  
  427. ------------------------------------------------------------------------
  428. 3.3  Chapter 2: Statements
  429.  
  430. 3.3.1  Page 2-1 BEGIN SEQUENCE, Description
  431.  
  432. The second sentence of the third paragraph of Description section should
  433. read:
  434.    
  435.    You cannot RETURN, LOOP, or EXIT between a BEGIN SEQUENCE and RECOVER
  436.    statement.  From within the RECOVER statement block, however, you can
  437.    LOOP, EXIT, BREAK, or RETURN since the SEQUENCE is essentially
  438.    completed at that point.
  439.  
  440. ------------------------------------------------------------------------
  441. 3.4  Chapter 3: Pre-processor Directives
  442.  
  443. 3.4.1  Page 3-13 #ifdef, Description
  444.  
  445. The first sentence of the second paragraph should read:
  446.  
  447.    The #else directive specifies the code to compile if <identifier> is
  448.    not defined.
  449.  
  450. ------------------------------------------------------------------------
  451. 3.5  Chapter 4: Standard Commands
  452.  
  453. 3.5.1   Page 4-10 @...GET, See also
  454.  
  455. Add QOUT() to the @...GET see also list.
  456.  
  457.  
  458. 3.5.2   Page 4-15 @...SAY, See also
  459.  
  460. Add QOUT() to the @...SAY see also list.
  461.  
  462.  
  463. 3.5.3   Page 4-48 DISPLAY, Examples
  464.  
  465. The second example's code should read:
  466.  
  467.    #define K_ESC  27
  468.    USE Sales INDEX Salesman NEW
  469.    DISPLAY Branch, Salesman, Amount WHILE INKEY() != K_ESC
  470.  
  471.  
  472. 3.5.4   Page 4-57 INPUT, Description
  473.  
  474. The second paragraph of the Description should be replaced with the
  475. following:
  476.  
  477.    Pressing Return terminates entry of the expression.  The expression
  478.    is then compiled and evaluated using the macro (&) operator, and the
  479.    result assigned to <idVar>.  If the variable is not visible or does
  480.    not exist, it is created as a private.  If no expression is entered,
  481.    no action is taken.
  482.  
  483.  
  484. 3.5.5   Page 4-62 LABEL FORM, Examples
  485.  
  486. The second example's code should read:
  487.  
  488.    #define K_ESC  27
  489.    USE Sales INDEX Sales NEW
  490.    LABEL FORM Sales WHILE INKEY() != K_ESC
  491.  
  492.  
  493. 3.5.6   Page 4-64 LIST, Examples
  494.  
  495. The second example's code should read:
  496.  
  497.    #define K_ESC  27
  498.    USE Sales INDEX Salesman NEW
  499.    LIST Branch, Salesman, Amount WHILE INKEY() != K_ESC
  500.  
  501.  
  502. 3.5.7   Page 4-82 REPORT FORM, Examples
  503.  
  504. The second example's introductory text should read:
  505.  
  506.    This example demonstrates how to interrupt a REPORT FORM by using
  507.    INKEY() to test if the user has pressed the Esc key:
  508.  
  509.  
  510. 3.5.8   Page 4-82 REPORT FORM, Examples
  511.  
  512. The second example's code should read:
  513.  
  514.    #define K_ESC  27
  515.    USE Sales INDEX Sales NEW
  516.    REPORT FORM Sales WHILE INKEY() != K_ESC
  517.  
  518.  
  519. 3.5.9   Page 4-147 STORE, Description
  520.  
  521. The first and second paragraphs should be replaced with the following
  522. paragraph:
  523.  
  524.    STORE assigns a value to one or more variables of any storage class.
  525.    The storage classes of Clipper variables are local, static, field,
  526.    private, and public.  STORE is identical to the simple assignment
  527.    operators (=) and (:=).  In fact, a STORE statement is pre-processed
  528.    into an assignment statement using the in-line (:=) operator.  Like
  529.    all of the assignment operators, STORE assigns to the most recently
  530.    declared and visible variable referenced by <idVar>.  If, however,
  531.    the variable reference is ambiguous (i.e., not declared at compile
  532.    time or not explicitly qualified with an alias), it is assumed to be
  533.    MEMVAR.  At runtime, if no private or public variable exists with the
  534.    specified name, a private variable is created.
  535.  
  536.  
  537. 3.5.10  Page 4-159 USE, Syntax and Arguments
  538.  
  539. The syntax for the ALIAS clause should read:
  540.  
  541.    [ALIAS <xcAlias>]
  542.  
  543. The ALIAS argument description should read:
  544.  
  545.    ALIAS <xcAlias> specifies...
  546.  
  547. ------------------------------------------------------------------------
  548. 3.6  Chapter 5: Standard Functions
  549.  
  550. 3.6.1   Page 5-36 CMONTH(), See also 
  551.  
  552. CMONTH() should be removed from the CMONTH() see also list.
  553.  
  554.  
  555. 3.6.2   Page 5-48 DBEDIT(), Description
  556.  
  557. The second sentence of the first paragraph on page 5-48 should read:
  558.  
  559.    The User Function Return Values table on the previous page summarizes
  560.    the possible return values and the corresponding actions.
  561.  
  562.  
  563. 3.6.3   Page 5-60 DEVPOS(), All sections
  564.  
  565. Within this item all instances of DEVICEPOS() should be replaced with
  566. DEVPOS().
  567.  
  568.  
  569. 3.6.4   Page 5-69 EMPTY(), Examples
  570.  
  571. The second example's code should read:
  572.  
  573.    LOCAL cCust := SPACE(15), nAmount := 0
  574.    USE Sales NEW
  575.    @ 10, 10 GET cCust
  576.    @ 11, 10 GET nAmount PICTURE "999.99"
  577.    READ
  578.    //
  579.    IF !EMPTY(cCust)
  580.       APPEND BLANK
  581.       REPLACE Sales->Cust WITH cCust, Sales->Amount WITH nAmount
  582.    ENDIF
  583.  
  584.  
  585. 3.6.5   Page 5-77 EXP(), Syntax
  586.  
  587. The syntax for EXP() should read:
  588.  
  589.    EXP(<nExponent>) --> nExp
  590.  
  591.  
  592. 3.6.6   Page 5-84 FERROR(), See also
  593.  
  594. Add FERASE() and FRENAME() to the see also section for FERROR().
  595.  
  596.  
  597. 3.6.7   Page 5-85 FIELDNAME(), All sections
  598.  
  599. All references to "FIELD()" should be replaced with "FIELDNAME()."
  600.  
  601.  
  602. 3.6.8   Page 5-99 FRENAME(), Syntax
  603.  
  604. The syntax for FRENAME() should read:
  605.  
  606.    FRENAME(<cOldFile>, <cNewFile>) --> nSuccess
  607.  
  608.  
  609. 3.6.9   Page 5-126 LEFT(), Files
  610.  
  611. The library for LEFT() should be CLIPPER.LIB.
  612.  
  613.  
  614. 3.6.10  Page 5-163 PCOL(), See also
  615.  
  616. Add QOUT() to the see also list.
  617.  
  618.  
  619. 3.6.11  Page 5-167 PROW(), See also
  620.  
  621. Add QOUT() to the see also list.
  622.  
  623.  
  624. 3.6.12  Page 5-182 RIGHT(), Files
  625.  
  626. The library for RIGHT() should be EXTEND.LIB.
  627.  
  628.  
  629. 3.6.13  Page 5-189 SCROLL(), Library
  630.  
  631. In versions 5.01 SCROLL() is located in CLIPPER.LIB rather than
  632. EXTEND.LIB.
  633.  
  634.  
  635. 3.6.14  Page 5-225 USED(), Examples
  636.  
  637. Remove the second example entirely.  To test if a specific alias exists
  638. use the expression SELECT("<alias>") != 0 instead.
  639.  
  640. ------------------------------------------------------------------------
  641. 3.7  Chapter 6: Standard Classes
  642.  
  643. 3.7.1  Page 6-1 - 6-3 Error Class, Exported Instance Variables
  644.  
  645. Add "assignable" to all Error class exported instance variable syntax
  646. statements.
  647.  
  648.  
  649. 3.7.2  Page 6-5 GetNew(), Class Function
  650.  
  651. The syntax for the GetNew() function should read:
  652.  
  653.    GetNew([<nRow>], [<nCol>], [<bBlock>], [<cVarName>],
  654.       [<cGetPicture>], [<cColorString>]) --> oGet
  655.  
  656. ------------------------------------------------------------------------
  657. 3.8  Glossary
  658.  
  659. 3.8.1  Page 4 - 5 Data Type
  660.  
  661. The third sentence of this item should read:
  662.  
  663.    In Clipper 5.0, the following data types are defined: character,
  664.    numeric, date, logical, array, object, code block, and NIL.
  665.  
  666.  
  667. 3.8.2  Page 8 File Locking
  668.  
  669. Remove "Automatic File Locking" from the see also list.
  670.  
  671.  
  672. 3.8.3  Page 12 Metasymbol
  673.  
  674. Remove "Extended Expressions" from the see also list.
  675.  
  676. ========================================================================
  677. 4  Programming and Utilities
  678.  
  679. 4.1  Chapter 1: The Runtime Environment
  680.  
  681. 4.1.1  Page 1-2 Files and Buffers
  682.  
  683. In the second and fourth paragraphs of this section, references to DOS
  684. 3.2 should be changed to DOS 3.3.
  685.  
  686.  
  687. 4.1.2  Page 1-7 Table 1-1
  688.  
  689. Delete the third row of Table 1-1.  The R parameter is not supported in
  690. Clipper 5.0.
  691.  
  692.  
  693. 4.1.3  Page 1-7 Specifying the Number of Files--F Parameter
  694.  
  695. The last sentence of the second paragraph of this section should read:
  696.  
  697.    The ideal <nHandles> is an odd number and 5 less than the number
  698.    specified with the FILES command.
  699.  
  700.  
  701. 4.1.4  Page 1-9 Assigning Rights
  702.  
  703. The "Search rights" entry in the bullet list should read:
  704.  
  705.    * Search rights: The user has the right to search the directory's
  706.      file list
  707.  
  708. ------------------------------------------------------------------------
  709. 4.2  Chapter 2: Network Programming
  710.  
  711. 4.2.1  Page 2-2 Clipper Network Features
  712.  
  713. The first bullet point should read:
  714.  
  715.    * Shared access to allow two or more users to open the same file
  716.      simultaneously (USE...SHARED).
  717.    
  718. The second bullet point should read:
  719.  
  720.    * Exclusive access to prevent other users from opening the same file
  721.      at the same time (USE...EXCLUSIVE).
  722.  
  723.  
  724. 4.2.2  Page 2-5 Programming in a Network Environment
  725.  
  726. Delete the last bullet point "How buffers are handled" from the list. 
  727. Note that this information is discussed in the "Update Visibility"
  728. section beginning on page 2-12.
  729.  
  730.  
  731. 4.2.3  Page 2-7 How To Open Files for Sharing
  732.  
  733. The comment on the second line of the first code example at the top of
  734. page 2-7 should read:
  735.  
  736.    // Returns true (.T.) if USE failed
  737.  
  738. ------------------------------------------------------------------------
  739. 4.3  Chapter 3: Clipper Compiler--CLIPPER.EXE
  740.  
  741. 4.3.1  Page 3-3 The Compiler Return Code
  742.  
  743. The first sentence of this section should read:
  744.  
  745.    If a fatal error occurs or the user presses either Ctrl-C or
  746.    Ctrl-Break, the compiler terminates with a DOS return code of 1.
  747.  
  748. ------------------------------------------------------------------------
  749. 4.4  Chapter 5: Program Maintenance--RMAKE.EXE
  750.  
  751. 4.4.1  Page 5-16 Table 5-1
  752.  
  753. The fourth row of Table 5-1 should read:
  754.  
  755.    $<    Expands to the full name of the dependency file that triggered
  756.          the rule
  757.  
  758. ------------------------------------------------------------------------
  759. 4.5  Chapter 6: Clipper Program Editor--PE.EXE
  760.  
  761. 4.5.1  Page 6-2 Table 6-1, PE Editing Keys
  762.  
  763. The contents of Table 6-1 should read:
  764.  
  765.    Uparrow/Ctrl-E          Line up           
  766.    Dnarrow/Ctrl-X          Line down         
  767.    Leftarrow/Ctrl-S        Character left         
  768.    Rightarrow/Ctrl-D       Character right        
  769.    Ctrl-Leftarrow/Ctrl-A   Word left         
  770.    Ctrl-Rightarrow/Ctrl-F  Word right        
  771.    Home                    Beginning of line 
  772.    End                     End of line       
  773.    Ctrl-Home               Top of window     
  774.    Ctrl-End                End of window     
  775.    PgUp                    Previous window   
  776.    PgDn                    Next window       
  777.    Ctrl-PgUp               Top of file       
  778.    Ctrl-PgDn               End of file       
  779.    Return                  Begin next line   
  780.    Delete                  Delete character       
  781.    Backspace               Delete character left  
  782.    Tab                     Insert tab/spaces 
  783.    Ctrl-Y                  Delete line       
  784.    Ctrl-T                  Delete word right 
  785.    Alt-H, F1               Display help screen 
  786.    Ctrl-W                  Save and exit
  787.    Alt-W                   Save and continue   
  788.    Alt-O                   New output filename 
  789.    Alt-X, Esc              Exit                
  790.    Alt-F                   Display filename    
  791.    Alt-S                   Search              
  792.    Alt-A                   Search again        
  793.    Alt-I, Ins              Toggle insert mode
  794.  
  795. ------------------------------------------------------------------------
  796. 4.6  Chapter 8: Report and Label Utility--RL.EXE
  797.  
  798. 4.6.1  Page 8-10 Reporting from Related Work Areas
  799.  
  800. The code at the top of page 8-10 should read:
  801.  
  802.    SET RELATION TO CustNum INTO Customer     // Establish the link
  803.    REPORT FORM CustInv TO PRINTER
  804.  
  805. ------------------------------------------------------------------------
  806. 4.7  Chapter 10: Using the Extend System
  807.  
  808. 4.7.1  Page 10-11 Example
  809.  
  810. The Sinrec() code example should begin as follows:
  811.  
  812.    #include "extend.h"
  813.    #include "math.h"
  814.  
  815.  
  816. 4.7.2  Page 10-27 Date Values, Assembly Language Example
  817.  
  818. The sixth line of the assembly language code example that currently
  819. reads "pop si" should read:
  820.  
  821.    push si
  822.  
  823.  
  824. 4.7.3  Page 10-30 Logical Values, Assembly Language Example
  825.  
  826. In the assembly code example on this page, the following line of code
  827. should be inserted after "call __retl" and before "RET:"
  828.  
  829.    add   sp, 2
  830.  
  831. ------------------------------------------------------------------------
  832. 4.8  Chapter 11: Extend Function Reference
  833.  
  834. 4.8.1  Page 11-16 _retclen(), Examples
  835.  
  836. The code example should read:
  837.  
  838.    char data[5] = {1, 0, 2, 0, 3, 3};
  839.    _retclen(data, 5);
  840.  
  841.  
  842. 4.8.2  Page 11-25 _storclen(), Examples
  843.  
  844. The code example should read:
  845.  
  846.    char data[5] = {1, 0, 2, 0, 3, 3};
  847.    _storclen(data, 5, 1);
  848.  
  849. ========================================================================
  850. 5  The Clipper Debugger
  851.  
  852. The Clipper Debugger has been changed significantly in version 5.01,
  853. making the printed documentation inaccurate.  Complete and updated
  854. documentation is provided in Debugger.doc.
  855.  
  856.  
  857.  
  858.  
  859.                               *     *     *
  860.