home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1995 May / Simtel-MSDOS-May1995-CD2.iso / disc2 / clipper / 52dix.txt < prev    next >
Text File  |  1994-05-13  |  27KB  |  703 lines

  1. Dear CA-Clipper 5.2 Developer, 
  2.  
  3.          The CA-Clipper 5.2d/ExoSpace 1.0f upgrade described in this file
  4.          contains latest fixes for CA-Clipper and CA-Clipper/ExoSpace.
  5.          This includes an updated version of the DBFMDX driver revised to
  6.          be compatible with the CA-Clipper/Compiler Kit. The DBFMDX database 
  7.          collation drivers are now CA-Clipper/ExoSpace compatible also.
  8.          The DBFCDX driver has not been changed. We are currently working on 
  9.          a separate patch for it. It will be published as soon as it is ready.
  10.  
  11.          If you have any questions, please contact your CA-Clipper 
  12.          Level-1 Technical Support representative.
  13.          
  14.  
  15. This file contains:
  16.  
  17.       A. The instructions for applying the CA-Clipper 5.2d upgrade to any 
  18.          International version of CA-Clipper 5.2 including: 5.20, 5.2a, 
  19.          5.2b or 5.2c.   
  20.  
  21.          It also contains instructions for applying the CA-Clipper 5.2d/
  22.          ExoSpace 1.0f upgrade. This is needed ONLY if you have a previous 
  23.          version of ExoSpace installed on your system. 
  24.          If you DO NOT have ExoSpace already installed, please answer NO
  25.          to the question "Do you have ExoSpace installed" during
  26.          the upgrade process and only the Clipper files will be updated.
  27.  
  28.          Please review the file list below and the UPDATE PROCESS 
  29.          instructions carefully before applying the upgrade.
  30.  
  31.       B. The problem resolutions contained in CA-Clipper 5.2d.
  32.    
  33.  
  34. =============================================================================
  35.  
  36. A. Instructions for upgrading Clipper 5.2 (any rev.) to 5.2d (rev. 215) and 
  37.    ExoSpace (any installed version) to 1.0f version.
  38.  
  39.    REQUIRED FILE FOR PERFORMING UPDATE:
  40.  
  41.    52DIX.EXE            A self extracting ZIP file that may be 
  42.                         downloaded from the CLIPPER forum (library 0)
  43.                         on CompuServe. (GO CLIPPER).
  44.  
  45.  
  46.    CONTENTS OF 52DIX.EXE:
  47.  
  48.    INSTALL.DAT          Installation script file.
  49.  
  50.  
  51.    INSTALL.EXE          Installation engine required for performing the 
  52.                         CA-Clipper 5.2d upgrade.
  53.  
  54.    PATCH.EXE            Updating engine required for use with all the 
  55.                         *.RTPs.  This file is also in Library 0 of the 
  56.                         CLIPPER CompuServe forum.
  57.  
  58.  
  59.    DISK.ID              Installation identification file.
  60.  
  61.  
  62.    52DINC.LIF           Compressed update file for CLIPPER5\INCLUDE
  63.  
  64.    52DOBJ.LIF           Compressed update file for CLIPPER5\OBJ
  65.  
  66.    52DDBU.LIF           Compressed update file for CLIPPER5\SOURCE\DBU
  67.  
  68.    52DRL.LIF            Compressed update file for CLIPPER5\SOURCE\RL
  69.  
  70.    52DSAMPL.LIF         Compressed update file for CLIPPER5\SOURCE\SAMPLE
  71.  
  72.    52DSYS.LIF           Compressed update file for CLIPPER5\SOURCE\SYS
  73.  
  74.    52DERROR.LIF         Compressed update file for CLIPPER5\SOURCE\ERROR
  75.  
  76.    52DFISYS.LIF         Compressed update file for CLIPPER5\SOURCE\FILESYS
  77.  
  78.    52DITEM.LIF          Compressed update file for CLIPPER5\SOURCE\ITEM
  79.  
  80.    52DSDX.LIF           Compressed update file for CLIPPER5\SOURCE\SDX
  81.  
  82.    52DVM.LIF            Compressed update file for CLIPPER5\SOURCE\VM
  83.  
  84.    CLP52BIN.RTP         Update file for CLIPPER5\BIN
  85.  
  86.    CLP52LIB.RTP         Update file for CLIPPER5\LIB
  87.  
  88.    CLP52NG.RTP          Update file for NG
  89.  
  90.    52DIX.TXT            Instructions for upgrading to 
  91.                         CA-Clipper 5.2d/ExoSpace 1.0f and the list of 
  92.                         problem resolutions (This file).
  93.  
  94.  
  95.    THE FOLLOWING FILES ARE FOR PERFORMING EXOSPACE UPDATE:
  96.  
  97.    EXO10F.RTP           Update file for ExoSpace
  98.  
  99.    EXNG-10F.RTP         Update file for ExoSpace NG
  100.  
  101.  
  102.  
  103.    UPDATE PROCESS:
  104.  
  105.    1.     Move to your CA-Clipper 5.2 directory.
  106.                EXAMPLE: C:\> CD\CLIPPER5
  107.  
  108.    2.     Backup your current version of CA-Clipper.
  109.           Do the same for ExoSpace IF you already have it installed.
  110.  
  111.    3.     If you have Clipper 5.2, 5.2a, 5.2b or 5.2c AND have any problems
  112.           installing the upgrade, please reinstall Clipper from the original
  113.           disks and reapply the upgrade.
  114.  
  115.           To determine the version of Clipper that you currently have.
  116.           At the DOS prompt type
  117.  
  118.                  Clipper    then press return
  119.  
  120.  
  121.           At the top of the screen, there will be the copyright header with
  122.           the version number. 
  123.  
  124.    4.     Execute the installation program and follow its simple 
  125.           instructions.
  126.  
  127.                 EXAMPLE: A:\> INSTALL
  128.  
  129.                        - or -
  130.  
  131.                 EXAMPLE: C:\> A:INSTALL
  132.  
  133.           NOTE: All the files that are upgraded must be on the same drive.
  134.  
  135.    5.     After the installation program has run successfully compare the
  136.           date and time stamps of the updated files against the 
  137.           LIST OF UPDATED FILES section. 
  138.  
  139.    6.     If you have applied the CA-Clipper 5.2d upgrade in a directory 
  140.           other than the one into which you installed the original 
  141.           CA-Clipper 5.2 version, you must make sure that your 
  142.           PATH, INCLUDE, OBJ, and LIB environment variables have been 
  143.           correctly set to point to the updated version of CA-Clipper.
  144.           Example: 
  145.                   (Scenario: You installed CA-Clipper 5.2 in C:\CLIPPER5
  146.                   and later renamed the directory (or moved the files) 
  147.                   to C:\CLIP52D.)
  148.                   A:\ SET PATH=C:\CLIP52D\BIN
  149.                   A:\ SET INCLUDE=C:\CLIP52D\INCLUDE
  150.                   A:\ SET OBJ=C:\CLIP52D\OBJ
  151.                   A:\ SET LIB=C:\CLIP52D\LIB
  152.  
  153.           NOTE: You should also change these settings in your AUTOEXEC.BAT file.
  154.  
  155.     7.      If you are using the CA-Clipper 5.2 International Nation 
  156.           Modules, run NATION.BAT to extract the 5.2d versions of these 
  157.           files.  See NATION.DOC in your \CLIPPER5 directory for detailed 
  158.           instructions.
  159.  
  160.     8.    Move to your DBU directory, define RTLINK's behavior and
  161.           re-compile DBU.
  162.           EXAMPLE:
  163.                   A:\> C:
  164.                   C:\NG> CD \CLIPPER5\SOURCE\DBU
  165.                   C:\CLIPPER5\SOURCE\DBU> SET RTLINKCMD=
  166.                   C:\CLIPPER5\SOURCE\DBU> SET CLIPPERCMD=
  167.                   C:\CLIPPER5\SOURCE\DBU> RMAKE DBU /F
  168.  
  169.           Copy DBU.EXE to your BIN directory.
  170.           EXAMPLE:
  171.                   C:\CLIPPER5\SOURCE\DBU> COPY DBU.EXE C:\CLIPPER5\BIN
  172.  
  173.  
  174.    9.     Move to your RL directory, re-compile RL.
  175.           EXAMPLE:
  176.                   C:\CLIPPER5\SOURCE\DBU> CD \CLIPPER5\SOURCE\RL
  177.                   C:\CLIPPER5\SOURCE\RL> RMAKE RL /F
  178.  
  179.           Copy RL.EXE to your BIN directory.
  180.           EXAMPLE:
  181.                   C:\CLIPPER5\SOURCE\RL> COPY RL.EXE C:\CLIPPER5\BIN
  182.  
  183.  
  184.    10.    Move to your PE directory, re-compile PE.
  185.           EXAMPLE:
  186.                   C:\CLIPPER5\SOURCE\RL> CD \CLIPPER5\SOURCE\PE
  187.                   C:\CLIPPER5\SOURCE\PE> RMAKE PE /F
  188.  
  189.           Copy PE.EXE to your BIN directory.
  190.           EXAMPLE:
  191.                   C:\CLIPPER5\SOURCE\PE> COPY PE.EXE C:\CLIPPER5\BIN
  192.  
  193.  
  194.    11.    Move to your PLL directory, rebuild BASE52.PLL and BASE52.PLT.
  195.           EXAMPLE:
  196.                   C:\CLIPPER5\SOURCE\PE> CD \CLIPPER5\PLL
  197.                   C:\CLIPPER5\PLL> RTLINK @BASE52
  198.  
  199.           Do not become alarmed if the message: "Undefined Symbols... 
  200.           should be resolved at EXE generation" appears during this 
  201.           step.
  202.  
  203.    12.    The update process is now complete.
  204.         
  205.  
  206.    LIST OF UPDATED FILES:
  207.  
  208.           This is a list of all files that have changed since the 
  209.           release of CA-Clipper 5.2.
  210.  
  211.           CA-Clipper 5.2d upgrade marks all CA-Clipper files with a 
  212.           date stamp of 03-25-94 and a time stamp of 5:24am.  
  213.           ExoSpace upgrade IF APPLIED marks TWO files listed below with
  214.           a date stamp of 4-21-94 and a time stamp of 1:06am.
  215.           
  216.           Now it is easy to check if the upgrade applied properly.
  217.           The exception are files from \PLL and \SOURCE\PE subdirectories.
  218.           They have never been changed and have a date stamp of 02-15-93
  219.           and a time stamp of 5:20am.
  220.  
  221.           The files DBU.EXE, RL.EXE, PE.EXE, BASE52.PLL and BASE52.PLT
  222.           will have the date and time stamp of when they were most
  223.           recently rebuilt.
  224.  
  225.           The following subdirectories are created (if they do not exist)
  226.           under the SOURCE directory for API sample files.
  227.           SDX, ERROR, FILESYS, ITEM and VM.
  228.  
  229.  
  230.           Directory of C:\CLIPPER5\BIN
  231.           
  232.           CLD      HLP     19677 
  233.           CLD      EXE     54415 
  234.           CLIPPER  EXE    198968 
  235.       
  236.           
  237.           Directory of C:\CLIPPER5\INCLUDE
  238.           
  239.           ACHOICE  CH        951 
  240.           CLIPDEFS H        1703 
  241.           EXTEND   H         238 
  242.           INKEY    CH       8579 
  243.           RDDSYS   CH        342 
  244.           STD      CH      51453 
  245.  
  246.           Following files are added for API
  247.  
  248.           ERROR    API      2090  Error System API header file
  249.           EXTEND   API      2194  Extend System API header file
  250.           FILESYS  API      2652  File System API header file
  251.           FM       API       811  Fixed Memory API header file
  252.           GT       API      2734  General Terminal API header file
  253.           ITEM     API      1802  Item API header file
  254.           RDD      API     27716  RDD API header file
  255.           RULES    RMK      2312  Common RMAKE dependencies file
  256.           VM       API      1093  Virtual Memory API header file
  257.       
  258.           
  259.           Directory of C:\CLIPPER5\LIB
  260.           
  261.           ANSITERM LIB     12321 
  262.           CLD      LIB     80719 
  263.           CLIPPER  LIB    519373 
  264.           DBFCDX   LIB    107993 
  265.           DBFMDX   LIB     90757          
  266.           DBFNDX   LIB     27175 
  267.           DBFNTX   LIB     38977 
  268.           EXTEND   LIB    127931 
  269.           NOVTERM  LIB     13857 
  270.           PCBIOS   LIB     14369 
  271.           SAMPLES  LIB     53891 
  272.           TERMINAL LIB     14369 
  273.           
  274.  
  275.           Directory of C:\CLIPPER5\OBJ
  276.           
  277.           CDXLOCK  OBJ      6679 
  278.           CT2PATCH OBJ      4703 
  279.           NTXLOCK2 OBJ       302 
  280.           CHOOSE   COM        96 
  281.           NATION   BAT      3674 
  282.           NAT_OBJ  EXE    116116 
  283.           
  284.  
  285.           Directory of C:\CLIPPER5\SOURCE\DBU
  286.           
  287.           DBU      PRG     24063 
  288.           DBUCOPY  PRG     17556 
  289.           DBUEDIT  PRG     22484 
  290.           DBUNET   PRG      8931 
  291.           DBUVIEW  PRG     67609 
  292.           
  293.  
  294.           Directory of C:\CLIPPER5\SOURCE\RL
  295.           
  296.           RL       RMK       436 
  297.           RLBACK   PRG     40489 
  298.           RLDIALG  PRG     10626 
  299.           RLFRONT  PRG     40165 
  300.           
  301.  
  302.           Directory of C:\CLIPPER5\SOURCE\SAMPLE
  303.           
  304.           BROWSE   PRG     10294 
  305.           STUFF    C        2982 
  306.           TBDEMO   PRG     12398 
  307.       
  308.           
  309.           Directory of C:\CLIPPER5\SOURCE\SYS
  310.           
  311.           FRMBACK  PRG     17723 
  312.           FRMRUN   PRG     28808 
  313.           LBLRUN   PRG      7554 
  314.  
  315.  
  316.           Directory of C:\CLIPPER5\SOURCE\SDX:
  317.           
  318.           README   SDX     13564    RDD API Sample code
  319.           SDX      C       43468         "      "
  320.           SDX      H        3876         "      "
  321.           SDX      RMK       951         "      "
  322.           SDXDYN   ASM      1944         "      "
  323.           SDXINIT  PRG       300         "      "
  324.           SDXINTER C        7781         "      "
  325.                                    
  326.           Directory of C:\CLIPPER5\SOURCE\ERROR:
  327.           
  328.           FILEOPEN C        2714    Error API Sample code
  329.                                    
  330.           Directory of C:\CLIPPER5\SOURCE\FILESYS:
  331.           
  332.           FILEOPEN C        2714    Filesys API Sample code
  333.                                    
  334.           Directory of C:\CLIPPER5\SOURCE\ITEM:
  335.           
  336.           CC       C        1410   Item API Sample code
  337.           CCTST    PRG       641        "      "
  338.           CCTST    RMK       436        "      "
  339.           DFUNC    C        1356        "      "
  340.           DFUNCTST PRG       584        "      "
  341.           DFUNCTST RMK       428        "      "
  342.           ISDBL    C         609        "      "
  343.           ISDBLTST PRG      1229        "      "
  344.           ISDBLTST RMK       475        "      "
  345.           TESTBED  PRG       854        "      "
  346.           UACLN    C        1888        "      "
  347.           UACLNTST PRG      1274        "      "
  348.           UACLNTST RMK       435        "      "
  349.           UARRY    C        1863        "      "
  350.           UARRYTST PRG      1180        "      "
  351.           UARRYTST RMK       443        "      "
  352.           UEVAL    C         893        "      "
  353.           UEVALTST PRG      2121        "      "
  354.           UEVALTST RMK       479        "      "
  355.           YESNO    C         837        "      "
  356.                                    
  357.           Directory of C:\CLIPPER5\SOURCE\VM:
  358.           
  359.           BOOTREAD PRG       603   VM API Sample code
  360.           BOOTREAD RMK       245       "      "
  361.           BOOTSEC  C        1996       "      "
  362.           CCVM     C        1372       "      "
  363.           CCVMTST  PRG       661       "      "
  364.           CCVMTST  RMK       440       "      "
  365.           HEXAMP   C        1122       "      "
  366.           TESTBED  PRG       854       "      "
  367.           VCOPYTST PRG       863       "      "
  368.           VCOPYTST RMK       462       "      "
  369.           VMCOPY   C       12498       "      "
  370.  
  371.           ExoSpace files (if installed)
  372.  
  373.           EXOSPACE EXE    642835 
  374.           EXOSPACE NG     110905 
  375.  
  376.  
  377. =============================================================================
  378.  
  379. B. Problems resolved by CA-Clipper 5.2d:
  380.  
  381.    1. Fixed a VMIF in the Object Memory Manager.  This occurred in low memory
  382.       situations when the OMM took space from the VM segment that it was
  383.       attempting to expand.
  384.  
  385.    2. Fixed a GPF/VMIF in the Object Memory Manager's garbage collector that
  386.       occurred when there were a large number of static variables.
  387.  
  388.    3. Fixed the FIELDPOS() function so that it no longer returns misleading
  389.       results when passed an invalid argument.
  390.  
  391.    4. Fixed bug in oStrDup() where an incorrect number of bytes were being
  392.       copied to an incorrect location for dedicated VM segments.
  393.  
  394.    5. Fixed a VMIF in the Object Memory Manager that occurred when performing
  395.       an incremental garbage collection on an array that had just satisfied
  396.       the requirement for occupying its own dedicated VM segment.
  397.  
  398.    6. Fixed a GPF that occurred when growing the class/dictionary table.
  399.       This happens when instantiating a class or creating a dictionary 
  400.       when the dictionary/class table is full.
  401.  
  402.    7. Fixed the RDD manager so it does not become corrupted when the VMM
  403.       swaps its data to disk.  This occurred only in a very low memory
  404.       situation.
  405.  
  406.    8. Panning right in a TBROWSE containing a single frozen column no
  407.       longer causes TBROWSE to go into an infinite loop when trying to
  408.       redisplay.
  409.  
  410.    9. Fixed a GPF in TbrowseNew() and TbrowseDB() in certain memory 
  411.       configurations.
  412.  
  413.   10. Fixed a GPF in the function ALIAS([<nWorkArea>]) when
  414.       nWorkArea > 255.
  415.  
  416.   11. Fixed the GPF caused by function ORDKEY() with an invalid
  417.       <cOrderName>.
  418.  
  419.   12. Fixed the SET DELETED ON command so that it does not affect record
  420.       visibility on a network.
  421.  
  422.   13. Fixed the SORT command so that it deallocates the memory it allocated
  423.       before returning control to its caller.
  424.  
  425.   14. Fixed internal errors 650, 775 and 999 that occurred when the compiler
  426.       did not produce correct code for statements that contained an extra 
  427.       set of parentheses.
  428.       EXAMPLE:  (( Test() ))
  429.  
  430.   15. Fixed C3039 PHASE ERROR in the compiler that occurred when a .PRG 
  431.       source file contained several static variables that were inline 
  432.       initialized to a codeblock.
  433.       EXAMPLE:     static Var1 := { | x | func1( x ) }
  434.                    static Var2 := { | x | func2( x ) }
  435.                    static Var3 := { | x | func3( x ) }
  436.  
  437.   16. Fixed a lockup in the compiler that occurred when a .PRG had a large
  438.       number of STATIC variables.
  439.  
  440.   17. Fixed the compiler so that /Z switch has effect on expressions that
  441.       contain constants.
  442.  
  443.   18. Fixed the compiler so it will not produce the "C3050 Something
  444.       terrible has happened" error when it encounters a user defined
  445.       function whose argument is being negated.
  446.       Example: MyUDF( -X )
  447.  
  448.   19. Fixed a problem in the compiler that allowed it to accept illegal
  449.       comment blocks.
  450.       EXAMPLE: /**/*/
  451.  
  452.   20. Fixed the compiler so it now generates an error when it encounters
  453.       one of the following incorrect control blocks:
  454.                   IF...ELSE...ELSE...ENDIF
  455.                   IF...ELSE...ELSEIF...ENDIF
  456.  
  457.   21. Fixed the compiler to generate an error when it encounters the
  458.       following statement: Alias->Alias-><field>
  459.  
  460.   22. Fixed the compiler so it does not generate an error when it
  461.       encounters an expression containing multiple NOTs.
  462.       EXAMPLE: iff( ! ! .t., .t., .f. )
  463.  
  464.   23. Fixed the compiler so it does not generate an error when it
  465.       encounters a statement in which an aliased expression contains extra
  466.       parenthesis: (MyFunc())->DBFfield
  467.  
  468.       or: ? (MyFunc())[x]
  469.  
  470.   24. Fixed the compiler so it will not produce the "C2005 Statement not
  471.       recognized match failed at: '&'" error when it encounters the
  472.       following:
  473.                   @ nCol, nRow SAY "string" + &(macro_expression)
  474.  
  475.   25. Fixed evaluating a macro that contains an alias caused a syntax
  476.       error in the next macro evaluation.
  477.       EXAMPLE:
  478.              ? &( "aTest[1]" )                // <value>
  479.              ? &( "test->( RECNO() )" )
  480.              ? &( "aTest[1]" )                // Syntax error - &
  481.  
  482.   26. Fixed a lockup that occurred when a memvar was created within a
  483.       macro.  The scope of that memvar was incorrect, it expanded to the
  484.       upper lever procedure.
  485.       EXAMPLE:   &("MEMVAR->dummy") := 666
  486.  
  487.   27. Fixed a lockup that occurred when using a macro to expand an
  488.       expression, that contains an alias.
  489.       EXAMPLE:  &(alias(1))->( Recno() )
  490.  
  491.   28. Fixed SELECT() so it now returns 0 when passed an invalid parameter.
  492.  
  493.   29. Fixed DBCREATE() so it generates a run-time error when it is passed
  494.       an unknown RDD name instead of hanging the system.
  495.  
  496.   30. Fixed The USE command so it does not upper-case convert the
  497.       contents of the variable which is used in VIA clause.
  498.  
  499.   31. Fixed DBCREATE() so it generates a run-time error when there is not
  500.       enough space on a drive.
  501.  
  502.   32. Fixed the database/index synchronization as in the following example:
  503.                 SET ORDER TO <order>
  504.                 REPLACE <not a keyfield>
  505.                 SKIP()
  506.                 SET ORDER TO <another order>
  507.                 SKIP(-1)
  508.                 ? RECNO()
  509.  
  510.   33. Fixed the 'INDEX ON <exp> TO <file> WHILE <exp>' command so it
  511.       does not create only one record in the scoped index (regardless
  512.       how many meet the WHILE condition) when the current index order
  513.       was used, and the most recent DBF movement was not an index
  514.       movement (SKIP, SEEK).
  515.  
  516.   34. Fixed the updating of the conditional .NTX file when a field,
  517.       that was not in the key expression, was updated.
  518.  
  519.   35. Fixed index file update failure on complex key expression when
  520.       the multiple fields were being concatenated as a key and the key
  521.       field(s) value(s) were subsequently changed.
  522.  
  523.   36. Fixed the 'REPLACE <memo_field> WITH' command so it will not cause
  524.       a program to lock up if it attempts to write memo information to
  525.       disk with insufficient space.
  526.  
  527.   37. Fixed the following commands:
  528.              COPY TO...SDF, COPY TO...DELIMITED
  529.              APPEND FROM...SDF, APPEND FROM...DELIMITED
  530.       so they do not hang the system when the DEFAULT option is chosen 
  531.       from the 'cannot open/create file' error message.
  532.  
  533.   38. Fixed the COPY TO [ SDF | DELIMITED ] command so it does not close 
  534.       the current workarea when the DEFAULT option is chosen from the 
  535.       'cannot open/create file' error message.
  536.  
  537.   39. Fixed the COPY TO command when the current database is the child of 
  538.       a relation and there is a pending seek.
  539.  
  540.   40. Fixed CREATE FROM & COPY STRUCTURE so they work when the target is a
  541.       disk drive designator and file name without a backslash.
  542.       EXAMPLE: C:FileName
  543.  
  544.   41. Fixed the APPEND FROM SDF command so it would ignore null-characters
  545.       when it reads SDF-file.
  546.  
  547.   42. Fixed TBrowse so that 'hitBottom' would report .T. if an attempt
  548.       was made to go past the end of the available data when there are
  549.       not enough records to completely fill the TBrowse display and
  550.       refreshAll() is invoked prior to stabilization.
  551.  
  552.   43. The decimal portion of the field definition for date, logical and
  553.       memo fields is now initialized.
  554.  
  555.   44. Fixed the function ORDSETFOCUS() to ignore an invalid <cOrderName>
  556.       as per documentation.
  557.  
  558.   45. Fixed the function ORDSETFOCUS() to return an empty string when a
  559.       database has no controlling order and the DBFNDX driver is used.
  560.  
  561.   46. Fixed the function INDEXKEY() to return an empty string when there
  562.       was no database opened in a workarea.
  563.  
  564.   47. Fixed the functions ORDBAGNAME(), ORDNAME(), ORDNUMBER(), ORDKEY(),
  565.       ORDFOR() to provide an argument type checking.  The following
  566.       run-time errors are generated when one or more of the arguments are
  567.       of the wrong type:
  568.              Error DBCMD/1021  Argument error: ORDBAGNAME
  569.              Error DBCMD/1022  Argument error: ORDFOR
  570.              Error DBCMD/1023  Argument error: ORDKEY
  571.              Error DBCMD/1024  Argument error: ORDNAME
  572.              Error DBCMD/1025  Argument error: ORDNUMBER
  573.  
  574.   48. Fixed the inconsistency between OrdSetFocus("") and OrdSetFocus(0).  
  575.       Now OrdSetFocus("") also restores the natural order.
  576.  
  577.   49. Fixed OrdNumber("") so that it returns zero rather than the number of 
  578.       orders for the workarea when DBFNDX driver is used.  
  579.  
  580.   50. Fixed the GO <n> command when DBFNDX driver is used and the data
  581.       type of <n> was DOUBLE, not LONG.
  582.  
  583.   51. Fixed the OrdName(0) so it would return the name of the 
  584.       current controlling order when DBFNDX driver is used.
  585.  
  586.   52. Fixed the OrdNumber(<cOrdName>) when DBFNDX driver is used and 
  587.       there is no <cOrdName> in the Order List.
  588.  
  589.   53. Major revisions have been made to the DBFMDX driver to rectify
  590.       the problems in the previous versions.
  591.  
  592.   54. Fixed SET ALTERNATE so it generates a run-time error when there 
  593.       is no space available on the disk.
  594.  
  595.   55. Fixed the STRTRAN() function so it no longer goes into an infinite 
  596.       loop when the cSearch parameter is a zero length string.
  597.  
  598.   56. Fixed ALLTRIM() so it generates an error when given an argument 
  599.       of the wrong type.
  600.  
  601.   57. Fixed the function DIRECTORY (, "V") so it does not pad the
  602.       volume name with garbage, if its length is exactly 8 characters
  603.       long.
  604.  
  605.   58. All commas contained in a GET's PICTURE clause are now copied into 
  606.       the GET's edit buffer.
  607.  
  608.   59. When a GET's PICTURE clause contains an '@R', the number of 
  609.       editable positions in its edit buffer is now calculated 
  610.       correctly.
  611.  
  612.   60. When a GET's PICTURE clause contains an '@R', non-picture characters 
  613.       beyond the last editable position are now displayed.
  614.  
  615.   61. When a GET's PICTURE clause contains a paren, a leading paren in its 
  616.       edit buffer now causes the value to be parsed as a negative number.
  617.  
  618.   62. A bug was fixed in which GETs that had a PICTURE clause containing a 
  619.       leading '$' would sometimes display negative values with multiple 
  620.       '$' characters.
  621.  
  622.   63. The size of a GET's edit buffer no longer increases if its PICTURE 
  623.       clause contains a paren, and a negative value is entered into its 
  624.       edit buffer.
  625.  
  626.   64. In the #command for GET, the smart stringify result marker was
  627.       replaced by a normal stringify result marker. The previous use of
  628.       the smart stringify marker had caused parsing problems whenever an
  629.       aliased variable was used in a GET command.
  630.  
  631.   65. The ALERT() function now updates the LASTKEY status.
  632.  
  633.   66. Fixed ALERT() so that it no longer exhibits occasional problems 
  634.       when fewer than four option strings are used.
  635.  
  636.   67. Fixed FSEEK() so that it rejects requests that would cause the
  637.       resulting absolute file position to become negative. In such
  638.       cases the current file position is left unchanged and an error
  639.       flag is set; the value of this flag can be retrieved by calling
  640.       the FERROR() function.
  641.  
  642.   68. Fixed the 'SET FUNCTION <nnn> TO' command so that it will now
  643.       accept strings that contain only white space.
  644.  
  645.   69. The SET DATE FORMAT code was modified so that the format string 
  646.       must contain non-numeric delimiters between the month, day, and 
  647.       year portions.
  648.  
  649.   70. Fixed the DEVPOS() function so that it now immediately responds 
  650.       to an error condition.
  651.  
  652.   71. Fixed STUFF() so it will generate a run-time error when there is 
  653.       insufficient virtual memory to create it's data buffer.
  654.  
  655.   72. Fixed  VAL("-.nnnn") so it does not return "******" now.
  656.  
  657.   73. Fixed DBU so it does not go to an endless loop if there is a
  658.       filter set on a field and if GOTO is used and a record number is
  659.       given that is not one of the records matching the filter.
  660.  
  661.   74. Fixed DBU to respond to the <ENTER> key when BROWSEing a
  662.       database in which none of the records match the filter condition.
  663.  
  664.   75. Fixed DBU so it does not go to an endless loop if, when VIEWing 
  665.       an empty database, the user presses any character key.
  666.  
  667.   76. Fixed DBU to update and reopen indexes after PACKing or ZAPing 
  668.       a database.
  669.  
  670.   77. Fixed DBU so that BROWSE reflects the filter condition after
  671.       PACKing or ZAPing a database.
  672.  
  673.   78. Fixed the REPORT FORM command's sub-grouping feature when the 
  674.       name of the last subgroup in a group was the same as the name 
  675.       of the next group.
  676.  
  677.   79. Fixed the REPORT FORM command without the TO PRINT clause so it 
  678.       produces the printer output if SET PRINT ON command was
  679.       previously issued.
  680.  
  681.   80. The multi-lines per record using ";" - method is now implemented.
  682.  
  683.   81. Fixed the number of lines on the first REPORT page to be the same 
  684.       as the number of lines on the following pages.
  685.  
  686.   82. Fixed the REPORT FORM command not to do page eject after subgroup
  687.       if page eject after group flag was set to TRUE.
  688.  
  689.   83. Fixed the REPORT FORM heading not to be truncated when page width
  690.       is set to 61 or more characters.
  691.  
  692.   84. Fixed the CA-Clipper Debugger so it does not display garbage in
  693.       the last line of the Monitor Window when <PgDn> was pressed.
  694.  
  695.   85. Fixed RLOCK() and DBRLOCK() so that it would not fail if the database 
  696.       was the child of a relation and there was a pending seek.
  697.  
  698.   86. Fixed the failure of the RLOCK() function when invoked after a 
  699.       successful FLOCK() on an open shared database.
  700.  
  701. =============================================================================
  702. =============================================================================
  703.