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