en

  Previous topic Next topic JavaScript is required for the print function Mail us feedback on this topic! Mail us feedback on this topic!  
c:\harbour\doc\en
c:\harbour\doc\en\array.txt
/*
 * $Id: array.txt 9192 2008-08-19 14:17:51Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: ASORT()
 *
 * Copyright 1999 Luiz Rafael Culik 
 *    Documentation for: ARRAY(), AADD(), ACLONE(), ACOPY(), ASIZE(),
 *                       ATAIL(), AINS(), ADEL(), AFILL(), ASCAN(), AEVAL()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ARRAY()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Create an uninitialized array of specified length
 *  $SYNTAX$
 *      ARRAY(  [, ...] ) --> aArray
 *  $ARGUMENTS$
 *       is the number of elements in the specified dimension.
 *  $RETURNS$
 *       an array of specified dimensions.
 *  $DESCRIPTION$
 *      This function returns an uninitialized array with the length of
 *      . Nested arrays are uninitialized within the same array
 *      pointer reference if additional parameters are specified.
 *      Establishing a memory variable with the same name as the array may
 *      destroy the original array and release the entire contents of the
 *      array. This depends, of course, on the data storage type of either
 *      the array or the variable with the same name as the array.
 *  $EXAMPLES$
 *      FUNCTION Main()
 *        LOCAL aArray:=Array(10)
 *        LOCAL x:=1
 *        FOR x:=1 to LEN(aArray)
 *          aArray[x]:=Array(x)
 *        NEXT
 *        Return Nil
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper Compliant in all Cases, except that
 *      arrays in Harbour can have an unlimited number of dimensions, while
 *      Clipper has a limit of 4096 array elements.
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      AADD(),ADEL(),AFILL(),AINS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      AADD()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Dynamically add an element to an array
 *  $SYNTAX$
 *      AADD([, ]) --> Value
 *  $ARGUMENTS$
 *       The name of an array
 *
 *       Element to add to array 
 *  $RETURNS$
 *       if specified , will return , otherwise this
 *      function  returns a NIL value.
 *  $DESCRIPTION$
 *      This function dynamically increases the length of the array named
 *       by one element and stores the value of  to that
 *      newly created element.
 *
 *       may be an array reference pointer, which in turn may be
 *      stored to an array's subscript position.
 *  $EXAMPLES$
 *      LOCAL aArray:={}
 *      AADD(aArray,10)
 *      FOR x:=1 to 10
 *          AADD(aArray,x)
 *      NEXT
 *  $STATUS$
 *      R
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      AINS(),ASIZE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ASIZE()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Adjust the size of an array
 *  $SYNTAX$
 *      ASIZE(, ) --> aTarget
 *  $ARGUMENTS$
 *       Name of array to be dynamically altered
 *
 *       Numeric value representing the new size of 
 *  $RETURNS$
 *       an array pointer reference to .
 *  $DESCRIPTION$
 *      This function will dynamically increase or decrease the size of
 *       by adjusting the length of the array to  subscript
 *      positions.
 *
 *      If the length of the array  is shortened, those former
 *      subscript positions are lost. If the length of the array is
 *      lengthened a NIL value is assigned to the new subscript position.
 *  $EXAMPLES$
 *      aArray := { 1 }          // Result: aArray is { 1 }
 *      ASIZE(aArray, 3)         // Result: aArray is { 1, NIL, NIL }
 *      ASIZE(aArray, 1)         // Result: aArray is { 1 }
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      If HB_COMPAT_C53 is defined, the function generates an Error,
 *      else it will return the array itself.
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      AADD(),ADEL(),AFILL(),AINS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ATAIL()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Returns the rightmost element of an array
 *  $SYNTAX$
 *      ATAIL(  ) --> Element
 *  $ARGUMENTS$
 *       is the array.
 *  $RETURNS$
 *       the expression of the last element in the array.
 *  $DESCRIPTION$
 *      This function return the value of the last element in the array
 *      named . This function does not alter the size of the
 *      array or any of the subscript values.
 *  $EXAMPLES$
 *      LOCAL array:= {"Harbour", "is", "Supreme", "Power"}
 *      ? ATAIL(aArray)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      LEN(),ARRAY(),ASIZE(),AADD()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      AINS()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Insert a NIL value at an array subscript position.
 *  $SYNTAX$
 *      AINS( ,  ) --> aTarget
 *  $ARGUMENTS$
 *       Array name.
 *
 *       Subscript position in 
 *  $RETURNS$
 *       an array pointer reference.
 *  $DESCRIPTION$
 *      This function inserts a NIL value in the array named 
 *      at the th position.
 *
 *      All array elements starting with the th position will be
 *      shifted down one subscript position in the array list and the
 *      last item in the array will be removed completely. In other words,
 *      if an array element were to be inserted at the fifth subscript
 *      position, the element previously in the fifth position would now
 *      be located at the sixth position. The length of the array 
 *      will remain unchanged.
 *  $EXAMPLES$
 *      LOCAL aArray:={"Harbour","is","Power!","!!!"}
 *      AINS(aArray,4)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      AADD(),ACOPY(),ADEL(),AEVAL(),AFILL(),ASIZE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ADEL()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Delete an element form an array.
 *  $SYNTAX$
 *      ADEL(, ) --> aTarget
 *  $ARGUMENTS$
 *       Name of array from which an element is to be removed.
 *
 *         Subscript of the element to be removed.
 *  $RETURNS$
 *       an array pointer reference.
 *  $DESCRIPTION$
 *      This function deletes the element found at  subscript position
 *      in the array . All elements in the array  below the
 *      given subscript position  will move up one position in the
 *      array. In other words, what was formerly the sixth subscript position
 *      will become the fifth subscript position. The length of the array
 *       will remain unchanged,as the last element in the array will
 *      become a NIL data type.
 *  $EXAMPLES$
 *     LOCAL aArray
 *      aArray := { "Harbour","is","Power" }      // Result: aArray is
 *
 *      ADEL(aArray, 2)            // Result: aArray is
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      ACOPY(),AINS(),AFILL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      AFILL()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Fill an array with a specified value
 *  $SYNTAX$
 *      AFILL( , , [], [] ) --> aTarget
 *  $ARGUMENTS$
 *       Name of array to be filled.
 *
 *       Expression to be globally filled in 
 *
 *       Subscript starting position
 *
 *       Number of subscript to be filled
 *  $RETURNS$
 *       an array pointer.
 *  $DESCRIPTION$
 *      This function will fill each element of an array named  with
 *      the value . If specified,  denotes the beginning
 *      element to be filled and the array elements will continue to be
 *      filled for  positions. If Not specified, the value of
 *       will be 1, and the value of  will be the value
 *      of LEN(); thus, all subscript positions in the array
 *       will be filled with the value of .
 *
 *      This function will work on only a single dimension of .
 *      If there are array pointer references within a subscript ,
 *      those values will be lost, since this function will overwrite those
 *      values with new values.
 *  $EXAMPLES$
 *      LOCAL aTest:={Nil,0,1,2}
 *      Afill(aTest,5)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      AADD(),AEVAL(),DBSTRUCT(),DIRECTORY()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ASCAN()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Scan array elements for a specified condition
 *  $SYNTAX$
 *      ASCAN( , , [], [] ) --> nStoppedAt
 *  $ARGUMENTS$
 *         Name of array to be scanned.
 *
 *         Expression to search for in 
 *
 *          Beginning subscript position at which to start the search.
 *
 *          Number of elements to scan with .
 *  $RETURNS$
 *       A numeric value of subscript position where 
 *      was found.
 *  $DESCRIPTION$
 *      This function scan the content of array named  for the
 *      value of . The return value is the position in the array
 *       in which  was found. If it was not found, the
 *      return value will be 0.
 *
 *      If specified, the beginning subscript position at which to start
 *      scanning may be set with the value passed as . The default
 *      is 1.
 *
 *      If specified, the number of array elements to scan may be set with
 *      the value passed as . The default is the number of elements
 *      in the array .
 *
 *      If  is a code block, the operation of the function is
 *      slightly different. Each array subscript pointer reference is
 *      passed to the code block to be evaluated. The scanning routine
 *      will continue until the value obtained from the code block is a
 *      logical true (.T.) or until the end of the array has been reached.
 *  $EXAMPLES$
 *      aDir:=Directory("*.prg")
 *      AScan(aDir,,,{|x,y| x[1]="Test.prg"})
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is not CA-Cl*pper compatible. Clipper ASCAN() is affected by the SET EXACT ON/OFF Condition
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      AEVAL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      AEVAL()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Evaluated the subscript element of an array
 *  $SYNTAX$
 *      AEVAL(, , [], []) --> aArray
 *  $ARGUMENTS$
 *       Is the array to be evaluated.
 *
 *       Is a code block to evaluate for each element processed.
 *
 *       The beginning  array element to evaluate.
 *
 *       The number of elements to process.
 *  $RETURNS$
 *       an array pointer reference.
 *  $DESCRIPTION$
 *      This function will evaluate and process the subscript elements
 *      in . A code block passed as  defines the operation
 *      to be executed on each element of the array. All elements in 
 *      will be evaluated unless specified by a beginning subscript position
 *      in  for  elements.
 *
 *      Two parameters are passed to the code block . The individual
 *      elements in an array are the first parameter and the subscript position
 *      is the second.
 *
 *      AEVAL() does not replace a FOR...NEXT loop for processing arrays. If
 *      an array is an autonomous unit, AEVAL() is appropriate. If the array
 *      is to be altered or if elements are to be reevaluated, a FOR...NEXT
 *      loop is more appropriate.
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      EVAL(),DBEVAL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ACOPY()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Copy elements from one array to another
 *  $SYNTAX$
 *      ACOPY( , , [], [], [] )
 *             --> aTarget
 *  $ARGUMENTS$
 *       is the array to copy elements from.
 *
 *       is the array to copy elements to.
 *
 *        is the beginning subscript position to copy from 
 *
 *        the number of subscript elements to copy from .
 *
 *       the starting subscript position in  to copy
 *      elements to.
 *  $RETURNS$
 *       an array pointer reference
 *  $DESCRIPTION$
 *      This function copies array elements from  to .
 *       is the beginning element to be copied from ;
 *      the default is 1.
 *
 *       is the number of elements to be copied from ;
 *      the default is the entire array.
 *
 *       is the subscript number in the target array,,
 *       to which array elements are to be copied; the default is 1
 *
 *      This function will copy all data types in  to .
 *
 *      If an array element in  is a pointer reference to another
 *      array, that array pointer will be copied to ; not all
 *      subdimensions will be copied from one array to the next. This must
 *      be accomplished via the ACLONE() function.
 *
 *      Note
 *      If array  is larger then , array elements will
 *      start copying at  and continue copying until the end
 *      of array  is reached. The ACOPY() function doesn't append
 *      subscript positions to the target array, the size of the target
 *      array  remains constant.
 *  $EXAMPLES$
 *      LOCAL nCount := 2, nStart := 1, aOne, aTwo
 *      aOne := {"HABOUR"," is ","POWER"}
 *      aTwo := {"CLIPPER"," was ","POWER"}
 *      ACOPY(aOne, aTwo, nStart, nCount)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      ACLONE(),ADEL(),AEVAL(),AFILL(),AINS(),ASORT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ACLONE()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Duplicate a  multidimensional array
 *  $SYNTAX$
 *      ACLONE() --> aDuplicate
 *  $ARGUMENTS$
 *       Name of the array to be cloned.
 *  $RETURNS$
 *       A new array pointer reference complete with nested
 *      array values.
 *  $DESCRIPTION$
 *      This function makes a complete copy of the array expressed as
 *       and return a cloned set of array values. This provides
 *      a complete set of arrays values for all dimensions within the
 *      original array 
 *  $EXAMPLES$
 *      LOCAL aOne, aTwo
 *      aOne := {"Harbour"," is ","POWER"}
 *      aTwo := ACLONE(aOne)       // Result: aTwo is {1, 2, 3}
 *      aOne[1] := "The Harbour Compiler"              // Result: aOne is {99, 2, 3}
 *                                 // aTwo is still {1, 2, 3}
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Clipper will return NIL if the parameter is not an array.
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      ACOPY(),ADEL(),AINS(),ASIZE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ASORT()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Sort an array
 *  $SYNTAX$
 *      ASORT( , [], [], [] ) --> aArray
 *  $ARGUMENTS$
 *       Array to be sorted.
 *
 *       The first element to start the sort from, default is 1.
 *
 *       Number of elements starting from  to sort, default
 *      is all elements.
 *
 *       Code block for sorting order, default is ascending order
 *      {| x, y | x < y }. The code block should accept two parameters and
 *      must return .T. if the sort is in order, .F. if not.
 *  $RETURNS$
 *       reference to the now sorted  or NIL if the
 *      passed  is not an array.
 *  $DESCRIPTION$
 *      ASORT() sort all or part of a given array. If  is omitted,
 *      the function expect  to be one dimensional array containing
 *      single data type (one of: Character, Date, Logical, Numeric) and sort
 *      this array in ascending order: Character are sorted by their ASCII
 *      value, Dates are sorted chronologically, Logical put .F. values before
 *      .T., Numeric are sorted by their value.
 *
 *      If  is specified, it is used to handle the sorting order. With
 *      each time the block is evaluate, two array elements are passed to the
 *      code block, and  must return a logical value that state if
 *      those elements are in order (.T.) or not (.F.). Using this block you
 *      can sort multidimensional array, descending orders or even (but why
 *      would you want to do that) sort array that contain different data
 *      type.
 *  $EXAMPLES$
 *      // sort numeric values in ascending order
 *      ASORT( { 3, 1, 4, 42, 5, 9 } )     // result: { 1, 3, 4, 5, 9, 42 }
 *
 *      // sort character strings in descending lexical order
 *      aKeys := { "Ctrl", "Alt", "Delete" }
 *      bSort := {| x, y | UPPER( x ) > UPPER( y ) }
 *      ASORT( aKeys,,, bSort )      // result: { "Delete", "Ctrl", "Alt" }
 *
 *      // sort two-dimensional array according to 2nd element of each pair
 *      aPair :=   { {"Sun",8}, {"Mon",1}, {"Tue",57}, {"Wed",-6} }
 *      ASORT( aPair,,, {| x, y | x[2] < y[2] } )
 *      // result: { {"Wed",-6}, {"Mon",1}, {"Sun",8}, {"Tue",57} }
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Codeblock calling frequency and order differs from Clipper, since
 *      Harbour uses a different (faster) sorting algorithm (quicksort).
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      ASCAN(),EVAL(),SORT
 *  $END$
 */
c:\harbour\doc\en\binnum.txt
/*
 * $Id: binnum.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Chen Kedem 
 *    Documentation for: BIN2W(), BIN2I(), BIN2L(), BIN2U(), I2BIN(), W2BIN(),
 *                       L2BIN(), U2BIN()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      BIN2W()
 *  $CATEGORY$
 *      Binary conversion
 *  $ONELINER$
 *      Convert unsigned short encoded bytes into Harbour numeric
 *  $SYNTAX$
 *      BIN2W(  ) --> nNumber
 *  $ARGUMENTS$
 *       is a character string that contain 16 bit encoded unsigned
 *      short integer (least significant byte first). The first two bytes
 *      are taken into account, the rest if any are ignored.
 *  $RETURNS$
 *      BIN2W() return numeric integer (or 0 if  is not a string).
 *  $DESCRIPTION$
 *      BIN2W() is one of the low level binary conversion functions, those
 *      functions convert between Harbour numeric and a character
 *      representation of numeric value. BIN2W() take two bytes of encoded
 *      16 bit unsigned short integer and convert it into standard Harbour
 *      numeric value.

 *      You might ask what is the need for such functions, well, first of
 *      all it allow you to read/write information from/to a binary file
 *      (like extracting information from DBF header), it is also a useful
 *      way to share information from source other than Harbour (C for
 *      instance).

 *      BIN2W() is the opposite of W2BIN()
 *  $EXAMPLES$
   
 *      // Show header length of a DBF
 *      FUNCTION main()
 *      LOCAL nHandle, cBuffer := space( 2 )
 *      nHandle := fopen( "test.dbf" )
 *      IF nHandle > 0
 *         fseek( nHandle, 8 )
 *         fread( nHandle, @cBuffer, 2 )
 *         ? "Length of DBF header in bytes:", BIN2W( cBuffer )
 *         fclose( nHandle )
 *      ELSE
 *         ? "Can not open file"
 *      ENDIF
 *      RETURN NIL
   
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      BIN2W() works exactly like CA-Cl*pper's BIN2W()
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      BIN2I(),BIN2L(),BIN2U(),I2BIN(),L2BIN(),W2BIN(),WORD(),U2BIN(),FREAD()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      BIN2I()
 *  $CATEGORY$
 *      Binary conversion
 *  $ONELINER$
 *      Convert signed short encoded bytes into Harbour numeric
 *  $SYNTAX$
 *      BIN2I(  ) --> nNumber
 *  $ARGUMENTS$
 *       is a character string that contain 16 bit encoded signed
 *      short integer (least significant byte first). The first two bytes
 *      are taken into account, the rest if any are ignored.
 *  $RETURNS$
 *      BIN2I() return numeric integer (or 0 if  is not a string).
 *  $DESCRIPTION$
 *      BIN2I() is one of the low level binary conversion functions, those
 *      functions convert between Harbour numeric and a character
 *      representation of numeric value. BIN2I() take two bytes of encoded
 *      16 bit signed short integer and convert it into standard Harbour
 *      numeric value.

 *      You might ask what is the need for such functions, well, first of
 *      all it allow you to read/write information from/to a binary file
 *      (like extracting information from DBF header), it is also a useful
 *      way to share information from source other than Harbour (C for
 *      instance).

 *      BIN2I() is the opposite of I2BIN()
 *  $EXAMPLES$
   
 *      // Show DBF last update date
 *      FUNCTION main()
 *      LOCAL nHandle, cYear, cMonth, cDay
 *      nHandle := fopen( "test.dbf" )
 *      IF nHandle > 0
 *         fseek( nHandle, 1 )
 *         cYear := cMonth := cDay := " "
 *         fread( nHandle, @cYear , 1 )
 *         fread( nHandle, @cMonth, 1 )
 *         fread( nHandle, @cDay  , 1 )
 *         ? "Last update:", BIN2I( cYear ), BIN2I( cMonth ), BIN2I( cDay )
 *         fclose( nHandle )
 *      ELSE
 *         ? "Can not open file"
 *      ENDIF
 *      RETURN NIL
   
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      BIN2I() works exactly like CA-Cl*pper's BIN2I()
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      BIN2L(),BIN2U(),BIN2W(),I2BIN(),L2BIN(),W2BIN(),WORD(),U2BIN(),FREAD()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      BIN2L()
 *  $CATEGORY$
 *      Binary conversion
 *  $ONELINER$
 *      Convert signed long encoded bytes into Harbour numeric
 *  $SYNTAX$
 *      BIN2L(  ) --> nNumber
 *  $ARGUMENTS$
 *       is a character string that contain 32 bit encoded signed
 *      long integer (least significant byte first). The first four bytes
 *      are taken into account, the rest if any are ignored.
 *  $RETURNS$
 *      BIN2L() return numeric integer (or 0 if  is not a string).
 *  $DESCRIPTION$
 *      BIN2L() is one of the low level binary conversion functions, those
 *      functions convert between Harbour numeric and a character
 *      representation of numeric value. BIN2L() take four bytes of encoded
 *      32 bit signed long integer and convert it into standard Harbour
 *      numeric value.

 *      You might ask what is the need for such functions, well, first of
 *      all it allow you to read/write information from/to a binary file
 *      (like extracting information from DBF header), it is also a useful
 *      way to share information from source other than Harbour (C for
 *      instance).

 *      BIN2L() is the opposite of L2BIN()
 *  $EXAMPLES$
   
 *      // Show number of records in DBF
 *      FUNCTION main()
 *      LOCAL nHandle, cBuffer := space( 4 )
 *      nHandle := fopen( "test.dbf" )
 *      IF nHandle > 0
 *         fseek( nHandle, 4 )
 *         fread( nHandle, @cBuffer, 4 )
 *         ? "Number of records in file:", BIN2L( cBuffer )
 *         fclose( nHandle )
 *      ELSE
 *         ? "Can not open file"
 *      ENDIF
 *      RETURN NIL
   
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      BIN2L() works exactly like CA-Cl*pper's BIN2L()
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      BIN2I(),BIN2U(),BIN2W(),I2BIN(),L2BIN(),W2BIN(),WORD(),U2BIN(),FREAD()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      BIN2U()
 *  $CATEGORY$
 *      Binary conversion
 *  $ONELINER$
 *      Convert unsigned long encoded bytes into Harbour numeric
 *  $SYNTAX$
 *      BIN2U(  ) --> nNumber
 *  $ARGUMENTS$
 *       is a character string that contain 32 bit encoded unsigned
 *      long integer (least significant byte first). The first four bytes
 *      are taken into account, the rest if any are ignored.
 *  $RETURNS$
 *      BIN2U() return numeric integer (or 0 if  is not a string).
 *  $DESCRIPTION$
 *      BIN2U() is one of the low level binary conversion functions, those
 *      functions convert between Harbour numeric and a character
 *      representation of numeric value. BIN2U() take four bytes of encoded
 *      32 bit unsigned long integer and convert it into standard Harbour
 *      numeric value.

 *      You might ask what is the need for such functions, well, first of
 *      all it allow you to read/write information from/to a binary file
 *      (like extracting information from DBF header), it is also a useful
 *      way to share information from source other than Harbour (C for
 *      instance).

 *      BIN2U() is the opposite of U2BIN()
 *  $EXAMPLES$
   
 *      // Show number of records in DBF
 *      FUNCTION main()
 *      LOCAL nHandle, cBuffer := space( 4 )
 *      nHandle := fopen( "test.dbf" )
 *      IF nHandle > 0
 *         fseek( nHandle, 4 )
 *         fread( nHandle, @cBuffer, 4 )
 *         ? "Number of records in file:", BIN2U( cBuffer )
 *         fclose( nHandle )
 *      ELSE
 *         ? "Can not open file"
 *      ENDIF
 *      RETURN NIL
   
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      BIN2U() is an XBase++ compatibility function and does not exist
 *      as a standard CA-Cl*pper 5.x function.
 *      This function is only visible if source/rtl/binnum.c was compiled
 *      with the HB_COMPAT_XPP flag.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      BIN2I(),BIN2L(),BIN2W(),I2BIN(),L2BIN(),W2BIN(),WORD(),U2BIN(),FREAD()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      I2BIN()
 *  $CATEGORY$
 *      Binary conversion
 *  $ONELINER$
 *      Convert Harbour numeric into signed short encoded bytes
 *  $SYNTAX$
 *      I2BIN(  ) --> cBuffer
 *  $ARGUMENTS$
 *       is a numeric value to convert (decimal digits are ignored).
 *  $RETURNS$
 *      I2BIN() return two bytes character string that contain 16 bit
 *      encoded signed short integer (least significant byte first).
 *  $DESCRIPTION$
 *      I2BIN() is one of the low level binary conversion functions, those
 *      functions convert between Harbour numeric and a character
 *      representation of numeric value. I2BIN() take a numeric integer
 *      value and convert it into two bytes of encoded 16 bit signed short
 *      integer.

 *      You might ask what is the need for such functions, well, first of
 *      all it allow you to read/write information from/to a binary file
 *      (like extracting information from DBF header), it is also a useful
 *      way to share information from source other than Harbour (C for
 *      instance).

 *      I2BIN() is the opposite of BIN2I()
 *  $EXAMPLES$
   
 *      // Update DBF "last update" date
 *      #include "fileio.ch"
 *      FUNCTION main()
 *      LOCAL nHandle, cYear, cMonth, cDay
 *      use test
 *      ? "Original update date is:", lupdate()
 *      close
 *      nHandle := fopen( "test.dbf", FO_READWRITE )
 *      IF nHandle > 0
 *         fseek( nHandle, 1, )
 *         cYear  := I2BIN( 68 )
 *         cMonth := I2BIN(  8 )
 *         cDay   := I2BIN(  1 )
 *         fwrite( nHandle, cYear , 1 )   // write only the first byte
 *         fwrite( nHandle, cMonth, 1 )
 *         fwrite( nHandle, cDay  , 1 )
 *         fclose( nHandle )
 *         use test
 *         ? "New update date is:", lupdate()
 *         close
 *      ELSE
 *         ? "Can not open file"
 *      ENDIF
 *      RETURN NIL
   
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      I2BIN() works exactly like CA-Cl*pper's I2BIN()
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      BIN2I(),BIN2L(),BIN2U(),BIN2W(),L2BIN(),W2BIN(),WORD(),U2BIN(),FWRITE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      W2BIN()
 *  $CATEGORY$
 *      Binary conversion
 *  $ONELINER$
 *      Convert Harbour numeric into unsigned short encoded bytes
 *  $SYNTAX$
 *      W2BIN(  ) --> cBuffer
 *  $ARGUMENTS$
 *       is a numeric value to convert (decimal digits are ignored).
 *  $RETURNS$
 *      W2BIN() return two bytes character string that contain 16 bit
 *      encoded unsigned short integer (least significant byte first).
 *  $DESCRIPTION$
 *      W2BIN() is one of the low level binary conversion functions, those
 *      functions convert between Harbour numeric and a character
 *      representation of numeric value. W2BIN() take a numeric integer
 *      value and convert it into two bytes of encoded 16 bit unsigned short
 *      integer.

 *      You might ask what is the need for such functions, well, first of
 *      all it allow you to read/write information from/to a binary file
 *      (like extracting information from DBF header), it is also a useful
 *      way to share information from source other than Harbour (C for
 *      instance).

 *      W2BIN() is the opposite of BIN2W()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      W2BIN() is an XBase++ compatibility function and does not exist
 *      as a standard CA-Cl*pper 5.x function.
 *      This function is only visible if source/rtl/binnum.c was compiled
 *      with the HB_COMPAT_XPP flag.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      BIN2I(),BIN2L(),BIN2U(),BIN2W(),I2BIN(),L2BIN(),WORD(),U2BIN(),FWRITE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      L2BIN()
 *  $CATEGORY$
 *      Binary conversion
 *  $ONELINER$
 *      Convert Harbour numeric into signed long encoded bytes
 *  $SYNTAX$
 *      L2BIN(  ) --> cBuffer
 *  $ARGUMENTS$
 *       is a numeric value to convert (decimal digits are ignored).
 *  $RETURNS$
 *      L2BIN() return four bytes character string that contain 32 bit
 *      encoded signed long integer (least significant byte first).
 *  $DESCRIPTION$
 *      L2BIN() is one of the low level binary conversion functions, those
 *      functions convert between Harbour numeric and a character
 *      representation of numeric value. L2BIN() take a numeric integer
 *      value and convert it into four bytes of encoded 32 bit signed long
 *      integer.

 *      You might ask what is the need for such functions, well, first of
 *      all it allow you to read/write information from/to a binary file
 *      (like extracting information from DBF header), it is also a useful
 *      way to share information from source other than Harbour (C for
 *      instance).

 *      L2BIN() is the opposite of BIN2L()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      L2BIN() works exactly like CA-Cl*pper's L2BIN()
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      BIN2I(),BIN2L(),BIN2U(),BIN2W(),I2BIN(),W2BIN(),WORD(),U2BIN(),FWRITE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      U2BIN()
 *  $CATEGORY$
 *      Binary conversion
 *  $ONELINER$
 *      Convert Harbour numeric into unsigned long encoded bytes
 *  $SYNTAX$
 *      U2BIN(  ) --> cBuffer
 *  $ARGUMENTS$
 *       is a numeric value to convert (decimal digits are ignored).
 *  $RETURNS$
 *      U2BIN() return four bytes character string that contain 32 bit
 *      encoded unsigned long integer (least significant byte first).
 *  $DESCRIPTION$
 *      U2BIN() is one of the low level binary conversion functions, those
 *      functions convert between Harbour numeric and a character
 *      representation of numeric value. U2BIN() take a numeric integer
 *      value and convert it into four bytes of encoded 32 bit unsigned long
 *      integer.

 *      You might ask what is the need for such functions, well, first of
 *      all it allow you to read/write information from/to a binary file
 *      (like extracting information from DBF header), it is also a useful
 *      way to share information from source other than Harbour (C for
 *      instance).

 *      U2BIN() is the opposite of BIN2U()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      U2BIN() is an XBase++ compatibility function and does not exist
 *      as a standard CA-Cl*pper 5.x function.
 *      This function is only visible if source/rtl/binnum.c was compiled
 *      with the HB_COMPAT_XPP flag.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      BIN2I(),BIN2L(),BIN2U(),BIN2W(),I2BIN(),L2BIN(),W2BIN(),WORD(),FWRITE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      WORD()
 *  $CATEGORY$
 *      Conversion
 *  $ONELINER$
 *      Converts double to integer values.
 *  $SYNTAX$
 *      WORD(  ) --> 
 *  $ARGUMENTS$
 *       is a numeric double value.
 *  $RETURNS$
 *      WORD() return an integer in the range +-32767
 *  $DESCRIPTION$
 *      This function converts double values to integers to use
 *      within the CALL command
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      The Clipper NG states that WORD() will only work when used in CALL
 *      commands parameter list, otherwise it will return NIL, in Harbour
 *      it will work anywhere.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *       CALL
 *  $END$
 */
c:\harbour\doc\en\browse.txt
/*
 * $Id: browse.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: BROWSE(), DBEDIT(), TBROWSEDB(), DBSKIPPER()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/* TODO: put more comprehensive $EXAMPLES$.
         DBEDIT() is a complex function, the doc I had made cover all the
         parameters but probably not good enough for a new user that does
         not know what this function is all about and how to use it. I am
         not that good with the English language (and I did not want to
         COPY the NG text) I suggest later some one should add to this
         text. [chkedem] */

/*  $DOC$
 *  $FUNCNAME$
 *      DBEDIT()*
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Browse records in a table
 *  $SYNTAX$
 *      DBEDIT( [], [], [], [], [], [], [], [], [], [], [], [] ) --> lOk
 *  $ARGUMENTS$
 *       coordinate for top row display.  could range from 0
 *      to MAXROW(), default is 0.
 *
 *       coordinate for left column display.  could range
 *      from 0 to MAXCOL(), default is 0.
 *
 *       coordinate for bottom row display.  could range
 *      from 0 to MAXROW(), default is MAXROW().
 *
 *       coordinate for right column display.  could range
 *      from 0 to MAXCOL(), default is MAXCOL().
 *
 *       is an array of character expressions that contain
 *      database fields names or expressions to display in each column.
 *      If not specified, the default is to display all fields from the
 *      database in the current work area.
 *
 *       is a name of a user defined function or a code block
 *      that would be called every time unrecognized key is been pressed or
 *      when there are no keys waiting to be processed and DBEDIT() goes
 *      into idle mode. If  is a character string, it must
 *      contain root name of a valid user define function without
 *      parentheses. Both the user define function or the code block should
 *      accept two parameters: nMode, nCurrentColumn. Both should return
 *      a numeric value that correspond to one of the expected return codes
 *      (see table below for a list of nMode and return codes).
 *
 *       is an optional picture. If 
 *      is a character string, all columns would used this value as a
 *      picture string. If  is an array, each element
 *      should be a character string that correspond to a picture string
 *      for the column with the same index. Look at the help for @...SAY
 *      to get more information about picture values.
 *
 *       contain the header titles for each column, if this
 *      is a character string, all columns would have that same header, if
 *      this is an array, each element is a character string that contain
 *      the header title for one column. Header may be split to more than
 *      one line by placing semicolon (;) in places where you want to break
 *      line. If omitted, the default value for each column header is taken
 *      from  or field name if  was not specified.
 *
 *       is an array that contain characters that draw
 *      the lines separating the headers and the fields data. Instead of an
 *      array you can use a character string that would be used to display
 *      the same line for all fields. Default value is a double line.
 *
 *       is an array that contain characters that draw
 *      the lines separating displayed columns. Instead of an array you can
 *      use a character string that would be used to display the same line
 *      for all fields. Default value is a single line.
 *
 *       is an array that contain characters that draw
 *      the lines separating the fields data area and the footing area.
 *      Instead of an array you can use a character string that would be
 *      used to display the same line for all footers. Default is to have to
 *      no footing separators.
 *
 *       contain the footing to be displayed at the bottom
 *      of each column, if this is a character string, all columns would
 *      have that same footer, if this is an array, each element is a
 *      character string that contain the footer for one column. Footer may
 *      be split to more than one line by placing semicolon (;) in places
 *      where you want to break line. If omitted, no footer are displayed.
 *  $RETURNS$
 *      DBEDIT() return .F. if there is no database in use or if the number
 *      of columns to display is zero, else DBEDIT() return .T.
 *  $DESCRIPTION$
 *      DBEDIT() display and edit records from one or more work areas in
 *      a grid on screen. Each column is defined by element from 
 *      and is the equivalent of one field. Each row is equivalent of one
 *      database record.

 *      Following are active keys that handled by DBEDIT():       
 *      ---------------------------------------------------
 *
 *     
 *       Key              Meaning
 *
 *       Left             Move one column to the left (previous field)
 *       Right            Move one column to the right (next field)
 *       Up               Move up one row (previous record)
 *       Down             Move down one row (next record)
 *       Page-Up          Move to the previous screen
 *       Page-Down        Move to the next screen
 *       Ctrl Page-Up     Move to the top of the file
 *       Ctrl Page-Down   Move to the end of the file
 *       Home             Move to the leftmost visible column
 *       End              Move to the rightmost visible column
 *       Ctrl Left        Pan one column to the left
 *       Ctrl Right       Pan one column to the right
 *       Ctrl Home        Move to the leftmost column
 *       Ctrl End         Move to the rightmost column
 *     
* When is omitted, two more keys are active: * * Key Meaning * * Esc Terminate BROWSE() * Enter Terminate BROWSE() *
* * When DBEDIT() execute it pass the following arguments: * nMode and the index of current record in . If * is omitted, the index number is the FIELD() number of the open * database structure. * * DBEDIT() nMode could be one of the following: * --------------------------------------------- * * * Dbedit.ch Meaning * * DE_IDLE DBEDIT() is idle, all movement keys have been handled. * DE_HITTOP Attempt to cursor past top of file. * DE_HITBOTTOM Attempt to cursor past bottom of file. * DE_EMPTY No records in work area, database is empty. * DE_EXCEPT Key exception. *
* * The user define function or code block must return a value that tell * DBEDIT() what to do next. * * User function return codes: * --------------------------- * * * Dbedit.ch Value Meaning * * DE_ABORT 0 Abort DBEDIT(). * DE_CONT 1 Continue DBEDIT() as is. * DE_REFRESH 2 Force reread/redisplay of all data rows. *
* * The user function is called once in each of the following cases: * - The database is empty. * - The user try to move past top of file or past bottom file. * - Key exception, the uses had pressed a key that is not handled by DBEDIT(). * - The keyboard buffer is empty or a screen refresh had just occurred * DBEDIT() is a compatibility function, it is superseded by the * TBrowse class and there for not recommended for new applications. * $EXAMPLES$ * // Browse a file using default values * USE Test * DBEDIT() * * $STATUS$ * S * $COMPLIANCE$ * can take a code block value, this is a Harbour * extension. * CA-Cl*pper will throw an error if there's no database open, Harbour * would return .F. * CA-Cl*pper is buggy and will throw an error if the number of columns * zero, Harbour would return .F. * The CA-Cl*pper 5.2 NG state that the return value is NIL, this is * wrong and should be read logical. * There is an undocumented result code (3) from the user defined * function in Clipper (both 87 and 5.x). This is an Append Mode which: * "split the screen to allow data to be appended in windowed area". * This mode is not supported by Harbour. * $FILES$ * Header files are dbedit.ch, inkey.ch * Library is rtl * $SEEALSO$ * @...SAY,BROWSE(),TBrowse class,TRANSFORM() * $END$ */ /* $DOC$ * $FUNCNAME$ * BROWSE() * $CATEGORY$ * Data input and output * $ONELINER$ * Browse a database file * $SYNTAX$ * BROWSE( [, , , ] ) --> lOk * $ARGUMENTS$ * coordinate for top row display. * * coordinate for left column display. * * coordinate for bottom row display. * * coordinate for right column display. * $RETURNS$ * BROWSE() return .F. if there is no database open in this work area, * else it return .T. * $DESCRIPTION$ * BROWSE() is a general purpose database browser, without any * thinking you can browse a file using the following keys: * * * Key Meaning * * Left Move one column to the left (previous field) * Right Move one column to the right (next field) * Up Move up one row (previous record) * Down Move down one row (next record) * Page-Up Move to the previous screen * Page-Down Move to the next screen * Ctrl Page-Up Move to the top of the file * Ctrl Page-Down Move to the end of the file * Home Move to the leftmost visible column * End Move to the rightmost visible column * Ctrl Left Pan one column to the left * Ctrl Right Pan one column to the right * Ctrl Home Move to the leftmost column * Ctrl End Move to the rightmost column * Esc Terminate BROWSE() *
* On top of the screen you see a status line with the following * indication: * * * Record ###/### Current record number / Total number of records. * There are no records, the file is empty. * You are in append mode at the bottom of file. * Current record is deleted. * You are at the top of file. *
* You should pass whole four valid coordinate, if less than four * parameters are passed to BROWSE() the coordinate are default to: * 1, 0, MAXROW(), MAXCOL(). * $EXAMPLES$ * // this one shows you how to browse around * USE Around * BROWSE() * $STATUS$ * S * $FILES$ * Library is rtl * $SEEALSO$ * DBEDIT()*,TBrowse class * $END$ */ /* $DOC$ * $FUNCNAME$ * TBrowseDB() * $CATEGORY$ * TBrowse class * $ONELINER$ * Create a new TBrowse object to be used with database file * $SYNTAX$ * TBrowseDB( [], [], [], [] ) --> oBrowse * $ARGUMENTS$ * coordinate for top row display. * * coordinate for left column display. * * coordinate for bottom row display. * * coordinate for right column display. * $RETURNS$ * TBrowseDB() return new TBrowse object with the specified coordinate * and a default :SkipBlock, :GoTopBlock and :GoBottomBlock to browse * a database file. * $DESCRIPTION$ * TBrowseDB() is a quick way to create a TBrowse object along with * the minimal support needed to browse a database. Note that the * returned TBrowse object contain no TBColumn objects and you need * to add column for each field by your self. * $EXAMPLES$ * for a good example, look at the source code for BROWSE() function * at source/rtl/browse.prg * $STATUS$ * S * $COMPLIANCE$ * TBrowseDB() works exactly like CA-Cl*pper's TBrowseDB(). * $FILES$ * Library is rtl * $SEEALSO$ * BROWSE(),TBColumn class,TBrowse class,TBrowseNew() * $END$ */ /* $DOC$ * $FUNCNAME$ * dbSkipper() * $CATEGORY$ * Database * $ONELINER$ * Helper function to skip a database * $SYNTAX$ * dbSkipper( ) --> nSkipped * $ARGUMENTS$ * is the number of records to skip relative to current record. * Positive number would try to move the record pointer forward, while * a negative number would try to move the record pointer back * records. * $RETURNS$ * dbSkipper() return the number of actual record skipped. * $DESCRIPTION$ * dbSkipper() is a helper function used in browse mechanism to skip * a number of records while giving the caller indication about the * actual records skipped. * $EXAMPLES$ * // open a file and find if we've got enough records in it * USE MonthSales * IF dbSkipper( 100 ) == 100 * ? "Good work! You can party now" * ELSE * ? "Too bad, you should really work harder" * ENDIF * CLOSE * $STATUS$ * R * $COMPLIANCE$ * dbSkipper() is an XBase++ compatibility function and does not exist * as a standard CA-Cl*pper 5.x function. * This function is only visible if source/rtl/browdb.prg was compiled * with the HB_COMPAT_XPP flag. * $FILES$ * Library is rtl * $SEEALSO$ * DBSKIP(),SKIP * $END$ */
c:\harbour\doc\en\clipper.txt
$Id: clipper.txt 6754 2006-07-14 13:47:17Z rglab $

This document attempts to describe the features separating Harbour from
Clipper.

/* TODO: @FunPointer(), and all other Harbour extensions. */

Harbour Macro Compiler
----------------------
The Harbour Macro Compiler offers 2 additional layers of functionality
controlled by means of HB_SETMACRO()* function, not available in Clipper.

HB_SETMACRO( HB_SM_HARBOUR, TRUE ) will enable macro compilation and
evaluation of complex expressions not supported by Clipper like:

 - exp++, exp--, var += exp, (exp), etc..
 - Nested codeblocks.
 - Expressions longer then 254 characters.

HB_SETMACRO( HB_SM_XBASE, TRUE ) will enable macro compilation and
evaluation of comma separated lists in all contexts where lists are
acceptable by Clipper*, including:

  - { &cMacro } // Literal array elements list.
  - SomeArray[ &cMacro ] // Array index list.
  - SomeFun( &cMacro ) // Arguments list.
  - ( &cMacro ) // parenthesized list expression.

*Clipper only supports list macros within codeblocks context.

Both these extra layers are activated by default.

* See also -k Compiler switch.

LIST Command
------------

LIST &cMacro

LIST in clipper [superficially] supports macros of lists expressions.
No error will be produced, and all expressions in the list will be
evaluated, but *only* the *last* expression will be displayed. This is
not documented in either the LIST Command or the Macro Operator
descriptions, but is the de-facto behavior in all Clipper 5.x versions.

Harbour instead will not only evaluate all of the expressions in
such list macro, but will also display all such values. This default
behavior may be disabled with HB_SETMACRO( HB_SM_XBASE, .F. )*

* See also -k Compiler switch.

INIT/EXIT and startup procedures
--------------------------------

In Clipper the startup procedure is always the first procedure/function
of the main module, even if such symbol is an INIT or EXIT symbol. In
such case the program will never execute the "main" symbol. In Harbour
the first *non* INIT/EXIT symbol, will be executed as the main symbol
after all INIT procedures have been executed.

FOR EACH statement
------------------
Harbour has support enumeration loop with the following syntax:

   FOR EACH var1 [,var255] IN expr1 [,expr255] [DESCEND]
      [EXIT]
      [LOOP]
      ...
   NEXT
         
Note:
   -expr can be a string or an array
   -enumerator variable 'var' stores a reference to the element of 
    an array or a string specified by 'expr' thus assigments to the
    enumerator changes the value of given array element
   -after the loop the controlling variable(s) store the value which 
    they had before entering the loop
   -the enumeraqtor variable supports the following properties
    :__enumindex - the loop counter for variable
    :__enumbase  - the value that is being traversed
    :__enumvalue - the value of variable
            

for example:
   a = 'A'
   b = 'B'
   FOR EACH a,b IN { 1, 2, 3, 4 }, "abcd"
      ? a, b   //prints: 1 a
               //        2 b
               //        3 c
               //        4 d
   NEXT
   ? a, b   //prints: A B
   
   // you can use EXIT statement inside the loop
   FOR EACH a IN { 1, 2, 3, 4 }
      IF( a:__enumindex == 3 )
         ? a
         EXIT
      ENDIF
   NEXT
   
   arr := { 1, 2, 3 }
   str := "abc"
   FOR EACH a, b IN arr, str
      a *= 2
      str := UPPER( str )
   NEXT
   //now 'arr' stores { 2, 4, 6 }
   //howerer 'str' still stores "abc"
   
Notice the difference:
   FOR EACH a IN someValue
      ? a:__enumindex   //prints current value of the index
      ? (a):__enumindex //sends '__enumindex' message to the current value
   NEXT

   
WITH OBJECT
-----------
Harbour supports the following statement:

   WITH OBJECT expression
      ...
   END
   
   Inside this WITH OBJECT/END enclosure you can use the simplified
   form of sending messages to the object. You can use the syntax
   :message( [params] )
   :property
   to send messages to the object specified by 'expression'
   
for example:
   WITH OBJECT myobj:a[1]:myitem
      :message( 1 )
      :value := 9
   END
   
   The above code is equivalent to:
   myobj:a[1]:myitem:message( 1 )
   myobj:a[1]:myitem:value := 9
   
   Inside WITH OBJECT/END you can access (or even assign a new object)
   using a special reserved property :__withobject

       The runtime error will be generated at the time of message
       sending (or property access/assign) if 
       is not a value of type object.
   
for example:
   CLASS foo
      DATA name INIT 'FOO'
   ENDCLASS
   
   CLASS bar
      DATA name INIT 'BAR'
   ENDCLASS
   
   WITH OBJECT foo():new()
      ? :name                 //prints 'FOO'
      ? :__withobject:name    //also prints 'FOO'   
      ? :__withobject := bar():new()
      ? :name                 //prints 'BAR'
   END

c:\harbour\doc\en\cmdline.txt
/*
 * $Id: cmdline.txt 9243 2008-08-25 21:36:00Z vszakats $
 */

/*  $DOC$
 *  $FUNCNAME$
 *      Command line Utility
 *  $CATEGORY$
 *      Document
 *  $ONELINER$
 *      Compiler Options
 *  $DESCRIPTION$
 *      This spec goes for CLIPPERCMD, HARBOURCMD, Harbour compiler and
 *      #pragma directives in the source code.
 *      
 *      The command line always overrides the envvar.
 *      
 *      Note that some switches are not accepted in envvar,some others in
 *      #pragmas.
 *      
 *      First the parser should start to step through all the tokens in the
 *      string separated by whitespace. (or just walk through all argv[])
 *      
 *      1.) If the token begins with "-", it should be treated as a new style
 *      switch.
 *      
 *      One or more switch characters can follow this. The "-" sign inside
 *      the token will turn off the switch.
 *      
 *      If the switch has an argument all the following characters are
 *      treated as part of the argument.
 *      
 *      The "/" sign has no special meaning here.
 *          
 *        
 *        Switch                  Result option  
 *
 *        -wn                     ( W N )
 *        -w-n                    ( !W N )
 *        -wi/harbour/include/    ( W I=/harbour/include/ )
 *        -wi/harbour/include/n   ( W I=/harbour/include/n )
 *        -wes0n                  ( W ES=0 N )
 *        -wen                    ( W [invalid switch: e] N )
 *        -wesn                   ( W ES=default(0) N )
 *        -wses                   ( W S ES=default(0) )
 *        -wess                   ( W ES=default(0) S )
 *        -                       ( [invalid switch] )
 *        -w-n-p                  ( !W !N P )
 *        -w-n-p-                 ( !W !N !P )      
 *        -w- -w -w-              ( finally: !W )
 *          
* * 2.) If the token begins with "/", it should be treated as a compatibility * style switch. * * The parser scans the token for the next "/" sign or EOS and treats * the resulting string as one switch. * * This means that a switch with an argument containing "/" sign has * some limitations. This may be solved by allowing the usage of quote * characters. This is mostly a problem on systems which use "/" as * path separator. * * The "-" sign has no special meaning here, it can't be used to * disable a switch. * * * Switch Result option * * /w/n ( W N ) * /wo/n ( [invalid switch: wo] N ) * /ihello/world/ ( I=hello [invalid switch: world] [invalid switch: /] ) * /i"hello/world/"/w ( I=hello/world/ W ) * /ihello\world\ ( I=hello\world\ ) *
* * 3.) If the token begins with anything else it should be skipped. * * The Harbour switches are always case insensitive. * * In the Harbour commandline the two style can be used together: * harbour -wnes2 /gc0/q0 -iC:\hello * * Exceptions: * * - Handlig of the /CREDIT undocumented switch on Harbour command line * is unusual, check the current code for this. * * - The CLIPPER, HARBOUR and Harbour application command line parsing * is a different beast, see cmdarg.c for a NOTE. * * Notes: * * - All occurences where a path is accepted, Harbour should handle the * quote char to specify path containing space, negative sign, slash, * or any other chars with special meaning. * * /i"C:/hello/" * -i"C:/hello-n" * /i"C:/Program Files/" * -i"C:/Program Files/" * * * Just some examples for the various accepted forms: * //F20 == /F20 == F20 == F:20 == F20X * //TMPPATH:C:\hello * F20//TMPPATH:/temp///F:30000000 NOIDLE * F0NOIDLEX10 * SQUAWKNOIDLE * * "//" should always be used on the command line. * $SEEALSO$ * Compiler Options * $END$ */
c:\harbour\doc\en\command.txt
/*
 * $Id: command.txt 4484 2001-09-11 10:15:24Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Brian Hays 
 *    Documentation for the commands
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      CLASS
 *  $CATEGORY$
 *      OOP Command
 *  $ONELINER$
 *      Define a Class for Object Oriented Programming
 *  $SYNTAX$
 *      [CREATE] CLASS  [   [,] ]  [STATIC]
 *  $ARGUMENTS$
 *        Name of the class to define. By tradition, Harbour
 *                   classes start with "T" to avoid collisions with user-
 *                   created classes.
 *
 *       The Parent class(es) to use for inheritance.
 *                   Harbour supports Multiple Inheritance.
 *
 *      STATIC       This clause causes the class function to be declared
 *                   as a static function. It will therefore not be available outside the current module.
 *
 *  $DESCRIPTION$
 *      CLASS creates a class from which you can create objects.
 *      The CLASS command begins the class specification, in which the DATA
 *      elements (also known as instance variables) and METHODS of the
 *      class are named. The following scoping commands may also appear.
 *      They control the default scope of DATA and METHOD commands that follow them.
 *
 *      
 *         EXPORTED: 
 *         VISIBLE: 
 *         HIDDEN: 
 *         PROTECTED: 
 *      
 *      The class specification ends with the END CLASS command.
 *
 *      Classes can inherit from multiple , and the chain of
 *      inheritance can extend to many levels.
 *
 *      A program uses a Class by calling the Class Constructor, usually the
 *      New() method, to create an object. That object is usually assigned
 *      to a variable, which is used to access the DATA elements and
 *      methods.
 *
 *      Harbour's OOP syntax and implementation supports Scoping (Protect, Hidden and Readonly)
 *      and Delegating, and is largely compatible with Class(y)(tm), TopClass(tm)
 *      and Visual Objects(tm).
 *  $EXAMPLES$
    
 *      CLASS TBColumn
 *
 *         DATA Block      // Code block to retrieve data for the column
 *         DATA Cargo      // User-definable variable
 *         DATA ColorBlock // Code block that determines color of data items
 *         DATA ColSep     // Column separator character
 *         DATA DefColor   // Array of numeric indexes into the color table
 *         DATA Footing    // Column footing
 *         DATA FootSep    // Footing separator character
 *         DATA Heading    // Column heading
 *         DATA HeadSep    // Heading separator character
 *         DATA Width      // Column display width
 *         DATA ColPos     // Temporary column position on screen
 *
 *         METHOD New()    // Constructor
 *
 *      ENDCLASS
    
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      CLASS is a Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      HBClass(),Object Oriented Programming,DATA,METHOD
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      DATA
 *  $CATEGORY$
 *      OOP Command
 *  $ONELINER$
 *      Alternate syntax for VAR: instance variable for the objects.
 *  $SYNTAX$
 *      DATA  [,] [ AS  ] [ INIT  ]
 *      [[EXPORTED | VISIBLE] | [PROTECTED] | [HIDDEN]] [READONLY | RO]
 *  $ARGUMENTS$
 *        Name of the DATA

 *             Optional data type specification from the following:
 *                   Character, Numeric, Date, Logical, Codeblock, Nil.

 *           Optional initial value when creating a new object.
 *
 *      EXPORTED     Specifies that this DATA is accessible to functions and
 *                   methods outside of the class.  VISIBLE is a synonym for EXPORTED.
 *
 *      PROTECTED    Specifies that this DATA is only accessible to functions and methods within this class and its subclasses.
 *
 *      HIDDEN       Specifies that this DATA is only accessible to the
 *                   class where it was defined, and is not inherited by the
 *                   subclasses.

 *      READONLY     Restricts assignment to the variable. If specified with
 *                   the EXPORTED clause, assignment is only permitted from the current
 *                   class and its subclasses.  If specified with the PROTECTED clause,
 *                   assignment is only permitted from the current class.
 *                   RO is a synonym for READONLY.

 *  $DESCRIPTION$
 *      DATA elements can also be thought of as the "properties" of an
 *      object. They can be of any data type, including codeblock.
 *      Once an object has been created, the DATA elements are referenced
 *      with the colon (:) as in  MyObject:Heading := "Last name".
 *      Usually a class also defines methods to manipulate the DATA.
 *
 *      You can use the "AS " clause to enforce that the DATA is
 *      maintained as a certain type. Otherwise it will take on the type of
 *      whatever value is first assigned to it.
 *
 *      Use the "INIT " clause to initialize that DATA to 
 *      whenever a new object is created.
 *
 *      VAR can be a synonym for DATA, or it can use a slightly different
 *      syntax for compatibility with other dialects.

 *  $EXAMPLES$
    
 *      CLASS TBColumn
 *
 *         DATA Block      // Code block to retrieve data for the column
 *         DATA Cargo      // User-definable variable
 *         DATA ColorBlock // Code block that determines color of data items
 *         DATA ColSep     // Column separator character
 *         DATA DefColor   // Array of numeric indexes into the color table
 *         DATA Footing    // Column footing
 *         DATA FootSep    // Footing separator character
 *         DATA Heading    // Column heading
 *         DATA HeadSep    // Heading separator character
 *         DATA Width      // Column display width
 *         DATA ColPos     // Temporary column position on screen
 *
 *         METHOD New()    // Constructor
 *
 *      ENDCLASS
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      DATA is a Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      Object Oriented Programming,CLASS,METHOD,CLASSDATA,VAR
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      CLASSDATA
 *  $CATEGORY$
 *      OOP Command
 *  $ONELINER$
 *      Define a CLASSDATA variable for a class (NOT for an Object!)
 *  $SYNTAX$
 *      CLASSDATA  [,] [ AS  ] [ INIT  ]
 *  $ARGUMENTS$
 *        Name of the DATA

 *             Optional data type specification from the following:
 *                      Character, Numeric, Date, Logical, Codeblock, Nil

 *           Optional initial value at program startup
 *  $DESCRIPTION$
 *      CLASSDATA variables can also be thought of as the "properties" of an
 *      entire class. Each CLASSDATA exists only once, no matter how many
 *      objects are created. A common usage is for a counter that is
 *      incremented whenever an object is created and decremented when one
 *      is destroyed, thus monitoring the number of objects in existance
 *      for this class.
 *
 *      You can use the "AS " clause to enforce that the CLASSDATA is
 *      maintained as a certain type. Otherwise it will take on the type of
 *      whatever value is first assigned to it.
 *      Use the "INIT " clause to initialize that DATA to 
 *      whenever the class is first used.
 *  $EXAMPLES$
       
 *      CLASS TWindow
 *         DATA   hWnd, nOldProc
 *         CLASSDATA lRegistered AS LOGICAL
 *      ENDCLASS
        
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      CLASSDATA is a Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      Object Oriented Programming,CLASS,METHOD,DATA
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      METHOD
 *  $CATEGORY$
 *      OOP Command
 *  $ONELINER$
 *      Declare a METHOD for a class in the class header
 *  $SYNTAX$
 *      METHOD ( [] ) [ CONSTRUCTOR ]
 *      METHOD ( [] ) INLINE 
 *      METHOD ( [] ) BLOCK  
 *      METHOD ( [] ) EXTERN ([])
 *      METHOD ( [] ) SETGET
 *      METHOD ( [] ) VIRTUAL
 *      METHOD ( [] )      OPERATOR 
 *      METHOD ( [] ) CLASS 
 *  $ARGUMENTS$
 *        Name of the method to define

 *        Optional parameter list
 *  $DESCRIPTION$
 *      Methods are "class functions" which do the work of the class.
 *      All methods must be defined in the class header between the
 *      CLASS and ENDCLASS commands.  If the body of a method is not fully
 *      defined here, the full body is written below the ENDCLASS command
 *      using this syntax:
 *
 *         METHOD ( [] ) CLASS 
 *
 *      Methods can reference the current object with the keyword "Self:" or
 *      its shorthand version "::".
 *
 *      CLAUSES:
 *
 *      CONSTRUCTOR  Defines a special method Class Constructor method,
 *                   used to create objects.  This is usually the
 *                   New() method. Constructors always return the new
 *                   object.
 *
 *      INLINE       Fast and easy to code, INLINE lets you define the
 *                   code for the method immediately within the definition
 *                   of the Class. Any methods not declared INLINE or BLOCK
 *                   must be fully defined after the ENDCLASS command.
 *                   The  following INLINE receives a parameter
 *                   of Self. If you need to receive more parameters, use
 *                   the BLOCK clause instead.
 *
 *      BLOCK        Use this clause when you want to declare fast 'inline'
 *                   methods that need parameters. The first parameter to
 *                    must be Self, as in:
 *
 *          METHOD  BLOCK {|Self,,, ...,|...}
 *
 *      EXTERN       If an external function does what the method needs,
 *                   use this clause to make an optimized call to that
 *                   function directly.
 *
 *      SETGET       For calculated Data. The name of the method can be
 *                   manipulated like a Data element to Set or Get a value.
 *
 *      VIRTUAL      Methods that do nothing. Useful for Base classes where
 *                   the child class will define the method's behavior, or
 *                   when you are first creating and testing a Class.
 *
 *      OPERATOR     Operator Overloading for classes.
 *                   See example Tests/TestOp.prg for details.
 *
 *      CLASS 
 *                   Use this syntax only for defining a full method after
 *                   the ENDCLASS command.
 *  $EXAMPLES$
        
 *      CLASS TWindow
 *         DATA   hWnd, nOldProc
 *         METHOD New( ) CONSTRUCTOR
 *         METHOD Capture() INLINE  SetCapture( ::hWnd )
 *         METHOD End() BLOCK  { | Self, lEnd | If( lEnd := ::lValid(),;
 *                                 ::PostMsg( WM_CLOSE ),), lEnd }
 *         METHOD EraseBkGnd( hDC )
 *         METHOD cTitle( cNewTitle ) SETGET
 *         METHOD Close() VIRTUAL
 *      ENDCLASS
 *
 *      METHOD New( ) CLASS TWindow
 *         local nVar, cStr
 *         ...  ...
 *         ...  ...
 *      RETURN Self
        
 *  $TESTS$
        
 *      TestOp.prg
         
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      METHOD is a Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      HBClass(),Object Oriented Programming,DATA,CLASS
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      MESSAGE
 *  $CATEGORY$
 *      OOP Command
 *  $ONELINER$
 *      Route a method call to another Method
 *  $SYNTAX$
 *      MESSAGE    METHOD ( [] )
 *      MESSAGE () METHOD ( [] )
 *  $ARGUMENTS$
 *        The pseudo-method name to define

 *         The method to create and call when 
 *                     is invoked.

 *         Optional parameter list for the method
 *  $DESCRIPTION$
 *      The MESSAGE command is a seldom-used feature that lets you re-route
 *      a call to a method with a different name. This can be necessary if
 *      a method name conflicts with a public function that needs to be
 *      called from within the class methods.
 *
 *      For example, your app may have a public function called BeginPaint()
 *      that is used in painting windows. It would also be natural to have a
 *      Window class method called :BeginPaint() that the application can
 *      call. But within the class method you would not be able to call the
 *      public function because internally methods are based on static
 *      functions (which hide public functions of the same name).
 *
 *      The MESSAGE command lets you create the true method with a different
 *      name (::xBeginPaint()), yet still allow the ::BeginPaint() syntax
 *      to call ::xBeginPaint().  This is then free to call the public
 *      function BeginPaint().
 *  $EXAMPLES$
    
 *      CLASS TWindow
 *         DATA   hWnd, nOldProc
 *         METHOD New( ) CONSTRUCTOR
 *         MESSAGE BeginPaint METHOD xBeginPaint()
 *      ENDCLASS
    
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      MESSAGE is a Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      METHOD,DATA,CLASS,Object Oriented Programming
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      ERROR HANDLER
 *  $CATEGORY$
 *      OOP Command
 *  $ONELINER$
 *      Designate a method as an error handler for the class
 *  $SYNTAX$
 *      ERROR HANDLER ( [] )
 *  $ARGUMENTS$
 *        Name of the method to define

 *        Optional parameter list
 *  $DESCRIPTION$
 *      ERROR HANDLER names the method that should handle errors for the
 *      class being defined.
 *  $EXAMPLES$
    
 *      CLASS TWindow
 *         ERROR HANDLER  MyErrHandler()
 *      ENDCLASS
    
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      ERROR HANDLER is a Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      Object Oriented Programming,ON ERROR,CLASS,METHOD,DATA
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      ON ERROR
 *  $CATEGORY$
 *      OOP Command
 *  $ONELINER$
 *      Designate a method as an error handler for the class
 *  $SYNTAX$
 *      ON ERROR ( [] )
 *  $ARGUMENTS$
 *        Name of the method to define

 *        Optional parameter list
 *  $DESCRIPTION$
 *      ON ERROR is a synonym for ERROR HANDLER.
 *      It names the method that should handle errors for the
 *      class being defined.
 *  $EXAMPLES$
    
 *      CLASS TWindow
 *         ON ERROR  MyErrHandler()
 *      ENDCLASS
    
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      ON ERROR is a Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      Object Oriented Programming,ERROR HANDLER,CLASS,METHOD,DATA
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      ENDCLASS
 *  $CATEGORY$
 *      OOP Command
 *  $ONELINER$
 *      End the declaration of a class.
 *  $SYNTAX$
 *      ENDCLASS
 *  $DESCRIPTION$
 *      ENDCLASS marks the end of a class declaration.
 *      It is usually followed by the class methods that are not INLINE.
 *  $EXAMPLES$
     
 *      CLASS TWindow
 *         DATA   hWnd, nOldProc
 *      ENDCLASS
     
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      ON ERROR is a Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      Object Oriented Programming,CLASS,METHOD,DATA
 *  $END$
 */
c:\harbour\doc\en\compiler.txt
/*
 * $Id: compiler.txt 6672 2006-05-23 11:21:29Z ckedem $
 */

/*  $DOC$
 *  $FUNCNAME$
 *      Compiler Options
 *  $CATEGORY$
 *      Document
 *  $ONELINER$
 *      Compiler Options
 *  $DESCRIPTION$
 *
 *      Invoking the Harbour compiler:   
 *      ==============================   
 *
 *         harbour  [options]   
 *      or                                  
 *         harbour [options]    
 *      or   
 *         harbour [options]  [options]   
 *
 *      The command line options have to be separated by at least one space.
 *      The option can start with either '/' character or '-' character.
 *
 *      The Harbour command line options:   
 *      =================================   
 *
 *      /a               automatic memvar declaration   
 *      =================   

 *          This causes all variables declared by PARAMETER, PRIVATE or PUBLIC
 *          statements to be automatically declared as MEMVAR variables.
 *
 *      /b               debug info   
 *      =================   

 *          The compiler generates all information required for debugging
 *
 *      /d[=]   #define    
 *      =================   
 *
 *      /es[]     set exit severity   
 *      =================   
 *
 *          /es or /es0 - all warnings are ignored and exit code returned by
 *                        the compiler (accessed by DOS ERRORLEVEL command)
 *                        is equal to 0 if there are no errors in compiled
 *                        source file.
 *
 *          /es1        - any warnings generate a non-zero exit code, but
 *                        output is still created.
 *
 *          /es2        - all warnings are treated as errors and no output
 *                        file is created. The exit code is set to a non-zero
 *                        value.

 *      /g         output type generated is  
 *      =================   
 *
 *          /gc[]  output type: C source (.c) (default)
 *                          : 0=compact 1=normal 2=verbose (default)
 *                                  3=generate real C code instead of PCODE
 *                                    array called by a C wrapper.
 *
 *          /go          output type: Platform dependant object module
 *
 *          /gh          output type: Harbour Portable Object (.hrb)
 *

 *      /i         add #include file search path   
 *      =================   
 *
 *      /k         enable  compatibility mode  
 *      =================                                  
 *
 *          /kc          clear all flags (strict Clipper compatibility)
 *
 *          /kh          Harbour extensions (default)
 *
 *          /ki          HB_INLINE support enabled (default)
 *
 *          /kr          use runtime settings for the macro compiler
 *
 *          /ks          enable support for strings as array of bytes (default)
 *
 *          /kx          other xbase dialects extensions (default)
 *
 *          /kJ          disable optimalization of jump and noop pcodes
 *
 *          /k?          invoke help information
 *
 *      /l               suppress line number information      
 *      =================   
 *
 *          The compiler does not generate the source code line numbers in
 *          the output file. The PROCLINE() function will return 0 for
 *          modules compiled using this option.
 *
 *      /m               compile current module only   
 *      =================   
 *
 *      /n               no implicit starting procedure   
 *      =================   
 *
 *          The compiler does not create a procedure with the same name as
 *          the compiled file. This means that any declarations placed
 *          before the first PROCEDURE or FUNCTION statement have file-
 *          wide scope and can be accessed/used in all functions/procedures
 *          defined in the compiled source file. All executable statements
 *          placed at the beginning of the file and before the first
 *          PROCEDURE/FUNCTION statement are ignored.
 *
 *      /o         output file drive and/or path   
 *      =================   
 *
 *      /p               generate pre-processed output (.ppo) file   
 *      =================   
 *
 *          The compiler only creates the file that contains the result of
 *          pre-processing the source file.
 *
 *      /q               quiet   
 *      =================   
 *
 *          The compiler does not print any messages during compiling
 *          (except the copyright info).
 *
 *          /q0     be really quiet and don't display even the copyright info
 *
 *      /r[]        request linker to search  (or none)   
 *      =================   
 *
 *          Currently not supported in Harbour.
 *
 *      /r=         sets maximum number of preprocessor iterations 
 *      =================   
 *
 *          This set the maximum number of preprocessor iterations
 *          during processing the source code. If this switch is not
 *          used then the preprocessor stops after 1024 iterations.
 *          This value is used to stop processing of infinite loops,
 *          for example:
 *          #command ( => (,7
 *
 *      /s               syntax check only   
 *      =================   
 *
 *          The compiler checks the syntax only. No output file is generated.
 *
 *      /t         path for temp file creation   
 *      =================   
 *
 *          Currently not used in Harbour (the Harbour compiler does not
 *          create any temporary files).
 *
 *      /u[]       use command definition set in  (or none)   
 *      =================   
 *
 *      /v               variables are assumed M->   
 *      =================   
 *
 *          All undeclared or unaliased variables are assumed MEMVAR
 *          variables (private or public variables). If this switch is not
 *          used then the scope of such variables is checked at runtime.
 *
 *      /w[]      set warning level number (0..4, default 1)   
 *      =================   
 *
 *          /w0         - no warnings
 *
 *          /w or /w1   - Clipper compatible warnings
 *
 *          /w2         - some useful warnings missed in Clipper
 *
 *          /w3         - warnings generated for Harbour language extensions
 *                        and also enables strong type checking but only
 *                        warns against declared types, or types which may be
 *                        calculated at compile time
 *
 *          /w4         - Enables warning about suspicious operations, which
 *                        means if you mix undeclared types, or types which
 *                        can not be calculated at compile time,together with
 *                        declared types, a warning will be  generated.
 *
 *      /x[]     set symbol init function name prefix (for .c only)   
 *      =================   
 *
 *          Sets the prefix added to the generated symbol init function name
 *          (in C output currently). This function is generated
 *          automatically for every PRG module compiled. This additional
 *          prefix can be used to suppress problems with duplicated symbols
 *          during linking an application with some third party libraries.
 *
 *      /y               trace lex & yacc activity   
 *      =================   
 *
 *          The Harbour compiler uses the FLEX and YACC utilities to parse
 *          the source code and to generate the required output file. This
 *          option traces the activity of these utilities.
 *
 *      /z               suppress logical shortcutting (.and. & .or.)   
 *      =================   
 *
 *      Compilation in batch mode.   
 *      ==========================   
 *
 *       @         compile list of modules in    
 *      =================        
 *
 *          Not supported yet.
 *
 *      Known incompatibilities between harbour and clipper compilers   
 *      =============================================================   
 *
 *      NOTE:   
 *
 *      If you want a 100% compatible runtime libraries then
 *      you have to define HARBOUR_STRICT_CLIPPER_COMPATIBILITY. This
 *      option should be defined in the file include/hbsetup.h (in fact this
 *      option is placed in a comment by default - you need to remove the
 *      /* */ characters only). This change has to be done before invoking
 *      the make utility.
 *
 *
 *      Handling of undeclared variables   
 *      ================================   
 *
 *      When a value is assigned to an undeclared variable and the '-v'
 *      command line option is not used, then the Clipper compiler assumes
 *      that the variable is a PRIVATE or a PUBLIC variable and generates
 *      POPM (pop memvar) opcode.
 *
 *      When the value of an undeclared variable is accessed and the '-v'
 *      command line option is not used, the Clipper compiler generates PUSHV
 *      (push variable) opcode that determines the type of variable at runtime.
 *      If a field with the requested name exists in the current workarea then
 *      its value is used. If there is no field then a PRIVATE or a PUBLIC
 *      variable is used (if exists).
 *
 *      The Harbour compiler generates an opcode to determine the type of
 *      variable at runtime (POPVARIABLE or PUSHVARIABLE) in both cases
 *      (assignment and access).
 *
 *      The difference can be checked by the following code:
 *
 *          
 *      PROCEDURE MAIN()
 *      PRIVATE myname
 *
 *        DBCREATE( "TEST", { { "MYNAME", "C", 10, 0} } )
 *        USE test NEW
 *        SELECT test
 *        APPEND BLANK
 *
 *        FIELD->myname  := "FIELD"
 *        MEMVAR->myname := "MEMVAR"
 *
 *        myname := myname + " assigned"
 *
 *        // In Clipper: "FIELD",  In Harbour: "FIELD assigned"
 *        ? FIELD->myname
 *
 *        // In Clipper: "MEMVAR assigned", In Harbour: "MEMVAR"
 *        ? MEMVAR->myname
 *
 *        USE
 *
 *      RETURN
 *     
 *
 *      Passing an undeclared variable by the reference   
 *      ===============================================   
 *
 *      The Clipper compiler uses the special opcode PUSHP to pass a
 *      reference to an undeclared variable ( '@' operator ). The type of
 *      passed variable is checked at runtime (field or memvar). However,
 *      field variables cannot be passed by reference. This means that
 *      Clipper checks the memvar variable only and doesn't look for a field.
 *      This is the reason why the Harbour compiler uses the usual
 *      PUSHMEMVARREF opcode in such cases. Notice that the runtime behavior
 *      is the same in Clipper and in Harbour - only the generated opcodes
 *      are different.
 *
 *
 *      Handling of object messages   
 *      ===========================   
 *
 *        The HARBOUR_STRICT_CLIPPER_COMPATIBILITY setting determines
 *      the way chained send messages are handled.
 *
 *      For example, the following code:
 *
 *      a:b( COUNT() ):c += 1
 *
 *      will be handled as:
 *
 *      a:b( COUNT() ):c := a:b( COUNT() ):c + 1
 *
 *      in strict Clipper compatibility mode and
 *
 *      temp := a:b( COUNT() ), temp:c += 1
 *
 *      in non-strict mode.
 *
 *      In practice, Clipper will call the COUNT() function two times:
 *      the first time before addition and the second one after addition.
 *      In Harbour, COUNT() will be called only once, before addition.
 *
 *      The Harbour (non-strict) method is:   
 *      1) faster   
 *      2) it guarantees that the same instance variable of the same object
 *      will be changed
 *
 *      (See also: source/compiler/expropt.c)
 *
 *      Initialization of static variables      
 *      ==================================      
 *
 *      There is a difference in the initialization of static
 *      variables that are initialized with a codeblock that refers to
 *      a local variable. For example:

 *      
 *      PROCEDURE TEST()
 *      LOCAL MyLocalVar
 *      STATIC MyStaticVar := {|| MyLocalVar }
 *
 *        MyLocalVar :=0
 *        ? EVAL( MyStaticVar )
 *
 *      RETURN
 *      

 *      The above code compiles fine in Clipper, but it generates a
 *      runtime error Error/BASE 1132 Bound error: array access
 *      Called form (b)STATICS$(0)
 *
 *      In Harbour this code generates a compile time error:
 *      Error E0009 Illegal variable (b) initializer: 'MyLocalVar'
 *
 *      Both Clipper and Harbour are handling all local variables used in a
 *      codeblock in a special way: they are detached from the local stack
 *      of function/procedure where they are declared. This allows access to
 *      these variables after the exit from a function/procedure. However,
 *      all static variables are initialized in a separate procedure
 *      ('STATICS$' in Clipper and '(_INITSTATICS)' in Harbour) before the
 *      main procedure and before all INIT procedures. The local variables
 *      don't exist on the eval stack when static variables are initialized,
 *      so they cannot be detached.
 *
 *  $END$
 */
c:\harbour\doc\en\datetime.txt
/*
 * $Id: datetime.txt 9192 2008-08-19 14:17:51Z vszakats $
 */


/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Luiz Rafael Culik 
 *    Documentation for: CDOW(),CMONTH(),DATE(),CTOD(),DAY(),DAYS()
 *    DOW(),DTOS(),DTOC(),ELAPTIME(),MONTH(),SECONDS(),SECS(),TIME(),YEAR()
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      CDOW()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Converts a date to the day of week
 *  $SYNTAX$
 *      CDOW()  --> cDay
 *  $ARGUMENTS$
 *        Any date expression.
 *  $RETURNS$
 *        The current day of week.
 *  $DESCRIPTION$
 *      This function returns a character string of the day of the week,
 *      from a date expression  passed to it.
 *      If a NULL date is passed to the function, the value of the function
 *      will be a NULL byte.
 *  $EXAMPLES$
 *      ? CDOW(DATE())
 *      if CDOW(DATE()+10) =="SUNDAY"
 *         ? "This is a sunny day."
 *      Endif
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      DAY(),DOW(),DATE(),CMONTH()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      CMONTH()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Return the name of the month.
 *  $SYNTAX$
 *      CMONTH()  --> cMonth
 *  $ARGUMENTS$
 *        Any date expression.
 *  $RETURNS$
 *        The current month name
 *  $DESCRIPTION$
 *      This function returns the name of the month (January,February,etc.)
 *      from a date expression  passed to it.
 *      If a NULL date is passed to the function, the value of the function
 *      will be a NULL byte.
 *  $EXAMPLES$
 *      ? CMONTH(DATE())
 *      if CMONTH(DATE()+10) =="March"
 *         ? "Have you done your system BACKUP?"
 *      Endif
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      CDOW(),DATE(),MONTH(),YEAR(),DOW(),DTOC()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DATE()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Return the Current OS Date
 *  $SYNTAX$
 *      DATE() --> dCurDate
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *        Current system date.
 *  $DESCRIPTION$
 *      This function returns the current system date.
 *  $EXAMPLES$
 *      ? Date()
 *  $TESTS$
 *      ? "Today is ",Day(date())," of ",cMonth(date())," of ",Year(date())
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper Compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      CTOD(),DTOS(),DTOC(),DAY(),MONTH(),CMONTH()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      CTOD()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Converts a character string to a date expression
 *  $SYNTAX$
 *      CTOD()  --> dDate
 *  $ARGUMENTS$
 *       A character date in format 'mm/dd/yy'
 *  $RETURNS$
 *       A date expression
 *  $DESCRIPTION$
 *      This function converts a date that has been entered as a character
 *      expression to a date expression. The character expression will be in
 *      the form "MM/DD/YY" (based on the default value in SET DATE) or in
 *      the appropriate format specified by the SET DATE TO command. If an
 *      improper character string is passed to the function, an empty date
 *      value will be returned.
 *  $EXAMPLES$
 *      ? CTOD('12/21/00')
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      SET DATE,DATE(),DTOS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DAY()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Return the numeric day of the month.
 *  $SYNTAX$
 *      DAY() --> nMonth
 *  $ARGUMENTS$
 *       Any valid date expression.
 *  $RETURNS$
 *      Numeric value of the day of month.
 *  $DESCRIPTION$
 *      This function returns the numeric value of the day of month from a
 *      date.
 *  $EXAMPLES$
 *      ? Day(DATE())
 *      ? Day(DATE()+6325)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      CTOD(),DTOS(),DTOC(),DATE(),MONTH(),CMONTH()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DAYS()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Convert elapsed seconds into days
 *  $SYNTAX$
 *      DAYS( ) --> nDay
 *  $ARGUMENTS$
 *       The number of seconds
 *  $RETURNS$
 *        The number of days
 *  $DESCRIPTION$
 *      This function converts  seconds to the equivalent number
 *      of days; 86399 seconds represents one day, 0 seconds being midnight.
 *  $EXAMPLES$
 *      ? DAYS(2434234)
 *      ? "Has been passed ",DAYS(63251),' since midnight'
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      SECONDS(),SECS(),ELAPTIME()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DOW()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Value for the day of week.
 *  $SYNTAX$
 *      DOW() --> nDay
 *  $ARGUMENTS$
 *        Any valid date expression
 *  $RETURNS$
 *        The current day number
 *  $DESCRIPTION$
 *      This function returns the number representing the day of the week
 *      for the date expressed as .
 *  $EXAMPLES$
 *      ? DOW(DATE())
 *      ? DOW(DATE()-6584)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      DTOC(),CDOW(),DATE(),DTOS(),DAY()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DTOC()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Date to character conversion
 *  $SYNTAX$
 *      DTOC()  --> cDate
 *  $ARGUMENTS$
 *       Any date
 *  $RETURNS$
 *       Character represention of date
 *  $DESCRIPTION$
 *      This function converts any date expression (a field or variable)
 *      expressed as  to a character expression in the default
 *      format "MM/DD/YY". The date format expressed by this function is
 *      controled in part by the date format specified in the SET DATE
 *      command
 *  $EXAMPLES$
 *      ? DTOC(Date())
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      SET DATE,DATE(),DTOS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DTOS()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Date to string conversion
 *  $SYNTAX$
 *      DTOS()  --> cDate
 *  $ARGUMENTS$
 *       Any date
 *  $RETURNS$
 *       String notation of the date
 *  $DESCRIPTION$
 *      This function returns the value of  as a character
 *      string in the format of YYYYMMDD. If the value of  is
 *      an empty date, this function will return eight blank spaces.
 *  $EXAMPLES$
 *      ? DTOS(Date())
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      DTOC(),DATE(),DTOS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ELAPTIME()
 *  $CATEGORY$
 *      Time
 *  $ONELINER$
 *      Calculates elapted time.
 *  $SYNTAX$
 *      ELAPTIME(,) --> cDiference
 *  $ARGUMENTS$
 *       Start in time as a string format
 *         End time as a string format
 *  $RETURNS$
 *        Difference between the times
 *  $DESCRIPTION$
 *      This function returns a string that shows the difference between
 *      the starting time represented as  and the ending time
 *      as . If the stating time is greater then the ending
 *      time, the function will assume that the date changed once.
 *  $EXAMPLES$
 *      Static cStartTime
 *      Init Proc Startup
 *      cStartTime:=Time()
 *
 *      Exit Proc StartExit
 *      ? "You used this program by",ELAPTIME(cStartTime,Time())
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      SECS(),SECONDS(),TIME(),DAY()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MONTH()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Converts a date expression to a month value
 *  $SYNTAX$
 *      MONTH() --> nMonth
 *  $ARGUMENTS$
 *       Any valid date expression
 *  $RETURNS$
 *      Corresponding number of the month in the year, ranging from
 *      0 to 12
 *  $DESCRIPTION$
 *      This function returns a number that represents the month of a given
 *      date expression . If a NULL date (CTOD('')) is passed to the
 *      function, the value of the function will be 0.
 *  $EXAMPLES$
 *      ? Month(DATE())
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      CDOW(),DOW(),YEAR(),CMONTH()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SECONDS()
 *  $CATEGORY$
 *      Time
 *  $ONELINER$
 *      Returns the number of elapsed seconds past midnight.
 *  $SYNTAX$
 *      SECONDS() --> nSeconds
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *       Number of seconds since midnight
 *  $DESCRIPTION$
 *      This function returns a numeric value representing the number of
 *      elapsed seconds based on the current system time.
 *      The system time is considered to start at 0 (midnight); it continues
 *      up to 86399 seconds. The value of the return expression is displayed
 *      in both seconds and hundredths of seconds.
 *  $EXAMPLES$
 *      ? Seconds()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      TIME()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SECS()
 *  $CATEGORY$
 *      Time
 *  $ONELINER$
 *      Return the number of seconds from the system date.
 *  $SYNTAX$
 *      SECS(  ) --> nSeconds
 *  $ARGUMENTS$
 *       Character expression in a time string format
 *  $RETURNS$
 *       Number of seconds
 *  $DESCRIPTION$
 *      This function returns a numeric value that is a number of elapsed
 *      seconds from midnight based on a time string given as .
 *  $EXAMPLES$
 *      ? Secs(Time())
 *      ? Secs(time()-10)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      SECONDS(),ELAPTIME(),TIME()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      TIME()
 *  $CATEGORY$
 *      Time
 *  $ONELINER$
 *      Returns the system time as a string
 *  $SYNTAX$
 *      TIME() --> cTime
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *       Character string representing time
 *  $DESCRIPTION$
 *      This function returns the system time represented as a character
 *      expression in the format of HH:MM:SS
 *  $EXAMPLES$
 *      ? Time()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      DATE(),SECONDS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      YEAR()
 *  $CATEGORY$
 *      Date
 *  $ONELINER$
 *      Converts the year portion of a date into a numeric value
 *  $SYNTAX$
 *      YEAR() --> nYear
 *  $ARGUMENTS$
 *       Any valid date expression
 *  $RETURNS$
 *       The year portion of the date.
 *  $DESCRIPTION$
 *      This function returns the numeric value for the year in .
 *      This value will always be a four-digit number and is not affected
 *      by the setting of the SET CENTURY and SET DATE commands. Addition
 *      ally, an empty date expression passed to this function will yield
 *      a zero value.
 *
 *  $EXAMPLES$
 *      ? Year(date())
 *      ? year(CTOD("01/25/3251"))
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      DAY(),MONTH()
 *  $END$
 */
c:\harbour\doc\en\dbdelim.txt
/*
 * $Id: dbdelim.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2001-2002 David G. Holm 
 *    Documentation for: __dbDelim()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __dbDelim()
 *  $CATEGORY$
 *      Conversion
 *  $ONELINER$
 *      Copies the contents of a database to a delimited text file or
 *      appends the contents of a delimited text file to a database.
 *  $SYNTAX$
 *      __dbDelim( , , [], [],
 *      [], [], [], [],   ) --> NIL
 *  $ARGUMENTS$
 *       If set to .T., copies records to a delimited file.
 *      If set to .F., append records from a delimited file.
 *       The name of the text file to copy to or append from.
 *      If a file extension is not specified, ".txt" is used by default.
 *       Either the character to use as the character field
 *      delimiter (only the first character is used). or "BLANK" (not case
 *      sensitive), which eliminates the character field delimiters and
 *      sets the field separator to a single space instead of a comma.
 *       An aray of field names to limit the processint to. If
 *      not specified, or if empty, then all fields are processed.
 *       An optional code block containing a FOR expression that
 *      will reduce the number of records to be processed.
 *       An optional code block containing a WHILE expression
 *      that will reduce the number of records to be processed.
 *       If present, but nRecord is not present, specifies to
 *      process this number of records, starting with the current record.
 *      A value of 0 means to process no records.
 *       If present, specifies the only record to process. A
 *      value of 0 means to process no records. Overrides nNext and lRest.
 *       If lExport is .T., then if set to .T. and there are no
 *      nRecord, nNext, or bWhile arguments, processes all records from
 *      current to last.
 *  $RETURNS$
 *      NIL
 *  $DESCRIPTION$
 *      __dbDelim() copies all or selected contents of a database table
 *      to an SDF text file or appends all or selected contents of an SDF
 *      text file to a database table.
 *  $EXAMPLES$
 *      // Copy delinquent accounts into a delimited text file.
 *      USE ACCOUNTS NEW
 *      COPY TO overdue DELIMITED FOR !EMPTY( accounts->duedate ) ;
 *      .AND. DATE() - accounts->duedate > 30
 *      // Import new customer records.
 *      USE CUSTOMER NEW
 *      APPEND FROM customer DELIMITED
 *  $TESTS$
 *
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      __dbDelim() is intended to be fully compliant with CA-Cl*pper's
 *      function of the same name and is the underlying implementation
 *      of the APPEND FROM DELIMITED and COPY TO DELIMITED commands.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *
 *  $SEEALSO$
 *      __dbSDF(), APPEND FROM, COPY TO
 *  $END$
 */

c:\harbour\doc\en\dbsdf.txt
/*
 * $Id: dbsdf.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2001-2002 David G. Holm 
 *    Documentation for: __dbSDF()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __dbSDF()
 *  $CATEGORY$
 *      Conversion
 *  $ONELINER$
 *      Copies the contents of a database to an SDF text file or
 *      appends the contents of an SDF text file to a database.
 *  $SYNTAX$
 *      __dbSDF( , , [],
 *      [], [], [], [],   ) --> NIL
 *  $ARGUMENTS$
 *       If set to .T., copies records to an SDF file.
 *      If set to .F., append records from an SDF file.
 *       The name of the text file to copy to or append from.
 *      If a file extension is not specified, ".txt" is used by default.
 *       An aray of field names to limit the processint to. If
 *      not specified, or if empty, then all fields are processed.
 *       An optional code block containing a FOR expression that
 *      will reduce the number of records to be processed.
 *       An optional code block containing a WHILE expression
 *      that will reduce the number of records to be processed.
 *       If present, but nRecord is not present, specifies to
 *      process this number of records, starting with the current record.
 *      A value of 0 means to process no records.
 *       If present, specifies the only record to process. A
 *      value of 0 means to process no records. Overrides nNext and lRest.
 *       If lExport is .T., then if set to .T. and there are no
 *      nRecord, nNext, or bWhile arguments, processes all records from
 *      current to last.
 *  $RETURNS$
 *      NIL
 *  $DESCRIPTION$
 *      __dbSDF() copies all or selected contents of a database table
 *      to an SDF text file or appends all or selected contents of an
 *      SDF text file to a database table.
 *  $EXAMPLES$
 *      // Copy delinquent accounts into an SDF text file.
 *      USE ACCOUNTS NEW
 *      COPY TO overdue SDF FOR !EMPTY( accounts->duedate ) ;
 *      .AND. DATE() - accounts->duedate > 30
 *      // Import new customer records.
 *      USE CUSTOMER NEW
 *      APPEND FROM customer SDF
 *  $TESTS$
 *
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      __dbSDF() is intended to be fully compliant with CA-Cl*pper's
 *      function of the same name and is the underlying implementation
 *      of the APPEND FROM SDF and COPY TO SDF commands.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *
 *  $SEEALSO$
 *      __dbDelim(), APPEND FROM, COPY TO
 *  $END$
 */

c:\harbour\doc\en\dbstrux.txt
/*
 * $Id: dbstrux.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Chen Kedem 
 *    Documentation for: __dbCopyStruct(), COPY STRUCTURE, __dbCopyXStruct(),
 *                       COPY STRUCTURE EXTENDED, __dbCreate(), CREATE,
 *                       CREATE FROM, __FLEDIT(), __dbStructFilter()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __dbCopyStruct()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Create a new database based on current database structure
 *  $SYNTAX$
 *      __dbCopyStruct( , [] ) --> NIL
 *  $ARGUMENTS$
 *       is the name of the new database file to create. (.dbf)
 *      is the default extension if none is given.
 *
 *       is an array where each element is a field name.
 *      Names could be specified as uppercase or lowercase.
 *  $RETURNS$
 *      __dbCopyStruct() always return NIL.
 *  $DESCRIPTION$
 *      __dbCopyStruct() create a new empty database file with a structure
 *      that is based on the currently open database in this work-area. If
 *       is empty, the newly created file would have the same
 *      structure as the currently open database. Else, the new file would
 *      contain only fields that exactly match .
 *
 *      __dbCopyStruct() can be use to create a sub-set of the currently
 *      open database, based on a given field list.
 *
 *      COPY STRUCTURE command is preprocessed into __dbCopyStruct()
 *      function during compile time.
 *  $EXAMPLES$
 *     // Create a new file that contain the same structure
 *      USE TEST
 *      __dbCopyStruct( "mycopy.dbf" )
 *
 *      // Create a new file that contain part of the original structure
 *      LOCAL aList
 *      USE TEST
 *      aList := { "NAME" }
 *      __dbCopyStruct( "onlyname.dbf", aList )
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __dbCopyStruct() works exactly like CA-Cl*pper's __dbCopyStruct()
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      COPY STRUCTURE,COPY STRUCTURE EXTENDED,DBCREATE(),DBSTRUCT(),__dbCopyXStruct(),__dbCreate(),__dbStructFilter()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      COPY STRUCTURE
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Create a new database based on current database structure
 *  $SYNTAX$
 *      COPY STRUCTURE TO  [FIELDS ]
 *  $ARGUMENTS$
 *      TO  is the name of the new database file to
 *      create. (.dbf) is the default extension if none is given. It can be
 *      specified as a literal file name or as a character expression
 *      enclosed in parentheses.
 *
 *      FIELDS  is an optional list of field names to copy
 *      from the currently open database in the specified order, the default
 *      is all fields. Names could be specified as uppercase or lowercase.
 *  $DESCRIPTION$
 *      COPY STRUCTURE create a new empty database file with a structure
 *      that is based on the currently open database in this work-area.
 *
 *      COPY STRUCTURE can be use to create a sub-set of the currently
 *      open database, based on a given field list.
 *
 *      COPY STRUCTURE command is preprocessed into __dbCopyStruct()
 *      function during compile time.
 *  $EXAMPLES$
 *     // Create a new file that contains the same structure
 *      USE TEST
 *      COPY STRUCTURE TO MyCopy
 *
 *      // Create a new file that contains part of the original structure
 *      USE TEST
 *      COPY STRUCTURE TO SomePart FIELDS name, address
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      COPY STRUCTURE works exactly as in CA-Cl*pper
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      COPY STRUCTURE EXTENDED,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate(),__dbStructFilter()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __dbCopyXStruct()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Copy current database structure into a definition file
 *  $SYNTAX$
 *      __dbCopyXStruct(  ) --> lSuccess
 *  $ARGUMENTS$
 *       is the name of target definition file to create. (.dbf)
 *      is the default extension if none is given.
 *  $RETURNS$
 *      __dbCopyXStruct() return (.F.) if no database is USED in the current
 *      work-area, (.T.) on success, or a run-time error if the file create
 *      operation had failed.
 *  $DESCRIPTION$
 *      __dbCopyXStruct() create a new database named  with a
 *      pre-defined structure (also called "structure extended file"):
 *
 *       
 *       Field name   Type   Length   Decimals
 *
 *       FIELD_NAME   C      10       0
 *       FIELD_TYPE   C      1        0
 *       FIELD_LEN    N      3        0
 *       FIELD_DEC    N      3        0
 *       
* * Each record in the new file contains information about one field in * the original file. CREATE FROM could be used to create a database * from the structure extended file. * * For prehistoric compatibility reasons, Character fields which are * longer than 255 characters are treated in a special way by writing * part of the length in the FIELD_DEC according to the following * formula (this is done internally): * * * FIELD->FIELD_DEC := int( nLength / 256 ) * FIELD->FIELD_LEN := ( nLength % 256 ) * * * Later if you want to calculate the length of a field you can use * the following formula: * * * nLength := IIF( FIELD->FIELD_TYPE == "C", ; * FIELD->FIELD_DEC * 256 + FIELD->FIELD_LEN, ; * FIELD->FIELD_LEN ) * * * COPY STRUCTURE EXTENDED command is preprocessed into * __dbCopyXStruct() function during compile time. * $EXAMPLES$ * // Open a database, then copy its structure to a new file, * // Open the new file and list all its records * USE Test * __dbCopyXStruct( "TestStru" ) * USE TestStru * LIST * * $TESTS$ * $STATUS$ * R * $COMPLIANCE$ * __dbCopyXStruct() works exactly like CA-Cl*pper's __dbCopyXStruct() * $PLATFORMS$ * All * $FILES$ * Library is rdd * $SEEALSO$ * COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCreate() * $END$ */ /* $DOC$ * $FUNCNAME$ * COPY STRUCTURE EXTENDED * $CATEGORY$ * Command * $ONELINER$ * Copy current database structure into a definition file * $SYNTAX$ * COPY STRUCTURE EXTENDED TO * $ARGUMENTS$ * TO The name of the target definition file to * create. (.dbf) is the default extension if none is given. It can be * specified as a literal file name or as a character expression * enclosed in parentheses. * $DESCRIPTION$ * COPY STRUCTURE EXTENDED create a new database named with * a pre-defined structure (also called "structure extended file"): * * * Field name Type Length Decimals * * FIELD_NAME C 10 0 * FIELD_TYPE C 1 0 * FIELD_LEN N 3 0 * FIELD_DEC N 3 0 *
* * Each record in the new file contains information about one field in * the original file. CREATE FROM could be used to create a database * from the structure extended file. * * For prehistoric compatibility reasons, Character fields which are * longer than 255 characters are treated in a special way by writing * part of the length in the FIELD_DEC according to the following * formula (this is done internally): * * * FIELD->FIELD_DEC := int( nLength / 256 ) * FIELD->FIELD_LEN := ( nLength % 256 ) * * * Later if you want to calculate the length of a field you can use * the following formula: * * * nLength := IIF( FIELD->FIELD_TYPE == "C", ; * FIELD->FIELD_DEC * 256 + FIELD->FIELD_LEN, ; * FIELD->FIELD_LEN ) * * * COPY STRUCTURE EXTENDED command is preprocessed into * __dbCopyXStruct() function during compile time. * $EXAMPLES$ * // Open a database, then copy its structure to a new file, * // Open the new file and list all its records * USE Test * COPY STRUCTURE EXTENDED TO TestStru * USE TestStru * LIST * $STATUS$ * R * $COMPLIANCE$ * COPY STRUCTURE EXTENDED works exactly as in CA-Cl*pper * $PLATFORMS$ * All * $SEEALSO$ * COPY STRUCTURE,CREATE,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate() * $END$ */ /* $DOC$ * $FUNCNAME$ * __dbCreate() * $CATEGORY$ * Database * $ONELINER$ * Create structure extended file or use one to create new file * $SYNTAX$ * __dbCreate( , [], [], [], * [] ) --> lUsed * $ARGUMENTS$ * is the target file name to create and then open. (.dbf) * is the default extension if none is given. * * is an optional structure extended file name from which * the target file is going to be built. If omitted, a new * empty structure extended file with the name is created * and opened in the current work-area. * * is RDD name to create target with. If omitted, the * default RDD is used. * * is an optional logical expression, (.T.) opens the target file * name in the next available unused work-area and makes * it the current work-area. (.F.) opens the target file in the current * work-area. Default value is (.F.). The value of is ignored if * is not specified. * * is an optional alias to USE the target file with. If not * specified, alias is based on the root name of . * $RETURNS$ * __dbCreate() returns (.T.) if there is database USED in the * current work-area (this might be the newly selected work-area), or * (.F.) if there is no database USED. Note that on success a (.T.) * would be returned, but on failure you probably end up with a * run-time error and not a (.F.) value. * $DESCRIPTION$ * __dbCreate() works in two modes depending on the value of : * * 1) If is empty or not specified a new empty * structure extended file with the name is created and * then opened in the current work-area ( is ignored). The new * file has the following structure: * * * Field name Type Length Decimals * * FIELD_NAME C 10 0 * FIELD_TYPE C 1 0 * FIELD_LEN N 3 0 * FIELD_DEC N 3 0 *
* * The CREATE command is preprocessed into the __dbCopyStruct() function * during compile time and uses this mode. * * 2) If is specified, it is opened and assumed to * be a structure extended file where each record contains at least the * following fields (in no particular order): FIELD_NAME, FIELD_TYPE, * FIELD_LEN and FIELD_DEC. Any other field is ignored. From this * information the file is then created and opened in the * current or new work-area (according to ), if this is a new * work-area it becomes the current. * * For prehistoric compatibility reasons, structure extended file * Character fields which are longer than 255 characters should be * treated in a special way by writing part of the length in the * FIELD_DEC according to the following formula: * * * FIELD->FIELD_DEC := int( nLength / 256 ) * FIELD->FIELD_LEN := ( nLength % 256 ) * * * CREATE FROM command is preprocessed into __dbCopyStruct() function * during compile time and use this mode. * $EXAMPLES$ * // CREATE a new structure extended file, append some records and * // then CREATE FROM this file a new database file * * __dbCreate( "template" ) * DBAPPEND() * FIELD->FIELD_NAME := "CHANNEL" * FIELD->FIELD_TYPE := "N" * FIELD->FIELD_LEN := 2 * FIELD->FIELD_DEC := 0 * DBAPPEND() * FIELD->FIELD_NAME := "PROGRAM" * FIELD->FIELD_TYPE := "C" * FIELD->FIELD_LEN := 20 * FIELD->FIELD_DEC := 0 * DBAPPEND() * FIELD->FIELD_NAME := "REVIEW" * FIELD->FIELD_TYPE := "C" // this field is 1000 char long * FIELD->FIELD_LEN := 232 // 1000 % 256 = 232 * FIELD->FIELD_DEC := 3 // 1000 / 256 = 3 * DBCLOSEAREA() * __dbCreate( "TV_Guide", "template" ) * $STATUS$ * R * $COMPLIANCE$ * __dbCreate() works exactly as in CA-Cl*pper * $PLATFORMS$ * All * $FILES$ * Library is rdd * $SEEALSO$ * COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct() * $END$ */ /* $DOC$ * $FUNCNAME$ * CREATE * $CATEGORY$ * Command * $ONELINER$ * Create empty structure extended file * $SYNTAX$ * CREATE [VIA ] [ALIAS ] * $ARGUMENTS$ * is the target file name to create and then open. (.dbf) * is the default extension if none is given. It can be specified as * literal file name or as a character expression enclosed in * parentheses. * * VIA is RDD name to create target with. If omitted, * the default RDD is used. It can be specified as literal name or as a * character expression enclosed in parentheses. * * ALIAS is an optional alias to USE the target file * with. If not specified, alias is based on the root name of * . * $DESCRIPTION$ * CREATE a new empty structure extended file with the name * and then open it in the current work-area. The new file has the * following structure: * * * Field name Type Length Decimals * * FIELD_NAME C 10 0 * FIELD_TYPE C 1 0 * FIELD_LEN N 3 0 * FIELD_DEC N 3 0 *
* * CREATE command is preprocessed into __dbCopyStruct() function during * compile time and use this mode. * $EXAMPLES$ * // CREATE a new structure extended file, append some records and * // then CREATE FROM this file a new database file * * CREATE template * APPEND BLANK * FIELD->FIELD_NAME := "CHANNEL" * FIELD->FIELD_TYPE := "N" * FIELD->FIELD_LEN := 2 * FIELD->FIELD_DEC := 0 * APPEND BLANK * FIELD->FIELD_NAME := "PROGRAM" * FIELD->FIELD_TYPE := "C" * FIELD->FIELD_LEN := 20 * FIELD->FIELD_DEC := 0 * APPEND BLANK * FIELD->FIELD_NAME := "REVIEW" * FIELD->FIELD_TYPE := "C" // this field is 1000 char long * FIELD->FIELD_LEN := 232 // 1000 % 256 = 232 * FIELD->FIELD_DEC := 3 // 1000 / 256 = 3 * CLOSE * CREATE TV_Guide FROM template * $STATUS$ * R * $COMPLIANCE$ * CREATE works exactly as in CA-Cl*pper * $PLATFORMS$ * All * $SEEALSO$ * COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate() * $END$ */ /* $DOC$ * $FUNCNAME$ * CREATE FROM * $CATEGORY$ * Command * $ONELINER$ * Create new database file from a structure extended file * $SYNTAX$ * CREATE FROM [VIA ] [NEW] * [ALIAS ] * $ARGUMENTS$ * is the target file name to create and then open. (.dbf) * is the default extension if none is given. It can be specified as * literal file name or as a character expression enclosed in * parentheses. * * FROM is a structure extended file name from * which the target file is going to be built. It can be * specified as literal file name or as a character expression enclosed * in parentheses. * * VIA is RDD name to create target with. If omitted, * the default RDD is used. It can be specified as literal name or as a * character expression enclosed in parentheses. * * NEW open the target file name in the next * available unused work-area and making it the current work-area. If * omitted open the target file in current work-area. * * ALIAS is an optional alias to USE the target file * with. If not specified, alias is based on the root name of * . * $DESCRIPTION$ * CREATE FROM open a structure extended file where each * record contain at least the following fields (in no particular * order): FIELD_NAME, FIELD_TYPE, FIELD_LEN and FIELD_DEC. Any other * field is ignored. From this information the file is * then created and opened in the current or new work-area (according to * the NEW clause), if this is a new work-area it becomes the current. * * For prehistoric compatibility reasons, structure extended file * Character fields which are longer than 255 characters should be * treated in a special way by writing part of the length in the * FIELD_DEC according to the following formula: * * * FIELD->FIELD_DEC := int( nLength / 256 ) * FIELD->FIELD_LEN := ( nLength % 256 ) * * * CREATE FROM command is preprocessed into __dbCopyStruct() function * during compile time and uses this mode. * $EXAMPLES$ * See example in the CREATE command * $STATUS$ * R * $COMPLIANCE$ * CREATE FROM works exactly as in CA-Cl*pper * $PLATFORMS$ * All * $SEEALSO$ * COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate() * $END$ */ /* $DOC$ * $FUNCNAME$ * __FLEDIT()* * $CATEGORY$ * Database * $ONELINER$ * Filter a database structure array * $SYNTAX$ * __FLEDIT( , [] ) --> aStructFiltered * $ARGUMENTS$ * is a multidimensional array with database fields * structure, which is usually the output from DBSTRUCT(), where each * array element has the following structure: * * * Position Description dbstruct.ch * * 1 cFieldName DBS_NAME * 2 cFieldType DBS_TYPE * 3 nFieldLength DBS_LEN * 4 nDecimals DBS_DEC *
* * is an array where each element is a field name. * Names could be specified as uppercase or lowercase. * $RETURNS$ * __FLEDIT() return a new multidimensional array where each element is * in the same structure as the original , but the array is * built according to the list of fields in . If * is empty, __FLEDIT() return reference to the original * array. * $DESCRIPTION$ * __FLEDIT() can be use to create a sub-set of a database structure, * based on a given field list. * * Note that field names in MUST be specified in uppercase * or else no match would found. * * SET EXACT has no effect on the return value. * * __FLEDIT() is a compatibility function and it is synonym for * __dbStructFilter() which does exactly the same. * $EXAMPLES$ * LOCAL aStruct, aList, aRet * aStruct := { { "CODE", "N", 4, 0 }, ; * { "NAME", "C", 10, 0 }, ; * { "PHONE", "C", 13, 0 }, ; * { "IQ", "N", 3, 0 } } * aList := { "IQ", "NAME" } * aRet := __FLEDIT( aStruct, aList ) * // { { "IQ", "N", 3, 0 }, { "NAME", "C", 10, 0 } } * * aRet := __FLEDIT( aStruct, {} ) * ? aRet == aStruct // .T. * * aList := { "iq", "NOTEXIST" } * aRet := __FLEDIT( aStruct, aList ) * // { { "IQ", "N", 3, 0 } } * * aList := { "NOTEXIST" } * aRet := __FLEDIT( aStruct, aList ) // {} * * * // Create a new file that contain part of the original structure * LOCAL aStruct, aList, aRet * USE TEST * aStruct := DBSTRUCT() * aList := { "NAME" } * DBCREATE( "onlyname.dbf", __FLEDIT( aStruct, aList ) ) * $STATUS$ * R * $COMPLIANCE$ * CA-Cl*pper has internal undocumented function named __FLEDIT(), * in Harbour we name it __dbStructFilter(). The new name gives a better * description of what this function does. In Harbour __FLEDIT() simply * calls __dbStructFilter() and therefor the later is the recommended * function to use. * * This function is only visible if source/rdd/dbstrux.prg was compiled * with the HB_C52_UNDOC flag. * $PLATFORMS$ * All * $FILES$ * Header file is dbstruct.ch * Library is rdd * $SEEALSO$ * DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbStructFilter() * $END$ */ /* $DOC$ * $FUNCNAME$ * __dbStructFilter() * $CATEGORY$ * Database * $ONELINER$ * Filter a database structure array * $SYNTAX$ * __dbStructFilter( , [] ) --> aStructFiltered * $ARGUMENTS$ * is a multidimensional array with database fields * structure, which is usually the output from DBSTRUCT(), where each * array element has the following structure: * * * Position Description dbstruct.ch * * 1 cFieldName DBS_NAME * 2 cFieldType DBS_TYPE * 3 nFieldLength DBS_LEN * 4 nDecimals DBS_DEC *
* * is an array where each element is a field name. * Names could be specified as uppercase or lowercase. * $RETURNS$ * __dbStructFilter() return a new multidimensional array where each * element is in the same structure as the original , but the * array is built according to the list of fields in . If * is empty, __dbStructFilter() return reference to the * original array. * $DESCRIPTION$ * __dbStructFilter() can be use to create a sub-set of a database * structure, based on a given field list. * * Note that field names in MUST be specified in uppercase * or else no match would be found. * * SET EXACT has no effect on the return value. * $EXAMPLES$ * LOCAL aStruct, aList, aRet * aStruct := { { "CODE", "N", 4, 0 }, ; * { "NAME", "C", 10, 0 }, ; * { "PHONE", "C", 13, 0 }, ; * { "IQ", "N", 3, 0 } } * aList := { "IQ", "NAME" } * aRet := __dbStructFilter( aStruct, aList ) * // { { "IQ", "N", 3, 0 }, { "NAME", "C", 10, 0 } } * * aRet := __dbStructFilter( aStruct, {} ) * ? aRet == aStruct // .T. * * aList := { "iq", "NOTEXIST" } * aRet := __dbStructFilter( aStruct, aList ) * // { { "IQ", "N", 3, 0 } } * * aList := { "NOTEXIST" } * aRet := __dbStructFilter( aStruct, aList ) // {} * * * // Create a new file that contain part of the original structure * LOCAL aStruct, aList, aRet * USE TEST * aStruct := DBSTRUCT() * aList := { "NAME" } * DBCREATE( "onlyname.dbf", __dbStructFilter( aStruct, aList ) ) * $STATUS$ * R * $COMPLIANCE$ * __dbStructFilter() is a Harbour extension. CA-Cl*pper has an internal * undocumented function named __FLEDIT() that does exactly the same * thing. The new name gives a better description of what this function does. * $PLATFORMS$ * All * $FILES$ * Header file is dbstruct.ch * Library is rdd * $SEEALSO$ * DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__FLEDIT()* * $END$ */
c:\harbour\doc\en\dir.txt
/*
 * $Id: dir.txt 9243 2008-08-25 21:36:00Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: __DIR(), DIR, ADIR()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __Dir()*
 *  $CATEGORY$
 *      File management
 *  $ONELINER$
 *      Display listings of files
 *  $SYNTAX$
 *      __Dir( [] ) --> NIL
 *  $ARGUMENTS$
 *       File mask to include in the function return. It could
 *      contain path and standard wildcard characters as supported by your
 *      OS (like * and ?). If  contains no path, then SET DEFAULT
 *      path is used to display files in the mask.
 *  $RETURNS$
 *      __Dir() always returns NIL.
 *  $DESCRIPTION$
 *      If no  is given, __Dir() displays information about all
 *      *.dbf in the SET DEFAULT path. This information contains: file name,
 *      number of records, last update date and the size of each file.
 *
 *      If  is given, __Dir() list all files that match the mask
 *      with the following details: Name, Extension, Size, Date.
 *
 *      DIR command is preprocessed into __Dir() function during compile
 *      time.
 *
 *      __Dir() is a compatibility function, it is superseded by DIRECTORY()
 *      which return all the information in a multidimensional array.
 *  $EXAMPLES$
    
 *      __Dir()      // information for all DBF files in current directory
 *
 *      __Dir( "*.dbf" )         // list all DBF file in current directory
 *
 *      // list all PRG files in Harbour Run-Time library
 *      // for DOS compatible operating systems
 *      __Dir( "C:\harbour\source\rtl\*.prg" )
 *
 *      // list all files in the public section on a Unix like machine
 *      __Dir( "/pub" )
    
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      DBF information: CA-Cl*pper displays 8.3 file names, Harbour displays
 *      the first 15 characters of a long file name if available.
 *
 *      File listing: To format file names displayed we use something like:
 *      PadR( Name, 8 ) + " " + PadR( Ext, 3 )
 *      CA-Cl*pper use 8.3 file name, with Harbour it would probably cut
 *      long file names to feet this template.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ADIR(),DIRECTORY(),SET DEFAULT,DIR
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DIR
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Display listings of files
 *  $SYNTAX$
 *      DIR []
 *  $ARGUMENTS$
 *       File mask to include in the function return. It could
 *      contain path and standard wildcard characters as supported by your
 *      OS (like * and ?). If  contains no path, then SET DEFAULT
 *      path is used to display files in the mask.
 *  $DESCRIPTION$
 *      If no  is given, __Dir() display information about all
 *      *.dbf in the SET DEFAULT path, this information contain: file name,
 *      number of records, last update date and the size of each file.
 *
 *      If  is given, __Dir() list all files that match the mask
 *      with the following details: Name, Extension, Size, Date.
 *
 *      DIR command is preprocessed into __Dir() function during compile
 *      time.
 *
 *      __Dir() is a compatibility function, it is superseded by DIRECTORY()
 *      which returns all the information in a multidimensional array.
 *  $EXAMPLES$
    
 *      DIR          // information for all DBF files in current directory
 *
 *      dir   "*.dbf"          // list all DBF file in current directory
 *
 *      // list all PRG files in Harbour Run-Time library
 *      // for DOS compatible operating systems
 *        Dir  "C:\harbour\source\rtl\*.prg"
 *
 *      // list all files in the public section on a Unix like machine
 *        Dir  "/pub"
    
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      DBF information: CA-Cl*pper displays 8.3 file names, Harbour displays
 *      the first 15 characters of a long file name if available.
 *
 *      File listing: To format file names displayed we use something like:
 *      PadR( Name, 8 ) + " " + PadR( Ext, 3 )
 *      CA-Cl*pper use 8.3 file name, with Harbour it would probably cut
 *      long file names to feet this template.
 *  $SEEALSO$
 *      ADIR(),DIRECTORY(),SET DEFAULT,__DIR()*
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ADIR()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Fill pre-defined arrays with file/directory information
 *  $SYNTAX$
 *      ADIR( [], [], [], [],
 *            [], [] ) --> nDirEnries
 *  $ARGUMENTS$
 *       File mask to include in the function return. It could
 *      contain path and standard wildcard characters as supported by your
 *      OS (like * and ?). If you omit  or if  contains
 *      no path, then the path from SET DEFAULT is used.
 *
 *       Array to fill with file name of files that meet .
 *      Each element is a Character string and include the file name and
 *      extension without the path. The name is the long file name as
 *      reported by the OS and not necessarily the 8.3 uppercase name.
 *
 *       Array to fill with file size of files that meet .
 *      Each element is a Numeric integer for the file size in Bytes.
 *      Directories are always zero in size.
 *
 *       Array to fill with file last modification date of files that
 *      meet . Each element is of type Date.
 *
 *       Array to fill with file last modification time of files that
 *      meet . Each element is a Character string in the format
 *      HH:mm:ss.
 *
 *       Array to fill with attribute of files that meet .
 *      Each element is a Character string, see DIRECTORY() for information
 *      about attribute values. If you pass array to , the function
 *      is going to return files with normal, hidden, system and directory
 *      attributes. If  is not specified or with type other than
 *      Array, only files with normal attribute would return.
 *  $RETURNS$
 *      ADIR() return the number of file entries that meet 
 *  $DESCRIPTION$
 *      ADIR() return the number of files and/or directories that match
 *      a specified skeleton, it also fill a series of given arrays with
 *      the name, size, date, time and attribute of those files. The passed
 *      arrays should pre-initialized to the proper size, see example below.
 *      In order to include hidden, system or directories  must be
 *      specified.
 *
 *      ADIR() is a compatibility function, it is superseded by DIRECTORY()
 *      which returns all the information in a multidimensional array.
 *  $EXAMPLES$
    
 *      LOCAL aName, aSize, aDate, aTime, aAttr, nLen, i
 *      nLen := ADIR( "*.jpg" )     // Number of JPG files in this directory
 *      IF nLen > 0
 *         aName := Array( nLen )   // make room to store the information
 *         aSize := Array( nLen )
 *         aDate := Array( nLen )
 *         aTime := Array( nLen )
 *         aAttr := Array( nLen )
 *         FOR i = 1 TO nLen
 *             ? aName[i], aSize[i], aDate[i], aTime[i], aAttr[i]
 *         NEXT
 *      ELSE
 *         ? "This directory is clean from smut"
 *      ENDIF
    
 *  $STATUS$
 *     R
 *  $COMPLIANCE$
 *       is going to be fill with long file name and not necessarily
 *      the 8.3 uppercase name.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ARRAY(),DIRECTORY(),SET DEFAULT
 *  $END$
 */
c:\harbour\doc\en\diskspac.txt
/*
 * $Id: diskspac.txt 9192 2008-08-19 14:17:51Z vszakats $
 */

/*
 * The following are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Paul Tucker 
 *    Documentation for: DISKSPACE() and related functions
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DISKSPACE()
 *  $CATEGORY$
 *      Low Level
 *  $ONELINER$
 *      Get the amount of space available on a disk
 *  $SYNTAX$
 *      DISKSPACE( [] ) --> nDiskbytes
 *  $ARGUMENTS$
 *       The number of the drive you are requesting info on where 1 = A,
 *      2 = B, etc. For 0 or no parameter, DiskSpace will operate on the current
 *      drive.  The default is 0
 *  $RETURNS$
 *       The number of bytes on the requested disk that match the
 *      requested type.
 *  $DESCRIPTION$
 *      By default, this function will return the number of bytes of
 *      free space on the current drive that is available to the user
 *      requesting the information.
 *
 *      If information is requested on a disk that is not available, a runtime
 *      error 2018 will be raised.
 *  $EXAMPLES$
 *      ? "You can use : " +Str( DiskSpace() ) + " bytes " +;
 *      Note: See tests\tstdspac.prg for another example
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      Dos,Win32,OS/2
 *  $FILES$
 *      Library is rtl
 *      Header is fileio.ch
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_DISKSPACE()
 *  $CATEGORY$
 *      Low Level
 *  $ONELINER$
 *      Get the amount of space available on a disk
 *  $SYNTAX$
 *      HB_DISKSPACE( [] [, ] ) --> nDiskbytes
 *  $ARGUMENTS$
 *       The drive letter you are requesting info on. The default
 *      is A:

 *       The type of space being requested. The default is HB_DISK_AVAIL.
 *  $RETURNS$
 *       The number of bytes on the requested disk that match the
 *      requested type.
 *  $DESCRIPTION$
 *      By default, this function will return the number of bytes of
 *      free space on the current drive that is available to the user
 *      requesting the information.
 *
 *      There are 4 types of information available:
 *
 *       HB_FS_AVAIL    The amount of space available to the user making the
 *                      request. This value could be less than HB_FS_FREE if
 *                      disk quotas are supported by the O/S in use at runtime,
 *                      and disk quotas are in effect. Otherwise, the value
 *                      will be equal to that returned for HB_FS_FREE.

 *       HB_FS_FREE     The actual amount of free diskspace on the drive.

 *       HB_FS_USED     The number of bytes in use on the disk.

 *       HB_FS_TOTAL    The total amount of space allocated for the user if
 *                      disk quotas are in effect, otherwise, the actual size
 *                      of the drive.
 *
 *      If information is requested on a disk that is not available, a runtime
 *      error 2018 will be raised.
 *  $EXAMPLES$
 *      ? "You can use : " + Str( HB_DiskSpace() ) + " bytes " +;
 *        "Out of a total of " + Str( HB_DiskSpace( "C:", HB_FS_TOTAL ) )
 *
 *      Note: See tests\tstdspac.prg for another example
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      CA-Cl*pper will return an integer value which limits its usefulness to
 *      drives less than 2 gigabytes. The Harbour version will return a
 *      floating point value with 0 decimals if the disk is > 2 gigabytes.
 *       is a Harbour extension.
 *  $PLATFORMS$
 *      Dos,Win32,OS/2,Unix
 *  $FILES$
 *      Library is rtl
 *      Header is fileio.ch
 *  $END$
 */
c:\harbour\doc\en\error.txt
/*
 * $Id: error.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: ERRORSYS()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ERRORSYS()
 *  $CATEGORY$
 *      Error recovery
 *  $ONELINER$
 *      Install default error handler
 *  $SYNTAX$
 *      ERRORSYS() --> NIL
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *      ERRORSYS() always return NIL.
 *  $DESCRIPTION$
 *      ERRORSYS() is called upon startup by Harbour and install the default
 *      error handler. Normally you should not call this function directly,
 *      instead use ERRORBLOCK() to install your own error handler.
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      ERRORSYS() works exactly like CA-Cl*pper's ERRORSYS().
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ERRORBLOCK(),Error class
 *  $END$
 */
c:\harbour\doc\en\eval.txt
/*
 * $Id: eval.txt 9192 2008-08-19 14:17:51Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Luiz Rafael Culik 
 *    Documentation for: EVAL()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      EVAL()
 *  $CATEGORY$
 *      Code Block
 *  $ONELINER$
 *      Evaluate a code block
 *  $SYNTAX$
 *      EVAL(  [,  [,...]])   --> xExpression
 *  $ARGUMENTS$
 *         Code block expression to be evaluated
 *
 *           Argument to be passed to the code block expression
 *
 *        Argument list to be passed to the code block expression
 *  $RETURNS$
 *        The result of the evaluated code block
 *  $DESCRIPTION$
 *      This function evaluates the code bloc expressed as  and
 *      returns its evaluated value. If their are multiple expressions within
 *      the code block, the last expression will be value of this function.
 *
 *      If the code block requires parameters to be passed to it,they are
 *      specified in the parameter list  and following. Each parameter
 *      is separated by a comma within the expression list.
 *  $EXAMPLES$
 *      FUNC MAIN
 *      LOCAL    sbBlock   := {|| NIL }
 *      ?  Eval( 1 )
 *      ?  Eval( @sbBlock )
 *
 *      ? Eval( {|p1| p1 },"A","B")
 *      ? Eval( {|p1,p2| p1+p2 },"A","B")
 *      ? Eval( {|p1,p2,p3| p1 },"A","B")
 *      Return Nil
 *  $TESTS$
 *      See examples
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      AEVAL(),DBEVAL()
 *  $END$
 */
c:\harbour\doc\en\file.txt
/*
 * $Id: file.txt 9243 2008-08-25 21:36:00Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Chen Kedem 
 *    Documentation for: __TYPEFILE(), TYPE
 *
 * Copyright 2000 Luiz Rafael Culik 
 *    Documentation for: FOPEN(), FCLOSE(), FWRITE(), FSEEK(), FREAD(), FILE(),
 *                       FREADSTR(), FRENAME(), FERROR(), RENAME, ERASE, CURDIR(),
 *                       DIRMAKE(), DIRCHANGE(), ISDISK(), DIRREMOVE(), DISKCHANGE(),
 *                       DIRCHANGE()
 *
 * Copyright 2000 David G. Holm 
 *    Documentation for: HB_FEOF()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FOPEN()
 *  $CATEGORY$
 *      Low Level
 *  $ONELINER$
 *      Open a file.
 *  $SYNTAX$
 *      FOPEN( , [] ) --> nHandle
 *  $ARGUMENTS$
 *       Name of file to open.
 *
 *       Dos file open mode.
 *  $RETURNS$
 *       A file handle.
 *  $DESCRIPTION$
 *      This function opens a file expressed as  and returns a
 *      file handle to be used with other low-level file functions. The
 *      value of  represents the status of the file to be opened;
 *      the default value is 0. The file open modes are as follows:

 *  
 *       nMode   fileio.ch      Meaning
 *
 *       0       FO_READ        Read only
 *       1       FO_WRITE       Write only
 *       2       FO_READWRITE   Read/write
 *       16      FO_EXCLUSIVE   Exclusive read only
 *       32      FO_DENYWRITE   Prevent others from writing
 *       48      FO_DENYREAD    Deny read only
 *       64      FO_DENYNONE    Not deny, Let to others Read / Write
 *       64      FO_SHARED      same as FO_DENYNONE
 *  
* If there is an error in opening a file, a -1 will be returned by * the function. Files handles may be in the range of 0 to 65535. The * status of the SET DEFAULT TO and SET PATH TO commands has no effect * on this function. Directory names and paths must be specified along * with the file that is to be opened. * * If an error has occured, see the returns values from FERROR() for * possible reasons for the error. * $EXAMPLES$ * * IF (nH:=FOPEN('x.txt',66) < 0 * ? 'File can't be opened' * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rtl * Header is fileio.ch * $SEEALSO$ * FCREATE(),FERROR(),FCLOSE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FCREATE() * $CATEGORY$ * Low Level * $ONELINER$ * Creates a file. * $SYNTAX$ * FCREATE( , [] ) --> nHandle * $ARGUMENTS$ * is the name of the file to create. * * Numeric code for the file attributes. * $RETURNS$ * Numeric file handle to be used in other operations. * $DESCRIPTION$ * This function creates a new file with a filename of . The * default value of is 0 and is used to set the * attribute byte for the file being created by this function. * The return value will be a file handle that is associated * with the new file. This number will be between zero to 65,535, * inclusive. If an error occurs, the return value of this function * will be -1. * * If the file already exists, the existing file will be * truncated to a file length of 0 bytes. * If specified, the following table shows the value for * and their related meaning to the file being created by * this function. * * * fileio.ch Meaning * * 0 FC_NORMAL Normal/Default,Read/Write * 1 FC_READONLY Read-only file attribute is set * 2 FC_HIDDEN Hidden,Excluded from normal DIR search * 4 FC_SYSTEM Create,Excluded from normal DIR search *
* $EXAMPLES$ * IF (nh:=FCREATE("test.txt") <0 * ? "Cannot create file" * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant. * $FILES$ * Library is rtl * Header is fileio.ch * $SEEALSO$ * FCLOSE(),FOPEN(),FWRITE(),FREAD(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * FREAD() * $CATEGORY$ * Low Level * $ONELINER$ * Reads a specified number of bytes from a file. * $SYNTAX$ * FREAD( , @, ) --> nBytes * $ARGUMENTS$ * Dos file handle * Character expression passed by reference. * Number of bytes to read. * $RETURNS$ * the number of bytes successfully read from the file. * * $DESCRIPTION$ * This function reads the characters from a file whose file handle * is into a character memory variable expressed as . * The function returns the number of bytes successfully read into * . * The value of is obtained from either a call to the FOPEN() * or the FCREATE() function. * The expression is passed by reference and must be defined * before this function is called. It also must be at least the same * length as . * is the number of bytes to read, starting at the current * file pointer position. If this function is successful in reading * the characters from the file, the length of or the number * of bytes specified in will be the value returned. The current * file pointer advances the number of bytes read with each successive * read. The return value is the number of bytes successfully read * from the file. If a 0 is returned, or if the number of * bytes read matches neither the length of nor the specified * value in an end-of-file condition has been reached. * $EXAMPLES$ * cBuffer:=SPACE(500) * IF (nH:=FOPEN('x.txt'))>0 * FREAD(nH,@cBuffer,500) * ? cbuffer * ENDIF * FCLOSE(nH) * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant, but also extends the possible * buffer size to strings greater than 65K (depending on platform). * $FILES$ * Library is rtl * $SEEALSO$ * BIN2I(),BIN2L(),BIN2W(),FERROR(),FWRITE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FWRITE() * $CATEGORY$ * Low Level * $ONELINER$ * Writes characters to a file. * $SYNTAX$ * FWRITE( , , [] ) --> nBytesWritten * $ARGUMENTS$ * DOS file handle number. * Character expression to be written. * The number of bytes to write. * $RETURNS$ * the number of bytes successfully written. * $DESCRIPTION$ * This function writes the contents of to the file designated * by its file handle . If used, is the number of * bytes in to write. * The returned value is the number of bytes successfully written to the * DOS file. If the returned value is 0, an error has occurred (unless * this is intended). A successful write occurs when the number returned * by FWRITE() is equal to either LEN( ) or . * The value of is the string or variable to be written to the * open DOS file . * The value of is the number of bytes to write out to the file. * The disk write begins with the current file position in . If * this variable is not used, the entire contents of is written * to the file. * To truncate a file, a call of FWRITE( nHandle, "", 0 ) is needed. * $EXAMPLES$ * nHandle := FCREATE( "x.txt" ) * FOR X := 1 TO 10 * FWRITE( nHandle, STR( x ) ) * NEXT * FCLOSE( nHandle ) * $STATUS$ * R * $COMPLIANCE$ * This function is not CA-Cl*pper compatile since * it can writes strings greather the 64K * $FILES$ * Library is rtl * $SEEALSO$ * FCLOSE(), FCREATE(), FERROR(), FOPEN(), I2BIN(), L2BIN() * $END$ */ /* $DOC$ * $FUNCNAME$ * FERROR() * $CATEGORY$ * Low Level * $ONELINER$ * Reports the error status of low-level file functions * $SYNTAX$ * FERROR() --> * $RETURNS$ * Value of the DOS error last encountered by a * low-level file function. * * FERROR() Return Values * * * Error Meaning * * 0 Successful * 2 File not found * 3 Path not found * 4 Too many files open * 5 Access denied * 6 Invalid handle * 8 Insufficient memory * 15 Invalid drive specified * 19 Attempted to write to a write-protected disk * 21 Drive not ready * 23 Data CRC error * 29 Write fault * 30 Read fault * 32 Sharing violation * 33 Lock Violation *
* $DESCRIPTION$ * After every low-level file function,this function will return * a value that provides additional informationon the status of * the last low-level file functions's performance. If the FERROR() * function returns a 0, no error was detected. Below is a table * of possibles values returned by the FERROR() function. * $EXAMPLES$ * #include "fileio.ch" * // * nHandle := FCREATE( "temp.txt", FC_NORMAL ) * IF FERROR() != 0 * ? "Cannot create file, DOS error ", FERROR() * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compatible * $FILES$ * Library is rtl * $SEEALSO$ * FCLOSE(),FERASE(),FOPEN(),FWRITE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FCLOSE() * $CATEGORY$ * Low Level * $ONELINER$ * Closes an open file * $SYNTAX$ * FCLOSE( ) --> * $ARGUMENTS$ * DOS file handle * $RETURNS$ * Logical TRUE (.T.) or FALSE (.F.) * $DESCRIPTION$ * This function closes an open file with a dos file handle * of and writes the associated DOS buffer to the * disk. The value is derived from the FCREATE() * or FOPEN() function. * $EXAMPLES$ * nHandle:=FOPEN('x.txt') * ? FSEEK(nHandle, 0, 2) * FCLOSE(nHandle) * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rtl * $SEEALSO$ * FOPEN(),FCREATE(),FREAD(),FWRITE(),FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * FERASE() * $CATEGORY$ * Low Level * $ONELINER$ * Erase a file from disk * $SYNTAX$ * FERASE( ) --> nSuccess * $ARGUMENTS$ * Name of file to erase. * $RETURNS$ * 0 if successful, -1 if not * $DESCRIPTION$ * This function deletes the file specified in from the disk. * No extensions are assumed. The drive and path my be included in * ; neither the SET DEFAULT not the SET PATH command controls * the performance of this function. If the drive or path is not used, * the function will look for the file only on the currently selected * direcytory on the logged drive. * * If the function is able to successfully delete the file from the * disk, the value of the function will be 0; otherwise a -1 will * be returned. If not successfu, aditional information may be * obtained by calling the FERROR() function. * * Note: Any file to be removed by FERASE() must still be closed. * * $EXAMPLES$ * IF FERASE("test.txt")==0 * ? "File successfully erased" * ELSE * ? "File can not be deleted" * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper Compatible * $FILES$ * Library is rtl * $SEEALSO$ * FERROR(),FRENAME() * $END$ */ /* $DOC$ * $FUNCNAME$ * FRENAME() * $CATEGORY$ * File management * $ONELINER$ * Renames a file * $SYNTAX$ * FRENAME( , ) --> nSuccess * $ARGUMENTS$ * Old filenarne to he changed * New filename * $RETURNS$ * If sucessful, a 0 will he returned otherwise, * a -1 will be returned. * $DESCRIPTION$ * This function renames the specified file to . * A filename and/or directory name may be specified for either para- * meter. However, if a path is supplied as part of and * this path is different from either the path specified in * or (if none is used) the current drive and directory, the function * will not execute successfully. * Neither parameter is subject to the control of the SET PATH TO or * SET DEFAULT TO commands. In attempting to locate the file to be * renamed, this function will search the default drive and directory * or the drive and path specified in . It will not search * directories named by the SET PATH TO and SET DEFAULT TO commands * or by the DOS PATH statement. * If the file specified in exists or the file is open, * the function will be unable to rename the file. If the function * is unable to complete its operation,it will return a value of -1. * If it is able to rename the file, the return value for the function * will be 0. A call to FERROR() function will give additional infor- * mation about any error found. * $EXAMPLES$ * nResult := FRENAME( "x.txt", "x1.txt" ) * IF nResult < 0 * ? "File could not be renamed." * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rtl * $SEEALSO$ * ERASE,FERASE(),FERROR(),FILE(),RENAME * $END$ */ /* $DOC$ * $FUNCNAME$ * FSEEK() * $CATEGORY$ * Low Level * $ONELINER$ * Positions the file pointer in a file. * $SYNTAX$ * FSEEK( , , [] ) --> nPosition * $ARGUMENTS$ * DOS file handle. * The number of bytes to move. * The relative position in the file. * $RETURNS$ * the current position relative to begin-of-file * $DESCRIPTION$ * This function sets the file pointer in the file whose DOS file * handle is and moves the file pointer by bytes * from the file position designated by . The returned value * is the relative position of the file pointer to the beginning-of-file * marker once the operation has been completed. * is the file handle number. It is obtained from the FOPEN() * or FCREATE() function. * The value of is the number of bytes to move the file pointer * from the position determined by . The value of may * be a negative number, suggesting backward movement. * The value of designates the starting point from which the * file pointer should he moved, as shown in the following table: * * fileio.ch File position * * 0 FS_SET Beginning of file * 1 FS_RELATIVE Current file pointer position * 2 FS_END End of file *
* If a value is not provided for , it defaults to 0 and * moves the file pointer from the beginning of the file. * $EXAMPLES$ * // here is a function that read one text line from an open file * * // nH = file handle obtained from FOPEN() * // cB = a string buffer passed-by-reference to hold the result * // nMaxLine = maximum number of bytes to read * * #define EOL HB_OSNEWLINE() * FUNCTION FREADln( nH, cB, nMaxLine ) * LOCAL cLine, nSavePos, nEol, nNumRead * cLine := space( nMaxLine ) * cB := '' * nSavePos := FSEEK( nH, 0, FS_RELATIVE ) * nNumRead := FREAD( nH, @cLine, nMaxLine ) * IF ( nEol := AT( EOL, substr( cLine, 1, nNumRead ) ) ) == 0 * cB := cLine * ELSE * cB := SUBSTR( cLine, 1, nEol - 1 ) * FSEEK( nH, nSavePos + nEol + 1, FS_SET ) * ENDIF * RETURN nNumRead != 0 * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant. * $FILES$ * Library is rtl * Header is fileio.ch * $SEEALSO$ * FCREATE(),FERROR(),FOPEN(),FREAD(),FREADSTR(),FWRITE() * $END$ */ /* $DOC$ * $FUNCNAME$ * FILE() * $CATEGORY$ * File management * $ONELINER$ * Tests for the existence of file(s) * $SYNTAX$ * FILE( ) --> lExists * $ARGUMENTS$ * Dos Skeleton or file name to find. * $RETURNS$ * a logical true (.T.) if the file exists or logical * false (.F.). * $DESCRIPTION$ * This function return a logical true (.T.) if the given filename * exist. * Dos skeletons symbols may be used in the filename in , * as may the drive and/or path name. If a path is not explicity * specified, FILE() will look for the file in the SET DEFAULT path, * then in each SET PATH path, until the file is found or there are * no more paths to search. The DOS PATH is never searched and the * current drive/directory is only searched if SET DEFAULT is blank. * $EXAMPLES$ * ? file('C:\harbour\doc\compiler.txt") * ? file('C:/harbour/doc/subcodes.txt") * * $STATUS$ * S (wild card support is missing) * $COMPLIANCE$ * This function is CA-Cl*pper compatible. * $FILES$ * Library is rtl * $SEEALSO$ * SET DEFAULT,SET PATH,SET() * $END$ */ /* $DOC$ * $FUNCNAME$ * FREADSTR() * $CATEGORY$ * Low Level * $ONELINER$ * Reads a string from a file. * $SYNTAX$ * FREADSTR(, ) --> cString * $ARGUMENTS$ * DOS file handle number. * * Number of bytes to read. * $RETURNS$ * an characted expression * $DESCRIPTION$ * This function returns a character string of bytes from a * file whose DOS file handle is . * The value of the file handle is obtained from either the * FOPEN() or FCREATE() functions. * The value of is the number of bytes to read from the file. * The returned string will be the number of characters specified in * or the number of bytes read before an end-of-file charac- * ter (ASCII 26) is found. * NOTE This function is similar to the FREAD() function, except that * it will not read binary characters that may he required as part of * a header of a file construct. Characters Such as CHR(0) and CHR(26) * may keep this function from performing its intended operation. In this * event, the FREAD() function should he used in place of the FREADSTR() * function. * $EXAMPLES$ * IF ( nH := FOPEN("x.txt") ) > 0 * cStr := Freadstr(nH,100) * ? cStr * ENDIF * FCLOSE(nH) * * $STATUS$ * R * $COMPLIANCE$ * This function is not CA-Cl*pper compliant since may read * strings greather the 65K depending of platform. * $FILES$ * Library is rtl * $SEEALSO$ * BIN2I(),BIN2L(),BIN2W(),FERROR(),FREAD(),FSEEK() * $END$ */ /* HARBOUR COMMANDS */ /* $DOC$ * $FUNCNAME$ * RENAME * $CATEGORY$ * Command * $ONELINER$ * Changes the name of a specified file * $SYNTAX$ * RENAME TO * $ARGUMENTS$ * Old filename * New Filename * $DESCRIPTION$ * This command changes the name of to . Both * and must include a file extension. This command * if not affected by the SET PATH TO or SET DEFAULT TO commands;drive * and directoy designaters must be specified if either file is in a * directory other then the default drive and directory. * * If id currently open or if it previously exists, this * command will not perform the desired operation. * $EXAMPLES$ * RENAME C:\autoexec.bat TO C:\autoexec.old * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compatible * $FILES$ * Library is rtl * $SEEALSO$ * CURDIR(),ERASE,FILE(),FERASE(),FRENAME() * $END$ */ /* $DOC$ * $FUNCNAME$ * ERASE * $CATEGORY$ * Command * $ONELINER$ * Remove a file from disk * $SYNTAX$ * ERASE * $ARGUMENTS$ * Name of file to remove * $DESCRIPTION$ * This command removes a file from the disk. The use of a drive,directo- * ry, and wild-card skeleton operator is allowed for the root of the * filename. The file extension is required. The SET DEFAULT and SET PATH * commands do not affect this command. * The file must be considered closed by the operating system before it * may be deleted. * $EXAMPLES$ * ERASE C:\autoexec.bat * ERASE C:/temp/read.txt * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compatible * $SEEALSO$ * CURDIR(), FILE(), FERASE(), DELETE FILE * $END$ */ /* $DOC$ * $FUNCNAME$ * DELETE FILE * $CATEGORY$ * Command * $ONELINER$ * Remove a file from disk * $SYNTAX$ * DELETE FILE * $ARGUMENTS$ * Name of file to remove * $DESCRIPTION$ * This command removes a file from the disk. The use of a drive,directo- * ry,and wild-card skeleton operator is allowed for the root of the * filename. The file extension is required. The SET DEFAULT and SET PATH * commands do not affect this command. * The file must be considered closed by the operating system before it * may be deleted. * $EXAMPLES$ * ERASE C:\autoexec.bat * ERASE C:/temp/read.txt * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compatible * $SEEALSO$ * CURDIR(), FILE(), FERASE(), ERASE * $END$ */ /* $DOC$ * $FUNCNAME$ * __TYPEFILE() * $CATEGORY$ * Data input and output * $ONELINER$ * Show the content of a file on the console and/or printer * $SYNTAX$ * __TYPEFILE( , [] ) --> NIL * $ARGUMENTS$ * is a name of the file to display. If the file have an * extension, it must be specified (there is no default value). * * is an optional logical value that specifies whether the * output should go only to the screen (.F.) or to both the screen and * printer (.T.), the default is (.F.). * $RETURNS$ * __TYPEFILE() always return NIL. * $DESCRIPTION$ * __TYPEFILE() function type the content of a text file on the screen * with an option to send this information also to the printer. The * file is displayed as is without any headings or formating. * * If contain no path, __TYPEFILE() try to find the file first * in the SET DEFAULT directory and then in search all of the SET PATH * directories. If can not be found a run-time error occur. * * Use SET CONSOLE OFF to suppress screen output. * You can pause the output using Ctrl-S, press any key to resume. * * __TYPEFILE() function is used in the preprocessing of the TYPE * command. * $EXAMPLES$ * The following examples assume a file name mytext.dat exist in all * specified paths, a run-time error would displayed if it does not * * // display mytext.dat file on screen * __TYPEFILE( "mytext.dat" ) * * // display mytext.dat file on screen and printer * __TYPEFILE( "mytext.dat", .T. ) * * // display mytext.dat file on printer only * SET CONSOLE OFF * __TYPEFILE( "mytext.dat", .T. ) * SET CONSOLE ON * * $STATUS$ * R * $COMPLIANCE$ * __TYPEFILE() works exactly like CA-Cl*pper's __TYPEFILE() * $FILES$ * Library is rtl * $SEEALSO$ * COPY FILE,SET DEFAULT,SET PATH,SET PRINTER,TYPE * $END$ */ /* $DOC$ * $FUNCNAME$ * TYPE * $CATEGORY$ * Command * $ONELINER$ * Show the content of a file on the console, printer or file * $SYNTAX$ * TYPE [TO PRINTER] [TO FILE ] * $ARGUMENTS$ * is a name of the file to display. If the file have an * extension, it must be specified (there is no default value). * It can be specified as literal file name or as a character * expression enclosed in parentheses. * * TO PRINTER is an optional keyword that specifies that the output * should go to both the screen and printer. * * TO FILE copy the source also to a file. If no * extension is given (.txt) is added to the output file name. * can be specified as literal file name or as a character * expression enclosed in parentheses. * $DESCRIPTION$ * TYPE command type the content of a text file on the screen * with an option to send this information also to the printer or to * an alternate file. The file is displayed as is without any headings * or formating. * * If contain no path, TYPE try to find the file first in the * SET DEFAULT directory and then in search all of the SET PATH * directories. If can not be found a run-time error occur. * * If contain no path it is created in the SET DEFAULT * directory. * * Use SET CONSOLE OFF to suppress screen output. * You can pause the output using Ctrl-S, press any key to resume. * $EXAMPLES$ * The following examples assume a file name mytext.dat exist in all * specified paths, a run-time error would displayed if it does not * * // display mytext.dat file on screen * TYPE mytext.dat * * // display mytext.dat file on screen and printer * TYPE mytext.dat TO PRINTER * * // display mytext.dat file on printer only * SET CONSOLE OFF * TYPE mytext.dat TO PRINTER * SET CONSOLE ON * * // display mytext.dat file on screen and into a file myreport.txt * TYPE mytext.dat TO FILE MyReport * * $STATUS$ * R * $COMPLIANCE$ * TYPE works exactly like CA-Cl*pper's TYPE * $SEEALSO$ * COPY FILE,SET DEFAULT,SET PATH,SET PRINTER,__TYPEFILE() * $END$ */ /* $DOC$ * $FUNCNAME$ * CURDIR() * $CATEGORY$ * Low Level * $ONELINER$ * Returns the current OS directory name. * $SYNTAX$ * CURDIR( [] ) --> cPath * $ARGUMENTS$ * OS drive letter * $RETURNS$ * Name of directory * $DESCRIPTION$ * This function yields the name of the current OS directory on a * specified drive. If is not speficied, the currently logged * drive will be used. * This function should not return the leading and trailing * (back)slashes. * If an error has been detected by the function, or the current OS * directory is the root, the value of the function will be a NULL * byte. * $EXAMPLES$ * ? Curdir() * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper Compatible * $PLATFORMS$ * ALL * $FILES$ * Library is rtl * $SEEALSO$ * FILE() * $END$ */ /* $DOC$ * $FUNCNAME$ * COPY FILE * $CATEGORY$ * Command * $ONELINER$ * Copies a file. * $SYNTAX$ * COPY FILE TO * $ARGUMENTS$ * Filename of source file * Filename of target file * $DESCRIPTION$ * This command makes an exact copy of and names it . * Both files must have the file extension included; the drive and the * directory names must also be specified if they are different from * the default drive and/or director. also can refer to a OS * device (e.g. LPT1). This command does not obsert the SET PATH TO or * SET DEFAULT TO settings. * $EXAMPLES$ * COPY FILE C:\harbour\tests\adirtest.prg TO C:\temp\adirtest.prg * COPY FILE C:\harbour\utils\hbdoc\gennf.prg TO LPT1 * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * ERASE,RENAME,FRENAME(),FERASE() * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_FEOF() * $CATEGORY$ * Low Level * $ONELINER$ * Check for end-of-file. * $SYNTAX$ * HB_FEOF( ) --> lIsEof * $ARGUMENTS$ * The handle of an open file. * $RETURNS$ * .T. if the file handle is at end-of-file, otherwise .F. * $DESCRIPTION$ * This function checks an open file handle to see if it is at EOF. * If the file handle is missing, not numeric, or not open, then this * function returns .T. and sets the value returned by FERROR() to -1 * (FS_ERROR) or a C-compiler dependent errno value (EBADF or EINVAL). * $EXAMPLES$ * nH := FOPEN( "file.txt" ) * ? FREADSTR( nH, 80 ) * IF HB_FEOF( nH ) * ? "End-of-file reached." * ELSE * ? FREADSTR( nH, 80 ) * ENDIF * $STATUS$ * R * $COMPLIANCE$ * This function is a Harbour extension * $FILES$ * Library is rtl * $SEEALSO$ * FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * DIRREMOVE() * $CATEGORY$ * Low Level * $ONELINER$ * Attempt to remove an directory * $SYNTAX$ * DIRCHANGE( ) --> nError * $ARGUMENTS$ * The name of the directory you want to remove. * $RETURNS$ * 0 if directory was successfully removed, otherwise * the number of the last error. * $DESCRIPTION$ * This function attempt to remove the specified directory in * If this function fail, the it will return the last OS error code number. * See FERROR() function for the description of the error. * $EXAMPLES$ * cDir:= ".\backup" * if DIRREMOVE( cDir ) == 0 * ? "Remove of directory", cDir, "was successfull" * endif * $TESTS$ * See examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper 5.3 compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * MAKEDIR(), DIRCHANGE(), ISDISK(), DISKCHANGE(), DISKNAME(), FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * DIRCHANGE() * $CATEGORY$ * Low Level * $ONELINER$ * Changes the directory * $SYNTAX$ * DIRCHANGE( ) --> nError * $ARGUMENTS$ * The name of the directory you want do change into. * $RETURNS$ * 0 if directory was successfully changed, otherwise * the number of the last error. * $DESCRIPTION$ * This function attempt to change the current directory to the one * specidied in . If this function fail, the it will return * the last OS error code number. See FERROR() function for the * description of the error. * $EXAMPLES$ * if DIRCHANGE( "\temp" ) == 0 * ? "Change to diretory was successfull" * endif * $TESTS$ * See examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper 5.3 compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * MAKEDIR(), DIRREMOVE(), ISDISK(), DISKCHANGE(), DISKNAME(), FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * MAKEDIR() * $CATEGORY$ * Low Level * $ONELINER$ * Create a new directory * $SYNTAX$ * MAKEDIR( ) --> nError * $ARGUMENTS$ * The name of the directory you want to create. * $RETURNS$ * 0 if directory was successfully created, otherwise * the number of the last error. * $DESCRIPTION$ * This function attempt to create a new directory with the name contained * in . If this function fail, the it will return the last OS * error code number. See FERROR() function for the description of the * error * $EXAMPLES$ * cDir := "temp" * If MAKEDIR( cDir ) == 0 * ? "Directory ", cDir, " successfully created * Endif * $TESTS$ * See examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper 5.3 compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * DIRCHANGE(), DIRREMOVE(), ISDISK(), DISKCHANGE(), DISKNAME(), FERROR() * $END$ */ /* $DOC$ * $FUNCNAME$ * ISDISK() * $CATEGORY$ * Low Level * $ONELINER$ * Verify if a drive is ready * $SYNTAX$ * ISDISK( ) --> lSuccess * $ARGUMENTS$ * An valid Drive letter * $RETURNS$ * .T. is the drive is ready, otherwise .F. * $DESCRIPTION$ * This function attempts to access a drive. If the access to the drive * was successfull, it will return true (.T.), otherwise false(.F.). This * function is usefull for backup function, so you can determine if the * drive that will recieve the backup data is ready or not. * $EXAMPLES$ * IF ISDISK( "A" ) * ? "Drive is ready " * Endif * $TESTS$ * See Examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper 5.3 compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * DIRCHANGE(), MAKEDIR(), DIRREMOVE(), DISKCHANGE(), DISKNAME() * $END$ */
c:\harbour\doc\en\garbage.txt
/*
 * $Id: garbage.txt 9252 2008-08-26 11:33:03Z vszakats $
*/

/*  $DOC$
 *  $FUNCNAME$
 *      The Garbage Collector
 *  $CATEGORY$
 *      Document
 *  $ONELINER$
 *      Readme for Harbour Garbage Collect Feature
 *  $DESCRIPTION$
 *      The garbage collector uses the following logic:
 *      - first collect all memory allocations that can cause garbage;
 *      - next scan all variables if these memory blocks are still referenced.
 *
 *      Notice that only arrays, objects and codeblocks are collected because
 *      these are the only datatypes that can cause self-references (a[1]:=a)
 *      or circular references (a[1]:=b; b[1]:=c; c[1]:=a) that cannot be
 *      properly deallocated by simple reference counting.
 *
 *      Since all variables in harbour are stored inside some available tables
 *      (the eval stack, memvars table and array of static variables) then checking
 *      if the reference is still alive is quite easy and doesn't require any
 *      special treatment during memory allocation. Additionaly the garbage
 *      collector is scanning some internal data used by harbour objects
 *      implementation that also stores some values that can contain memory
 *      references. These data are used to initialize class instance variables
 *      and are stored in class shared variables.
 *
 *      In special cases when the value of a harbour variable is stored internally
 *      in some static area (at C or assembler level), the garbage collector will
 *      be not able to scan such values since it doesn't know their location. This 
 *      could cause some memory blocks to be released prematurely. To prevent the 
 *      premature deallocation of such memory blocks the static data have to store
 *      a pointer to the value created with hb_itemNew() function.
 *      Example:
 *        static HB_ITEM s_item; // this item can be released by the GC 
 *
 *        static PHB_ITEM pItem; // this item will be maintained correctly
 *        pItem = hb_itemNew( hb_param(1, IT_BLOCK) ); 
 *
 *      However, scanning of all variables can be a time consuming operation. It
 *      requires that all allocated arrays have to be traversed through all their
 *      elements to find more arrays. Also all codeblocks are scanned for detached
 *      local variables they are referencing. For this reason, looking for unreferenced
 *      memory blocks is performed during the idle states.
 *
 *      The idle state is a state when there is no real application code
 *      executed. For example, the user code is stopped for 0.1 of a second
 *      during INKEY(0.1) - Harbour is checking the keyboard only
 *      during this time. It leaves however quite enough time for
 *      many other background tasks. One such background task can be looking
 *      for unreferenced memory blocks.
 *
 *      Allocating memory    
 *      -----------------
 *
 *      The garbage collector collects memory blocks allocated with hb_gcAlloc()
 *      function calls. Memory allocated by hb_gcAlloc() should be released with
 *      hb_gcFree() function.
 *
 *      The garbage collecting   
 *      ----------------------
 *
 *      During scanning of unreferenced memory the GC is using a mark & sweep
 *      algorithm. This is done in three steps:
 *
 *      1) mark all memory blocks allocated by the GC with unused flag;
 *
 *      2) sweep (scan) all known places and clear unused flag for memory
 *      blocks that are referenced there;
 *
 *      3) finalize collecting by deallocation of all memory blocks that are
 *      still marked as unused and that are not locked.
 *
 *      To speed things up, the mark step is simplified by swapping the meaning
 *      of the unused flag. After deallocation of unused blocks all still alive
 *      memory blocks are marked with the same 'used' flag so we can reverse
 *      the meaning of this flag to 'unused' state in the next collecting.
 *      All new or unlocked memory blocks are automatically marked as 'unused'
 *      using the current flag, which assures that all memory blocks are marked
 *      with the same flag before the sweep step will start.
 *      See hb_gcCollectAll()  and hb_gcItemRef()
 *
 *      Calling the garbage collector from harbour code   
 *      -----------------------------------------------
 *
 *      The garbage collector can be called directly from the harbour code.
 *      This is usefull in situations where there is no idle states available
 *      or the application is working in the loop with no user interaction
 *      and there is many memory allocations.
 *      See HB_GCALL() for explanation of how to call this function from your
 *      harbour code.
 *  $SEEALSO$
 *      hb_gcAlloc(),hb_gcFree(),hb_gcCollectAll(),hb_gcItemRef(),HB_GCALL(),HB_IDLESTATE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcAlloc()
 *  $CATEGORY$
 *      The garbage collector
 *  $ONELINER$
 *      Allocates memory that will be collected by the garbage collector.
 *  $SYNTAX$
 *      #include 
 *      void *hb_gcAlloc( ULONG ulSize,
 *      HB_GARBAGE_FUNC_PTR pCleanupFunc );
 *  $ARGUMENTS$
 *       Requested size of memory block
 *
 *       Pointer to HB_GARBAGE_FUNC function that will be called
 *      directly before releasing the garbage memory block or NULL. This
 *      function should release all other memory allocated and stored inside
 *      the memory block. For example, it releases all items stored inside
 *      the array. The functions receives a single parameter: the pointer
 *      to memory allocated by hb_gcAlloc().
 *  $RETURNS$
 *      The pointer to allocated memory or it generates an internal
 *      unrecoverable error.
 *  $DESCRIPTION$
 *      hb_gcAlloc() is used to allocate the memory that will be tracked
 *      by the garbage collector. It allows to properly release memory
 *      in case of self-referencing or cross-referencing harbour level
 *      variables.
 *      Memory allocated with this function should be released with
 *      hb_gcFree() function or it will be automatically deallocated
 *      by the GC if it is not locked or if it is not referenced by some
 *      harbour level variable.
 *  $EXAMPLES$
 *      See source/vm/arrays.c
 *  $STATUS$
 *      C
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/vm/garbage.c
 *  $SEEALSO$
 *      hb_gcFree()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcFree()
 *  $CATEGORY$
 *      The garbage collector
 *  $ONELINER$
 *      Releases the memory that was allocated with hb_gcAlloc().
 *  $SYNTAX$
 *      void hb_gcFree( void *pMemoryPtr );
 *  $ARGUMENTS$
 *       The pointer to memory for release. This memory
 *        pointer have to be allocated with hb_gcAlloc() function.
 *  $RETURNS$
 *      Nothing.
 *  $DESCRIPTION$
 *      hb_gcFree() is used to deallocate the memory that was
 *      allocated with the hb_gcAlloc() function.
 *  $EXAMPLES$
 *      See source/vm/arrays.c
 *  $STATUS$
 *      C
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/vm/garbage.c
 *  $SEEALSO$
 *      hb_gcAlloc()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcCollectAll()
 *  $CATEGORY$
 *      The garbage collector
 *  $ONELINER$
 *      Scans all memory blocks and releases the garbage memory.
 *  $SYNTAX$
 *      void hb_gcCollectAll( void );
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *      Nothing.
 *  $DESCRIPTION$
 *      This function scans the eval stack, the memvars table, the array
 *      of static variables and table of created classes for referenced
 *      memory blocks. After scanning all unused memory blocks and blocks
 *      that are not locked are released.
 *  $STATUS$
 *      C
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/vm/garbage.c
 *  $SEEALSO$
 *      hb_gcAlloc(),hb_gcFree()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcItemRef()
 *  $CATEGORY$
 *      The garbage collector
 *  $ONELINER$
 *      Marks the memory to prevent deallocation by the garbage collector.
 *  $SYNTAX$
 *      void hb_gcItemRef( PHB_ITEM pItem );
 *  $ARGUMENTS$
 *        The pointer to item structure that will be scanned. The
 *      passed item can be of any datatype although arrays, objects
 *      and codeblocks are scanned only. Other datatypes don't require
 *      locking so they are simply ignored.
 *  $RETURNS$
 *      Nothing.
 *  $DESCRIPTION$
 *      The garbage collector uses hb_gcItemRef() function during
 *      scanning of referenced memory pointers. This function checks the
 *      type of passed item and scans recursively all other memory blocks
 *      referenced by this item if it is an array, an object or a codeblock.
 *
 *      NOTE: This function is reserved for the garbage collector only. It
 *            cannot be called from the user code - calling it can cause
 *            unpredicted results (memory blocks referenced by the
 *            passed item can be released prematurely during the closest
 *            garbage collection).
 *  $STATUS$
 *      C
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/vm/garbage.c
 *  $SEEALSO$
 *      hb_gcAlloc(),hb_gcFree()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_GCALL()
 *  $CATEGORY$
 *      The garbage collector
 *  $ONELINER$
 *      Scans the memory and releases all garbage memory blocks.
 *  $SYNTAX$
 *      HB_GCALL()
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *      NIL
 *  $DESCRIPTION$
 *      This function releases all memory blocks that are considered
 *      as the garbage.
 *  $STATUS$
 *      Harbour
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/vm/garbage.c
 *  $SEEALSO$
 *      hb_gcCollectAll()
 *  $END$
 */
c:\harbour\doc\en\gnulice.txt
/*
 * $Id: gnulice.txt 2667 2000-04-23 03:12:06Z vszel $
 */

/*  $DOC$
 *  $FUNCNAME$
 *      GNU License
 *  $CATEGORY$
 *      Document
 *  $ONELINER$
 *      Gnu License File Part 1
 *  $DESCRIPTION$
 *
 *      GNU GENERAL PUBLIC LICENSE   
 *      Version 2, June 1991   
 *      Copyright (C) 1989, 1991 Free Software Foundation, Inc.
 *      59 Temple Place - Suite 330, Boston, MA  02111-1307, USA   
 *
 *      Everyone is permitted to copy and distribute verbatim copies
 *      of this license document, but changing it is not allowed.   
 *
 *      Preamble   
 *
 *      The licenses for most software are designed to take away your
 *      freedom to share and change it. By contrast, the GNU General Public
 *      License is intended to guarantee your freedom to share and change
 *      free software--to make sure the software is free for all its users.
 *      This General Public License applies to most of the Free Software
 *      Foundation's software and to any other program whose authors commit
 *      to using it. (Some other Free Software Foundation software is
 *      covered by the GNU Library General Public License instead.)
 *      You can apply it to your programs, too.   
 *
 *      When we speak of free software, we are referring to freedom, not
 *      price. Our General Public Licenses are designed to make sure that
 *      you have the freedom to distribute copies of free software (and
 *      charge for this service if you wish), that you receive source code
 *      or can get it if you want it, that you can change the software or
 *      use pieces of it in new free programs; and that you know you can do
 *      these things.   
 *
 *      To protect your rights, we need to make restrictions that forbid
 *      anyone to deny you these rights or to ask you to surrender the
 *      rights. These restrictions translate to certain responsibilities
 *      for you if you distribute copies of the software, or if you modify
 *      it.             
 *
 *      For example, if you distribute copies of such a program, whether
 *      gratis or for a fee, you must give the recipients all the rights
 *      that you have. You must make sure that they, too, receive or can
 *      get the source code. And you must show them these terms so they
 *      know their rights.   
 *
 *      We protect your rights with two steps: (1) copyright the software,
 *      and (2) offer you this license which gives you legal permission to
 *      copy, distribute and/or vmodify the software.   
 *
 *      Also, for each author's protection and ours, we want to make
 *      certain that everyone understands that there is no warranty for
 *      this free software. If the software is modified by someone else and
 *      passed on, we want its recipients to know that what they have is
 *      not the original, so that any problems introduced by others will
 *      not reflect on the original authors' reputations.   
 *
 *      Finally, any free program is threatened constantly by software
 *      patents. We wish to avoid the danger that redistributors of a free
 *      program will individually obtain patent licenses, in effect making
 *      the program proprietary. To prevent this, we have made it clear
 *      that any patent must be licensed for everyone's free use or not
 *      licensed at all.   
 *
 *      The precise terms and conditions for copying, distribution and
 *      modification follow.   
 *
 *      TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION   
 *
 *      0. This License applies to any program or other work which contains
 *      a notice placed by the copyright holder saying it may be
 *      distributed under the terms of this General Public License. The
 *      "Program", below, refers to any such program or work, and a "work
 *      based on the Program" means either the Program or any derivative
 *      work under copyright law: that is to say, a work containing the
 *      Program or a portion of it, either verbatim or with modifications
 *      and/or translated into another language. (Hereinafter, translation
 *      is included without limitation in the term "modification".) Each
 *      licensee is addressed as "you". Activities other than copying,
 *      distribution and modification are not covered by this License; they
 *      are outside its scope. The act of running the Program is not
 *      restricted, and the output from the Program is covered only if its
 *      contents constitute a work based on the Program (independent of
 *      having been made by running the Program). Whether that is true
 *      depends on what the Program does.   
 *
 *      1. You may copy and distribute verbatim copies of the Program's
 *      source code as you receive it, in any medium, provided that you
 *      conspicuously and appropriately publish on each copy an appropriate
 *      copyright notice and disclaimer of warranty; keep intact all the
 *      notices that refer to this License and to the absence of any
 *      warranty; and give any other recipients of the Program a copy of
 *      this License along with the Program. You may charge a fee for the
 *      physical act of transferring a copy, and you may at your option
 *      offer warranty protection in exchange for a fee.   
 *
 *      2. You may modify your copy or copies of the Program or any portion
 *      of it, thus forming a work based on the Program, and copy and
 *      distribute such modifications or work under the terms of Section 1
 *      above, provided that you also meet all of these conditions:   
 *
 *        a) You must cause the modified files to carry prominent notices
 *        stating that you changed the files and the date of any change.   
 *
 *        b) You must cause any work that you distribute or publish, that
 *        in whole or in part contains or is derived from the Program or
 *        any part thereof, to be licensed as a whole at no charge to all
 *        third parties under the terms of this License.   
 *
 *        c) If the modified program normally reads commands interactively
 *        when run, you must cause it, when started running for such
 *        interactive use in the most ordinary way, to print or display an
 *        announcement including an appropriate copyright notice and a
 *        notice that there is no warranty (or else, saying that you
 *        provide a warranty) and that users may redistribute the program
 *        under these conditions, and telling the user how to view a copy
 *        of this License. (Exception: if the Program itself is interactive
 *        but does not normally print such an announcement, your work based
 *        on the Program is not required to print an announcement.)   
 *
 *      These requirements apply to the modified work as a whole. If
 *      identifiable sections of that work are not derived from the
 *      Program, and can be reasonably considered independent and separate
 *      works in themselves, then this License, and its terms, do not apply
 *      to those sections when you distribute them as separate works. But
 *      when you distribute the same sections as part of a whole which is a
 *      work based on the Program, the distribution of the whole must be on
 *      the terms of this License, whose permissions for other licensees
 *      extend to the entire whole, and thus to each and every part
 *      regardless of who wrote it.   
 *
 *      Thus, it is not the intent of this section to claim rights or
 *      contest your rights to work written entirely by you; rather, the
 *      intent is to exercise the right to control the distribution of
 *      derivative or collective works based on the Program.   
 *
 *      In addition, mere aggregation of another work not based on the
 *      Program with the Program (or with a work based on the Program) on a
 *      volume of a storage or distribution medium does not bring the other
 *      work under the scope of this License.   
 *
 *      3. You may copy and distribute the Program (or a work based on it,
 *      under Section 2) in object code or executable form under the terms
 *      of Sections 1 and 2 above provided that you also do one of the
 *      following:   
 *
 *        a) Accompany it with the complete corresponding machine-readable
 *        source code, which must be distributed under the terms of
 *        Sections 1 and 2 above on a medium customarily used for software
 *        interchange; or,   
 *
 *        b) Accompany it with a written offer, valid for at least three
 *        years, to give any third party, for a charge no more than your
 *        cost of physically performing source distribution, a complete
 *        machine-readable copy of the corresponding source code, to be
 *        distributed under the terms of Sections 1 and 2 above on a medium
 *        customarily used for software interchange; or,   
 *
 *        c) Accompany it with the information you received as to the offer
 *        to distribute corresponding source code. (This alternative is
 *        allowed only for noncommercial distribution and only if you
 *        received the program in object code or executable form with such
 *        an offer, in accord with Subsection b above.)    
 *
 *      The source code for a work means the preferred form of the work for
 *      making modifications to it. For an executable work, complete source
 *      code means all the source code for all modules it contains, plus
 *      any associated interface definition files, plus the scripts used to
 *      control compilation and installation of the executable. However, as
 *      a special exception, the source code distributed need not include
 *      anything that is normally distributed (in either source or binary
 *      form) with the major components (compiler, kernel, and so on) of
 *      the operating system on which the executable runs, unless that
 *      component itself accompanies the executable.       
 *
 *      If distribution of executable or object code is made by offering
 *      access to copy from a designated place, then offering equivalent
 *      access to copy the source code from the same place counts as
 *      distribution of the source code, even though third parties are not
 *      compelled to copy the source along with the object code.   
 *
 *      4. You may not copy, modify, sublicense, or distribute the Program
 *      except as expressly provided under this License. Any attempt
 *      otherwise to copy, modify, sublicense or distribute the Program is
 *      void, and will automatically terminate your rights under this
 *      License. However, parties who have received copies, or rights, from
 *      you under this License will not have their licenses terminated so
 *      long as such parties remain in full compliance.    
 *
 *      5. You are not required to accept this License, since you have not
 *      signed it. However, nothing else grants you permission to modify or
 *      distribute the Program or its derivative works. These actions are
 *      prohibited by law if you do not accept this License. Therefore, by
 *      modifying or distributing the Program (or any work based on the
 *      Program), you indicate your acceptance of this License to do so,
 *      and all its terms and conditions for copying, distributing or
 *      modifying the Program or works based on it.        
 *
 *      6. Each time you redistribute the Program (or any work based on the
 *      Program), the recipient automatically receives a license from the
 *      original licensor to copy, distribute or modify the Program subject
 *      to these terms and conditions. You may not impose any further
 *      restrictions on the recipients' exercise of the rights granted
 *      herein. You are not responsible for enforcing compliance by third
 *      parties to this License.   
 *
 *  $SEEALSO$
 *      GNU License Part 2
 *  $END$
 */
 /*
 *  $DOC$
 *  $FUNCNAME$
 *     GNU License Part 2
 *  $CATEGORY$
 *     Document
 *  $ONELINER$
 *     Gnu License File Part 2
 *  $DESCRIPTION$
 *
 *      7. If, as a consequence of a court judgment or allegation of patent
 *      infringement or for any other reason (not limited to patent
 *      issues), conditions are imposed on you (whether by court order,
 *      agreement or otherwise) that contradict the conditions of this
 *      License, they do not excuse you from the conditions of this
 *      License. If you cannot distribute so as to satisfy simultaneously
 *      your obligations under this License and any other pertinent
 *      obligations, then as a consequence you may not distribute the
 *      Program at all. For example, if a patent license would not permit
 *      royalty-free redistribution of the Program by all those who receive
 *      copies directly or indirectly through you, then the only way you
 *      could satisfy both it and this License would be to refrain entirely
 *      from distribution of the Program.   
 *
 *      If any portion of this section is held invalid or unenforceable
 *      under any particular circumstance, the balance of the section is
 *      intended to apply and the section as a whole is intended to apply
 *      in other circumstances.   
 *
 *      It is not the purpose of this section to induce you to infringe any
 *      patents or other property right claims or to contest validity of
 *      any such claims; this section has the sole purpose of protecting
 *      the integrity of the free software distribution system, which is
 *      implemented by public license practices. Many people have made
 *      generous contributions to the wide range of software distributed
 *      through that system in reliance on consistent application of that
 *      system; it is up to the author/donor to decide if he or she is
 *      willing to distribute software through any other system and a
 *      licensee cannot impose that choice.   
 *
 *      This section is intended to make thoroughly clear what is believed
 *      to be a consequence of the rest of this License.   
 *
 *      8. If the distribution and/or use of the Program is restricted in
 *      certain countries either by patents or by copyrighted interfaces,
 *      the original copyright holder who places the Program under this
 *      License may add an explicit geographical distribution limitation
 *      excluding those countries, so that distribution is permitted only
 *      in or among countries not thus excluded. In such case, this License
 *      incorporates the limitation as if written in the body of this
 *      License.   
 *
 *      9. The Free Software Foundation may publish revised and/or new
 *      versions of the General Public License from time to time. Such new
 *      versions will be similar in spirit to the present version, but may
 *      differ in detail to address new problems or concerns.   
 *
 *      Each version is given a distinguishing version number. If the
 *      Program specifies a version number of this License which applies to
 *      it and "any later version", you have the option of following the
 *      terms and conditions either of that version or of any later version
 *      published by the Free Software Foundation. If the Program does not
 *      specify a version number of this License, you may choose any
 *      version ever published by the Free Software Foundation.   
 *
 *      10. If you wish to incorporate parts of the Program into other free
 *      programs whose distribution conditions are different, write to the
 *      author to ask for permission. For software which is copyrighted by
 *      the Free Software Foundation, write to the Free Software
 *      Foundation; we sometimes make exceptions for this. Our decision
 *      will be guided by the two goals of preserving the free status of
 *      all derivatives of our free software and of promoting the sharing
 *      and reuse of software generally.   
 *
 *      NO WARRANTY   
 *      11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
 *      WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE
 *      LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS
 *      AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
 *      OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
 *      LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 *      FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
 *      PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
 *      DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR
 *      OR CORRECTION.   
 *
 *      12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
 *      WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY
 *      MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE
 *      LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL,
 *      INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
 *      INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
 *      DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
 *      OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
 *      OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
 *      ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.   
 *
 *      END OF TERMS AND CONDITIONS   
 *
 *
 *      Appendix: How to Apply These Terms to Your New Programs   
 *
 *      If you develop a new program, and you want it to be of the greatest
 *      possible use to the public, the best way to achieve this is to make
 *      it free software which everyone can redistribute and change under
 *      these terms.   
 *
 *      To do so, attach the following notices to the program. It is safest
 *      to attach them to the start of each source file to most effectively
 *      convey the exclusion of warranty; and each file should have at
 *      least the "copyright" line and a pointer to where the full notice
 *      is found:      
 *
 *      
 *      Copyright (C) yyyy     
 *
 *
 *      This program is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU General Public License
 *      as published by the Free Software Foundation; either version 2
 *      of the License, or (at your option) any later version.   
 *
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.   
 *
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc.,   
 *      59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.   
 *
 *      Also add information on how to contact you by electronic and paper
 *      mail. If the program is interactive, make it output a short notice
 *      like this when it starts in an interactive mode:   
 *
 *      Gnomovision version 69, Copyright (C) year name of author
 *      Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
 *      type `show w'.  This is free software, and you are welcome
 *      to redistribute it under certain conditions; type `show c'
 *      for details.   
 *
 *      The hypothetical commands `show w' and `show c' should show the
 *      appropriate parts of the General Public License. Of course, the
 *      commands you use may be called something other than `show w' and
 *      `show c'; they could even be mouse-clicks or menu items--whatever
 *      suits your program.   
 *
 *      You should also get your employer (if you work as a programmer) or
 *      your school, if any, to sign a "copyright disclaimer" for the
 *      program, if necessary. Here is a sample; alter the names:   
 *
 *      Yoyodyne, Inc., hereby disclaims all copyright interest in the
 *      program `Gnomovision' (which makes passes at compilers) written by
 *      James Hacker.   
 *
 *      signature of Ty Coon, 1 April 1989   
 *      Ty Coon, President of Vice           
 *
 *      This General Public License does not permit incorporating your
 *      program into proprietary programs. If your program is a subroutine
 *      library, you may consider it more useful to permit linking
 *      proprietary applications with the library. If this is what you want
 *      to do, use the GNU Library General Public License instead of this
 *      License.        
 *
 *
 *      FSF & GNU inquiries & questions to gnu@gnu.org.   
 *      Copyright notice above.   
 *
 *      Free Software Foundation, Inc.,   
 *      59 Temple Place - Suite 330, Boston, MA 02111, USA   
 *      Updated: 3 Jan 2000 rms   
 *
 *  $SEEALSO$
 *      License,GNU License
 *  $END$
 */
c:\harbour\doc\en\gtslang.txt
/*
 * $Id: gtslang.txt 4171 2001-07-10 16:35:53Z dholm $
 */

                        Gt Slang driver


A gt Slang driver for Harbour (gtsln) is based on a S-Lang library written
by John E. Davis. It was developed using Slang version 1.41, although prior
versions of Slang up to 1.22 should also work, but they are not recomended
because of some bugs they have.

The main OS it is developed to be used on is Linux. Slang was ported to
other OSes so it should be possible to use it on other systems too. I've
also successfully compiled and testd gtsln under DOS but I don't think it
makes any sense to use it on that system instead of gtdos, due to its
limitations and incompatibilities with Clipper (see below), so I removed DOS
support.

A gt Slang driver is a second driver which can be used on Unix based OSes.
The first one is a gt driver based on a curses library (gtcrs). Due to the
fact that curses is a standard library on Unix like systems, gtcrs should
be considerd as a primary gt driver for such OSes.



Compiling a gt slang driver ...
--------------------------------


The driver should be automaticly compiled when you build Harbour from
sourcees, regardless of what gt driver you've chosen by setting HB_GT_LIB.
Succesfull compilation requires Slang library and Slang header files
properly installed on your system. The driver expects Slang header files
to be placed in /slang/ directory on Linux based
systems ( this usualy means /usr/include/slang on most of them ) and
 on other systems (which is usually /usr/include).

To build programs (by using a bld.sh script from Harbour sources), which
will use a gtsln, you need to :
    - have a Slang library and header files properly installed
    - set an environment variable HB_GT_LIB to gtsln
    - modify bld.sh by adding -lslang to a link command

Generally you always need to add -lgtsln -lslang to your link libraries to
build programs which are supposed to use a gt slang driver.



Internationalization
----------------------


I made an attempt to support national characters handling, but I am not
sure if it is done in a proper way. The implementation supports only one
byte encoding, thus Korean and other two bytes encodings are not allowed.
It assumes national characters are placed in an upper 128 bytes of ASCII
table from a normal character set. "Normal" means not "alternate character
set" here, because "alternate character set" is generally used to display
graphics characters. It also assumes national characters can be entered
for example by pressing an ALTR key and a particular key on a keyboard to
get a desired national character. If this is impossible on some terminals
due to their lack of posibilities, an alternate method which uses Dead
keys, is implemented. To be able to see and to enter national characters
one should :

 - have a proper font table loaded
 - optionaly have a software installed to allow enter national characters
   in whatever way they should be entered
 - have an environment variable HRBNATIONCHARS properly set (see below)
 - optionaly have a HRBNATIONDEADKEY defined (see below)

An environment variable HRBNATIONCHARS should contain a list of character
pairs. A first character from each pair sholud be a character from a lower
128 bytes of ASCII table, which should be pressed after a Dead Key was
pressed, to get a desired national character. The second character is a
national character itself. Those pairs should be defined even if a Dead
key is not used (because a terminal supports other method of entering
national characters - for example ALTR+letter).

If a terminal does not support entering national characters by using an
ALT key (or the other similar) an environment variable HRBNATIONDEADKEY
can be defined. It should contain a character which should be pressed
*before* a particular key on a keyboard is pressed to get a desired
national character.

The reason I am using HRBNATIONCHARS envvar is simple. I want to give a
better graphics chars support when the same code is ocupied by a nation
char and by a graphics char. Because on terminals there are usually two
glyph's character sets (normal and alternate) knowing nation's characters
codes, I can switch to normal character set when a nation character code
is encountered, while still being in an alternate character set for other
characters. This way I can draw boxes properly using box drawing commands
even though characters for box drawing occupy the same code a nation chars
occupy. So commands like :

            @ Y1, X1 TO Y2, X2 [ DOUBLE ]
            @ Y1, X1, Y2, X2 BOX ""

should write boxes well. However commands like :

            @ Y, X SAY CHR(  )

will draw a nation char when it occupies the same code as
 occupies. I don't know a better solution in this
case. Any ideas are welcome.
This implementation works better than it would ever work in DOS where
there is no way to do such tricks (because there is only one glyph's
character set without VGA tricks).

Using environment variables gives a configuration fexibility to Harbour
programs for different users and different code pages. To change a code
page one should only change HRBNATIONCHARS var (if a Dead key is used)
and this can be done from a script which runs a Harbour program.

Let's see an example.

Suppose one national language has three national characters : '¡ÆÊ' which
correspond to 'ACE' in a lower 128 bytes ASCII table. 'Corresponding' means
that to get a '¡' nation char one has to press a special keyboard modifier
(like ALT+R for example) plus an 'A' char.

HRBNATIONCHARS should be defined as :

        HRBNATIONCHARS=A¡CÆEÊ

   where A¡ is a first pair, CÆ is a second pair and so on

Suppose also we are working on a terminal which does not allow to enter
national characters by pressing ALTR+A, ALTR+C, ALTR+E. Because we like
a character '`' (\140 in octal), we arbitrary choose it as a Dead key.

So we define HRBNATIONDEADKEY as :

        HRBNATIONDEADKEY=\`

or in other way :

        HRBNATIONDEADKEY=`echo -ne '\140`'

Now we can enter ¡ by pressing ` and then A, Æ by pressing ` and then C,
and so on. To get '`' character we need to double press `.



Limitations, incomatibilities with Clipper, errors ...
--------------------------------------------------------


The driver is rather limited in comparison to other Harbour gt drivers and
has many incompatibilities with Clipper. Some of those limitations and in-
compatibilities are caused by an Unix behavior, others are caused by a Slang
implementation. There are also some caused by a gt layer design. Not to
mention that there are probably some caused by my lack of knowledge.

Here is a (probably not complete) list of them :

    - a driver allows only 128 combinations of FgBg colors. It means you can
      use 16 colors for Fg, and only 8 colors for Bg.

    - you can't get intensity/blinking background mode working (this is in
      fact the previous problem, just worded differently)

    - you can't display characters with values below 32 (control characters).
      It is a very important limitation because you can't use many usefull
      chars which you used under Clipper. This is an OS limitation which
      Slang also inherits

    - displaying chars above 128 widely depends on terminal posibilities.
      Because of this on xterm I set all frame chars to a single frame
      (this means - double and mixed frames are shown as a single frame).
      You should not expect to see chars above 128 shown properly in all
      cases.

    - a screen is automaticly cleared on program's startup (you can't inherit
      it from a system) and a cursor is set at 0,0

    - when you run external programs a screen is restored after execution so
      there is no possibility to interact with screen handling between two
      programs

    - you can't expect cursor hiding and cursor style changing to work at
      all. Although on a textmode Linux console it works, this is a Linux
      textmode hack only and it is hardcoded. For example on xterm only
      cursor hiding works well.

    - it is not guaranteed that programs which use DispBegin() and DispEnd()
      will work well in all cases, although generally it should work

    - a screen size change does not work at all. This is a big problem on
      an xterm where you can change a window's size at your request.  Doing
      this confuses a Harbour program

    - Clipper programs which utilized PC hardware specifications about screen
      construction (an array of char+attr)  (for example to make quick shadow
      on a screen) can't run properly. There is no hardware emulation at all

    - Tone() support currently works for Linux console only.

    - keyboard handling is VERY LIMITED. Generally you should not expect
      ALT+key, CTRL+F and CTRL+ combinations to work at all
      although they work on a textmode Linux console. This is a very big
      problem and at least any solution should be developed to emulate this.
      One attempt is a Dead key workaround I've implemented for national
      characters and a Meta key to simulate Alt key. By default as a Meta
      key I've chosen ESC key pressed once (like in most Linux programs).

    - abort key is CTRL+\ not CTRL+BREAK on Unixes

    - to get an ESC key you have to press ESC twice. This is an issue
      related to OS behavior where ESC begins a control sequence

    - currently there is no mouse support. This is a TODO item

    - Out() functions do not work well. This is caused by a design of
      a gt layer where writing directly to stdout is done outside Slang,
      so Slang can't maintain screen changes properly.

    - redirecting Out() to a file results in writing control chars
      which were supposed to initialize a terminal, to that file

    - monochrome displaying support is currently broken



Terminfo database ...
-----------------------


Slang gt driver is based on a terminfo database so it is very important to
have it properly set. Most problems are related to a broken terminfo file.
I don't have general advice about that. You are supposed to help yourself.
The only thing you should know is that you must not have sequences for F11
and F12 function keys set in a terminfo file if you want to use SHFT+F
and CTRL+F keys (of course they all should be defined there).



Why use gt slang driver ...
-----------------------------


Well, personaly I find only two reasons. When Clipper compatibility and
current limitations are not a problem, gtsln is a little bit faster than
gtcrs and my experiences show that sometimes it works a little bit better
than gtcrs on real terminals (tested on wy60 where gtcrs did not handle
the keyboard well).



TODO
------

   - keyboard emulation on terminals with lack of posibilities
   - support for mouse on Linux text console and on xterm
   - fix a problem with redirecting output to a file or a pipe
   - find a way to inherit screen from a system at startup
     (is it possible at all ?)
   - sound support on Linux using native sound system (Alsa ?)
   - support for sound on other systems than Linux
   - fix working on monochorme terminals
   - add a PC video card hardware emulation


   Marek Paliwoda



PS.
I want to appologize for any english errors
and any technical errors in this text.
c:\harbour\doc\en\harbext.txt
/*
 * $Id: harbext.txt 4484 2001-09-11 10:15:24Z vszakats $
 */
/*  $DOC$
 *  $FUNCNAME$
 *      Harbour Extensions
 *  $CATEGORY$
 *      Document
 *  $ONELINER$
 *      Harbour Extensions
 *  $DESCRIPTION$
 *Language extensions:   
 *--------------------
 *
 ** Class generation and management.   
 *
 *        Clipper only allowed creation of objects from a few standard
 *        classes.
 *
 *        In Harbour, you can create your own classes--complete with
 *        Methods, Instance Variables, Class Variables and Inheritance.
 *        Entire applications can be designed and coded in Object Oriented
 *        style.   
 *
 ** @()   
 *
 *        Returns the pointer (address) to a function.   
 *
 *        The returned value is not useful to application-level programming, but
 *        is used at a low level to implement object oriented coding.
 *        (Internally, a class method is a static function and there is no
 *        symbol for it, so it is accessed via its address).   
 *
 ** Class HBGetList
 *
 *        Object oriented support for GetLists management.   
 *
 ** ProcName() support for class Method names.
 *
 *        Class Methods can be retrieved from the call stack.   
 *
 ** Memory() has new return values.
 *
 *        See hbmemory.ch   
 *
 ** Transform()  --> new function in format string
 *
 *        @0      Make a zero padded string out of the number.   
 *
 ** SToD()  --> dDate
 *
 *        New function that converts a yyyymmdd string to a Date value.   
 *
 ** Optional Compile Time STRONG TYPE declaration (and compile time TYPE
 *  MISMATCH warnings)      
 *
 *  Example: LOCAL/STATIC Var AS ...   
 *
 ** The Harbour debugger provides new interesting classes:
 *
 *  - Class TDbWindow could be the foundation for a generic multiplatform
 *
 *  - Class TForm
 *
 *  - Class TDbMenu implement both pulldown and popup menus.   
 *
 *RTL enhanced functionality:   
 *---------------------------   
 *
 *- Directory( , ,  )
 *
 *  The 3rd parameter is a Harbour (optional) parameter and indicates that on
 *  those platforms that support long filenames, that you wish to receive what
 *  would be considered the dos equivalant 8.3 name.
 *  Could affect Adir() and Dir if they were modified to take advantage
 *  of it - currently, they will return long names if the os supports it.   
 *
 *- HB_DiskSpace( ,  )
 *
 *  The second parameter is a Harbour (optional) parameter and indicates the
 *  type of diskinfo being requested.  See en/diskspac.txt for info.   
 *
 *  $END$
 */

c:\harbour\doc\en\hb_api.txt
/*
 * $Id: hb_api.txt 3900 2001-04-01 13:40:49Z april $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Antonio Linares 
 *   Header file for the Extend API, Array API, misc API and base declarations
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_parc()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a string parameter
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_parc( int iParam, ... ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_parclen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a string parameter length
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_parclen( int iParam, ... ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_parcsiz()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a by-reference string parameter length, including terminator
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_parcsiz( int iParam, ... ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_pards()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a date as a string yyyymmdd
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_pards( int iParam, ... ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_pardsbuff()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a date as a string yyyymmdd
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_pardsbuff( char * szDate, int iParam, ... ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_parinfa()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve length or element type of an array parameter
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_parinfa( int iParamNum, ULONG uiArrayIndex ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_parinfo()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Determine the param count or data type
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_parinfo( int iParam ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_parl()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a logical parameter as an int
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_parl( int iParam, ... ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_parnd()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a numeric parameter as a double
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_parnd( int iParam, ... ) --> ( double )dResult
 *  $ARGUMENTS$
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_parni()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a numeric parameter as a integer
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_parni( int iParam, ... ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_parnl()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a numeric parameter as a long
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_parnl( int iParam, ... ) --> ( long )lResult
 *  $ARGUMENTS$
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_param()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a direct pointer to an item parameter
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_param( int iParam, int iMask ) --> ( PHB_ITEM ) pResult
 *  $ARGUMENTS$
 *        The 1-based parameter to retrieve.
 *
 *      
 *  $RETURNS$
 *      hb_param() returns a direct pointer to an item on the eval stack.
 *
 *  $DESCRIPTION$
 *      This item will be removed (set to NIL) after a function cleanup,
 *      so if the item needs to survive the current function (e.g. copied
 *      to a static) you should use hb_itemParam instead.
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemParam()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_pcount()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns the number of supplied parameters
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_pcount( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_pcount() --> ( ( int ) hb_stack.pBase->item.asSymbol.paramcnt )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_ret()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Post a NIL return value
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_ret( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_ret() --> hb_itemClear( &hb_stack.Return )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retc()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a string
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retc( char * szText ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retc( szText ) --> hb_itemPutC( &hb_stack.Return, szText )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retclen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a string with a specific length
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retclen( char * szText, ULONG ulLen ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retclen( szText, ulLen ) --> hb_itemPutCL( &hb_stack.Return, szText, ulLen )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retds()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a date, must use yyyymmdd format
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retds( char * szDate ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retds( szDate ) --> hb_itemPutDS( &hb_stack.Return, szDate )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retd()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a date
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retd( long lYear, long lMonth, long lDay ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retd( lYear, lMonth, lDay ) --> hb_itemPutD( &hb_stack.Return, lYear, lMonth, lDay )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retdl()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a long value as a julian date
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retdl( long lJulian ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retdl( lJulian ) --> hb_itemPutDL( &hb_stack.Return, lJulian )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retl()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a logical integer
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retl( int iTrueFalse ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retl( iLogical ) --> hb_itemPutL( &hb_stack.Return, iLogical ? TRUE : FALSE )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retnd()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a double
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retnd( double dNumber ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retnd( dNumber ) --> hb_itemPutND( &hb_stack.Return, dNumber )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retni()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a integer number
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retni( int iNumber ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retni( iNumber ) --> hb_itemPutNI( &hb_stack.Return, iNumber )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retnl()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a long number
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retnl( long lNumber ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retnl( lNumber ) --> hb_itemPutNL( &hb_stack.Return, lNumber )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retnlen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a double, with specific width and decimals
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retnlen( double dNumber, int iWidth, int iDec ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retnlen( dNumber, iWidth, iDec ) --> hb_itemPutNLen( &hb_stack.Return, dNumber, iWidth, iDec )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retndlen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a double, with specific width and decimals
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retndlen( double dNumber, int iWidth, int iDec ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retndlen( dNumber, iWidth, iDec ) --> hb_itemPutNDLen( &hb_stack.Return, dNumber, iWidth, iDec )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retnilen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a integer number, with specific width
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retnilen( int iNumber, int iWidth ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retnilen( iNumber, iWidth ) --> hb_itemPutNILen( &hb_stack.Return, iNumber, iWidth )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_retnllen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a long number, with specific width
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_retnllen( long lNumber, int iWidth ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_retnllen( lNumber, iWidth ) --> hb_itemPutNLLen( &hb_stack.Return, lNumber, iWidth )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_reta()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns an array with a specific length
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_reta( ULONG ulLen ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      Note that when HB_API_MACROS is defined, this function is replaced with
 *      a macro: hb_reta( ulLen ) --> hb_arrayNew( &hb_stack.Return, ulLen )
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_storc()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Stores a szString on a variable by reference
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_storc( char * szText, int iParam, ... ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_storclen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Stores a fixed length string on a variable by reference
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_storclen( char * szText, ULONG ulLength, int iParam, ... ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_stords()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      SzDate must have yyyymmdd format
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_stords( char * szDate, int iParam, ... ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_storl()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Stores a logical integer on a variable by reference
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_storl( int iLogical, int iParam, ... ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_storni()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Stores an integer on a variable by reference
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_storni( int iValue, int iParam, ... ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_stornl()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Stores a long on a variable by reference
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_stornl( long lValue, int iParam, ... ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_stornd()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Stores a double on a variable by reference
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_stornd( double dValue, int iParam, ... ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xinit()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Initialize fixed memory subsystem
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xinit( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xexit()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Deinitialize fixed memory subsystem
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xexit( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xalloc()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Allocates memory, returns NULL on failure
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xalloc( ULONG ulSize ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xgrab()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Allocates memory, exits on failure
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xgrab( ULONG ulSize ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xfree()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Frees memory
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xfree( void * pMem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xrealloc()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Reallocates memory
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xrealloc( void * pMem, ULONG ulSize ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xsize()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns the size of an allocated memory block
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xsize( void * pMem ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xquery()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Query different types of memory information
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xquery( USHORT uiMode ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xmemcpy()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy more than memcpy() can
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xmemcpy( void * pDestArg, void * pSourceArg, ULONG ulLen ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      If UINT_MAX is defined as ULONG_MAX then this function is replaced
 *      by a macro replacement to memcpy()
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_xmemset()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Set more than memset() can
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_xmemset( void * pDestArg, int iFill, ULONG ulLen ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *      If UINT_MAX is defined as ULONG_MAX then this function is replaced
 *      by a macro replacement to memset()
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayNew()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Creates a new array
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayNew( PHB_ITEM pItem, ULONG ulLen ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayLen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrives the array len
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayLen( PHB_ITEM pArray ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayIsObject()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrives if the array is an object
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayIsObject( PHB_ITEM pArray ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayAdd()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Add a new item to the end of an array item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayAdd( PHB_ITEM pArray, PHB_ITEM pItemValue ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayIns()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Insert a nil item into an array, without changing the length
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayIns( PHB_ITEM pArray, ULONG ulIndex ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayDel()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Delete an array item, without changing length
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayDel( PHB_ITEM pArray, ULONG ulIndex ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arraySize()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Sets the array total length
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arraySize( PHB_ITEM pArray, ULONG ulLen ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayLast()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve last item in an array
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayLast( PHB_ITEM pArray, PHB_ITEM pResult ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayRelease()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Releases an array - don't call it - use ItemRelease() !!!
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayRelease( PHB_ITEM pArray ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arraySet()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Sets an array element
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arraySet( PHB_ITEM pArray, ULONG ulIndex, PHB_ITEM pItem ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGet()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves an item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGet( PHB_ITEM pArray, ULONG ulIndex, PHB_ITEM pItem ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetItemPtr()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns pointer to specified element of the array
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetItemPtr( PHB_ITEM pArray, ULONG ulIndex ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayCopyC()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy a string into an array item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayCopyC( PHB_ITEM pArray, ULONG ulIndex, char * szBuffer, ULONG ulLen ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetC()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the string contained on an array element
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetC( PHB_ITEM pArray, ULONG ulIndex ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetCPtr()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the string pointer on an array element
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetCPtr( PHB_ITEM pArray, ULONG ulIndex ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetCLen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the string length contained on an array element
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetCLen( PHB_ITEM pArray, ULONG ulIndex ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetL()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the logical value contained on an array element
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetL( PHB_ITEM pArray, ULONG ulIndex ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetNI()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the int value contained on an array element
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetNI( PHB_ITEM pArray, ULONG ulIndex ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetNL()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the long numeric value contained on an array element
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetNL( PHB_ITEM pArray, ULONG ulIndex ) --> ( long )lResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetND()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the double value contained on an array element
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetND( PHB_ITEM pArray, ULONG ulIndex ) --> ( double )dResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetDS()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the date value contained in an array element
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetDS( PHB_ITEM pArray, ULONG ulIndex, char * szDate ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetDL()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the date value contained in an array element, as a long integer
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetDL( PHB_ITEM pArray, ULONG ulIndex ) --> ( long )lResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayGetType()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves the type of an array item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayGetType( PHB_ITEM pArray, ULONG ulIndex ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayFill()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Fill an array with a given item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayFill( PHB_ITEM pArray, PHB_ITEM pValue, ULONG * pulStart, ULONG * pulCount ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayScan()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Scan an array for a given item, or until code-block item returns TRUE
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayScan( PHB_ITEM pArray, PHB_ITEM pValue, ULONG * pulStart, ULONG * pulCount ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayEval()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Execute a code-block for every element of an array item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayEval( PHB_ITEM pArray, PHB_ITEM bBlock, ULONG * pulStart, ULONG * pulCount ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayCopy()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy items from one array to another
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayCopy( PHB_ITEM pSrcArray, PHB_ITEM pDstArray, ULONG * pulStart, ULONG * pulCount, ULONG * pulTarget ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayClone()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a duplicate of an existing array, including all nested items
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayClone( PHB_ITEM pArray ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arraySort()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Sorts an array item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arraySort( PHB_ITEM pArray, ULONG * pulStart, ULONG * pulCount, PHB_ITEM pBlock ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_stricmp()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Compare two strings without regards to case
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_stricmp( const char * s1, const char * s2 ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strnicmp()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Compare two string without regards to case, limited by length
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strnicmp( const char * s1, const char * s2, ULONG ulLen ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strupr()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Convert a string in-place to upper-case
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strupr( char * pszText ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strdup()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns a pointer to a newly allocated copy of the source string
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strdup( const char * pszText ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strMatchRegExp()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Compare two strings using a regular expression pattern
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strMatchRegExp( const char * szString, const char * szMask ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strEmpty()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns whether a string contains only white space
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strEmpty( const char * szText, ULONG ulLen ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strDescend()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy a string to a buffer, inverting each character
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strDescend( char * szStringTo, const char * szStringFrom, ULONG ulLen ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strAt()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns an index to a sub-string within another string
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strAt( const char * szSub, ULONG ulSubLen, const char * szText, ULONG ulLen ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strUpper()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Convert an existing string buffer to upper case
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strUpper( char * szText, ULONG ulLen ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strLower()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Convert an existing string buffer to lower case
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strLower( char * szText, ULONG ulLen ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strncpyUpper()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy an existing string buffer to another buffer, as upper case
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strncpyUpper( char * pDest, const char * pSource, ULONG ulLen ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strVal()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Return the numeric value of a character string representation of a number
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strVal( const char * szText, ULONG ulLen ) --> ( double )dResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strLTrim()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Return a pointer to the first non-white space character
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strLTrim( const char * szText, ULONG * ulLen ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_strRTrimLen()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Return length of a string, ignoring trailing white space (or true spaces)
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_strRTrimLen( const char * szText, ULONG ulLen, BOOL bAnySpace ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_numRound()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Round a number to a specific number of digits
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_numRound( double dResult, int iDec ) --> ( double )dResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_clsReleaseAll()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Releases all defined classes
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_clsReleaseAll( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_objGetClsName()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves an object class name
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_objGetClsName( PHB_ITEM pObject ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_objGetMethod()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns the method pointer of a object class
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_objGetMethod( PHB_ITEM pObject, PHB_SYMB pSymMsg ) --> ( PHB_FUNC )hResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_objHasMsg()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns TRUE/FALSE whether szString is an existing message for object
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_objHasMsg( PHB_ITEM pObject, char * szString ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dynsymGet()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Finds and creates a dynamic symbol if not found
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_dynsymGet( char * szName ) --> ( PHB_DYNS )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dynsymNew()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Creates a new dynamic symbol based on a local one
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_dynsymNew( PHB_SYMB pSymbol ) --> ( PHB_DYNS )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dynsymFind()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Finds a dynamic symbol
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_dynsymFind( char * szName ) --> ( PHB_DYNS )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dynsymFindName()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Converts to uppercase and finds a dynamic symbol
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_dynsymFindName( char * szName ) --> ( PHB_DYNS )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dynsymLog()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Displays all dynamic symbols
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_dynsymLog( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dynsymRelease()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Releases the memory of the dynamic symbol table
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_dynsymRelease( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dynsymEval()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Enumerates all dynamic symbols
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_dynsymEval( PHB_DYNS_FUNC pFunction, void * Cargo ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_cmdargInit()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Initialize command line argument API's
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_cmdargInit( int argc, char * argv[] ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_cmdargARGC()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve command line argument count
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_cmdargARGC( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_cmdargARGV()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve command line argument buffer pointer
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_cmdargARGV( void ) --> ( char ** )ppszResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_cmdargIsInternal()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Determine if a string is an internal setting
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_cmdargIsInternal( const char * szArg ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_cmdargCheck()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Check if a given internal switch (like //INFO) was set
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_cmdargCheck( const char * pszName ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_cmdargString()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns the string value of an internal switch (like //TEMPPATH:"C:\")
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_cmdargString( const char * pszName ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_cmdargNum()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Returns the numeric value of an internal switch (like //F:90)
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_cmdargNum( const char * pszName ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_cmdargProcessVM()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Check for command line internal arguments
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_cmdargProcessVM( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_symbolNew()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Create a new symbol
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_symbolNew( char * szName ) --> ( PHB_SYMB )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_codeblockNew()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Create a code-block
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_codeblockNew( BYTE * pBuffer, USHORT uiLocals, USHORT * pLocalPosTable, PHB_SYMB pSymbols ) --> ( HB_CODEBLOCK_PTR )hResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_codeblockMacroNew()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_codeblockMacroNew( BYTE * pBuffer, USHORT usLen ) --> ( HB_CODEBLOCK_PTR )hResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_codeblockDelete()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Delete a codeblock
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_codeblockDelete( HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_codeblockGetVar()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Get local variable referenced in a codeblock
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_codeblockGetVar( PHB_ITEM pItem, LONG iItemPos ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_codeblockGetRef()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Get local variable passed by reference
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_codeblockGetRef( PHB_ITEM pItem, PHB_ITEM pRefer ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_codeblockEvaluate()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Evaluate a codeblock
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_codeblockEvaluate( HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_codeblockCopy()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy a codeblock
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_codeblockCopy( PHB_ITEM pDest, PHB_ITEM pSource ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarValueNew()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Create a new global value
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarValueNew( HB_ITEM_PTR pSource, BOOL bTrueMemvar ) --> ( HB_HANDLE )hResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarValueBaseAddress()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve the base address of the values table
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarValueBaseAddress( void ) --> ( HB_VALUE_PTR * )phResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarsInit()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Initialize the memvar API system
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarsInit( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarsRelease()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Clear all PUBLIC and PRIVATE variables
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarsRelease( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarsFree()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Release the memvar API system
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarsFree( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarValueIncRef()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Increase the reference count of a global value
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarValueIncRef( HB_HANDLE hValue ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarValueDecRef()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Decrease the reference count of a global value
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarValueDecRef( HB_HANDLE hValue ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarSetValue()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy an item into a symbol
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarSetValue( PHB_SYMB pMemvarSymb, HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarGet()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy an symbol value into an item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarGet( HB_ITEM_PTR pItem, PHB_SYMB pMemvarSymb ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarGetValue()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy an symbol value into an item, with error trapping
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarGetValue( HB_ITEM_PTR pItem, PHB_SYMB pMemvarSymb ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarGetRefer()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Copy a reference to a symbol value into an item, with error trapping
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarGetRefer( HB_ITEM_PTR pItem, PHB_SYMB pMemvarSymb ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarGetPrivatesBase()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve current PRIVATE variables stack base
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarGetPrivatesBase( void ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarSetPrivatesBase()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Release PRIVATE variables created after specified base
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarSetPrivatesBase( ULONG ulBase ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarNewParameter()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarNewParameter( PHB_SYMB pSymbol, PHB_ITEM pValue ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarGetStrValuePtr()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarGetStrValuePtr( char * szVarName, ULONG *pulLen ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      <*pulLen>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarCreateFromItem()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarCreateFromItem( PHB_ITEM pMemvar, BYTE bScope, PHB_ITEM pValue ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarScope()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve scope of a dynamic variable symbol
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarScope( char * szVarName, ULONG ulLength ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_conInit()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Initialize the console API system
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_conInit( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_conRelease()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Release the console API system
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_conRelease( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_conNewLine()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a pointer to a static buffer containing new-line characters
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_conNewLine( void ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_conOutStd()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Output an string to STDOUT
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_conOutStd( char * pStr, ULONG ulLen ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_conOutErr()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Output an string to STDERR
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_conOutErr( char * pStr, ULONG ulLen ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_conSetCursor()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve and optionally set cursor shape
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_conSetCursor( BOOL bSetCursor, USHORT usNewCursor ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_conSetColor()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve and optionally set console color
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_conSetColor( char * szColor ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_conXSaveRestRelease()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Release the save/restore API
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_conXSaveRestRelease( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compReservedName()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Determines if a string contains a reserve word
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_compReservedName( char * szName ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_procname()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve a procedure name into a buffer
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_procname( int iLevel, char * szName ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroGetValue()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieve results of a macro expansion
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroGetValue( HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroSetValue()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Assign a value to a macro-expression item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroSetValue( HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroTextValue()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Macro text substitution
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroTextValue( HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroPushSymbol()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Handle a macro function calls, e.g. var := ¯o()
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroPushSymbol( HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroRun()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Executes pcode compiled by macro compiler
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroRun( HB_MACRO_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroCompile()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Compile a string and return a pcode buffer
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroCompile( char * szString ) --> ( HB_MACRO_PTR )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroDelete()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Release all memory allocated for macro evaluation
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroDelete( HB_MACRO_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroTextSubst()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Substitute macro variables occurences within a given string
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroTextSubst( char * szString, ULONG *pulStringLen ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      <*pulStringLen>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroIsIdent()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Determine if a string is a valid function or variable name
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroIsIdent( char * szString ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroPopAliasedValue()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Compiles and evaluates an aliased macro expression
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroPopAliasedValue( HB_ITEM_PTR pAlias, HB_ITEM_PTR pVar ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroPushAliasedValue()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Compiles and evaluates an aliased macro expression
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroPushAliasedValue( HB_ITEM_PTR pAlias, HB_ITEM_PTR pVar ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroGetType()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Determine the type of an expression
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_macroGetType( HB_ITEM_PTR pItem ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcAlloc()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Allocates a memory controlled by the garbage collector
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gcAlloc( ULONG ulSize, HB_GARBAGE_FUNC_PTR pFunc ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcFree()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Deallocates a memory allocated by the garbage collector
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gcFree( void *pAlloc ) --> void
 *  $ARGUMENTS$
 *      <*pAlloc>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcLock()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Do not release passed memory block
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gcLock( void *pAlloc ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      <*pAlloc>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcUnlock()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Passed block is allowed to be released
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gcUnlock( void *pAlloc ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      <*pAlloc>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcLockItem()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Do not release a memory block stored inside an item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gcLockItem( HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcUnlockItem()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Allow to release the item
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gcUnlockItem( HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcCollect()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Checks if a single memory block can be released
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gcCollect( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcCollectAll()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Checks if all memory blocks can be released
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gcCollectAll( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gcItemRef()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Checks if passed item refers passed memory block pointer
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gcItemRef( HB_ITEM_PTR pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmIsLocalRef()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Hvm.c - mark all local variables as used
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_vmIsLocalRef( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmIsStaticRef()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Hvm.c - mark all static variables as used
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_vmIsStaticRef( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_memvarsIsMemvarRef()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Memvars.c - mark all memvar variables as used
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_memvarsIsMemvarRef( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_clsIsClassRef()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Classes.c - mark all class internals as used
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_clsIsClassRef( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_codeblockDeleteGarbage()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Clear a codeblock before releasing by the GC
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_codeblockDeleteGarbage( void * Cargo ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_arrayReleaseGarbage()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Clear an array before releasing by the GC
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_arrayReleaseGarbage( void * Cargo ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_idleState()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Services a single idle state
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_idleState( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_idleReset()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Services a single idle state
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_idleReset( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_idleShutDown()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Closes all background tasks
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_idleShutDown( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_verPlatform()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves a newly allocated buffer containing platform version
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_verPlatform( void ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_verCompiler()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves a newly allocated buffer containing compiler version
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_verCompiler( void ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_verHarbour()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Retrieves a newly allocated buffer containing harbour version
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_verHarbour( void ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_verBuildInfo()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *      Display harbour, compiler, and platform versions to standard console
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_verBuildInfo( void ) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_IS_OF_TYPE()
 *  $CATEGORY$
 *      Extend API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *
 *      #include 
 *      HB_IS_OF_TYPE( p, t ) --> type & ~HB_IT_BYREF ) == t )>
 *  $ARGUMENTS$
 *      

* * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_BYREF() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_BYREF( p ) --> type & HB_IT_BYREF )> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_ARRAY() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_ARRAY( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_NIL() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_NIL( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_BLOCK() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_BLOCK( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_DATE() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_DATE( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_DOUBLE() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_DOUBLE( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_INTEGER() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_INTEGER( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_LOGICAL() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_LOGICAL( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_LONG() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_LONG( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_NUMERIC() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_NUMERIC( p ) --> type & HB_IT_NUMERIC )> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_OBJECT() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_OBJECT( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_STRING() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_STRING( p ) --> type & ~( HB_IT_BYREF | HB_IT_MEMOFLAG ) ) == HB_IT_STRING )> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_MEMO() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_MEMO( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_SYMBOL() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_SYMBOL( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_MEMVAR() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_MEMVAR( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_IS_POINTER() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_IS_POINTER( p ) --> * $ARGUMENTS$ *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISNIL() * $CATEGORY$ * Extend API * $ONELINER$ * NOTE: Intentionally using a different method * $SYNTAX$ * C Prototype (macro definition) * * #include * ISNIL( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISCHAR() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * ISCHAR( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISNUM() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * ISNUM( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISLOG() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * ISLOG( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISDATE() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * ISDATE( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISMEMO() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * ISMEMO( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISBYREF() * $CATEGORY$ * Extend API * $ONELINER$ * NOTE: Intentionally using a different method * $SYNTAX$ * C Prototype (macro definition) * * #include * ISBYREF( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISARRAY() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * ISARRAY( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISOBJECT() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * ISOBJECT( n ) --> asArray.value->uiClass != 0 )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISBLOCK() * $CATEGORY$ * Extend API * $ONELINER$ * Not available in CA-Cl*pper. * $SYNTAX$ * C Prototype (macro definition) * * #include * ISBLOCK( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * ISPOINTER() * $CATEGORY$ * Extend API * $ONELINER$ * Not available in CA-Cl*pper. * $SYNTAX$ * C Prototype (macro definition) * * #include * ISPOINTER( n ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_ISSPACE() * $CATEGORY$ * Extend API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * HB_ISSPACE( c ) --> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapi.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */

c:\harbour\doc\en\hb_apier.txt
/*
 * $Id: hb_apier.txt 3301 2000-08-12 19:15:34Z april $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Antonio Linares 
 *   Header file for the Error API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetDescription()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetDescription( PHB_ITEM pError ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetFileName()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetFileName( PHB_ITEM pError ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetFlags()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetFlags( PHB_ITEM pError ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetGenCode()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetGenCode( PHB_ITEM pError ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetOperation()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetOperation( PHB_ITEM pError ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetOsCode()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetOsCode( PHB_ITEM pError ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetSeverity()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetSeverity( PHB_ITEM pError ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetSubCode()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetSubCode( PHB_ITEM pError ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetSubSystem()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetSubSystem( PHB_ITEM pError ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errGetTries()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errGetTries( PHB_ITEM pError ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errLaunch()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errLaunch( PHB_ITEM pError ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errNew()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errNew( void ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutArgs()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutArgs( PHB_ITEM pError, USHORT uiArgCount, ... ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      <...>
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutDescription()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutDescription( PHB_ITEM pError, char * szDescription ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutFileName()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutFileName( PHB_ITEM pError, char * szFileName ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutFlags()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutFlags( PHB_ITEM pError, USHORT uiFlags ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutGenCode()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutGenCode( PHB_ITEM pError, USHORT uiGenCode ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutOperation()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutOperation( PHB_ITEM pError, char * szOperation ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutOsCode()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutOsCode( PHB_ITEM pError, USHORT uiOsCode ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutSeverity()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutSeverity( PHB_ITEM pError, USHORT uiSeverity ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutSubCode()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutSubCode( PHB_ITEM pError, USHORT uiSubCode ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutSubSystem()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutSubSystem( PHB_ITEM pError, char * szSubSystem ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errPutTries()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errPutTries( PHB_ITEM pError, USHORT uiTries ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRelease()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRelease( PHB_ITEM pError ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errInit()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errInit( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errExit()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errExit( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errLaunchSubst()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errLaunchSubst( PHB_ITEM pError ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRT_New()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRT_New( USHORT uiSeverity, char * szSubSystem, ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOsCode, USHORT uiFlags ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRT_New_Subst()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRT_New_Subst( USHORT uiSeverity, char * szSubSystem, ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOsCode, USHORT uiFlags ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRT_BASE()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRT_BASE( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRT_BASE_Ext1()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRT_BASE_Ext1( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOsCode, USHORT uiFlags ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRT_BASE_Subst()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRT_BASE_Subst( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRT_BASE_SubstR()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRT_BASE_SubstR( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRT_TERM()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRT_TERM( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation, USHORT uiOSCode, USHORT uiFlags ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRT_DBCMD()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRT_DBCMD( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errRT_TOOLS()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errRT_TOOLS( ULONG ulGenCode, ULONG ulSubCode, char * szDescription, char * szOperation ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errInternal()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errInternal( ULONG ulIntCode, char * szText, char * szPar1, char * szPar2 ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_errorHandler()
 *  $CATEGORY$
 *      Error API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_errorHandler( HB_ERROR_INFO_PTR pNewHandler ) --> ( HB_ERROR_INFO_PTR )hParam
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

c:\harbour\doc\en\hb_apifs.txt
/*
 * $Id: hb_apifs.txt 9252 2008-08-26 11:33:03Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 David G. Holm 
 *   Header file for the Filesys API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsChDir()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Change working directory
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsChDir( BYTE * pszDirName ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsChDrv()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Change working drive
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsChDrv( BYTE nDrive ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsClose()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Close a file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsClose( HB_FHANDLE hFileHandle ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsCommit()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Commit updates of a file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsCommit( HB_FHANDLE hFileHandle ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsCreate()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Create a file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsCreate( BYTE * pszFileName, USHORT uiAttribute ) --> ( HB_FHANDLE )hResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsCreateTemp()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Create a temporary file from components
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsCreateTemp( const BYTE * pszDir, const BYTE * pszPrefix, USHORT uiAttribute ) --> ( HB_FHANDLE )hResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsCurDir()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Retrieve a static pointer containing current directory for specified drive
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsCurDir( USHORT uiDrive ) --> ( BYTE * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsCurDirBuff()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Copy current directory for given drive into a buffer
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsCurDirBuff( USHORT uiDrive, BYTE * pbyBuffer, ULONG ulLen ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsCurDrv()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Retrieve current drive number
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsCurDrv( void ) --> ( BYTE )cResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsDelete()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Delete a file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsDelete( BYTE * pszFileName ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsEof()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Determine if an open file is position at end-of-file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsEof( HB_FHANDLE hFileHandle ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsError()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Retrieve file system error
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsError( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsFile()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Determine if a file exists
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsFile( BYTE * pszFileName ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsFSize()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Determine the size of a file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsFSize( BYTE * pszFileName, BOOL bUseDirEntry ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsExtOpen()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Open a file using default extension and a list of paths
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsExtOpen( BYTE * pszFileName, BYTE * pDefExt, USHORT uiFlags, BYTE * pPaths, PHB_ITEM pError ) --> ( HB_FHANDLE )hResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsIsDrv()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Determine if a drive number is a valid drive
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsIsDrv( BYTE nDrive ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsIsDevice()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Determine if a file is attached to a device (console?)
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsIsDevice( HB_FHANDLE hFileHandle ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsLock()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Request a lock on a portion of a file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsLock( HB_FHANDLE hFileHandle, ULONG ulStart, ULONG ulLength, USHORT uiMode ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsMkDir()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Create a directory
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsMkDir( BYTE * pszDirName ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsOpen()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Open a file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsOpen( BYTE * pszFileName, USHORT uiFlags ) --> ( HB_FHANDLE )hResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsRead()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Read contents of a file into a buffer (<=64K)
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsRead( HB_FHANDLE hFileHandle, BYTE * pBuff, USHORT ulCount ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsReadLarge()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Read contents of a file into a buffer (>64K)
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsReadLarge( HB_FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsRmDir()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Remove a directory
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsRmDir( BYTE * pszDirName ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsRename()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Rename a file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsRename( BYTE * pszOldName, BYTE * pszNewName ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsSeek()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Reposition an open file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsSeek( HB_FHANDLE hFileHandle, LONG lOffset, USHORT uiMode ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsTell()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Retrieve the current position of a file
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsTell( HB_FHANDLE hFileHandle ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsTempName()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Create a temporary file name in a buffer
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsTempName( BYTE * pszBuffer, const BYTE * pszDir, const BYTE * pszPrefix ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsSetDevMode()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Change the device mode of a file (text/binary)
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsSetDevMode( HB_FHANDLE hFileHandle, USHORT uiDevMode ) --> BOOL
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      TRUE when successful, FALSE when not.
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsSetDevRaw()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Change the device mode of a file to raw (binary)
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsSetDevRaw( HB_FHANDLE hFileHandle ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsSetDevText()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Change the device mode of a file to text
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsSetDevText( HB_FHANDLE hFileHandle ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsSetError()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Set the file system error number
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsSetError( USHORT uiError ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsWrite()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Write to an open file from a buffer (<=64K)
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsWrite( HB_FHANDLE hFileHandle, BYTE * pBuff, USHORT ulCount ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsWriteLarge()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Write to an open file from a buffer (>64K)
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsWriteLarge( HB_FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsFNameSplit()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      Split given filename into path, name and extension
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsFNameSplit( char * pszFileName ) --> ( PHB_FNAME )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsFNameMerge()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      This function joins path, name and extension into a string with a filename
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_fsFNameMerge( char * pszFileName, PHB_FNAME pFileName ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsFLock()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      hb_fsFLock( h, s, l ) --> 
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapifs.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_fsFUnlock()
 *  $CATEGORY$
 *      FileSys API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      hb_fsFUnlock( h, s, l ) --> 
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapifs.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

c:\harbour\doc\en\hb_apigt.txt
/*
 * $Id: hb_apigt.txt 3869 2001-03-12 04:19:57Z april $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 *   Header file for the Terminal API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtInit()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtInit( int iFilenoStdin, int iFilenoStdout, int iFilenoStderr ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtExit()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtExit( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtAdjustPos()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtAdjustPos( int iHandle, char * pStr, ULONG ulLen ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtBox()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtBox( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, BYTE * pbyFrame ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtBoxD()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtBoxD( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtBoxS()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtBoxS( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtColorSelect()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtColorSelect( USHORT uiColorIndex ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtColorToN()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_gtColorToN( char * szColorString ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtDispBegin()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtDispBegin( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtDispCount()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtDispCount( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtDispEnd()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtDispEnd( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtDrawShadow()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtDrawShadow( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, BYTE byAttr ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtGetBlink()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtGetBlink( BOOL * pbBlink ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtGetColorStr()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtGetColorStr( char * pszColorString ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtGetCursor()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtGetCursor( USHORT * puiCursorShape ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtGetPos()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtGetPos( SHORT * piRow, SHORT * piCol ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtIsColor()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtIsColor( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtMaxCol()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtMaxCol( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtMaxRow()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtMaxRow( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtPostExt()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtPostExt( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtPreExt()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtPreExt( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSuspend()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Prepare the reminal for shell output
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSuspend( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtResume()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Resume the terminal after the shell output
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtResume( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtReadKey()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtReadKey( HB_inkey_enum eventmask ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtRectSize()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtRectSize( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, USHORT * puiBuffSize ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtRepChar()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtRepChar( USHORT uiRow, USHORT uiCol, BYTE byChar, USHORT uiCount ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtRest()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtRest( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, void * pScrBuff ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSave()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSave( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, void * pScrBuff ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtScrDim()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtScrDim( USHORT * puiHeight, USHORT * puiWidth ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtScroll()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtScroll( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, SHORT iRows, SHORT iCols ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSetBlink()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSetBlink( BOOL bBlink ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSetColorStr()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSetColorStr( char * pszColorString ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSetCursor()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSetCursor( USHORT uiCursorShape ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSetMode()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSetMode( USHORT uiRows, USHORT uiCols ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSetPos()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSetPos( SHORT iRow, SHORT iCol ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSetPosContext()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSetPosContext( SHORT iRow, SHORT iCol, SHORT iMode ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSetSnowFlag()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSetSnowFlag( BOOL bNoSnow ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtTone()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtTone( double dFrequency, double dDuration ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWrite()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWrite( BYTE * pbyStr, ULONG ulLen ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWriteAt()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWriteAt( USHORT uiRow, USHORT uiCol, BYTE * pbyStr, ULONG ulLen ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWriteCon()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWriteCon( BYTE * pbyStr, ULONG ulLen ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtVersion()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtVersion( void ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWCreate()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWCreate( HB_GT_RECT * rect, HB_GT_WND ** wnd ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWDestroy()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWDestroy( HB_GT_WND * wnd ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWFlash()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWFlash( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWApp()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWApp( HB_GT_WND ** wnd ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWCurrent()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWCurrent( HB_GT_WND * wnd ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWPos()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWPos( HB_GT_WND * wnd, HB_GT_RECT * rect ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtWVis()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtWVis( HB_GT_WND * wnd, USHORT uiStatus ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSLR()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      System Level Request
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSLR( HB_GT_SLR * pSLR ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtModalRead()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtModalRead( void * ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtBeginWrite()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtBeginWrite( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtEndWrite()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtEndWrite( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtFlushCursor()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtFlushCursor( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSetColor()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSetColor( HB_GT_RGB * color ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtGetColor()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtGetColor( HB_GT_RGB * color ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gtSetBorder()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gtSetBorder( HB_GT_RGB * color ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Init()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Init( int iFilenoStdin, int iFilenoStdout, int iFilenoStderr ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Exit()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Exit( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_AdjustPos()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_AdjustPos( BYTE * pStr, ULONG ulLen ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Box()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Box( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, BYTE * pbyFrame, BYTE byAttr ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_BoxD()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_BoxD( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, BYTE * pbyFrame, BYTE byAttr ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_BoxS()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_BoxS( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, BYTE * pbyFrame, BYTE byAttr ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Col()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Col( void ) --> ( SHORT )sResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_DispBegin()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_DispBegin( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_DispCount()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_DispCount( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_DispEnd()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_DispEnd( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_GetBlink()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_GetBlink( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_GetCursorStyle()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_GetCursorStyle( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_GetScreenHeight()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_GetScreenHeight( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_GetScreenWidth()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_GetScreenWidth( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_GetText()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_GetText( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, BYTE * pbyDst ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_HorizLine()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_HorizLine( USHORT uiRow, USHORT uiLeft, USHORT uiRight, BYTE byChar, BYTE byAttr ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_IsColor()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_IsColor( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_PreExt()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_PreExt( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_PostExt()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_PostExt( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Suspend()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Suspend the terminal before the shell call
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Suspend( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Resume()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Resume the terminal after the shell call
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Resume( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Puts()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Puts( USHORT uiRow, USHORT uiCol, BYTE byAttr, BYTE * pbyStr, ULONG ulLen ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_PutText()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_PutText( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, BYTE * pbySrc ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_ReadKey()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_ReadKey( HB_inkey_enum eventmask ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_RectSize()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_RectSize( USHORT rows, USHORT cols ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Replicate()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Replicate( USHORT uiTop, USHORT uiLeft, BYTE byAttr, BYTE byChar, ULONG ulLen ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Row()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Row( void ) --> ( SHORT )sResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Scroll()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Scroll( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, BYTE byAttr, SHORT iRows, SHORT iCols ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_SetAttribute()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_SetAttribute( USHORT uiTop, USHORT uiLeft, USHORT uiBottom, USHORT uiRight, BYTE byAttr ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_SetBlink()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_SetBlink( BOOL bBlink ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_SetCursorStyle()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_SetCursorStyle( USHORT uiCursorShape ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_SetMode()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_SetMode( USHORT uiRows, USHORT uiCols ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_SetPos()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_SetPos( SHORT iRow, SHORT iCol, SHORT iMethod ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Tone()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Tone( double dFrequency, double dDuration ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_Version()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_Version( void ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_gt_VertLine()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_gt_VertLine( USHORT uiCol, USHORT uiTop, USHORT uiBottom, BYTE byChar, BYTE byAttr ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_inkey()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Wait for keyboard input
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_inkey( BOOL bWait, double dSeconds, HB_inkey_enum event_mask ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_inkeyGet()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Extract the next key from the Harbour keyboard buffer
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_inkeyGet( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_inkeyPut()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Inserts an inkey code into the keyboard buffer
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_inkeyPut( int ch ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_inkeyLast()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Return the value of the last key that was extracted
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_inkeyLast( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_inkeyNext()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Return the next key without extracting it
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_inkeyNext( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_inkeyPoll()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Poll the console keyboard to stuff the Harbour buffer
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_inkeyPoll( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_inkeyReset()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      Reset the Harbour keyboard buffer
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_inkeyReset( BOOL allocate ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseIsPresent()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseIsPresent( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseGetCursor()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseGetCursor( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseSetCursor()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseSetCursor( BOOL bVisible ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseCol()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseCol( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseRow()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseRow( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseSetPos()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseSetPos( int iRow, int iCol ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseIsButtonPressed()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseIsButtonPressed( int iButton ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseCountButton()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseCountButton( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseSetBounds()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseSetBounds( int iTop, int iLeft, int iBottom, int iRight ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouseGetBounds()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouseGetBounds( int * piTop, int * piLeft, int * piBottom, int * piRight ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_Init()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_Init( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_Exit()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_Exit( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_IsPresent()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_IsPresent( void ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_Show()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_Show( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_Hide()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_Hide( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_Col()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_Col( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_Row()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_Row( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_SetPos()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_SetPos( int iRow, int iCol ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_IsButtonPressed()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_IsButtonPressed( int iButton ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_CountButton()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_CountButton( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_SetBounds()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_SetBounds( int iTop, int iLeft, int iBottom, int iRight ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mouse_GetBounds()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_mouse_GetBounds( int * piTop, int * piLeft, int * piBottom, int * piRight ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_setkeyInit()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_setkeyInit( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_setkeyExit()
 *  $CATEGORY$
 *      Terminal API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_setkeyExit( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is gt* (ie. gtdos)
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

c:\harbour\doc\en\hb_apiit.txt
/*
 * $Id: hb_apiit.txt 9283 2008-08-30 10:21:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Antonio Linares 
 *   Header file for the Item API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_evalLaunch()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_evalLaunch( PHB_EVALINFO pEvalInfo ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_evalNew()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_evalNew( PHB_EVALINFO pEvalInfo, PHB_ITEM pItem ) --> ( BOOL ) bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_evalPutParam()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_evalPutParam( PHB_EVALINFO pEvalInfo, PHB_ITEM pItem ) --> ( BOOL ) bResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_evalRelease()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_evalRelease( PHB_EVALINFO pEvalInfo ) --> ( BOOL ) bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemDo()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemDo( PHB_ITEM pItem, USHORT uiPCount, PHB_ITEM pItemArg1, ... ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemDoC()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemDoC( char * szFunc, USHORT uiPCount, PHB_ITEM pItemArg1, ... ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      <...>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemArrayGet()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemArrayGet( PHB_ITEM pArray, ULONG ulIndex ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemArrayNew()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemArrayNew( ULONG ulLen ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemArrayPut()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemArrayPut( PHB_ITEM pArray, ULONG ulIndex, PHB_ITEM pItem ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemCopyC()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemCopyC( PHB_ITEM pItem, char * szBuffer, ULONG ulLen ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemFreeC()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemFreeC( char * szText ) --> ( BOOL ) bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetC()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetC( PHB_ITEM pItem ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetCPtr()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetCPtr( PHB_ITEM pItem ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetCLen()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetCLen( PHB_ITEM pItem ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetDS()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetDS( PHB_ITEM pItem, char * szDate ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetDL()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetDL( PHB_ITEM pItem ) --> ( long )lResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetL()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetL( PHB_ITEM pItem ) --> ( BOOL ) bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetND()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetND( PHB_ITEM pItem ) --> ( double )dResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetNI()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetNI( PHB_ITEM pItem ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetNL()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetNL( PHB_ITEM pItem ) --> ( long )lResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetNLen()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetNLen( PHB_ITEM pItem, int * piWidth, int * piDec ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemGetPtr()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemGetPtr( PHB_ITEM pItem ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemNew()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemNew( PHB_ITEM pNull ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemInit()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemInit( PHB_ITEM pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPCount()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPCount( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemParam()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *      Creates a copy of an item parameter (outside the eval stack)
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemParam( USHORT uiParam ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *        The 1-based parameter to copy and retrieve.
 *  $RETURNS$
 *      A pointer to a new copy of the specified item parameter.
 *
 *  $DESCRIPTION$
 *      Use this function whenever the pointer needs to be accessed after
 *      the current function returns; for example, if the pointer is to
 *      be copied to a static variable or structure member for later access.

 *      Compare to hb_param(), which simply gets a direct pointer to the
 *      item on the stack.

 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_param()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutC()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutC( PHB_ITEM pItem, char * szText ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutCPtr2()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutCPtr2( PHB_ITEM pItem, char * szText ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutCLPtr()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutCLPtr( PHB_ITEM pItem, char * szText, ULONG ulLen ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutCL()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutCL( PHB_ITEM pItem, char * szText, ULONG ulLen ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemSetCMemo()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemSetCMemo( PHB_ITEM pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutD()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutD( PHB_ITEM pItem, long lYear, long lMonth, long lDay ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutDS()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutDS( PHB_ITEM pItem, char * szDate ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutDL()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutDL( PHB_ITEM pItem, long lJulian ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutL()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutL( PHB_ITEM pItem, BOOL bValue ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutND()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutND( PHB_ITEM pItem, double dNumber ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutNI()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutNI( PHB_ITEM pItem, int iNumber ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutNL()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutNL( PHB_ITEM pItem, long lNumber ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutNLen()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutNLen( PHB_ITEM pItem, double dNumber, int iWidth, int iDec ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutNDLen()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutNDLen( PHB_ITEM pItem, double dNumber, int iWidth, int iDec ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutNILen()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutNILen( PHB_ITEM pItem, int iNumber, int iWidth ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutNLLen()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutNLLen( PHB_ITEM pItem, long lNumber, int iWidth ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPutPtr()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPutPtr( PHB_ITEM pItem, void * pValue ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemRelease()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemRelease( PHB_ITEM pItem ) --> ( BOOL ) bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemReturn()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemReturn( PHB_ITEM pItem ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemSize()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemSize( PHB_ITEM pItem ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemType()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemType( PHB_ITEM pItem ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemTypeStr()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemTypeStr( PHB_ITEM pItem ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemParamPtr()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemParamPtr( USHORT uiParam, int iMask ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemReturnPtr()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemReturnPtr( void ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemStrCmp()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *      Our string compare
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemStrCmp( PHB_ITEM pFirst, PHB_ITEM pSecond, BOOL bForceExact ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemCopy()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *      Copies an item to one place to another respecting its containts
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemCopy( PHB_ITEM pDest, PHB_ITEM pSource ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemClear()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemClear( PHB_ITEM pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemUnRef()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *      De-references passed variable
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemUnRef( PHB_ITEM pItem ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemStr()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *      Convert a number to a string
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemStr( PHB_ITEM pNumber, PHB_ITEM pWidth, PHB_ITEM pDec ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemString()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *      Convert any scalar to a string
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemString( PHB_ITEM pItem, ULONG * ulLen, BOOL * bFreeReq ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemValToStr()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *      Convert any scalar to a string
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemValToStr( PHB_ITEM pItem ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemPadConv()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemPadConv( PHB_ITEM pItem, char * buffer, ULONG * pulSize ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_itemSwap()
 *  $CATEGORY$
 *      Item API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_itemSwap( PHB_ITEM pItem1, PHB_ITEM pItem2 ) --> void
 *  $ARGUMENTS$
 *      
 *
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

c:\harbour\doc\en\hb_apiln.txt
/*
 * $Id: hb_apiln.txt 4003 2001-05-15 13:02:07Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999-2001 Viktor Szakats 
 *   Header file for the Language API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_langRegister()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_langRegister( PHB_LANG lang ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is lang
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_langDeRegister()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_langDeRegister( char * pszID ) --> ( BOOL )bResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is lang
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_langFind()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_langFind( char * pszID ) --> ( PHB_LANG )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is lang
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_langSelect()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_langSelect( PHB_LANG lang ) --> ( PHB_LANG )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is lang
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_langSelectID()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_langSelectID( char * pszID ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is lang
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_langDGetItem()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_langDGetItem( int iIndex ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is lang
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_langID()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_langID( void ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is lang
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_langName()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_langName( void ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is lang
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_langDGetErrorDesc()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_langDGetErrorDesc( ULONG ulIndex ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is lang
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_LANG_REQUEST()
 *  $CATEGORY$
 *      Language API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      HB_LANG_REQUEST( id ) --> 
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapilng.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

c:\harbour\doc\en\hb_apird.txt
/*
 * $Id: hb_apird.txt 3869 2001-03-12 04:19:57Z april $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 *   Header file for the RDD API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddInsertAreaNode()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_rddInsertAreaNode( char *szDriver ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      <*szDriver>
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddGetCurrentWorkAreaNumber()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddGetCurrentWorkAreaNumber( void ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddGetCurrentWorkAreaPointer()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddGetCurrentWorkAreaPointer( void ) --> ( void * )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddSelectWorkAreaAlias()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddSelectWorkAreaAlias( char * szAlias ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddSelectWorkAreaNumber()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddSelectWorkAreaNumber( int iArea ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddSelectWorkAreaSymbol()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddSelectWorkAreaSymbol( PHB_SYMB pSymAlias ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddGetFieldValue()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddGetFieldValue( HB_ITEM_PTR pItem, PHB_SYMB pFieldSymbol ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddPutFieldValue()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddPutFieldValue( HB_ITEM_PTR pItem, PHB_SYMB pFieldSymbol ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddFieldGet()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddFieldGet( HB_ITEM_PTR pItem, PHB_SYMB pFieldSymbol ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddFieldPut()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddFieldPut( HB_ITEM_PTR pItem, PHB_SYMB pFieldSymbol ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddShutDown()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddShutDown( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddInherit()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddInherit( PRDDFUNCS pTable, PRDDFUNCS pSubTable, PRDDFUNCS pSuperTable, BYTE * szDrvName ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddDisinherit()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddDisinherit( BYTE * drvName ) --> ( ERRCODE )hResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddExtendType()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddExtendType( USHORT fieldType ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_rddFieldType()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_rddFieldType( USHORT extendType ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rdd, nulsys, dbfntx, dbfcdx
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_BOF()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_BOF( w, sp ) --> lprfsHost->bof )( w, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_EOF()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_EOF( w, sp ) --> lprfsHost->eof )( w, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_FOUND()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_FOUND( w, sp ) --> lprfsHost->found )( w, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_GOTO()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_GOTO( w, l ) --> lprfsHost->go )( w, l ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_GOTOID()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_GOTOID( w, sp ) --> lprfsHost->goToId )( w, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_GOBOTTOM()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_GOBOTTOM( w ) --> lprfsHost->goBottom )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_GOTOP()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_GOTOP( w ) --> lprfsHost->goTop )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_SEEK()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_SEEK( w, i1, v, i2 ) --> lprfsHost->seek )( w, i1, v, i2 ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_SKIP()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_SKIP( w, l ) --> lprfsHost->skip )( w, l ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_SKIPFILTER()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_SKIPFILTER( w, l ) --> lprfsHost->skipFilter )( w, l ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_SKIPRAW()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_SKIPRAW( w, l ) --> lprfsHost->skipRaw )( w, l ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ADDFIELD()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ADDFIELD( w, ip ) --> lprfsHost->addField )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_APPEND()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_APPEND( w, l ) --> lprfsHost->append )( w, l ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_CREATEFIELDS()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_CREATEFIELDS( w, v ) --> lprfsHost->createFields )( w, v ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_DELETE()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_DELETE( w ) --> lprfsHost->deleterec )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_DELETED()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_DELETED( w, sp ) --> lprfsHost->deleted )( w, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_FIELDCOUNT()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_FIELDCOUNT( w, sp ) --> lprfsHost->fieldCount )( w, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_FIELDDISPLAY()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_FIELDDISPLAY( w, sp ) --> lprfsHost->fieldDisplay )( w, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_FIELDINFO()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_FIELDINFO( w, s1, s2, v ) --> lprfsHost->fieldInfo )( w, s1, s2, v ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_FIELDNAME()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_FIELDNAME( w, i, bp ) --> lprfsHost->fieldName )( w, i, bp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_FLUSH()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_FLUSH( w ) --> lprfsHost->flush )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_GETREC()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_GETREC( w, bpp ) --> lprfsHost->getRec )( w, bpp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_GETVALUE()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_GETVALUE( w, i, v ) --> lprfsHost->getValue )( w, i, v ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_GETVARLEN()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_GETVARLEN( w, i, lp ) --> lprfsHost->getVarLen )( w, i, lp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_GOCOLD()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_GOCOLD( w ) --> lprfsHost->goCold )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_GOHOT()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_GOHOT( w ) --> lprfsHost->goHot )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_PUTVALUE()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_PUTVALUE( w, i, v ) --> lprfsHost->putValue )( w, i, v ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_PUTREC()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_PUTREC( w, bp ) --> lprfsHost->putRec )( w, bp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_RECALL()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_RECALL( w ) --> lprfsHost->recall )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_RECCOUNT()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_RECCOUNT( w, sp ) --> lprfsHost->reccount )( w, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_RECINFO()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_RECINFO( w, v1, i, v2 ) --> lprfsHost->recInfo )( w, v1, i, v2 ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_RECNO()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_RECNO( w, i ) --> lprfsHost->recno )( w, i ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_SETFIELDEXTENT()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_SETFIELDEXTENT( w, s ) --> lprfsHost->setFieldExtent )( w, s ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ALIAS()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ALIAS( w, bp ) --> lprfsHost->alias )( w, bp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_CLOSE()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_CLOSE( w ) --> lprfsHost->close )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_CREATE()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_CREATE( w, ip ) --> lprfsHost->create )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_INFO()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_INFO( w, i, g ) --> lprfsHost->info )( w, i, g ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_NEW()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_NEW( w ) --> lprfsHost->newarea )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_OPEN()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_OPEN( w, ip ) --> lprfsHost->open )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_RELEASE()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_RELEASE( w ) --> lprfsHost->release )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_STRUCTSIZE()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_STRUCTSIZE( w, sp ) --> lprfsHost->structSize )( w, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_SYSNAME()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_SYSNAME( w, bp ) --> lprfsHost->sysName )( w, bp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_DBEVAL()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_DBEVAL( w, ip ) --> lprfsHost->dbEval )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_PACK()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_PACK( w ) --> lprfsHost->pack )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_PACKREC()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_PACKREC( w, l, sp ) --> lprfsHost->packRec )( w, l, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_SORT()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_SORT( w, ip ) --> lprfsHost->sort )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_TRANS()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_TRANS( w, ip ) --> lprfsHost->trans )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_TRANSREC()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_TRANSREC( w, ip ) --> lprfsHost->transRec )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ZAP()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ZAP( w ) --> lprfsHost->zap )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_CHILDEND()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_CHILDEND( w, ip ) --> lprfsHost->childEnd )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_CHILDSTART()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_CHILDSTART( w, ip ) --> lprfsHost->childStart )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_CHILDSYNC()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_CHILDSYNC( w, ip ) --> lprfsHost->childSync )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_SYNCCHILDREN()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_SYNCCHILDREN( w ) --> lprfsHost->syncChildren )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_CLEARREL()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_CLEARREL( w ) --> lprfsHost->clearRel )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_FORCEREL()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_FORCEREL( w ) --> lprfsHost->forceRel )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_RELAREA()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_RELAREA( w, s, sp ) --> lprfsHost->relArea )( w, s, sp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_RELEVAL()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_RELEVAL( w, ip ) --> lprfsHost->relEval )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_RELTEXT()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_RELTEXT( w, s, bp ) --> lprfsHost->relText )( w, s, bp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_SETREL()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_SETREL( w, ip ) --> lprfsHost->setRel )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ORDLSTADD()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ORDLSTADD( w, lp ) --> lprfsHost->orderListAdd )( w, lp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ORDLSTDELETE()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ORDLSTDELETE( w, lp ) --> lprfsHost->orderListDelete )( w, lp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ORDLSTFOCUS()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ORDLSTFOCUS( w, lp ) --> lprfsHost->orderListFocus )( w, lp ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ORDLSTREBUILD()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ORDLSTREBUILD( w ) --> lprfsHost->orderListRebuild )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ORDLSTCLEAR()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ORDLSTCLEAR( w ) --> lprfsHost->orderListClear )( w ) )>
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ORDSETCOND()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ORDSETCOND( w, ip ) --> lprfsHost->orderCondition )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ORDCREATE()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ORDCREATE( w, ip ) --> lprfsHost->orderCreate )( w, ip ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbapirdd.h
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELF_ORDDESTROY()
 *  $CATEGORY$
 *      RDD API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *      
 *      #include 
 *      SELF_ORDDESTROY( w, p ) --> lprfsHost->orderDestroy )( w, p ) )>
 *  $ARGUMENTS$
 *      
 * 
 *      

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ORDINFO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ORDINFO( w, i, p ) --> lprfsHost->orderInfo )( w, i, p ) )> * $ARGUMENTS$ * * * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ORDEXPR() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ORDEXPR( w, p ) --> lprfsHost->orderInfo )( w, DBOI_EXPRESSION, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ORDCOND() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ORDCOND( w, p ) --> lprfsHost->orderInfo )( w, DBOI_CONDITION, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ORDRECNO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ORDRECNO( w, p ) --> lprfsHost->orderInfo )( w, DBOI_RECNO, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ORDPOS() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ORDPOS( w, p ) --> lprfsHost->orderInfo )( w, DBOI_POSITION, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ORDNUMBER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ORDNUMBER( w, p ) --> lprfsHost->orderInfo )( w, DBOI_NUMBER, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ORDNAME() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ORDNAME( w, p ) --> lprfsHost->orderInfo )( w, DBOI_NAME, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ORDBAGNAME() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ORDBAGNAME( w, p ) --> lprfsHost->orderInfo )( w, DBOI_BAGNAME, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ORDBAGEXT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ORDBAGEXT( w, p ) --> lprfsHost->orderInfo )( w, DBOI_BAGEXT, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_CLEARFILTER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_CLEARFILTER( w ) --> lprfsHost->clearFilter )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_CLEARLOCATE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_CLEARLOCATE( w ) --> lprfsHost->clearLocate )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_CLEARSCOPE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_CLEARSCOPE( w ) --> lprfsHost->clearScope )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_COUNTSCOPE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_COUNTSCOPE( w, ip, lp ) --> lprfsHost->countScope )( w, ip, lp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_FILTERTEXT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_FILTERTEXT( w, bp ) --> lprfsHost->filterText )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_SCOPEINFO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_SCOPEINFO( w, i, v ) --> lprfsHost->scopeInfo )( w, i, v ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_SETFILTER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_SETFILTER( w, ip ) --> lprfsHost->setFilter )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_SETLOCATE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_SETLOCATE( w, ip ) --> lprfsHost->setLocate )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_SETSCOPE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_SETSCOPE( w, ip ) --> lprfsHost->setScope )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_SKIPSCOPE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_SKIPSCOPE( w, bp, l ) --> lprfsHost->skipScope )( w, bp, l ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_COMPILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_COMPILE( w, bp ) --> lprfsHost->compile )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_ERROR() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_ERROR( w, ip ) --> lprfsHost->error )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_EVALBLOCK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_EVALBLOCK( w, v ) --> lprfsHost->evalBlock )( w, v ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_GETLOCKS() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_GETLOCKS( w, g ) --> lprfsHost->info )( w, DBI_GETLOCKARRAY, g ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_RAWLOCK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_RAWLOCK( w, i, l ) --> lprfsHost->rawlock )( w, i, l ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_LOCK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_LOCK( w, sp ) --> lprfsHost->lock )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_UNLOCK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_UNLOCK( w, l ) --> lprfsHost->unlock )( w, l ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_CLOSEMEMFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_CLOSEMEMFILE( w ) --> lprfsHost->closeMemFile )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_CREATEMEMFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_CREATEMEMFILE( w, bp ) --> lprfsHost->createMemFile )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_GETVALUEFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_GETVALUEFILE( w, i, bp ) --> lprfsHost->getValueFile )( w, i, bp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_OPENMEMFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_OPENMEMFILE( w, bp ) --> lprfsHost->openMemFile )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_PUTVALUEFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_PUTVALUEFILE( w, i, bp ) --> lprfsHost->putValueFile )( w, i, bp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_READDBHEADER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_READDBHEADER( w ) --> lprfsHost->readDBHeader )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_WRITEDBHEADER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_WRITEDBHEADER( w ) --> lprfsHost->writeDBHeader )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_RECSIZE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_RECSIZE( w, lp ) --> lprfsHost->info )( w, DBI_GETRECSIZE, lp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_HEADERSIZE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_HEADERSIZE( w, fp ) --> lprfsHost->info )( w, DBI_GETHEADERSIZE, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_LUPDATE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_LUPDATE( w, fp ) --> lprfsHost->info )( w, DBI_LASTUPDATE, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_SETDELIM() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_SETDELIM( w, fp ) --> lprfsHost->info )( w, DBI_SETDELIMITER, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_GETDELIM() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_GETDELIM( w, fp ) --> lprfsHost->info )( w, DBI_GETDELIMITER, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SELF_TABLEEXT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SELF_TABLEEXT( w, fp ) --> lprfsHost->info )( w, DBI_TABLEEXT, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_BOF() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_BOF( w, sp ) --> bof )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_EOF() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_EOF( w, sp ) --> eof )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_FOUND() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_FOUND( w, sp ) --> found )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GOTO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GOTO( w, l ) --> go )( w, l ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GOTOID() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GOTOID( w, sp ) --> goToId )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GOBOTTOM() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GOBOTTOM( w ) --> goBottom )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GOTOP() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GOTOP( w ) --> goTop )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SEEK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SEEK( w, i1, v, i2 ) --> seek )( w, i1, v, i2 ) )> * $ARGUMENTS$ * * * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SKIP() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SKIP( w, l ) --> skip )( w, l ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SKIPFILTER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SKIPFILTER( w, l ) --> skipFilter )( w, l ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SKIPRAW() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SKIPRAW( w, l ) --> skipRaw )( w, l ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ADDFIELD() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ADDFIELD( w, ip ) --> addField )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_APPEND() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_APPEND( w, l ) --> append )( w, l ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CREATEFIELDS() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CREATEFIELDS( w, v ) --> createFields )( w, v ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_DELETE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_DELETE( w ) --> deleterec )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_DELETED() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_DELETED( w, sp ) --> deleted )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_FIELDCOUNT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_FIELDCOUNT( w, sp ) --> fieldCount )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_FIELDDISPLAY() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_FIELDDISPLAY( w, sp ) --> fieldDisplay )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_FIELDINFO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_FIELDINFO( w, s1, s2, v ) --> fieldInfo )( w, s1, s2, v ) )> * $ARGUMENTS$ * * * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_FIELDNAME() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_FIELDNAME( w, i, bp ) --> fieldName )( w, i, bp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_FLUSH() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_FLUSH( w ) --> flush )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GETREC() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GETREC( w, bpp ) --> getRec )( w, bpp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GETVALUE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GETVALUE( w, i, v ) --> getValue )( w, i, v ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GETVARLEN() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GETVARLEN( w, i, lp ) --> getVarLen )( w, i, lp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GOCOLD() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GOCOLD( w ) --> goCold )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GOHOT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GOHOT( w ) --> goHot )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_PUTVALUE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_PUTVALUE( w, i, v ) --> putValue )( w, i, v ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_PUTREC() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_PUTREC( w, bp ) --> putRec )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RECALL() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RECALL( w ) --> recall )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RECCOUNT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RECCOUNT( w, sp ) --> reccount )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RECINFO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RECINFO( w, v1, i, v2 ) --> recInfo )( w, v1, i, v2 ) )> * $ARGUMENTS$ * * * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RECNO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RECNO( w, sp ) --> recno )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SETFIELDEXTENT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SETFIELDEXTENT( w, s ) --> setFieldExtent )( w, s ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ALIAS() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ALIAS( w, bp ) --> alias )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CLOSE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CLOSE( w ) --> close )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CREATE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CREATE( w, ip ) --> create )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_INFO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_INFO( w, i, g ) --> info )( w, i, g ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_NEW() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_NEW( w ) --> newarea )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_OPEN() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_OPEN( w, ip ) --> open )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RELEASE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RELEASE( w ) --> release )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_STRUCTSIZE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_STRUCTSIZE( w, sp ) --> structSize )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SYSNAME() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SYSNAME( w, bp ) --> sysName )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_DBEVAL() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_DBEVAL( w, ip ) --> dbEval )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_PACK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_PACK( w ) --> pack )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_PACKREC() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_PACKREC( w, l, sp ) --> packRec )( w, l, sp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SORT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SORT( w, ip ) --> sort )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_TRANS() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_TRANS( w, ip ) --> trans )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_TRANSREC() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_TRANSREC( w, ip ) --> transRec )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ZAP() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ZAP( w ) --> zap )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CHILDEND() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CHILDEND( w, ip ) --> childEnd )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CHILDSTART() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CHILDSTART( w, ip ) --> childStart )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CHILDSYNC() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CHILDSYNC( w, ip ) --> childSync )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SYNCCHILDREN() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SYNCCHILDREN( w ) --> syncChildren )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CLEARREL() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CLEARREL( w ) --> clearRel )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_FORCEREL() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_FORCEREL( w ) --> forceRel )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RELAREA() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RELAREA( w, s, sp ) --> relArea )( w, s, sp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RELEVAL() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RELEVAL( w, ip ) --> relEval )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RELTEXT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RELTEXT( w, s, bp ) --> relText )( w, s, bp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SETREL() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SETREL( w, ip ) --> setRel )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDLSTADD() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDLSTADD( w, lp ) --> orderListAdd )( w, lp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDLSTDELETE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDLSTDELETE( w, lp ) --> orderListDelete )( w, lp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDLSTFOCUS() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDLSTFOCUS( w, lp ) --> orderListFocus )( w, lp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDLSTREBUILD() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDLSTREBUILD( w ) --> orderListRebuild )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDLSTCLEAR() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDLSTCLEAR( w ) --> orderListClear )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDSETCOND() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDSETCOND( w, ip ) --> orderCondition )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDCREATE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDCREATE( w, ip ) --> orderCreate )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDDELETE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDDELETE( w, ip ) --> orderDelete )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDINFO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDINFO( w, i, p ) --> orderInfo )( w, i, p ) )> * $ARGUMENTS$ * * * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDEXPR() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDEXPR( w, p ) --> orderInfo )( w, DBOI_EXPRESSION, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDCOND() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDCOND( w, p ) --> orderInfo )( w, DBOI_CONDITION, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDRECNO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDRECNO( w, p ) --> orderInfo )( w, DBOI_RECNO, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDPOS() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDPOS( w, p ) --> orderInfo )( w, DBOI_POSITION, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDNUMBER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDNUMBER( w, p ) --> orderInfo )( w, DBOI_NUMBER, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDNAME() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDNAME( w, p ) --> orderInfo )( w, DBOI_NAME, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDBAGNAME() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDBAGNAME( w, p ) --> orderInfo )( w, DBOI_BAGNAME, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ORDBAGEXT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ORDBAGEXT( w, p ) --> orderInfo )( w, DBOI_BAGEXT, p ) )> * $ARGUMENTS$ * * *

* $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CLEARFILTER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CLEARFILTER( w ) --> clearFilter )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CLEARLOCATE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CLEARLOCATE( w ) --> clearLocate )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CLEARSCOPE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CLEARSCOPE( w ) --> clearScope )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_COUNTSCOPE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_COUNTSCOPE( w, ip, lp ) --> countScope )( w, ip, lp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_FILTERTEXT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_FILTERTEXT( w, bp ) --> filterText )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SCOPEINFO() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SCOPEINFO( w, i, v ) --> scopeInfo )( w, i, v ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SETFILTER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SETFILTER( w, ip ) --> setFilter )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SETLOCATE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SETLOCATE( w, ip ) --> setLocate )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SETSCOPE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SETSCOPE( w, ip ) --> setScope )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SKIPSCOPE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SKIPSCOPE( w, bp, l ) --> skipScope )( w, bp, l ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_COMPILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_COMPILE( w, bp ) --> compile )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_ERROR() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_ERROR( w, ip ) --> error )( w, ip ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_EVALBLOCK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_EVALBLOCK( w, v ) --> evalBlock )( w, v ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GETLOCKS() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GETLOCKS( w, g ) --> info )( w, DBI_GETLOCKARRAY, g ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RAWLOCK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RAWLOCK( w, i, l ) --> rawlock )( w, i, l ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_LOCK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_LOCK( w, sp ) --> lock )( w, sp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_UNLOCK() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_UNLOCK( w ) --> unlock )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CLOSEMEMFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CLOSEMEMFILE( w ) --> closeMemFile )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_CREATEMEMFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_CREATEMEMFILE( w, bp ) --> createMemFile )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GETVALUEFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GETVALUEFILE( w, i, bp ) --> getValueFile )( w, i, bp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_OPENMEMFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_OPENMEMFILE( w, bp ) --> openMemFile )( w, bp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_PUTVALUEFILE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_PUTVALUEFILE( w, i, bp ) --> putValueFile )( w, i, bp ) )> * $ARGUMENTS$ * * * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_READDBHEADER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_READDBHEADER( w ) --> readDBHeader )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_WRITEDBHEADER() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_WRITEDBHEADER( w ) --> writeDBHeader )( w ) )> * $ARGUMENTS$ * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_RECSIZE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_RECSIZE( w, lp ) --> info )( w, DBI_GETRECSIZE, lp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_HEADERSIZE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_HEADERSIZE( w, fp ) --> info )( w, DBI_GETHEADERSIZE, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_LUPDATE() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_LUPDATE( w, fp ) --> info )( w, DBI_LASTUPDATE, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_SETDELIM() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_SETDELIM( w, fp ) --> info )( w, DBI_SETDELIMITER, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_GETDELIM() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_GETDELIM( w, fp ) --> info )( w, DBI_GETDELIMITER, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */ /* $DOC$ * $FUNCNAME$ * SUPER_TABLEEXT() * $CATEGORY$ * RDD API * $ONELINER$ * * $SYNTAX$ * C Prototype (macro definition) * * #include * SUPER_TABLEEXT( w, fp ) --> info )( w, DBI_TABLEEXT, fp ) )> * $ARGUMENTS$ * * * * $RETURNS$ * * $DESCRIPTION$ * * $EXAMPLES$ * * $STATUS$ * R * $COMPLIANCE$ * Compliance is not applicable to API calls. * $FILES$ * Header file is hbapirdd.h * $PLATFORMS$ * All * $SEEALSO$ * * $END$ */

c:\harbour\doc\en\hb_compa.txt
/*
 * $Id: hb_compa.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999-2001 Viktor Szakats 
 *   Compatibility header file for CA-Cl*pper Virtual Memory API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _evalLaunch()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _evalLaunch --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_evalLaunch()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _evalNew()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _evalNew --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_evalNew()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _evalPutParam()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _evalPutParam --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_evalPutParam()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _evalRelease()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _evalRelease --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_evalRelease()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _itemArrayGet()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _itemArrayGet --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemArrayGet()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _itemArrayNew()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _itemArrayNew --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemArrayNew()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _itemArrayPut()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _itemArrayPut --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemArrayPut()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _itemNew()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _itemNew --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemNew()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _itemParam()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _itemParam --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemParam()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _itemRelease()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _itemRelease --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemRelease()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _itemReturn()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _itemReturn --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemReturn()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _itemSize()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _itemSize --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemSize()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _itemType()
 *  $CATEGORY$
 *      Item compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _itemType --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is item.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_itemType()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _reta()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _reta --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_reta()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _pcount()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _pcount --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_pcount()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tchdir()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tchdir --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsChDir()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tchdrv()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tchdrv --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsChDrv()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tclose()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tclose --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsClose()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tcommit()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tcommit --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsCommit()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tcreat()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tcreat --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsCreate()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tcurdir()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tcurdir --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsCurDir()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tcurdrv()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tcurdrv --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsCurDrv()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tdevraw()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tdevraw --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsSetDevRaw()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _terror()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _terror --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsError()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tisdevice()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tisdevice --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsIsDevice()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tisdrv()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tisdrv --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsIsDrv()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tlock()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tlock --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsLock()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tlseek()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tlseek --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsSeek()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tmkdir()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tmkdir --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsMkDir()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _topen()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _topen --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsOpen()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tread()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tread --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsRead()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _trename()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _trename --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsRename()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _trmdir()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _trmdir --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsRmDir()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _tunlink()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _tunlink --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsDelete()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _twrite()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _twrite --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsWrite()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _bset()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _bset --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      memset()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _bmove()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _bmove --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      memmove()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _bcopy()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _bcopy --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      memcpy()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _bcmp()
 *  $CATEGORY$
 *      Undocumented compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _bcmp --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is hbundoc.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      memcmp()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtBox()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtBox --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtBox()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtColorSelect()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtColorSelect --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtColorSelect()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtDispBegin()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtDispBegin --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtDispBegin()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtDispCount()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtDispCount --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtDispCount()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtDispEnd()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtDispEnd --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtDispEnd()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtGetColorStr()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtGetColorStr --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtGetColorStr()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtGetCursor()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtGetCursor --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtGetCursor()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtGetPos()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtGetPos --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtGetPos()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtIsColor()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtIsColor --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtIsColor()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtMaxCol()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtMaxCol --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtMaxCol()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtMaxRow()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtMaxRow --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtMaxRow()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtPostExt()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtPostExt --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtPostExt()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtPreExt()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtPreExt --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtPreExt()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtRectSize()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtRectSize --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtRectSize()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtRepChar()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtRepChar --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtRepChar()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtRest()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtRest --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtRest()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtSave()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtSave --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtSave()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtScrDim()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtScrDim --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtScrDim()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtScroll()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtScroll --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtScroll()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtSetBlink()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtSetBlink --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtSetBlink()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtSetColorStr()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtSetColorStr --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtSetColorStr()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtSetCursor()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtSetCursor --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtSetCursor()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtSetMode()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtSetMode --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtSetMode()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtSetPos()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtSetPos --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtSetPos()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtSetSnowFlag()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtSetSnowFlag --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtSetSnowFlag()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWrite()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWrite --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWrite()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWriteAt()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWriteAt --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWriteAt()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWriteCon()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWriteCon --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWriteCon()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtInit()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtInit --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtInit()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtExit()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtExit --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtExit()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWCreate()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWCreate --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWCreate()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWDestroy()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWDestroy --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWDestroy()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWFlash()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWFlash --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWFlash()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWApp()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWApp --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWApp()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWCurrent()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWCurrent --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWCurrent()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWPos()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWPos --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWPos()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtWVis()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtWVis --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtWVis()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtModalRead()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtModalRead --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtModalRead()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtBeginWrite()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtBeginWrite --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtBeginWrite()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtEndWrite()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtEndWrite --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtEndWrite()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtFlushCursor()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtFlushCursor --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtFlushCursor()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtSetColor()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtSetColor --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtSetColor()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtGetColor()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtGetColor --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtGetColor()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _gtSetBorder()
 *  $CATEGORY$
 *      Terminal compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _gtSetBorder --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is gt.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_gtSetBorder()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _xalloc()
 *  $CATEGORY$
 *      Fixed memory compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _xalloc --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is fm.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_xalloc()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _xgrab()
 *  $CATEGORY$
 *      Fixed memory compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _xgrab --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is fm.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_xgrab()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _xfree()
 *  $CATEGORY$
 *      Fixed memory compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _xfree --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is fm.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_xfree()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _exmgrab()
 *  $CATEGORY$
 *      Fixed memory compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _exmgrab --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is fm.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_xgrab()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsChDir()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsChDir --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsChDir()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsChDrv()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsChDrv --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsChDrv()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsClose()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsClose --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsClose()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsCommit()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsCommit --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsCommit()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsCreate()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsCreate --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsCreate()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsCurDir()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsCurDir --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsCurDir()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsCurDrv()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsCurDrv --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsCurDrv()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsDelete()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsDelete --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsDelete()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsError()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsError --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsError()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsExtOpen()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsExtOpen --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsExtOpen()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsIsDrv()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsIsDrv --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsIsDrv()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsLock()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsLock --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsLock()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsMkDir()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsMkDir --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsMkDir()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsOpen()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsOpen --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsOpen()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsRead()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsRead --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsRead()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsRmDir()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsRmDir --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsRmDir()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsRename()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsRename --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsRename()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsSeek()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsSeek --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsSeek()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _fsWrite()
 *  $CATEGORY$
 *      FileSys compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _fsWrite --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is filesys.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_fsWrite()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ALENGTH
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro definition)
 *
 *      #include 
 *      ALENGTH( n ) --> 
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _parc()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _parc --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_parc()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _parclen()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _parclen --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_parclen()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _parcsiz()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _parcsiz --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_parcsiz()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _pards()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _pards --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_pards()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _parinfa()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _parinfa --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_parinfa()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _parinfo()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _parinfo --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_parinfo()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _parl()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _parl --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_parl()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _parnd()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _parnd --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_parnd()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _parni()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _parni --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_parni()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _parnl()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _parnl --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_parnl()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _ret()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _ret --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_ret()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _retc()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _retc --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_retc()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _retclen()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _retclen --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_retclen()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _retds()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _retds --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_retds()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _retl()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _retl --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_retl()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _retnd()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _retnd --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_retnd()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _retni()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _retni --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_retni()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _retnl()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _retnl --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_retnl()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _storc()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _storc --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_storc()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _storclen()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _storclen --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_storclen()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _stords()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _stords --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_stords()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _storl()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _storl --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_storl()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _stornd()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _stornd --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_stornd()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _storni()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _storni --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_storni()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _stornl()
 *  $CATEGORY$
 *      Extend compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _stornl --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is extend.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_stornl()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetDescription()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetDescription --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetDescription()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetFileName()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetFileName --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetFileName()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetFlags()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetFlags --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetFlags()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetGenCode()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetGenCode --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetGenCode()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetOperation()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetOperation --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetOperation()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetOsCode()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetOsCode --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetOsCode()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetSeverity()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetSeverity --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetSeverity()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetSubCode()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetSubCode --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetSubCode()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetSubSystem()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetSubSystem --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetSubSystem()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errGetTries()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errGetTries --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errGetTries()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errLaunch()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errLaunch --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errLaunch()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errNew()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errNew --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errNew()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutDescription()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutDescription --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutDescription()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutFileName()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutFileName --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutFileName()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutFlags()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutFlags --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutFlags()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutGenCode()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutGenCode --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutGenCode()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutOperation()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutOperation --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutOperation()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutOsCode()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutOsCode --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutOsCode()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutSeverity()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutSeverity --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutSeverity()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutSubCode()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutSubCode --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutSubCode()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutSubSystem()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutSubSystem --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutSubSystem()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errPutTries()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errPutTries --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errPutTries()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      _errRelease()
 *  $CATEGORY$
 *      Error compatability API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype (macro replacement)
 *
 *      #include 
 *      _errRelease --> 
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *
 *  $FILES$
 *      Header file is error.api
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_errRelease()
 *  $END$
 */

c:\harbour\doc\en\hb_date.txt
/*
 * $Id: hb_date.txt 4003 2001-05-15 13:02:07Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999-2001 Viktor Szakats 
 *   Header file for the Date API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateSeconds()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateSeconds( void ) --> ( double )dResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateToday()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateToday( long * plYear, long * plMonth, long * plDay ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateTimeStr()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateTimeStr( char * pszTime ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateCMonth()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateCMonth( int iMonth ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateCDOW()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateCDOW( int iDay ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateDOW()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateDOW( long lYear, long lMonth, long lDay ) --> ( long )lResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateFormat()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateFormat( const char * szDate, char * szFormattedDate, const char * szDateFormat ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateEncode()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateEncode( long lYear, long lMonth, long lDay ) --> ( long )lResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateDecode()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateDecode( long julian, long * plYear, long * plMonth, long * plDay ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateStrPut()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateStrPut( char * szDate, long lYear, long lMonth, long lDay ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateStrGet()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateStrGet( const char * szDate, long * plYear, long * plMonth, long * plDay ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateDecStr()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateDecStr( char * szDate, long lJulian ) --> ( char * )pszResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_dateEncStr()
 *  $CATEGORY$
 *      Date API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_dateEncStr( char * szDate ) --> ( long )lResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

c:\harbour\doc\en\hb_macro.txt
/*
 * $Id: hb_macro.txt 3869 2001-03-12 04:19:57Z april $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Ryszard Glab
 *   Header file for the Macro compiler
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroError()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_macroError( int iError, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_macroYYParse()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_macroYYParse( HB_MACRO_PTR pMacro ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPCode1()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPCode1( BYTE byte, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPCode2()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPCode2( BYTE byte1, BYTE byte2, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPCode3()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPCode3( BYTE byte1, BYTE byte2, BYTE byte3, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPCode4()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPCode4( BYTE byte1, BYTE byte2, BYTE byte3, BYTE byte4, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPCodeN()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPCodeN( BYTE * pBuffer, ULONG ulSize, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compLocalVarGetPos()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compLocalVarGetPos( char * szVarName, HB_BISON_PTR pMacro ) --> ( int )iResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenJump()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenJump( LONG lOffset, HB_BISON_PTR pMacro ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenJumpFalse()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenJumpFalse( LONG lOffset, HB_BISON_PTR pMacro ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenJumpThere()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenJumpThere( ULONG ulFrom, ULONG ulTo, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenJumpHere()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenJumpHere( ULONG ulOffset, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenJumpTrue()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenJumpTrue( LONG lOffset, HB_BISON_PTR pMacro ) --> ( ULONG )ulResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compMemvarGenPCode()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compMemvarGenPCode( BYTE bPCode, char * szVarName, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPushSymbol()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPushSymbol( char * szSymbolName, int isFunction, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPushLong()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPushLong( long lNumber, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenMessage()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenMessage( char * szMsgName, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenMessageData()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenMessageData( char * szMsg, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPopVar()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPopVar( char * szVarName, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPopAliasedVar()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPopAliasedVar( char * szVarName, BOOL bPushAliasValue, char * szAlias, long lWorkarea, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPushVar()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPushVar( char * szVarName, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPushVarRef()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPushVarRef( char * szVarName, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPushAliasedVar()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPushAliasedVar( char * szVarName, BOOL bPushAliasValue, char * szAlias, long lWorkarea, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPushLogical()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPushLogical( int iTrueFalse, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPushDouble()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPushDouble( double dNumber, BYTE bWidth, BYTE bDec, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPushFunCall()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPushFunCall( char * szFunName, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compGenPushString()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compGenPushString( char * szText, ULONG ulStrLen, HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compCodeBlockStart()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compCodeBlockStart( HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_compCodeBlockEnd()
 *  $CATEGORY$
 *      Macro API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_compCodeBlockEnd( HB_BISON_PTR pMacro ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is macro
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

c:\harbour\doc\en\hb_set.txt
/*
 * $Id: hb_set.txt 4293 2001-08-18 00:09:25Z dholm $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 David G. Holm 
 *   Header file for the Set API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_setInitialize()
 *  $CATEGORY$
 *      Set API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_setInitialize( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_setRelease()
 *  $CATEGORY$
 *      Set API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_setRelease( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_setListenerAdd()
 *  $CATEGORY$
 *      Set API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_setListenerAdd( PHB_SET_LISTENER_CALLBACK callback ) --> int
 *  $ARGUMENTS$
 *      
 *      A pointer to a function taking two enum parameters and returning
 *      no value. The first parameter identifies the SET parameter that is
 *      to be changed and the second parameter identifies whether the call
 *      is from before or after the value is changed. The callback function
 *      will be called twice whenever a SET parameter is changed using the
 *      Harbour SET function. The first call takes place before the SET
 *      value is changed and the second one is after the SET parameter has
 *      been changed.
 *  $RETURNS$
 *      An integer value representing the callback handle, in case the
 *      caller needs to deactivate the callback function.
 *  $DESCRIPTION$
 *      This function allows a subsystem that needs to track the status
 *      of some SET parameters to be notified whenever a SET parameter gets
 *      changed.
 *  $EXAMPLES$
 *      void callback_function( HB_set_enum set, HB_set_listener_enum when )
 *      {
 *         printf("\nCalled for SET parameter %d %s changing.",
 *            set, (when ? "after" : "before"));
 *      }
 *      int handle = hb_setListenerAdd( callback_function );
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_setListenerRemove()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_setListenerNotify()
 *  $CATEGORY$
 *      Set API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_setListenerNotify( HB_set_enum set, HB_set_listener_enum
 *      when ) --> int
 *  $ARGUMENTS$
 *      
 *      The number of the SET parameter that is to be or was changed.
 *      
 *      Set to HB_SET_LISTENER_BEFORE when called before the SET parameter
 *      is to be changed and set to HB_SET_LISTENER_AFTER when called
 *      after the SET parameter has been changed.
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      This function notifies all SET listener callback functions. It
 *      must be called any time you change the value of a SET parameter
 *      directly instead of using the Harbour SET function. Both before
 *      and after the change.
 *  $EXAMPLES$
 *      hb_setListenerNotify( HB_SET_DECIMALS, HB_SET_LISTENER_BEFORE );
 *      hb_set.HB_SET_DECIMALS = 3;
 *      hb_setListenerNotify( HB_SET_DECIMALS, HB_SET_LISTENER_AFTER );
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_setListenerAdd()
 *  $END$
 */


/*  $DOC$
 *  $FUNCNAME$
 *      hb_setListenerRemove()
 *  $CATEGORY$
 *      Set API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_setListenerRemove( int handle ) --> int
 *  $ARGUMENTS$
 *      
 *      The handle for the SET listener callback function to be removed.
 *  $RETURNS$
 *      The handle if the callback function could not be located or the
 *      negative value of the handle if the callback function was removed.
 *  $DESCRIPTION$
 *      This function removes a SET listener callback function.
 *  $EXAMPLES$
 *      int handle = hb_setListenerAdd( callback_function );
 *      ...
 *      hb_setListenerRemove( handle );
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_setListenerAdd()
 *  $END$
 */

c:\harbour\doc\en\hb_vm.txt
/*
 * $Id: hb_vm.txt 6764 2006-07-18 01:30:23Z druzus $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Antonio Linares 
 *   Header file for the Virtual Machine API
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmInit()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmInit( BOOL bStartMainProc ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmQuit()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Immediately quits the virtual machine
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmQuit( void ) --> int
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      ERRORLEVEL code
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmExecute()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Invokes the virtual machine
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmExecute( const BYTE * pCode, PHB_SYMB pSymbols ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmProcessSymbols()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Statics symbols initialization
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmProcessSymbols( PHB_SYMB pSymbols, USHORT uiSymbols ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmSymbolInit_RT()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Initialization of runtime support symbols
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmSymbolInit_RT( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmRequestQuit()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmRequestQuit( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmRequestEndProc()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmRequestEndProc( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmRequestCancel()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmRequestCancel( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmRequestBreak()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmRequestBreak( PHB_ITEM pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmRequestQuery()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmRequestQuery( void ) --> ( USHORT )usResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmMessage()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Sends a message to an object
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmMessage( PHB_SYMB pSymMsg ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmDo()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Invoke the virtual machine
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmDo( USHORT uiParams ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmFunction()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Executes a function saving its result
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmFunction( USHORT uiParams ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmSend()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Sends a message to an object
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmSend( USHORT uiParams ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmEvalBlock()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Executes passed codeblock with no arguments
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmEvalBlock( PHB_ITEM pBlockItem ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmEvalBlockV()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmEvalBlockV( PHB_ITEM pBlockItem, USHORT uiArgCount, ... ) --> ( PHB_ITEM )pResult
 *  $ARGUMENTS$
 *      
 * 
 *      
 * 
 *      <...>
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPush()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pushes a generic item onto the stack
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPush( PHB_ITEM pItem ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushNil()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      In this case it places nil at self
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushNil( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushNumber()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pushes a number on to the stack and decides if it is integer, long or double
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushNumber( double dNumber, int iDec ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushInteger()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pushes a integer number onto the stack
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushInteger( int iNumber ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushLong()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pushes a long number onto the stack
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushLong( long lNumber ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushDouble()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pushes a double number onto the stack
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushDouble( double lNumber, int iDec ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushLogical()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pushes a logical value onto the stack
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushLogical( BOOL bValue ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushString()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pushes a string on to the stack
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushString( char * szText, ULONG length ) --> void
 *  $ARGUMENTS$
 *      
 * 
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushDate()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pushes a long date onto the stack
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushDate( long lDate ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushSymbol()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pushes a function pointer onto the stack
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushSymbol( PHB_SYMB pSym ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_vmPushPointer()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Push an item of HB_IT_POINTER type
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_vmPushPointer( void * ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_stackDispCall()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_stackDispCall( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_stackPop()
 *  $CATEGORY$
 *      Virtual machine API
 *  $ONELINER$
 *      Pops an item from the stack
 *  $SYNTAX$
 *      C Prototype
 *      
 *      #include 
 *      hb_stackPop( void ) --> void
 *  $ARGUMENTS$
 *      
 *  $RETURNS$
 *      
 *  $DESCRIPTION$
 *      
 *  $EXAMPLES$
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Library is vm
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      
 *  $END$
 */

c:\harbour\doc\en\hvm.txt
/*
 * $Id: hvm.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Jose Lanin 
 *    Documentation for: PROCLINE(),PROCFILE(),PROCNAME()
 *
 * Copyright 1999 Eddie Ruina
 *   Documentation for: __DBGVMVARLGET()
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: CLIPINIT(), __SETHELPK()
 *
 * Copyright 1999 Ryszard Glab 
 *    Documentation for: DO()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      PROCNAME()
 *  $CATEGORY$
 *      Misc
 *  $ONELINER$
 *      Gets the name of the current function on the stack
 *  $SYNTAX$
 *      PROCNAME(  ) --> 
 *  $ARGUMENTS$
 *       is the function level required.   
 *  $RETURNS$
 *       The name of the function that it is being executed.   
 *  $DESCRIPTION$
 *      This function looks at the top of the stack and gets the current
 *      executed function if no arguments are passed. Otherwise it returns
 *      the name of the function or procedure at .   
 *  $EXAMPLES$
 *      See Test
 *  
 *  $TESTS$
 *      This test will show the functions and procedures in stack.
 *      before executing it.
 *      function Test()
 *         LOCAL n := 1
 *         while !Empty( ProcName( n ) )
 *            ? ProcName( n++ )
 *         end do
 *      return nil
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      PROCNAME() is fully CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      PROCLINE(),PROCFILE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      PROCLINE()
 *  $CATEGORY$
 *      Misc
 *  $ONELINER$
 *      Gets the line number of the current function on the stack.
 *  $SYNTAX$
 *      PROCLINE(  ) --> 
 *  $ARGUMENTS$
 *       is the function level required.   
 *  $RETURNS$
 *       The line number of the function that it is being executed.   
 *  $DESCRIPTION$
 *      This function looks at the top of the stack and gets the current
 *      line number of the executed function if no arguments are passed.
 *      Otherwise it returns the line number of the function or procedure
 *      at .   
 *  $EXAMPLES$
 *      See Test
 *  
 *  $TESTS$
 *      function Test()
 *         ? ProcLine( 0 )
 *         ? ProcName( 2 )
 *      return nil
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      PROCLINE() is fully CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      PROCNAME(),PROCFILE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      PROCFILE()
 *  $CATEGORY$
 *      Misc
 *  $ONELINER$
 *      This function allways returns an empty string.
 *  $SYNTAX$
 *      PROCFILE(  ) --> 
 *  $ARGUMENTS$
 *       is any valid type.   
 *  $RETURNS$
 *       Return an empty string   
 *  $DESCRIPTION$
 *      This function is added to the RTL for full compatibility. It
 *      always returns an empty string.   
 *  $EXAMPLES$
 *      ? ProcFile()
 *  
 *  $TESTS$
 *      function Test()
 *         ? ProcFile()
 *         ? ProcFile( NIL )
 *         ? ProcFile( 2 )
 *      return nil
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      PROCFILE() is fully CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      PROCNAME(),PROCLINE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_PVALUE()
 *  $CATEGORY$
 *      Parameter Checks
 *  $ONELINER$
 *      Retrieves the value of an argument.
 *  $SYNTAX$
 *      HB_PVALUE(  ) --> 
 *  $ARGUMENTS$
 *      A number that indicates the argument to check.   
 *  $RETURNS$
 *       Returns the value stored by an argument.   
 *  $DESCRIPTION$
 *      This function is useful to check the value stored in an argument.   
 *  $EXAMPLES$
 *      See Test
 *  
 *  $TESTS$
 *      function Test( nValue, cString )
 *         if PCount() == 2
 *            ? hb_PValue( 1 ), nValue
 *            ? hb_PValue( 2 ), cString
 *         endif
 *      return nil
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      HB_PVALUE() is a new function and hence not CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      PCOUNT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      PCOUNT()
 *  $CATEGORY$
 *      Parameter Checks
 *  $ONELINER$
 *      Retrieves the number of arguments passed to a function.
 *  $SYNTAX$
 *      PCOUNT() --> 
 *  $ARGUMENTS$
 *      None   
 *  $RETURNS$
 *       A number that indicates the number of arguments
 *      passed to a function or procedure.   
 *  $DESCRIPTION$
 *      This function is useful to check if a function or procedure
 *      has received the required number of arguments.   
 *  $EXAMPLES$
 *      See Test
 *  
 *  $TESTS$
 *      function Test( xExp )
 *         if PCount() == 0
 *            ? "This function needs a parameter"
 *         else
 *            ? xExp
 *         endif
 *      return nil
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      PCOUNT() is fully CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      HB_PVALUE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __QUIT()
 *  $CATEGORY$
 *      Events
 *  $ONELINER$
 *      Terminates an application.
 *  $SYNTAX$
 *      __QUIT() --> NIL
 *  $ARGUMENTS$
 *      None   
 *  $RETURNS$
 *      NIL   
 *  $DESCRIPTION$
 *      This function terminates the current application and returns
 *      to the system.   
 *  $EXAMPLES$
 *      See Test
 *  
 *  $TESTS$
 *      function EndApp( lYesNo )
 *         if lYesNo
 *            __Quit()
 *         endif
 *      return nil
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __QUIT() is fully CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      QUIT
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      CLIPINIT()
 *  $CATEGORY$
 *      Internal
 *  $ONELINER$
 *      Initialize various Harbour sub-systems
 *  $SYNTAX$
 *      CLIPINIT() --> NIL
 *  $ARGUMENTS$
 *      none.   
 *  $RETURNS$
 *      CLIPINIT() always return NIL.   
 *  $DESCRIPTION$
 *      CLIPINIT() is one of the pre-defined INIT PROCEDURE and is executed
 *      at program startup. It declare an empty MEMVAR PUBLIC array called
 *      GetList that is going to be used by the Get system. It activates the
 *      default error handler, and (at least for the moment) calls the
 *      function that sets the default help key.   
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      It is said that CLIPINIT() should not call the function that sets
 *      the default help key since CA-Cl*pper does it in some other place.   
 *  $PLATFORMS$
 *      All   
 *  $SEEALSO$
 *       INIT PROCEDURE
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __SetHelpK()
 *  $CATEGORY$
 *      Internal
 *  $ONELINER$
 *      Set F1 as the default help key
 *  $SYNTAX$
 *      __SetHelpK() --> NIL
 *  $ARGUMENTS$
 *      None.   
 *  $RETURNS$
 *      __SetHelpK() always return NIL.   
 *  $DESCRIPTION$
 *      Set F1 to execute a function called HELP if such a function is
 *      linked into the program.   
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __SetHelpK() works exactly like CA-Cl*pper's __SetHelpK()   
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      __XHelp(),SET KEY,SETKEY()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      BREAK()
 *  $CATEGORY$
 *      Error recovery
 *  $ONELINER$
 *      Exits from a BEGIN SEQUENCE block
 *  $SYNTAX$
 *      BREAK(  ) --> NIL
 *  $ARGUMENTS$
 *       is any valid expression. It is always required.
 *      If do not want to pass any argument, just use NIL.   
 *  $RETURNS$
 *      NIL   
 *  $DESCRIPTION$
 *      This function passes control to the RECOVER statement in a
 *      BEGIN SEQUENCE block.   
 *  $EXAMPLES$
 *      Break( NIL )
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      BREAK() is fully CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      BEGIN SEQUENCE
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DO()
 *  $CATEGORY$
 *      Utility
 *  $ONELINER$
 *      Calls a procedure or a function
 *  $SYNTAX$
 *      DO(  [, ] )
 *  $ARGUMENTS$
 *       = Either a string with a function/procedure name to be called
 *      or a codeblock to evaluate.   
 *       = arguments passed to a called function/procedure or to
 *      a codeblock.   
 *  $RETURNS$
 *      A value that was returned from called function.   
 *  $DESCRIPTION$
 *      This function can be called either by the harbour compiler or by user.
 *      The compiler always passes the item of IT_SYMBOL type that stores the
 *      name of procedure specified in DO  WITH ... statement.   
 *      If called procedure/function doesn't exist then a runtime error
 *      is generated.   
 *      This function can be used as replacement of macro operator.
 *      It is also used internally to implement DO  WITH 
 *      In this case  is of type HB_SYMB.   
 *  $EXAMPLES$
 *      cbCode ={|x| MyFunc( x )}
 *      DO( cbCode, 1 )
 *
 *      cFunction := "MyFunc"
 *      xRetVal :=DO( cFunction, 2 )
 *
 *      Old style (slower):
 *      DO &cFunction WITH 3
 *  
 *  $FILES$
 *      Library is rtl
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __DBGVMVARLGET()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      Retrive a local variable from a procedure level
 *  $SYNTAX$
 *      __DBGVMVARLGET( ,  )
 *  $ARGUMENTS$
 *       Is the procedure level, same as used in ProcName()
 *      and ProcLine(), from which a local variable containts is going to
 *      be retrieved.   
 *       Is the index of the local variable to retrieve.   
 *  $RETURNS$
 *      The containts of a specific local variable   
 *  $DESCRIPTION$
 *      This function is used from the debugger   
 *  $FILES$
 *      Library is vm
 *  $END$
 */
c:\harbour\doc\en\idle.txt
/*
 * $Id: idle.txt 3493 2000-11-02 22:33:00Z lculik $
*/

/*  $DOC$
 *  $FUNCNAME$
 *      The idle states
 *  $CATEGORY$
 *      Document
 *  $ONELINER$
 *      Read me file for Idle States
 *  $DESCRIPTION$
 *      The idle state is the state of the harbour virtual machine when it
 *      waits for the user input from the keyboard or the mouse. The idle
 *      state is entered during INKEY() calls currently. All applications
 *      that don't use INKEY() function call can signal the idle states with
 *      the call of HB_IDLESTATE() function (or hb_idleState() on C level).
 *
 *      During idle states the virtual machine calls the garbage collector and
 *      it can call user defined actions (background tasks). It also releases
 *      the CPU time slices for some poor platforms that are not smart enough
 *      (Windows NT).
 *
 *      For defining the background tasks see the HB_IDLEADD() and HB_IDLEDEL()
 *      functions.
 *
 *      For direct call for background actions see HB_IDLESTATE() function.
 *
 *      For signaling the idle state from C code see the hb_idleState()
 *      API function.
 *  $SEEALSO$
 *      HB_IDLEADD(),HB_IDLEDEL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_IDLEADD()
 *  $CATEGORY$
 *      The idle states
 *  $ONELINER$
 *      Adds the background task.
 *  $SYNTAX$
 *      HB_IDLEADD(  ) --> nHandle
 *  $ARGUMENTS$
 *       is a codeblock that will be executed during idle states.
 *      There are no arguments passed to this codeblock during evaluation.
 *  $RETURNS$
 *       The handle (an integer value) that identifies the task. This
 *      handle can be used for deleting the task.
 *  $DESCRIPTION$
 *      HB_IDLEADD() adds a passed codeblock to the list of background
 *      tasks that will be evaluated during the idle states. There is no
 *      limit for the number of tasks.
 *  $EXAMPLES$
 *      nTask := HB_IDLEADD( {|| SayTime()} )
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Harbour extension similar to FT_ONIDLE() function available
 *      in NanForum library.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/rtl/idle.c
 *  $SEEALSO$
 *      HB_IDLEDEL(),HB_IDLESTATE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_IDLEDEL()
 *  $CATEGORY$
 *      The idle states
 *  $ONELINER$
 *      Removes the background task from the list of tasks.
 *  $SYNTAX$
 *      HB_IDLEDEL(  ) --> xAction
 *  $ARGUMENTS$
 *       is the identifier of the task returned by the
 *      HB_IDLEADD() function.
 *  $RETURNS$
 *       NIL if invalid handle is passed or a codeblock that was
 *      passed to HB_IDLEADD() function
 *  $DESCRIPTION$
 *      HB_IDLEDEL() removes the action associated with passed identifier
 *      from the list of background tasks. The identifer should be the
 *      value returned by the previous call of HB_IDLEADD() function.
 *
 *      If specified task is defined then the codeblock is returned
 *      otherwise the NIL value is returned.
 *  $EXAMPLES$
 *      nTask := HB_IDLEADD( {|| SayTime()} )
 *      INKEY(10)
 *      cbAction := HB_IDLEDEL( nTask )
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Harbour extension
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/rtl/idle.c
 *  $SEEALSO$
 *      HB_IDLEADD(),HB_IDLESTATE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_IdleState()
 *  $CATEGORY$
 *      The idle states
 *  $ONELINER$
 *      Evaluates a single background task and calls the garbage collector.
 *  $SYNTAX$
 *      HB_IDLESTATE()
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *      NIL
 *  $DESCRIPTION$
 *      HB_IDLESTATE() requests the garbage collection and executes a
 *      single background task defined by the codeblock passed with
 *      HB_IDLEADD() function. Every call to this function evaluates a
 *      different task in the order of task creation. There are no
 *      arguments passed during a codeblock evaluation.
 *
 *      This function can be safely called even if there are no background
 *      tasks defined.
 *  $EXAMPLES$
 *      nTask1 := HB_IDLEADD( {|| SayTime()} )
 *      nTask2 := HB_IDLEADD( {|| SaveScreen()} )
 *      DO WHILE( !bFinished )
 *        bFinished :=DOSomethingVeryImportant()
 *        HB_IdleState()
 *      ENDDO
 *      cbAction := HB_IDLEDEL( nTask1 )
 *      HB_IDLEDEL( nTask2 )
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Harbour extension similar to FT_IAMIDLE() function available
 *      in NanForum library.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/rtl/idle.c
 *  $SEEALSO$
 *      HB_IDLEADD(),HB_IDLEDEL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_idleState()
 *  $CATEGORY$
 *      The idle states
 *  $ONELINER$
 *      Evaluates a single background task and calls the garbage collector.
 *  $SYNTAX$
 *      void hb_idleState( void );
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *      Nothing
 *  $DESCRIPTION$
 *      hb_idleState() is a C function that requests garbage collection and
 *      executes a single background task defined by the codeblock passed
 *      with HB_IDLEADD() function. It also releases the CPU time slices for
 *      platforms that require it.
 *
 *      Every call for this function evaluates different task in the
 *      order of task creation. There are no arguments passed during
 *      codeblock evaluation.
 *
 *      This function can be safely called even if there are no background
 *      tasks defined.
 *
 *      This function is automatically called from the INKEY() function.
 *  $STATUS$
 *      R
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/rtl/idle.c
 *  $SEEALSO$
 *      HB_IDLEADD(),HB_IDLEDEL(),HB_IDLESTATE()
 *  $END$
 */
c:\harbour\doc\en\input.txt
/*
 * $Id: input.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: READKEY()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      INKEY()
 *  $CATEGORY$
 *      Console input
 *  $ONELINER$
 *      Extracts the next key code from the Harbour keyboard buffer.
 *  $SYNTAX$
 *      INKEY( [] [,] ) --> nKey
 *  $ARGUMENTS$
 *       is an optional timeout value in seconds, with a granularity
 *      of 1/10th of a second. If omitted, INKEY() returns immediately. If set
 *      to 0, INKEY() waits until an input event occurs. If set to any other
 *      value, INKEY() will return either when an input event occurs or when
 *      the timeout period has elapsed. If only this parameter is specified
 *      and it is not numeric, it will be treated as if it were 0. But if both
 *      parameters are specified and this parameter is not numeric, it will be
 *      treated as if it were not present.
 *
 *       is an optional mask of input events that are to be enabled.
 *      If omitted, defaults to hb_set.HB_SET_EVENTMASK. Valid input masks are
 *      in inkey.ch and are explained below. It is recommended that the mask
 *      names be used rather than their numeric values, in case the numeric
 *      values change in future releases of Harbour. To allow more than one
 *      type of input event, simply add the various mask names together.
 *
 *        
 *        inkey.ch            Meaning
 *
 *        INKEY_MOVE          Mouse motion events are allowed
 *        INKEY_LDOWN         The mouse left click down event is allowed
 *        INKEY_LUP           The mouse left click up event is allowed
 *        INKEY_RDOWN         The mouse right click down event is allowed
 *        INKEY_RUP           The mouse right click up event is allowed
 *        INKEY_KEYBOARD      All keyboard events are allowed
 *        INKEY_ALL           All mouse and keyboard events are allowed
 *        HB_INKEY_EXTENDED   Extended keyboard codes are used.
 *        
* If the parameter is not numeric, it will be treated as if it were set * to hb_set.HB_SET_EVENTMASK. * $RETURNS$ * 0 in case of timeout with no input event, otherwise returns a value * in the range -47 to 386 for keyboard events or the range 1001 to 1007 * for mouse events. Mouse events and non-printable keyboard events are * represented by the K_ values listed in inkey.ch. Keyboard * event return codes in the range 32 through 127 are equivalent to the * printable ASCII character set. Keyboard event return codes in the * range 128 through 255 are assumed to be printable, but results may * vary based on hardware and nationality. If HB_INKEY_EXTENDED mode is * used, then the return value for keyboard events ranges from 1 through * 767 and 1077 through 1491, although not all codes are used. * * Extended key codes consist of the PC keyboard scan code and one * or more offset values. If no keyboard modifier was used, then * HB_INKEY_NONE is added. The Alt key adds HB_INKEY_ALT, the Ctrl * key adds HB_INKEY_CTRL, the Shift key adds HB_INKEY_SHIFT, and * enhanced keys (KeyPad+/ and CursorPad keys) add HB_INKEY_ENHANCED. * For example, F1 is scan code 59, so if you just press F1, you get * key code 315, but Alt+F1 gives 443, Ctrl+F1 gives 571, and Shift+ * F1 gives 699. And NumPad+/ gives 1077, 1205, 1333, and 1461. At * this time, the only value that can combine with other values is * HB_INKEY_ENHANCED (i.e., there are no Alt+Ctl combinations, etc.) * * Note: The extended key code set is larger than the normal key code * set. As a result, if you switch between the normal and extended * modes, you need to be aware that some codes get translated into a * zero in normal mode (because there is no corresponding code in * normal mode) and that these codes get removed from the keyboard * input buffer in normal mode and you won't be able to go back and * fetch them later in extended mode. * $DESCRIPTION$ * INKEY() can be used to detect input events, such as keypress, mouse * movement, or mouse key clicks (up and/or down). * $EXAMPLES$ * // Wait for the user to press the Esc key * ? "Please press the ESC key." * WHILE INKEY( 0.1 ) != K_ESC * END * * $TESTS$ * KEYBOARD "AB"; ? INKEY(), INKEY() ==> 65 66 * * $STATUS$ * S * $COMPLIANCE$ * INKEY() is compliant with the Clipper 5.3 INKEY() function with one * exception: The Harbour INKEY() function will raise an argument error * if the first parameter is less than or equal to 0 and the second * parameter (or the default mask) is not valid, because otherwise INKEY * would never return, because it was, in effect, asked to wait forever * for no events (Note: In Clipper, this also blocks SET KEY events). * $FILES$ * Library is rtl * $SEEALSO$ * inkey.ch * $END$ */ /* $DOC$ * $FUNCNAME$ * __KEYBOARD() * $CATEGORY$ * Console input * $ONELINER$ * DO NOT CALL THIS FUNCTION DIRECTLY! * $SYNTAX$ * KEYBOARD * CLEAR TYPEAHEAD * $ARGUMENTS$ * is the optional string to stuff into the Harbour keyboard * buffer after clearing it first. Note: The character ";" is converted * to CHR(13) (this is an undocumented CA-Cl*pper feature). * $RETURNS$ * There is no return value. * $DESCRIPTION$ * Clears the Harbour keyboard typeahead buffer and then inserts an * optional string into it. * $EXAMPLES$ * // Stuff an Enter key into the keyboard buffer * KEYBOARD CHR(13) * // Clear the keyboard buffer * CLEAR TYPEAHEAD * * $TESTS$ * KEYBOARD CHR(13); ? INKEY() ==> 13 * KEYBOARD ";" ? INKEY() ==> 13 * KEYBOARD "HELLO"; CLEAR TYPEAHEAD; ? INKEY() ==> 0 * * $STATUS$ * R * $COMPLIANCE$ * __KEYBOARD() is compliant with CA-Cl*pper 5.3 * $FILES$ * Library is rtl * $SEEALSO$ * CLEAR TYPEAHEAD,KEYBOARD * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_KEYPUT() * $CATEGORY$ * Console input * $ONELINER$ * Put an inkey code to the keyboard buffer. * $SYNTAX$ * HB_KEYPUT( ) * $ARGUMENTS$ * is the inkey code, which should be inserted into the * keyboard buffer. * $RETURNS$ * There is no return value. * $DESCRIPTION$ * Inserts an inkey code to the string buffer. The buffer is *not* * cleared in this operation. This function allows to insert such * inkey codes which are not in the range of 0 to 255. To insert more * than one code, call the function repeatedly. The zero code cannot * be inserted. * $EXAMPLES$ * // Stuff an Alt+PgDn key into the keyboard buffer * HB_KEYPUT( K_ALT_PGDN ) * * $TESTS$ * HB_KEYPUT( K_ALT_PGDN ) ; ? INKEY() ==> 417 * HB_KEYPUT( K_F11 ) ; ? INKEY() ==> -40 * * $STATUS$ * R * $COMPLIANCE$ * HB_KEYPUT() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * KEYBOARD,CLEAR TYPEAHEAD,INKEY() * $END$ */ /* $DOC$ * $FUNCNAME$ * NEXTKEY() * $CATEGORY$ * Console input * $ONELINER$ * Get the next key code in the buffer without extracting it. * $SYNTAX$ * NEXTKEY( [] ) --> nKey * $ARGUMENTS$ * nInputMask is an optional integer value composed of one or more * INKEY_ or HB_INKEY_ constants. The sole purpose of this argument * is to allow switching between using HB_INKEY_EXTENDED key codes * and using the normal Clipper-compatible key codes * $RETURNS$ * The value of the next key in the Harbour keyboard buffer. * $DESCRIPTION$ * Returns the value of the next key in the Harbour keyboard buffer * without extracting it. * $EXAMPLES$ * // Use NEXTKEY() with INKEY() to change display characters, or by * // itself to exit the loop, so that the caller can detect the Esc. * LOCAL nKey, cChar := "+" * WHILE TRUE * ?? cChar * nKey := NEXTKEY() * IF nKey == K_ESC * EXIT * ELSE * IF nKey != 0 * cChar := CHR( nKey ) * END IF * END IF * END WHILE * * $TESTS$ * KEYBOARD "AB"; ? NEXTKEY(), NEXTKEY() ==> 65 65 * * $STATUS$ * R * $COMPLIANCE$ * NEXTKEY() is compliant with CA-Cl*pper 5.3, but has been extended * for Harbour. * $FILES$ * Library is rtl * $SEEALSO$ * INKEY(),LASTKEY() * $END$ */ /* $DOC$ * $FUNCNAME$ * LASTKEY() * $CATEGORY$ * Console input * $ONELINER$ * Get the last key extracted from the keyboard buffer. * $SYNTAX$ * LASTKEY( [] ) --> nKey * $ARGUMENTS$ * nInputMask is an optional integer value composed of one or more * INKEY_ or HB_INKEY_ constants. The sole purpose of this argument * is to allow switching between using HB_INKEY_EXTENDED key codes * and using the normal Clipper-compatible key codes * $RETURNS$ * The last key extracted from the keyboard buffer. * $DESCRIPTION$ * Returns the value of the last key exttracted from the Harbour * keyboard buffer * $EXAMPLES$ * // Continue looping unless the ESC key was pressed in MainFunc() * WHILE TRUE * MainFunc() * IF LASTKEY() == K_ESC * EXIT * ENDIF * END WHILE * * $TESTS$ * KEYBOARD "AB"; ? INKEY(), LASTKEY() ==> 65 65 * * $STATUS$ * R * $COMPLIANCE$ * LASTKEY() is compliant with CA-Cl*pper 5.3, but has been extended * for Harbour. * $FILES$ * Library is rtl * $SEEALSO$ * INKEY(),LASTKEY() * $END$ */ /* $DOC$ * $FUNCNAME$ * KEYBOARD * $CATEGORY$ * Command * $ONELINER$ * Stuffs the keyboard with a string. * $SYNTAX$ * KEYBOARD * $ARGUMENTS$ * String to be processed, one character at a time, * by the Harbour keyboard processor * $DESCRIPTION$ * This command stuffs the input buffer with . The * number of characters that can be stuffed into the keyboard * buffer is controlled by the SET TYPEAHEAD command and may range * from 0 to 32,622, with each character appearing in the ASCII * range of 0 to 255. None of the extended keys may be stuffed * into the keyboard buffer. * Issuing a KEYBOARD " " will clear the keyboard buffer. * $EXAMPLES$ * // Stuff an Enter key into the keyboard buffer * KEYBOARD CHR(13) * // Clear the keyboard buffer * CLEAR TYPEAHEAD * * $TESTS$ * KEYBOARD CHR(13); ? INKEY() ==> 13 * KEYBOARD "HELLO"; CLEAR TYPEAHEAD; ? INKEY() ==> 0 * * $STATUS$ * R * $COMPLIANCE$ * __KEYBOARD() is compliant with CA-Cl*pper 5.3 * $SEEALSO$ * CLEAR TYPEAHEAD,__KEYBOARD() * $END$ */ /* $DOC$ * $FUNCNAME$ * READKEY()* * $CATEGORY$ * Data input and output * $ONELINER$ * Find out which key terminated a READ. * $SYNTAX$ * READKEY() --> nKeyCode * $ARGUMENTS$ * None. * $RETURNS$ * READKEY() returns a numeric code representing the key that caused READ * to terminate. * $DESCRIPTION$ * READKEY() is used after a READ was terminated to determine the exit * key pressed. If the GET buffer was updated during READ, 256 is added * to the return code. * * * Exit Return code Return code * Key (not updated) (updated) * Up 4 260 * Down 5 261 * Page-Up 6 262 * Page-Down 7 263 * Ctrl Page-Up 34 290 * Ctrl Page-Down 35 291 * Esc 12 268 * Ctrl End 14 270 * Enter 15 271 * Key >= 32 15 271 * otherwise 0 0 *
* READKEY() is a compatibility function so try not to use it. * READKEY() is superseded by LASTKEY() which returns the INKEY() * code for that key. UPDATED() could be used to find if the * GET buffer was changed during the READ. * $STATUS$ * R * $COMPLIANCE$ * READKEY() is compliant with CA-Cl*pper 5.3 * $FILES$ * Library is rtl * $SEEALSO$ * @...GET,INKEY(),LASTKEY(),READ,READEXIT(),UPDATED() * $END$ */ /* $DOC$ * $FUNCNAME$ * MROW() * $CATEGORY$ * Console input * $ONELINER$ * Returns the mouse cursor row position. * $SYNTAX$ * MRow() --> nMouseRow * $ARGUMENTS$ * None * $RETURNS$ * The mouse cursor row position. * $DESCRIPTION$ * This function returns the current mouse row cursor position. * On graphical systems the value represents pixel rows. * On character-based systems the value represents character * rows as in Clipper. * $EXAMPLES$ * IF MRow() < 1 * ? "Mouse is on top row!" * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * MROW() is compliant with CA-Cl*pper 5.3, but has been extended * to work on graphical systems as well as character-based systems. * $PLATFORMS$ * $FILES$ * Library is rtl * $SEEALSO$ * MCOL() * $END$ */ /* $DOC$ * $FUNCNAME$ * MCOL() * $CATEGORY$ * Console input * $ONELINER$ * Returns the mouse cursor column position. * $SYNTAX$ * MCol() --> nMouseColumn * $ARGUMENTS$ * None * $RETURNS$ * The mouse cursor column position. * $DESCRIPTION$ * This function returns the column position of the mouse cursor. * On graphical systems the value represents pixels. * On character-based systems the value represents character * columns as in Clipper. * $EXAMPLES$ * IF MCol() < 1 * ? "Mouse is on left edge!" * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * MROW() is compliant with CA-Cl*pper 5.3, but has been extended * to work on graphical systems as well as character-based systems. * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * MROW() * $END$ */
c:\harbour\doc\en\lang.txt
/*
 * $Id: lang.txt 8143 2007-12-05 12:19:58Z ckedem $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Luiz Rafael Culik 
 *    Documentation for: HB_LANGNAME(), HB_LANGSELECT()
 *
 * Copyright 2004 Chen Kedem 
 *    Documentation for: HB_LANGERRMSG(),HB_LANGMESSAGE(),HB_SETCODEPAGE(),
 *                       HB_TRANSLATE()
 *
 * See doc/license.txt for licensing terms.
 *
 */


/*  $DOC$
 *  $FUNCNAME$
 *      HB_LANGERRMSG()
 *  $CATEGORY$
 *      Nation
 *  $ONELINER$
 *      Description of an error code using current language
 *  $SYNTAX$
 *      HB_LANGERRMSG(  ) --> cErrorMessage
 *  $ARGUMENTS$
 *       is one of the generic error codes (EG_...) defined
 *      in include/error.ch
 *  $RETURNS$
 *      HB_LANGERRMSG() return the error message string represented by
 *      the code .
 *  $DESCRIPTION$
 *      This function return the error message associated with an error
 *      code using the current language selected.
 *  $EXAMPLES$
 *      #include "error.ch"
 *      REQUEST HB_LANG_ES
 *      FUNCTION Main()
 *      // English: Argument error
 *      ? "English:", HB_LANGERRMSG( EG_ARG )
 *      HB_LANGSELECT( "ES" )
 *      // Spanish: Error de argumento
 *      ? "Spanish:", HB_LANGERRMSG( EG_ARG )
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour Extension
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library are rtl, lang
 *      Header is error.ch
 *  $SEEALSO$
 *      HB_LANGSELECT(),NATIONMSG()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_LANGMESSAGE()
 *  $CATEGORY$
 *      Nation
 *  $ONELINER$
 *      Returns international strings messages and errors
 *  $SYNTAX$
 *      HB_LANGMESSAGE(  ) --> cMessage
 *  $ARGUMENTS$
 *       is the message number to get.
 *  $RETURNS$
 *      HB_LANGMESSAGE() return the text associated with the code .
 *  $DESCRIPTION$
 *      HB_LANGMESSAGE() is similar to NATIONMSG() but give access to the
 *      whole list of language messages: Day and month names, generic error
 *      messages, internal errors, and others...
 *
 *      Use the header file hblang.ch for a list of base values for .
 *  $EXAMPLES$
 *      #include "hblang.ch"
 *      REQUEST HB_LANG_ES
 *      FUNCTION Main()
 *      // English: Monday
 *      ? "English:", HB_LANGMESSAGE( HB_LANG_ITEM_BASE_DAY + 1 )
 *      HB_LANGSELECT( "ES" )
 *      // Spanish: Lunes
 *      ? "Spanish:", HB_LANGMESSAGE( HB_LANG_ITEM_BASE_DAY + 1 )
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour Extension
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library are rtl, lang
 *      Header is hblang.ch
 *  $SEEALSO$
 *      HB_LANGSELECT(),NATIONMSG(),REQUEST
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_LANGNAME()
 *  $CATEGORY$
 *      Nation
 *  $ONELINER$
 *      Return the name of the current language module in use
 *  $SYNTAX$
 *      HB_LANGNAME() --> cLangName
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *        Name of the current language in use
 *  $DESCRIPTION$
 *      This function return the current name of the language module in use.
 *  $EXAMPLES$
 *      REQUEST HB_LANG_PT
 *      REQUEST HB_LANG_RO
 *      REQUEST HB_LANG_ES
 *      FUNCTION Main()
 *      HB_LANGSELECT( 'PT' )       // Default language is now Portuguese
 *      ? CDOW( DATE() )            //Segunda-feira
 *      ? 'Current language is ", HB_LANGNAME()             // Portuguese
 *      ? 'Old language id selected is ", HB_LANGSELECT()   // PT
 *      HB_LANGSELECT( 'RO' )       // Default language is now Romanian
 *      ? CMONTH( DATE() )          // Mai
 *      ? 'Old language id selected is ",HB_LANGSELECT()    // RO
 *      HB_LANGSELECT( 'ES' )       // Default language is now Spanish
 *      ? 'Current language is ",HB_LANGNAME()              // Spanish
 *      ? CMONTH( DATE() )          // Mayo
 *      ? CDOW( DATE() )            // Lunes
 *      RETURN NIL
 *  $TESTS$
 *      See tests/langapi.prg, tests/langmsg.prg
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour Extension
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library are rtl, lang
 *  $SEEALSO$
 *      HB_LANGSELECT(),NATIONMSG()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_LANGSELECT()
 *  $CATEGORY$
 *      Nation
 *  $ONELINER$
 *      Select a specific nation message module
 *  $SYNTAX$
 *      HB_LANGSELECT( [] ) --> cOldLang
 *  $ARGUMENTS$
 *        The optional ID of the country language module.
 *      Possible values for  are below as defined in the
 *      Lang library, sorted by language.
 *
 *      
 *      Language              Codepage       
 *
 *      Bulgarian             866            BG866
 *      Bulgarian             ISO-8859-5     BGISO
 *      Bulgarian             Windows-1251   BGWIN
 *      Basque                850            EU
 *      Catalan               850            CA
 *      Chinese Simplified    936            ZHGB
 *      Chinese Traditional   950            ZHB5
 *      Croatian              852            HR852
 *      Croatian              ISO-8859-2     HRISO
 *      Czech                 852            CS852
 *      Czech                 ISO-8859-2     CSISO
 *      Czech                 Kamenickych    CSKAM
 *      Czech                 Windows-1250   CSWIN
 *      Dutch                 437            NL
 *      English               437            EN
 *      Esperanto             850            EO
 *      French                850            FR
 *      Galician              850            GL
 *      German                850            DE
 *      German ANSI           ANSI           DEWIN
 *      Greek                 737            EL
 *      Greek ANSI            Windows-1253   ELWIN
 *      Hebrew                862            HE862
 *      Hebrew                Windows-1255   HEWIN
 *      Hungarian             852            HU852
 *      Hungarian             CWI-2          HUCWI
 *      Hungarian             ISO-8859-2     HUISO
 *      Hungarian             Windows-1250   HUWIN
 *      Icelandic             850            IS850
 *      Indonesian            437            ID
 *      Italian               437            IT
 *      Korean                949            KO
 *      Lithuanian            Windows-1257   LT
 *      Polish                852            PL852
 *      Polish                ISO-8859-2     PLISO
 *      Polish                Mazowia        PLMAZ
 *      Polish                Windows-1250   PLWIN
 *      Portuguese            850            PT
 *      Romanian              852            RO
 *      Russian               866            RU866
 *      Russian               KOI-8          RUKOI8
 *      Russian               Windows-1251   RUWIN
 *      Serbian               852            SR852
 *      Serbian               ISO-8859-2     SRISO
 *      Serbian               Windows-1251   SRWIN
 *      Slovenian             437            SL437
 *      Slovenian             852            SL852
 *      Slovenian             ISO-8859-2     SLISO
 *      Slovenian             Windows-1250   SLWIN
 *      Spanish               850            ES
 *      Spanish ANSI          ANSI           ESWIN
 *      Turkish               857            TR857
 *      Turkish               Windows-1254   TRWIN
 *      
* $RETURNS$ * The old language indentifier * $DESCRIPTION$ * This function set a default language module for date/month names, * internal warnigs, NatMsg messages and internal errors. When a * Lang ID is selected all messages will be output with the current * language selected until another one is selected or the program ends. * The default language is English (cLang == "EN"). * * NOTE: You must REQUEST every language module you intend to use. * For example: to use the Russian RU866 language you must add the * following to your program: REQUEST HB_LANG_RU866 * $EXAMPLES$ * REQUEST HB_LANG_PT * REQUEST HB_LANG_RO * REQUEST HB_LANG_ES * FUNCTION Main() * HB_LANGSELECT( 'PT' ) // Default language is now Portuguese * ? CDOW( DATE() ) // Segunda-feira * ? 'Old language id selected is ", HB_LANGSELECT() // PT * HB_LANGSELECT( 'RO' ) // Default language is now Romanian * ? CMONTH( DATE() ) // Mai * ? 'Old language id selected is ",HB_LANGSELECT() // RO * HB_LANGSELECT( 'ES' ) // Default language is now Spanish * ? CMONTH( DATE() ) // Mayo * ? CDOW( DATE() ) // Lunes * RETURN NIL * $TESTS$ * See tests/langapi.prg, tests/langmsg.prg * $STATUS$ * R * $COMPLIANCE$ * This function is a Harbour Extension. * $PLATFORMS$ * All * $FILES$ * Libraty are rtl, lang * $SEEALSO$ * HB_LANGNAME(),HB_SETCODEPAGE(),NATIONMSG(),REQUEST * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_SETCODEPAGE() * $CATEGORY$ * Nation * $ONELINER$ * Select the active code page by language ID * $SYNTAX$ * HB_SETCODEPAGE( [] ) --> cOldLang * $ARGUMENTS$ * The optional ID of the country language module. * Possible values for are below as defined in the * Codepage library, sorted by language. * * * Language Codepage * * Bulgarian 866 BG866 * Bulgarian ISO-8859-5 BGISO * Bulgarian MIK BGMIK * Bulgarian Windows-1251 BGWIN * Croatian 437 HR437 * Croatian 852 HR852 * Croatian Windows-1250 HR1250 * Czech 852 CS852 * Czech ISO-8859-2 CSISO * Czech KAM CSKAM * Czech Windoes-1250 CSWIN * English 437 EN * French 850 FR * German 850 DE * German ISO-8859-1 DEWIN * Greek 737 EL * Greek Windows-1253 ELWIN * Hungarian (ntxhu852) 852 HU852 * Hungarian (sixhu852) 852 HU852S * Hungarian (ntxhu852) ISO-8859-2 HUISO * Hungarian (sixhu852) ISO-8859-2 HUISOS * Hungarian (ntxhu852) Windows-1250 HUWIN * Hungarian (sixhu852) Windows-1250 HUWINS * Italian 437 IT437 * Italian 850 IT850 * Italian ISO-8859-1b ITISB * Italian ISO-8859-1 ITISO * Lithuanian Windows-1257 LT * Polish 852 PL852 * Polish ISO-8859-2 PLISO * Polish Mazowia PLMAZ * Polish Windows-1250 PLWIN * Portuguese 850 PT850 * Portuguese ISO-8859-1 PTISO * Russian 866 RU866 * Russian KOI-8 RUKOI8 * Russian Windows-1251 RU1251 * Serbian Windows-1251 SRWIN * Slovak 852 SK852 * Slovak ISO-8859-2 SKISO * Slovak Kamenicky SKKAM * Slovak Windows-1250 SKWIN * Slovenian 437 SL437 * Slovenian 852 SL852 * Slovenian ISO-8859-2 SLISO * Slovenian Windows-1250 SLWIN * Spanish 850 ES * Spanish ISO-8859-1 ESWIN * Spanish Modern ISO-8859-1 ESMWIN * Swedish 850 SV850 * Swedish (Clipper) 437 SVCLIP * Swedish ISO-8859-1 SVWIN * Turkish 857 TR857 * Turkish Windows-1254 TRWIN * Ukrainian 866 UA866 * Ukrainian KOI-8U UAKOI8 * Ukrainian Windows-1251 UA1251 *
* $RETURNS$ * The old language indentifier * $DESCRIPTION$ * HB_SETCODEPAGE() set the active code page use by Harbour for * sorting and comparing strings. The default code page use ASCII * order (cLang == "EN"). * * NOTE: You must REQUEST every code page module you intend to use. * For example: to use the Russian RU866 code page you must add the * following to your program: REQUEST HB_CODEPAGE_RU866 * $EXAMPLES$ * REQUEST HB_CODEPAGE_HU852 * FUNCTION Main() * LOCAL cTxt := CHR( 71 ) + " > " + CHR( 144 ) + " is" * ? HB_SETCODEPAGE() // EN * ? cTxt, CHR( 71 ) > CHR( 144 ) // G >  is .F. * ? HB_SETCODEPAGE( "HU852" ) // EN * ? cTxt, CHR( 71 ) > CHR( 144 ) // G >  is .T. * ? HB_SETCODEPAGE( "EN" ) // HU852 * ? cTxt, CHR( 71 ) > CHR( 144 ) // G >  is .F. * RETURN NIL * $STATUS$ * R * $COMPLIANCE$ * This function is a Harbour Extension. * * This function is only visible if source/rtl/cdpapi.c was compiled * without the HB_CDP_SUPPORT_OFF flag. * $PLATFORMS$ * All * $FILES$ * Libraty are rtl, codepage * $SEEALSO$ * HB_LANGNAME(),HB_LANGSELECT(),HB_TRANSLATE(),NATIONMSG(),REQUEST * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_TRANSLATE() * $CATEGORY$ * Nation * $ONELINER$ * Translate a string from one code page to the other * $SYNTAX$ * HB_TRANSLATE( , [], [] ) --> cDstText * $ARGUMENTS$ * Is the source string to translate. * * Is the optional character code page ID of the source * string. If not specified, the default code page is used. * * Is the optional character code page ID of the destination * string. If not specified, the default code page is used. * $RETURNS$ * HB_TRANSLATE() return destination string converted from the source * string. * $DESCRIPTION$ * HB_TRANSLATE() try to convert a source string from one code page * into the other. If a code page ID is not recognized, or not linked * in, the default code page is used. HB_TRANSLATE() is used usually * to convert between the Dos and the Windows code pages of the same * language. * * NOTE: If the source code page and target code page does not have * the same number of characters, a translation can not be done and * the destination string is a copy of the source string. * * NOTE: You must REQUEST every code page module you intend to use. * For example: to use the Russian RU866 code page you must add the * following to your program: REQUEST HB_CODEPAGE_RU866 * $EXAMPLES$ * REQUEST HB_CODEPAGE_DE * REQUEST HB_CODEPAGE_DEWIN * FUNCTION Main() * LOCAL cTxt := "A" + CHR( 142 ) + "BC" * ? "German 850 text:", cTxt * ? "German ANSI text:", HB_TRANSLATE( cTxt, "DE", "DEWIN" ) * RETURN NIL * $STATUS$ * R * $COMPLIANCE$ * This function is a Harbour Extension. * * This function is only visible if source/rtl/cdpapi.c was compiled * without the HB_CDP_SUPPORT_OFF flag. * $PLATFORMS$ * All * $FILES$ * Libraty are rtl, codepage * $SEEALSO$ * HB_LANGSELECT(),HB_SETCODEPAGE(),NATIONMSG(),REQUEST * $END$ */
c:\harbour\doc\en\license.txt
/*
 * $Id: license.txt 4109 2001-06-20 16:39:02Z dholm $
 */

/*  $DOC$
 *  $FUNCNAME$
 *     License
 *  $CATEGORY$
 *     Document
 *  $ONELINER$
 *     Harbour License
 *  $DESCRIPTION$
 *
 *  THE HARBOUR PROJECT COMPILER LICENSE   
 *   ====================================   
 *  
 *   Note: This license applies to most of the files in the source/compiler
 *         directory.  
 *  
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.  
 *  
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.  
 *  
 *   You should have received a copy of the GNU General Public License
 *   along with this program; if not, write to the Free Software
 *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
 *   their web site at http://www.gnu.org/).  
 *  
 *  
 *   THE HARBOUR PROJECT LIBRARY LICENSE  
 *   ===================================  
 *  
 *   Note: This license applies to most of the files in the include directory,
 *         source directory, and subdirectories.  
 *  
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2, or (at your option)
 *   any later version.  
 *  
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.  
 *  
 *   You should have received a copy of the GNU General Public License
 *   along with this software; see the file COPYING.  If not, write to
 *   the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 *   Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).  
 *  
 *   As a special exception, the Harbour Project gives permission for
 *   additional uses of the text contained in its release of Harbour.  
 *  
 *   The exception is that, if you link the Harbour libraries with other
 *   files to produce an executable, this does not by itself cause the
 *   resulting executable to be covered by the GNU General Public License.
 *   Your use of that executable is in no way restricted on account of
 *   linking the Harbour library code into it.  
 *  
 *   This exception does not however invalidate any other reasons why
 *   the executable file might be covered by the GNU General Public License.  
 *  
 *   This exception applies only to the code released by the Harbour
 *   Project under the name Harbour.  If you copy code from other
 *   Harbour Project or Free Software Foundation releases into a copy of
 *   Harbour, as the General Public License permits, the exception does
 *   not apply to the code that you add in this way.  To avoid misleading
 *   anyone as to the status of such modified files, you must delete
 *   this exception notice from them.  
 *  
 *   If you write modifications of your own for Harbour, it is your choice
 *   whether to permit this exception to apply to your modifications.
 *   If you do not wish that, delete this exception notice.  
 *  
 *   
 *   THE OLD HARBOUR PROJECT LIBRARY LICENSE  
 *   =======================================  
 *  
 *   Note: This license only applies to the following files:  
 *   
 *      contrib\libmisc\dates2.c (Only the DateTime() function by Jon Berg)
 *      samples\pe\*
 *      source\rtl\philes.c
 *      source\rtl\binnum.c
 *      source\lang\msgsr852.c
 *      source\lang\msgpl852.c
 *      source\lang\msgpliso.c
 *      source\lang\msgplmaz.c
 *      source\lang\msgeu.c
 *      source\lang\msgcsiso.c
 *      source\lang\msgcswin.c
 *      source\lang\msgcskam.c
 *      source\lang\msgsriso.c
 *      source\lang\msgde.c
 *      source\lang\msghr852.c
 *      source\lang\msgcs852.c
 *      source\lang\msghriso.c
 *      source\lang\msgis850.c
 *   
* This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version, with one exception: * * The exception is that if you link the Harbour Runtime Library (HRL) * and/or the Harbour Virtual Machine (HVM) with other files to produce * an executable, this does not by itself cause the resulting executable * to be covered by the GNU General Public License. Your use of that * executable is in no way restricted on account of linking the HRL * and/or HVM code into it. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit * their web site at http://www.gnu.org/). * * * THE HARBOUR PROJECT CONTRIB LICENSE * =================================== * * There is no one single license that applies to the Harbour Project * contrib files. Some files use the Harbour Project Compiler license. * Some files use the Harbour Project Library license. Some files use * the old Harbour Project Library license (and in one case, just one * function in a file that otherwise uses the Harbour Project Library * license uses the old license - this is the DateTime() function in * the file contrib\libmisc\dates2.c). Some files may even use other * types of free software or open source software licenses. Some files * have been donated to the public domain. If you use any of the contrib * files, you need to investigate the license that applies to each file. * * $SEEALSO$ * Overview * $END$ */
c:\harbour\doc\en\macro.txt
/*
 * $Id: macro.txt 4298 2001-08-19 13:30:56Z lculik $
 */

/*  $DOC$
 *  $FUNCNAME$
 *      Macro compiler
 *  $CATEGORY$
 *      Document
 *  $ONELINER$
 *      Macro compiler
 *  $DESCRIPTION$
 *
 *      Invoking the macro compiler:   
 *      ==============================   
 *
 *         &variable                     
 *      or                               
 *         &( expression )               
 *      or                               
 *         &variable.text                
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_SETMACRO()
 *  $CATEGORY$
 *      Macro compiler
 *  $ONELINER$
 *      Enable/disable the macro compiler runtime features.
 *  $SYNTAX$
 *      HB_SETMACRO( , [] ) --> 
 *  $ARGUMENTS$
 *       One of the HB_SM_* constants defined in set.ch.
 *
 *       .T. to enable or .F. to disable a feature
 *  $RETURNS$
 *      HB_SETMACRO() return the old state of requested feature.
 *  $DESCRIPTION$
 *      This function enables or disables some features of the macro
 *      compiler. The Harbour is extending the macro features compared
 *      to an original set available in Clipper. Enabling/disabling
 *      some of them allows to keep strict Clipper compatibility.
 *
 *      Available features are:
 *      HB_SM_HARBOUR - enables harbour extensions:
 *            operators: ++, --, +=, -=, *=, /=, ^=
 *            objects: assigments to an instance variable
 *      HB_SM_XBASE - enables other xbase dialects extensions:
 *            expanding of expresions lists
 *      HB_SM_SHORTCUTS - enables optimized evaluation of
 *            logical operators (.and., .or.)
 *      HB_SM_PREPROC - enables preprocessing of commands
 *            This is meaningfull if Harbour is compiled with
 *            HB_MACRO_STATEMENTS flag
 *
 *  $EXAMPLES$
 *      INIT PROCEDURE IWANTCLIPPER()
 *        HB_SETMACRO( HB_SM_HARBOUR, .F. )
 *        HB_SETMACRO( HB_SM_XBASE, .F. )
 *      RETURN
 *
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Header file is set.ch
 *      Library is macro
 *  $SEEALSO$
 *      Macro compiler
 *  $END$
 */

c:\harbour\doc\en\math.txt
/*
 * $Id: math.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Luiz Rafael Culik 
 *    Documentation for: ABS(),EXP(),LOG(),INT(),MAX()
 *    MIN(),SQRT(),ROUND()
 * Copyright 2001 IntTec GmbH, Neunlindenstr 32, 79106 Freiburg, Germany
 *           Author: Martin Vogel 
 *    Documentation for Math API functions
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ABS()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Return the absolute value of a number.
 *  $SYNTAX$
 *      ABS() --> 
 *  $ARGUMENTS$
 *       Any number.
 *  $RETURNS$
 *       The absolute numeric value.
 *  $DESCRIPTION$
 *      This function yields the absolute value of the numeric value or
 *      expression .
 *  $EXAMPLES$
 *      Proc Main()
 *
 *      Local nNumber:=50
 *      Local nNumber1:=27
 *      cls
 *
 *      qout(nNumber-nNumber1)
 *      qout(nNumber1-nNumber)
 *      qout(ABS(nNumber-nNumber1))
 *      qout(ABSnNumber1-nNumber))
 *      qout(ABS( -1 * 345))
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      EXP()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      EXP()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Calculates the value of e raised to the passed power.
 *  $SYNTAX$
 *      EXP(  ) --> 
 *  $ARGUMENTS$
 *       Any  real number.
 *  $RETURNS$
 *        The anti-logarithm of 
 *  $DESCRIPTION$
 *      This function returns the value of e raised to the power of
 *      .  It is the inverse of LOG().
 *  $EXAMPLES$
 *      ? EXP(45)
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      LOG()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      INT()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Return the integer port of a numeric value.
 *  $SYNTAX$
 *      INT(  ) --> 
 *  $ARGUMENTS$
 *       Any  numeric value.
 *  $RETURNS$
 *       The integer portion of the numeric value.
 *  $DESCRIPTION$
 *      This function converts a numeric expression to an integer. All
 *      decimal digits are truncated. This function does not round a value
 *      upward or downward; it merely truncates a number at the decimal
 *      point.
 *  $EXAMPLES$
 *      SET Decimal to 5
 *      ? INT(632512.62541)
 *      ? INT(845414111.91440)
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ROUND(),STRZERO()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      LOG()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Returns the natural logarithm of a number.
 *  $SYNTAX$
 *      LOG(  ) --> 
 *  $ARGUMENTS$
 *       Any numeric expression.
 *  $RETURNS$
 *       The natural logarithm of .
 *  $DESCRIPTION$
 *      This function returns the natural logarithm of the number .
 *      If  is 0 or less than 0, a numeric overflow occurs,
 *      which is depicted on the display device as a series of asterisks.
 *      This function is the inverse of EXP().
 *  $EXAMPLES$
 *      ? LOG(632512)
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      EXP()
 *  $END$
 */


/*  $DOC$
 *  $FUNCNAME$
 *      MAX()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Returns the maximum of two numbers or dates.
 *  $SYNTAX$
 *      MAX(,)  --> 
 *  $ARGUMENTS$
 *        Any date or numeric value.
 *
 *       Any date or numeric value (same type as ).
 *  $RETURNS$
 *       The larger numeric (or later date) value.
 *  $DESCRIPTION$
 *      This function returns the larger of the two passed espressions. If
 *       and  are numeric data types, the value returned by
 *      this function will be a numeric data type as well and will be the
 *      larger of the two numbers passed to it. If  and 
 *      are date data types, the return value will be a date data type as
 *      well. It will be the later of the two dates passed to it.
 *  $EXAMPLES$
 *      ? MAX(214514214,6251242142)
 *      ? MAX(CTOD('11/11/2000'),CTOD('21/06/2014')
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      Min()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MIN()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Determines the minumum of two numbers or dates.
 *  $SYNTAX$
 *      MIN(,)  --> 
 *  $ARGUMENTS$
 *        Any date or numeric value.
 *
 *       Any date or numeric value.
 *  $RETURNS$
 *        The smaller numeric (or earlier date) value.
 *  $DESCRIPTION$
 *      This function returns the smaller of the two passed espressions.
 *       and  must be the same data type. If numeric, the
 *      smaller number is returned. If dates, the earlier date is returned.
 *  $EXAMPLES$
 *      ? MIN(214514214,6251242142)
 *      ? MIN(CTOD('11/11/2000'),CTOD('21/06/2014')
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      MAX()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MOD()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Return the modulus of two numbers.
 *  $SYNTAX$
 *      MOD( ,) -->  
 *  $ARGUMENTS$
 *        Numerator in a divisional expression.
 *
 *       Denominator in a divisional expression.
 *  $RETURNS$
 *        The remainder after the division operation.
 *  $DESCRIPTION$
 *      This functuion returns the remainder of one number divided by
 *      another.
 *  $EXAMPLES$
 *      ? MOD(12,8.521)
 *      ? Mod(12,0)
 *      ? Mod(62412.5142,4522114.12014)
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This Function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      %
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SQRT()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Calculates the square root of a number.
 *  $SYNTAX$
 *      SQRT(  ) --> 
 *  $ARGUMENTS$
 *       Any  numeric value.
 *  $RETURNS$
 *         The square root of .
 *  $DESCRIPTION$
 *      This function returns the square root of . The precision
 *      of this evaluation is based solely on the settings of the
 *      SET DECIMAL TO command. Any negative number passed as 
 *      will always return a 0.
 *  $EXAMPLES$
 *      SET Decimal to 5
 *      ? SQRT(632512.62541)
 *      ? SQRT(845414111.91440)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ROUND()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ROUND()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Rounds off a numeric expression.
 *  $SYNTAX$
 *      ROUND( , ) --> 
 *  $ARGUMENTS$
 *       Any numeric value.
 *
 *        The number of places to round to.
 *  $RETURNS$
 *       The rounded number.
 *  $DESCRIPTION$
 *      This function rounds off the value of  to the number of
 *      decimal places specified by . If the value of  is
 *      a negative number, the function will attempt to round  in
 *      whole numbers. Numbers from 5 through 9 will be rounded up, all
 *      others will be rounded down.
 *  $EXAMPLES$
 *      ? ROUND(632512.62541,5)
 *      ? ROUND(845414111.91440,3)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      INT(),STR(),VAL(),SET FIXED
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mathGetLastError()
 *  $CATEGORY$
 *      Math API
 *  $ONELINER$
 *      get the last math lib error
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_mathGetLastError (HB_MATH_EXCEPTION * phb_exc)
 *                          --> int iMathErrorType
 *  $ARGUMENTS$
 *      phb_exc     pointer to HB_MATH_EXCEPTION structure, if not NULL,
 *                  the structure will be filled with information about the
 *                  last math error:
 *
 *           typedef struct _HB_MATH_EXCEPTION {
 *             int type;        // Math error type, is one of the constants
 *                              // HB_MATH_ERR_xxx defined in hbmath.ch
 *             char *funcname;  // Pointer to name of the math C RTL routine
 *                              // that caused the error.
 *             char *error;     // Pointer to error description.
 *             double arg1;     // First and
 *             double arg2;     // Second double argument to the math routine.
 *             double retval;   // Corrected return value for the math routine.
 *             int retvalwidth; // Width and
 *             int retvaldec;   // Decimals of the corrected return value,
 *                              // both default to -1
 *             int handled;     // 1, if the math error is already corrected,
 *                              // 0 otherwise.
 *          } HB_MATH_EXCEPTION;
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbmath.h
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mathResetError()
 *  $CATEGORY$
 *      Math API
 *  $ONELINER$
 *      reset the internal math error information structure
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_mathResetError (void) --> void
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbmath.h
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mathIsMathErr()
 *  $CATEGORY$
 *      Math API
 *  $ONELINER$
 *      check if harbour math error handling is available
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_mathIsMathErr (void) --> int iIsMathHandler
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbmath.h
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mathSetHandler()
 *  $CATEGORY$
 *      Math API
 *  $ONELINER$
 *      set the harbour math handler
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_mathSetHandler (HB_MATH_HANDLERPROC handlerproc)
 *                        --> HB_MATH_HANDLERPROC previous_handerproc
 *  $ARGUMENTS$
 *      handlerproc             custom math handler
 *              typedef int (* HB_MATH_HANDLERPROC)(HB_MATH_EXCEPTION * err)
 *  $RETURNS$
 *      previous_handlerproc    previous math handler
 *              typedef int (* HB_MATH_HANDLERPROC)(HB_MATH_EXCEPTION * err)
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbmath.h
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mathGetHandler()
 *  $CATEGORY$
 *      Math API
 *  $ONELINER$
 *      get current Harbour math error handler
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_mathGetHandler (void) --> HB_MATH_HANDLERPROC handlerproc
 *  $ARGUMENTS$
 *      handlerproc             custom math handler
 *              typedef int (* HB_MATH_HANDLERPROC)(HB_MATH_EXCEPTION * err)
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbmath.h
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mathSetErrMode()
 *  $CATEGORY$
 *      Math API
 *  $ONELINER$
 *      set math error handling mode
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_mathSetErrMode (int imode) --> int ioldmode
 *  $ARGUMENTS$
 *      imode        math error handling mode, one of the following
 *                   constants, defined in hbmath.ch:
 *                     HB_MATH_ERRMODE_DEFAULT
 *                     HB_MATH_ERRMODE_CDEFAULT
 *                     HB_MATH_ERRMODE_USER
 *                     HB_MATH_ERRMODE_USERDEFAULT
 *                     HB_MATH_ERRMODE_USERCDEFAULT
 *  $RETURNS$
 *      ioldmode     old math error handling mode
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbmath.h
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_mathGetErrMode()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_mathGetErrMode()
 *  $CATEGORY$
 *      Math API
 *  $ONELINER$
 *      get math error handling mode
 *  $SYNTAX$
 *      C Prototype
 *
 *      #include 
 *      hb_mathGetErrMode (void) --> imode
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *      imode       math error handling mode
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Compliance is not applicable to API calls.
 *  $FILES$
 *      Header file is hbmath.h
 *      Library is rtl
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      hb_mathSetErrMode()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_MATHERMODE()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Set/Get math error handling mode
 *  $SYNTAX$
 *      HB_MATHERMODE ([]) --> 
 *  $ARGUMENTS$
 *      []   new math error handling mode, one of the following
 *                    constants, defined in hbmath.ch:
 *                     HB_MATH_ERRMODE_DEFAULT
 *                     HB_MATH_ERRMODE_CDEFAULT
 *                     HB_MATH_ERRMODE_USER
 *                     HB_MATH_ERRMODE_USERDEFAULT
 *                     HB_MATH_ERRMODE_USERCDEFAULT
 *  $RETURNS$
 *          old math error handling mode
 *  $DESCRIPTION$
 *  $EXAMPLES$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Header file is hbmath.ch
 *      Library is rtl
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_MATHERBLOCK()
 *  $CATEGORY$
 *      Math
 *  $ONELINER$
 *      Set/Get math error handling codeblock
 *  $SYNTAX$
 *      HB_MATHERBLOCK ([]) --> 
 *  $ARGUMENTS$
 *  $RETURNS$
 *  $DESCRIPTION$
 *  $EXAMPLES$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *
 *  $END$
 */

c:\harbour\doc\en\memo.txt
/*
 * $Id: memo.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Jose Lalin 
 *    MEMOTRAN() documentation
 *    HARDCR() documentation
 *
 * Copyright 2003 Alejandro de Garate 
 *    MEMOREAD() documentation
 *    MEMOWRIT() documentation
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MEMOTRAN()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Converts hard and soft carriage returns within strings.
 *  $SYNTAX$
 *      MEMOTRAN( , ,  ) --> 
 *  $ARGUMENTS$
 *       is a string of chars to convert.
 *
 *       is the character to replace hard returns with. If not
 *      specified defaults to semicolon.
 *
 *       is the character to replace soft returns with. If not
 *      specified defaults to single space.
 *  $RETURNS$
 *       Trasformed string.
 *  $DESCRIPTION$
 *      Returns a string/memo with carriage return chars converted to
 *      specified chars.
 *  $EXAMPLES$
 *      ? MEMOTRAN( DATA->CNOTES )
 *  
 *  $TESTS$
 *      @ 1, 1 SAY MEMOTRAN( Data->CNOTES )
 *      will display converted string starting on row two, column two of the
 *      current device.
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      MEMOTRAN() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      HARDCR(),STRTRAN()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HARDCR()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Replace all soft carriage returns with hard carriages returns.
 *  $SYNTAX$
 *      HARDCR(  ) --> 
 *  $ARGUMENTS$
 *       is a string of chars to convert.
 *  $RETURNS$
 *       Trasformed string.
 *  $DESCRIPTION$
 *      Returns a string/memo with soft carriage return chars converted to
 *      hard carriage return chars.
 *  $EXAMPLES$
 *      ? HARDCR( Data->CNOTES )
 *  
 *  $TESTS$
 *      @ 1, 1 SAY HARDCR( Data->CNOTES )
 *      will display converted string starting on row two, column two of the
 *      current device.
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      HARDCR() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      MEMOTRAN(),STRTRAN()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MEMOREAD()
 *  $CATEGORY$
 *      Memo Field
 *  $ONELINER$
 *      Return the text file's contents as a character string
 *  $SYNTAX$
 *      MEMOREAD(  ) --> cString
 *  $ARGUMENTS$
 *       is the filename to read from disk.
 *                  It must include the file extension. If file to be read
 *                  lives in another directory, you must include the path.
 *  $RETURNS$
 *      Returns the contents of a text file as a character string.
 *      The maximum size of the file that can be read is the same as the
 *      maximum size of a character string (more than 2 Mb). It has not the
 *      64 Kb limit as in Clipper.
 *      If  cannot be found, nor read, function returns a null
 *      string ("").
 *  $DESCRIPTION$
 *      MEMOREAD() is a function that reads the content of a text file (till
 *      now) from disk (floppy, HD, CD-ROM, etc.) into a memory string.
 *      In that way you can manipulate as any character string or assigned
 *      to a memo field to be saved in a database.
 *
 *      MEMOREAD() function is used together with MEMOEDIT() and MEMOWRIT()
 *      to get from disk text from several sources that would be edited,
 *      searched, replaced, displayed, etc.
 *
 *      It is used to import data from other sources to our database.
 *
 *      Note:
 *      MEMOREAD() does not use the settings SET DEFAULT or SET PATH to
 *      search for .
 *      It searches for  in the current directory.
 *      If the file is not found, then MEMOREAD() searches in the DOS path.
 *
 *      Over a network, MEMOREAD() attempts to open  in read-only
 *      mode and shared.  If the file is used in mode exclusive by another
 *      process, the function will returns a null string ("").
 *
 *      Is one of the most useful Clipper functions!, it really makes simple
 *  $EXAMPLES$
 *      *  This example uses MEMOREAD() to assign the contents of a text
 *         file to a character variable for later search
 *
 *         cFile   := "account.prg"
 *         cString := MEMOREAD( cFile )
 *
 *         IF AT( "Melina", cString) == 0             // check for copyright
 *            MEMOWRIT( cFile, cCopyright + cString ) // if not, add it!
 *         ENDIF
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      MEMOREAD() is fully CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      MEMOEDIT(),MEMOWRIT(),REPLACE
 *  $END$
 */


/*  $DOC$
 *  $FUNCNAME$
 *      MEMOWRIT()
 *  $CATEGORY$
 *      Memo Field
 *  $ONELINER$
 *      Write a memo field or character string to a text file on disk
 *  $SYNTAX$
 *      MEMOWRIT( , , [] ) --> lSuccess
 *  $ARGUMENTS$
 *       is the filename to read from disk.
 *                  It must include the file extension. If file to be read
 *                  lives in another directory, you must include the path.
 *
 *         Is the memo field or character string, to be write to
 *                  .
 *
 *       Is a logic variable that settle if the "end of file"
 *                  character - CHR(26) - is written to disk.
 *                  This parameter is optional. By default is true (.T.)
 *  $RETURNS$
 *      Function returns true (.T.) if the writing operation was successful;
 *      otherwise, it returns false (.F.).
 *  $DESCRIPTION$
 *      This a function that writes a memo field or character string to a
 *      text file on disk (floppy, HD, CD-ROM, etc.)
 *      If you not specified a path, MEMOWRIT() writes  to the
 *      current directory. If  exists, it is overwritten.
 *
 *      Note:
 *      There is a third parameter (optional), , (not found in
 *      Clipper) which let to programmer change the default behavior of
 *      - allways - to write the EOF character, CHR(26) as in Clipper.
 *      If there is no third parameter, nothing change, EOF is written as
 *      in Clipper, the same occurs when  is set to .T.
 *      But, if  is set to .F., EOF char is Not written to the
 *      end of the file.
 *
 *      MEMOWRIT() function is used together with MEMOREAD() and MEMOEDIT()
 *      to save to disk text from several sources that was edited, searched,
 *      replaced, displayed, etc.
 *
 *      It is used to export the database to another format.
 *
 *      Note:
 *      MEMOWRIT() do not use the directory settings SET DEFAULT.
 *
 *      Is one of the most useful Clipper functions!, it really makes simple
 *  $EXAMPLES$
 *      *  This example uses MEMOWRIT() to write the contents of a character
 *         variable to a text file.
 *
 *         cFile   := "account.prg"
 *         cString := MEMOREAD( cFile )
 *
 *         IF AT( "Melina", cString) == 0             // check for copyright
 *            MEMOWRIT( cFile, cCopyright + cString ) // if not, add it!
 *         ENDIF
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      MEMOWRIT() is fully CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      MEMOEDIT(),MEMOREAD()
 *  $END$
 */



c:\harbour\doc\en\memvar2.txt
/*
 * $Id: memvar2.txt 9193 2008-08-19 15:07:28Z vszakats $
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      FIELD
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Declares a list of database field names.
 *  $SYNTAX$
 *      FIELD  [,  [in ]
 *  $ARGUMENTS$
 *          A valid field name
 *
 *         Additional field name
 *
 *       An valid alias name
 *  $RETURNS$
 *      None
 *  $DESCRIPTION$
 *      This command declares the names of fields  (and  and
 *      following) with an optional alias identifier as  for each.
 *      This command allow  Harbour to resolve any reference to a field
 *      specified in the field list by viewing it as a field when it is not
 *      referenced by an alias. If a field is not listed in this list and it
 *      is not  explicity tagged with an alias indentifier, it may be viewed
 *      as a memory variable, which may cause run-time errors. This command
 *      has no effect on memory variables or on field reference buried within
 *      a macro expression.
 *  $EXAMPLES$
 *      Func main
 *      FIELD iD
 *      FIELD Name
 *      USE TESTS NEW
 *      name:="Sales"
 *      Id:=5
 *      USE
 *      Return Nil
 *  $TESTS$
 *      See tests/testwarn.prg
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This command works exactaly as CA-Cl*pper.
 *  $PLATFORMS$
 *      All.
 *  $FILES$
 *      None.
 *  $SEEALSO$
 *      MEMVAR,PRIVATE,PUBLIC,STATIC
 *  $END$
 */


/*  $DOC$
 *  $COMMANDNAME$
 *      LOCAL
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Initializes a local memory variable or array
 *  $SYNTAX$
 *      LOCAL  [:=  ]
 *  $ARGUMENTS$
 *          Name of a memory variable or array.
 *
 *         Value to be assinged to a variable or array
 *  $RETURNS$
 *      None
 *  $DESCRIPTION$
 *      This command created a LOCAL memory variable or array. The name
 *      of either is specified in . If more then one variable is being
 *      initialized with the LOCAL command,separate each entry with a comma.
 *      If a variable or an array is to be assingned a start-up value,that
 *      expression may be specified in  and folling. Is Strong type
 *      compile mode is used, the Compiler will check if the value recived
 *      matchs the type specified in .
 *
 *      LOCAL varibles are symbols generated at run time and are resolved
 *      at compile time. The visibility and life span of a LOCAL variable or
 *      array is limited to the function or procedure in which it is defined.
 *
 *      No macro expansions are allowed in the LOCAL declaration statement.
 *
 *      No Harbour command other then FUNCTION, PROCEDURE, PUBLIC, PRIVATE,
 *      PARAMETERS, MEMVAR, STATIC and FIELD, may precede the LOCAL command.
 *
 *      LOCAL array reference may not be initialized (i.e., assigned values)
 *      on the same command line as the LOCAL command statement. This can be
 *      done later in the program.
 *
 *      LOCAL variables and arrays are not affected by the RELEASE command.
 *  $EXAMPLES$
 *      Function Main2()
 *      Local n, lVar
 *
 *      n := IIF( lVar, 'A', 3 )
 *      n := 2
 *      n := 'a'
 *      n := seconds() + 2
 *      n := int( seconds() + 2 )
 *      Return( NIL )
 *  $TESTS$
 *      See tests/testwarn.prg for more examples
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This command works exactaly as CA-Cl*pper.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      None
 *  $SEEALSO$
 *      FIELD,PRIVATE,PUBLIC,STATIC,MEMVAR
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      MEMVAR
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Declares private and public variables and arrays.
 *  $SYNTAX$
 *      MEMVAR 
 *  $ARGUMENTS$
 *       Memory variable Name
 *  $RETURNS$
 *      None.
 *  $DESCRIPTION$
 *      This command tells the compiler to resolve any reference to a memory
 *      variable designated within this list s if it possessed an explicit
 *      memory variable alias with either the M-> or MEMVAR-> prefix.Only
 *      those memory variables that do not contain any such explicit are
 *      affected by this command. Those memory variabls within macro
 *      expansions are not affected by this command.
 *
 *      The MEMVAR declaration must apear before any executable commands;it
 *      is similat to the LOCAL,STATIC,FIELD,PARAMETERS,FUNCTION, and
 *      PROCEDURE commands statements.
 *  $EXAMPLES$
 *      MEMVAR y As Numeric
 *      Function Main2()
 *      Local n , lVar
 *
 *      n := IIF( lVar, 'A', 3 )
 *      n := 2
 *      n := 'a'
 *      n := seconds() + 2
 *      n := int( seconds() + 2 )
 *      y := n
 *      ? y
 *      Return( NIL )
 *  $TESTS$
 *      See tests/testwarn.prg for more examples
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This command works exactaly as CA-Cl*pper.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      None.
 *  $SEEALSO$
 *      LOCAL,STATIC,FIELD,PRIVATE,PUBLIC
 *  $END$
 */
c:\harbour\doc\en\menu.txt
/*
 * $Id: menu.txt 9192 2008-08-19 14:17:51Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: __ATPROMPT(), @...PROMPT, __MENUTO(), MENU TO
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ACHOICE()
 *  $CATEGORY$
 *      Array
 *  $ONELINER$
 *      Allows selection of an element from an array
 *  $SYNTAX$
 *      ACHOICE(, , , , , [ | ], [ | ], [], []) --> nPosition
 *  $ARGUMENTS$
 *                 - topmost row used to display array (default 0)
 *
 *                - leftmost row used to display array (default 0)
 *
 *              - bottommost row used to display array (default MAXROW())
 *
 *               - rightmost row used to display array (default MAXCOL())
 *
 *          - the character array of items from which to select
 *
 *       - an array of items, either logical or character,
 *                         which is used to determine if a particular item
 *                         may be selected.  If the type of a given item is
 *                         character, it is macro evaluated, and the result
 *                         is expected to be a logical.  A value of .T. means
 *                         that the item may be selected, .F. that it may not.
 *                         (See next argument: lSelectableItems)
 *
 *        - a logical value which is used to apply to all
 *                         items in acMenuItems.  If .T., all items may be
 *                         selected; if .F., none may be selected.
 *                         (See previous argument: alSelectableItems)
 *                         Default .T.
 *
 *        - the name of a function to be called which may
 *                         affect special processing of keystrokes.  It is
 *                         specified without parentheses or parameters.
 *                         When it is called, it will be supplied with the
 *                         parameters: nMode, nCurElement, and nRowPos.
 *                         Default NIL.
 *
 *           - a codeblock to be called which may
 *                         affect special processing of keystrokes. It
 *                         should be specified in the form
 *                         {|nMode, nCurElemenet, nRowPos| ;
 *                         MyFunc(nMode, nCurElemenet, nRowPos) }.
 *                         Default NIL.
 *
 *         - the number of the element to be highlighted as
 *                         the current item when the array is initially
 *                         displayed.  1 origin.  Default 1.
 *
 *           - the number of the window row on which the initial
 *                         item is to be displayed. 0 origin.  Default 0.
 *  $RETURNS$
 *        - the number of the item to be selected, or 0 if the
 *                   selection was aborted.
 *  $DESCRIPTION$
 *      Allows selection of an element from an array.
 *      Please see standard Clipper documentation for ACHOICE for
 *      additional detail.
 *  $EXAMPLES$
 *      aItems := { "One", "Two", "Three" }
 *      nChoice := ACHOICE( 10, 10, 20, 20, aItems )
 *      IF nChoice == 0
 *          ? "You did not choose an item"
 *      ELSE
 *          ? "You chose element " + LTRIM( STR( nChoice ) )
 *          ?? " which has a value of " + aItems[ nChoice ]
 *      ENDIF
 *  
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      MENU TO
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __AtPrompt()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Display a menu item on screen and define a message
 *  $SYNTAX$
 *      __AtPrompt( , , , [] ) --> .F.
 *  $ARGUMENTS$
 *       is the row number to display the menu . Value could
 *      range from zero to MAXROW().
 *
 *       is the column number to display the menu . Value
 *      could range from zero to MAXCOL().
 *
 *       is the menu item character string to display.
 *
 *       define a message to display each time this menu item is
 *      highlighted.  could be a character string or code block that
 *      is evaluated to a character string. If  is not specified or
 *      got the wrong type, an empty string ("") would be used.
 *  $RETURNS$
 *      __AtPrompt() always return .F.
 *  $DESCRIPTION$
 *      With __AtPrompt() you define and display a menu item, each call to
 *      __AtPrompt() add another item to the menu, to start the menu itself
 *      you should call the __MenuTo() function (MENU TO command). You can
 *      define any row and column combination and they will be displayed at
 *      the order of definition. After each call to __AtPrompt(), the cursor
 *      is placed one column to the right of the last text displayed, and
 *      ROW() and COL() are updated.
 *
 *      @...PROMPT command is preprocessed into __AtPrompt() function during
 *      compile time.
 *  $EXAMPLES$
 *      // display a two line menu with status line at the bottom
 *      // let the user select favorite day
 *      SET MESSAGE TO 24 CENTER
 *      @ 10, 2 PROMPT "Sunday" MESSAGE "This is the 1st item"
 *      @ 11, 2 PROMPT "Monday" MESSAGE "Now we're on the 2nd item"
 *      MENU TO nChoice
 *      DO CASE
 *         CASE nChoice == 0           // user press Esc key
 *              QUIT
 *         CASE nChoice == 1           // user select 1st menu item
 *              ? "Guess you don't like Mondays"
 *         CASE nChoice == 2           // user select 2nd menu item
 *              ? "Just another day for some"
 *      ENDCASE
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      CA-Cl*pper array is limited to 4096 items, and therefor 4096 menu
 *      items are the maximum that could be defined per one menu, Harbour
 *      does not have this limit (not that you'll ever need that).
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ACHOICE(),MENU TO,SET MESSAGE,SET INTENSITY,SET WRAP,__MENUTO()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      @...PROMPT
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Display a menu item on screen and define a message
 *  $SYNTAX$
 *      @ ,  PROMPT  [MESSAGE ]
 *  $ARGUMENTS$
 *       is the row number to display the menu . Value could
 *      range from zero to MAXROW().
 *
 *       is the column number to display the menu . Value
 *      could range from zero to MAXCOL().
 *
 *       is the menu item character string to display.
 *
 *       define a message to display each time this menu item is
 *      highlighted.  could be a character string or code block that
 *      is evaluated to a character string. If  is not specified or
 *      got the wrong type, an empty string ("") would be used.
 *  $RETURNS$
 *      @...Prompt always return .F.
 *  $DESCRIPTION$
 *      With @...Prompt you define and display a menu item, each call to
 *      @...Prompt add another item to the menu, to start the menu itself
 *      you should call the __MenuTo() function (MENU TO command). You can
 *      define any row and column combination and they will be displayed at
 *      the order of definition. After each call to @...Prompt, the cursor
 *      is placed one column to the right of the last text displayed, and
 *      ROW() and COL() are updated.
 *
 *      @...PROMPT command is preprocessed into __AtPrompt() function during
 *      compile time.
 *  $EXAMPLES$
 *      // display a two line menu with status line at the bottom
 *      // let the user select favorite day
 *      SET MESSAGE TO 24 CENTER
 *      @ 10, 2 PROMPT "Sunday" MESSAGE "This is the 1st item"
 *      @ 11, 2 PROMPT "Monday" MESSAGE "Now we're on the 2nd item"
 *      MENU TO nChoice
 *      DO CASE
 *         CASE nChoice == 0           // user press Esc key
 *              QUIT
 *         CASE nChoice == 1           // user select 1st menu item
 *              ? "Guess you don't like Mondays"
 *         CASE nChoice == 2           // user select 2nd menu item
 *              ? "Just another day for some"
 *      ENDCASE
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      CA-Cl*pper array is limited to 4096 items, and therefor 4096 menu
 *      items are the maximum that could be defined per one menu, Harbour
 *      does not have this limit (not that you'll ever need that).
 *  $SEEALSO$
 *      ACHOICE(),MENU TO,SET MESSAGE,SET INTENSITY,SET WRAP,__MENUTO()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MenuTo()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Invoked a menu defined by set of @...PROMPT
 *  $SYNTAX$
 *      __MenuTo( ,  ) --> nChoice
 *  $ARGUMENTS$
 *       is a set/get code block for variable named .
 *
 *       is a character string that contain the name of the
 *      variable to hold the menu choices, if this variable does not exist
 *      a PRIVATE variable with the name  would be created to
 *      hold the result.
 *  $RETURNS$
 *      __MenuTo() return the number of select menu item, or 0 if there was
 *      no item to select from or if the user pressed the Esc key.
 *  $DESCRIPTION$
 *      __MenuTo() invoked the menu define by previous __AtPrompt() call
 *      and display a highlight bar that the user can move to select an
 *      option from the menu. If  does not exist or not visible,
 *      a PRIVATE variable named  is created and hold the current
 *      menu selection. If there is a variable named , its value
 *      is used to select the first highlighted item.
 *
 *      Menu prompts and messages are displayed in current Standard color,
 *      highlighted bar is displayed using current Enhanced color.
 *
 *      Pressing the arrow keys move the highlighted bar. When a menu item
 *      is highlighted the message associated with it is displayed on the
 *      line specified with SET MESSAGE. If SET WRAP is ON and the user
 *      press UP arrow while on the first selection the last menu item is
 *      highlighted, if the user press Down arrow while on the last item,
 *      the first item is highlighted.
 *
 *      Following are active keys that handled by __MenuTo():
 *
 *
 *      
 *       key            Meaning
 *
 *       Up             Move to previous item
 *       Down           Move to next item
 *       Left           Move to previous item
 *       Right          Move to next item
 *       Home           Move to the first item
 *       End            Move to the last item
 *       Page-Up        Select menu item, return position
 *       Page-Down      Select menu item, return position
 *       Enter          Select menu item, return position
 *       Esc            Abort selection, return 0
 *       First letter   Select next menu with the same first letter,
 *       |              return this item position.
 *  
* upon exit the cursor is placed at MAXROW()-1, 0 * __MenuTo() can be nested without loosing the previous prompts. * * MENU TO command is preprocessed into __MenuTo() function during * compile time. * $EXAMPLES$ * // display menu item on each screen corner and let user select one * CLS * SET MESSAGE TO MAXROW()/2 CENTER * SET WRAP ON * @ 0, 0 PROMPT "1. Upper left" MESSAGE " One " * @ 0, MAXCOL()-16 PROMPT "2. Upper right" MESSAGE " Two " * @ MAXROW()-1,MAXCOL()-16 PROMPT "3. Bottom right" MESSAGE "Three" * @ MAXROW()-1,0 PROMPT "4. Bottom left" MESSAGE "Four " * MENU TO nChoice * SETPOS ( MAXROW()/2, MAXCOL()/2 - 10 ) * if nChoice == 0 * ?? "Esc was pressed" * else * ?? "Selected option is", nChoice * endif * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $FILES$ * Library is rtl * $SEEALSO$ * @...PROMPT,ACHOICE(),SET MESSAGE,SET INTENSITY,SET WRAP,__ATPROMPT() * $END$ */ /* $DOC$ * $FUNCNAME$ * MENU TO * $CATEGORY$ * Command * $ONELINER$ * Invoked a menu defined by set of @...PROMPT * $SYNTAX$ * MENU TO * $ARGUMENTS$ * is a character string that contain the name of the * variable to hold the menu choices, if this variable does not exist * a PRIVATE variable with the name would be created to * hold the result. * $RETURNS$ * Menu To return the number of select menu item, or 0 if there was * no item to select from or if the user pressed the Esc key. * $DESCRIPTION$ * Menu To() invoked the menu define by previous __AtPrompt() call * and display a highlight bar that the user can move to select an * option from the menu. If does not exist or not visible, * a PRIVATE variable named is created and hold the current * menu selection. If there is a variable named , its value * is used to select the first highlighted item. * * Menu prompts and messages are displayed in current Standard color, * highlighted bar is displayed using current Enhanced color. * * Pressing the arrow keys move the highlighted bar. When a menu item * is highlighted the message associated with it is displayed on the * line specified with SET MESSAGE. If SET WRAP is ON and the user * press UP arrow while on the first selection the last menu item is * highlighted, if the user press Down arrow while on the last item, * the first item is highlighted. * * Following are active keys that handled by Menu To: * * * * key Meaning * * Up - Move to previous item * Down - Move to next item * Left - Move to previous item * Right - Move to next item * Home - Move to the first item * End - Move to the last item * Page-Up - Select menu item, return position * Page-Down - Select menu item, return position * Enter - Select menu item, return position * Esc - Abort selection, return 0 * First letter - Select next menu with the same first letter, * | return this item position. *
* upon exit the cursor is placed at MAXROW()-1, 0 * Menu To can be nested without loosing the previous prompts. * * MENU TO command is preprocessed into __MenuTo() function during * compile time. * $EXAMPLES$ * // display menu item on each screen corner and let user select one * CLS * SET MESSAGE TO MAXROW()/2 CENTER * SET WRAP ON * @ 0, 0 PROMPT "1. Upper left" MESSAGE " One " * @ 0, MAXCOL()-16 PROMPT "2. Upper right" MESSAGE " Two " * @ MAXROW()-1,MAXCOL()-16 PROMPT "3. Bottom right" MESSAGE "Three" * @ MAXROW()-1,0 PROMPT "4. Bottom left" MESSAGE "Four " * MENU TO nChoice * SETPOS ( MAXROW()/2, MAXCOL()/2 - 10 ) * if nChoice == 0 * ?? "Esc was pressed" * else * ?? "Selected option is", nChoice * endif * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * @...PROMPT,ACHOICE(),SET MESSAGE,SET INTENSITY,SET WRAP,__ATPROMPT() * $END$ */
c:\harbour\doc\en\misc.txt
/*
 * $Id: misc.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Chen Kedem 
 *    Documentation for: TONE()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      OS()
 * $ONELINER$
 *      Return the current operating system.
 *  $SYNTAX$
 *      OS() --> 
 *  $CATEGORY$
 *      DOS
 *  $RETURNS$
 *      The Current operating system.
 *  $DESCRIPTION$
 *      This function will return the current operating system.
 *  $EXAMPLES$
 *      ? OS()
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compatible.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/rtl/version.c
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      VERSION()
 *  $CATEGORY$
 *      Environment
 *  $ONELINER$
 *      Returns the HARBOUR Version or the Harbour/Compiler Version.
 *  $SYNTAX$
 *      VERSION()  --> 
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *         String containing the Harbour Version
 *  $DESCRIPTION$
 *      This function returns the current Harbour Version.
 *  $EXAMPLES$
 *      ? QOUT(VERSION())
 *      "Harbour Terminal: Standard stream console"
 *
 *  $TESTS$
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compatible.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/rtl/version.c
 *      Library is rtl
 *  $SEEALSO$
 *      OS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      GETENV()
 *  $CATEGORY$
 *      Environment
 *  $ONELINER$
 *      Obtains system environmental settings.
 *  $SYNTAX$
 *      GETENV(,  )  --> 
 *  $ARGUMENTS$
 *       Enviromental variable to obtain.
 *
 *       Optional value to return if  is not found.
 *  $RETURNS$
 *           Value of the Environment Variable.
 *  $DESCRIPTION$
 *      This function yields a string that is the value of the
 *      environment variable , which is stored at the
 *      system level with the Set command. If no environment variable
 *      can be found, the value of the function will be 
 *      if it is passed, else an empty string.
 *  $EXAMPLES$
 *      ? QOUT(GETENV('PATH'))
 *      ? QOUT(GETENV('CONFIG'))
 *      ? QOUT(GETENV('HARBOURCMD', '-n -l -es2'))
 *  
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This command is CA-Cl*pper compliant.
 *      The  parameter is a Harbour extension.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *     source/rtl/gete.c
 *      Library is rtl
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __RUN()
 *  $CATEGORY$
 *      DOS
 *  $ONELINER$
 *      Run an external program.
 *  $SYNTAX$
 *      __RUN(  )
 *  $ARGUMENTS$
 *       Command to execute.
 *  $DESCRIPTION$
 *      This command runs an external program. Please make sure that
 *      you have enough free memory to be able to run the external
 *      program. Do not use it to run Terminate and Stay Resident programs
 *      (in case of DOS) since that causes several problems.
 *
 *      Note: This function is what the RUN command preprocesses into.
 *            It is considered bad form to use this function directly.
 *            Use the RUN command instead.
 *  $EXAMPLES$
 *      __Run( "edit " + cMyTextFile )    // Runs an external editor
 *      __Run( "command" )                // Gives a DOS shell (DOS only)
 *  
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/rtl/run.c
 *      Library is rtl
 *  $SEEALSO$
 *      RUN
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      TONE()
 *  $CATEGORY$
 *      Miscellaneous
 *  $ONELINER$
 *      Sound a tone with a specified frequency and duration.
 *  $SYNTAX$
 *      TONE( ,  ) --> NIL
 *  $ARGUMENTS$
 *        A non-negative numeric value that specifies the
 *      frequency of the tone in hertz.
 *
 *         A positive numeric value which specifies the duration
 *      of the tone in 1/18 of a second units.
 *  $RETURNS$
 *      TONE() always returns NIL.
 *  $DESCRIPTION$
 *      TONE() is a sound function that could be used to irritate the end
 *      user, his or her dog, and the surrounding neighborhood. The frequency
 *      is clamped to the range 0 to 32767 Hz.
 *  $EXAMPLES$
 *      If lOk   // Good Sound
 *         TONE(  500, 1 )
 *         TONE( 4000, 1 )
 *         TONE( 2500, 1 )
 *      Else     // Bad Sound
 *         TONE(  300, 1 )
 *         TONE(  499, 5 )
 *         TONE(  700, 5 )
 *      EndIf
 *      
 *  $TESTS$
 *      TONE( 800, 1 )                         // same as ? CHR(7)
 *      TONE( 32000, 200 )                     // any dogs around yet?
 *      TONE( 130.80, 1 )                      // musical note - C
 *      TONE( 400, 0 )                         // short beep
 *      TONE( 700 )                            // short beep
 *      TONE( 10, 18.2 )                       // 1 second delay
 *      TONE( -1 )                             // 1/18.2 second delay
 *      TONE( )                                // 1/18.2 second delay
 *  
 *  $TESTS$
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      TONE() works exactly like CA-Cl*pper's TONE().
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      CHR(),SET BELL
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      RUN
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Run an external program.
 *  $SYNTAX$
 *      RUN  
 *  $ARGUMENTS$
 *       Command to execute.
 *  $DESCRIPTION$
 *      This command runs an external program. Please make sure that you have
 *      enough free memory to be able to run the external program.
 *      Do not use it to run Terminate and Stay Resident programs
 *      (in case of DOS) since that causes several problems.
 *  $EXAMPLES$
 *      Run  "edit " + cMyTextFile      // Runs an external editor
 *      Run  "command"                  // Gives a DOS shell (DOS only)
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This command is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      source/rtl/run.c
 *      Library is rtl
 *  $SEEALSO$
 *      RUN
 *  $END$
 */
c:\harbour\doc\en\nation.txt
/*
 * $Id: nation.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Jose Lalin 
 *    ISAFFIRM() documentation
 *    ISNEGATIVE() documentation
 *    NATIONMSG() documentation
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ISAFFIRM()
 *  $CATEGORY$
 *      Nation
 *  $ONELINER$
 *      Checks if passed char is an affirmation char
 *  $SYNTAX$
 *      ISAFFIRM(  ) --> 
 *  $ARGUMENTS$
 *       is a char or string of chars   
 *  $RETURNS$
 *       True if passed char is an affirmation char,otherwise
 *      false   
 *  $DESCRIPTION$
 *      This function is used to check if a user's input is true or not
 *      according to the msgxxx module used.   
 *  $EXAMPLES$
 *      // Wait until user enters Y
 *      DO WHILE !ISAFFIRM( cYesNo )
 *        ACCEPT "Sure: " TO cYesNo
 *      END DO
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      ISAFFIRM() is fully CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ISNEGATIVE(),NATIONMSG()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ISNEGATIVE()
 *  $CATEGORY$
 *      Nation
 *  $ONELINER$
 *      Checks if passed char is a negation char.
 *  $SYNTAX$
 *      ISNEGATIVE(  ) --> 
 *  $ARGUMENTS$
 *       is a char or string of chars   
 *  $RETURNS$
 *       True if passed char is a negation char, otherwise
 *      false.   
 *  $DESCRIPTION$
 *      This function is used to check if a user's input is true or not
 *      according to the msgxxx module used.   
 *  $EXAMPLES$
 *      // Wait until user enters N
 *      DO WHILE !ISNEGATIVE( cYesNo )
 *        ACCEPT "Sure: " TO cYesNo
 *      END DO
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      ISNEGATIVE() is fully CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ISAFFIRM(),NATIONMSG()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      NATIONMSG()
 *  $CATEGORY$
 *      Nation
 *  $ONELINER$
 *      Returns international strings messages.
 *  $SYNTAX$
 *      NATIONMSG(  ) --> 
 *  $ARGUMENTS$
 *       is the message number you want to get.   
 *  $RETURNS$
 *       If  is a valid message selector, returns the message.
 *      If  is nil returns "Invalid Argument", and if  is any
 *      other type it returns an empty string.   
 *  $DESCRIPTION$
 *      NATIONMSG() returns international message descriptions.   
 *  $EXAMPLES$
 *      // Displays "Sure Y/N: "  and waits until user enters Y
 *      // Y/N is the string for NATIONMSG( 12 ) with default natmsg module.
 *      DO WHILE !ISAFFIRM( cYesNo )
 *        ACCEPT "Sure " + NATIONMSG( 12 ) + ": " TO cYesNo
 *      END DO
 *  
 *  $STATUS$
 *      C
 *  $COMPLIANCE$
 *      NATIONMSG() is fully CA-Cl*pper compliant.   
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ISAFFIRM(),ISNEGATIVE()
 *  $END$
 */
c:\harbour\doc\en\objfunc.txt
/*
 * $Id: objfunc.txt 5688 2002-09-30 13:46:40Z ckedem $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999-2000 Chen Kedem 
 *    Documentation for: __objHasData(), __objHasMethod(), __objGetMsgList(),
 *                       __objGetMethodList(), __objGetValueList(),
 *                       __ObjSetValueList(), __objAddMethod(),
 *                       __objAddInline(), __objAddData(), __objModMethod(),
 *                       __objModInline(), __objDelMethod(), __objDelInline(),
 *                       __objDelData(), __objDerivedFrom()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __objHasData()
 *  $CATEGORY$
 *      Object manipulation
 *  $ONELINER$
 *      Determine whether a symbol exist in object as DATA
 *  $SYNTAX$
 *      __objHasData( ,  ) --> lExist
 *  $ARGUMENTS$
 *       is an object to scan.
 *
 *       is the name of the symbol to look for.
 *  $RETURNS$
 *      __objHasData() return .T. if the given  exist as DATA
 *      (instance variable) in object 
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __objHasData() is a Harbour extension.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      __ObjGetMethodList(),__objGetMsgList(),__objHasMethod()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __objHasMethod()
 *  $CATEGORY$
 *      Object manipulation
 *  $ONELINER$
 *      Determine whether a symbol exist in object as METHOD
 *  $SYNTAX$
 *      __objHasMethod( ,  ) --> lExist
 *  $ARGUMENTS$
 *       is an object to scan.
 *
 *       is the name of the symbol to look for.
 *  $RETURNS$
 *      __objHasMethod() return .T. if the given  exist as METHOD
 *      (class function) in object 
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __objHasMethod() is a Harbour extension.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      __ObjGetMethodList(),__objGetMsgList(),__objHasData()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __objGetMsgList()
 *  $CATEGORY$
 *      Object manipulation
 *  $ONELINER$
 *      Return names of all DATA or METHOD for a given object
 *  $SYNTAX$
 *      __objGetMsgList( , [], [nClassType] ) --> aNames
 *  $ARGUMENTS$
 *       is an object to scan.
 *
 *       is an optional logical value that specifies the information
 *      to return. A value of .T. instruct the function to return list of
 *      all DATA names, .F. return list of all METHOD names. Default value
 *      is .T.
 *
 *       is on optional numeric code for selecting which class
 *      type to return. Default value is HB_MSGLISTALL, returning the whole
 *      list.
 *  $RETURNS$
 *      __objGetMsgList() return an array of character stings with all DATA
 *      names or all METHOD names for a given object. __objGetMsgList()
 *      would return an empty array {} if the given object does not contain
 *      the requested information.
 *  $DESCRIPTION$
 *      __objGetMsgList() is a low level class support function that let you
 *      find all instance variable or method names for a given object.
 *
 *      If specified, the following table shoes the values for 
 *      that allow you to distinguish between DATA and CLASSDATA:
 *
 *     
 *      hboo.ch           Value   Meaning
 *
 *      HB_MSGLISTALL     0       All types
 *      HB_MSGLISTCLASS   1       CLASSDATA only
 *      HB_MSGLISTPURE    2       DATA only
 *     
* * DATA are instance variable usable within each object from a class, * where each object has its own DATAs. * * CLASSDATA are shared by all objects from a Class, so the changed * value within Object1 will be reflected when accessing the CLASSDATA * from Object2. * $EXAMPLES$ * // show information about TBrowse class * oB := TBrowseNew( 0, 0, 24, 79 ) * aData := __objGetMsgList( oB, .T. ) * aClassData := __objGetMsgList( oB, .T., HB_MSGLISTCLASS ) * aMethod := __objGetMsgList( oB, .F. ) * FOR i = 1 to len ( aData ) * ? "DATA name:", aData[ i ] * NEXT * FOR i = 1 to len ( aClassData ) * ? "CLASSDATA name:", aClassData[ i ] * NEXT * FOR i = 1 to len ( aMethod ) * ? "METHOD name:", aMethod[ i ] * NEXT * * $STATUS$ * R * $COMPLIANCE$ * __objGetMsgList() is a Harbour extension. * $FILES$ * Header file is hboo.ch * Library is rtl * $SEEALSO$ * __ObjGetMethodList(),__ObjGetValueList(),__objHasData(),__objHasMethod() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objGetMethodList() * $CATEGORY$ * Object manipulation * $ONELINER$ * Return names of all METHOD for a given object * $SYNTAX$ * __objGetMethodList( ) --> aMethodNames * $ARGUMENTS$ * is an object to scan. * $RETURNS$ * __objGetMethodList() return an array of character stings with all * METHOD names for a given object. __objGetMethodList() would return * an empty array {} if the given object does not contain any METHOD. * $DESCRIPTION$ * __objGetMethodList() is a low level class support function that let * you find all class functions names for a given object. * It is equivalent to __objGetMsgList( oObject, .F. ). * $EXAMPLES$ * // show information about TBrowse class * oB := TBrowseNew( 0, 0, 24, 79 ) * aMethod := __objGetMethodList( oB ) * FOR i = 1 to len ( aMethod ) * ? "METHOD name:", aMethod[ i ] * NEXT * * $STATUS$ * R * $COMPLIANCE$ * __objGetMethodList() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objGetMsgList(),__ObjGetValueList(),__objHasData(),__objHasMethod() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objGetValueList() * $CATEGORY$ * Object manipulation * $ONELINER$ * Return an array of DATA names and values for a given object * $SYNTAX$ * __objGetValueList( , [] ) --> aData * $ARGUMENTS$ * is an object to scan. * * is an optional array with DATA names you want to exclude * from the scan. * $RETURNS$ * __objGetValueList() return a 2D array that contain pairs of a DATA * symbol name and the value of DATA. __objGetValueList() would return * an empty array {} if the given object does not contain the requested * information. * $DESCRIPTION$ * __objGetValueList() is a low level class support function that * return an array with DATA names and value, each array element is a * pair of: aData[ i, HB_OO_DATA_SYMBOL ] contain the symbol name * aData[ i, HB_OO_DATA_VALUE ] contain the value of DATA * $EXAMPLES$ * // show information about TBrowse class * oB := TBrowseNew( 0, 0, 24, 79 ) * aData := __objGetValueList( oB ) * FOR i = 1 to len ( aData ) * ? "DATA name:", aData[ i, HB_OO_DATA_SYMBOL ], ; * " value=", aData[ i, HB_OO_DATA_VALUE ] * NEXT * * $STATUS$ * R * $COMPLIANCE$ * __objGetValueList() is a Harbour extension. * $FILES$ * Header file is hboo.ch * Library is rtl * $SEEALSO$ * __objGetMethodList(),__objGetMsgList(),__objHasData(),__objHasMethod(),__ObjSetValueList() * $END$ */ /* $DOC$ * $FUNCNAME$ * __ObjSetValueList() * $CATEGORY$ * Object manipulation * $ONELINER$ * Set object with an array of DATA names and values * $SYNTAX$ * __ObjSetValueList( , ) --> oObject * $ARGUMENTS$ * is an object to set. * * is a 2D array with a pair of instance variables and values * for setting those variable. * $RETURNS$ * __ObjSetValueList() return a reference to . * $DESCRIPTION$ * __ObjSetValueList() is a low level class support function that let * you set a group of instance variables with values. each array * element in is a pair of: * aData[ i, HB_OO_DATA_SYMBOL ] which contain the variable name to set * aData[ i, HB_OO_DATA_VALUE ] contain the new variable value. * $EXAMPLES$ * // set some TBrowse instance variable * oB := TBrowse():New() * aData := array( 4, 2 ) * aData[ 1, HB_OO_DATA_SYMBOL ] = "nTop" * aData[ 1, HB_OO_DATA_VALUE ] = 1 * aData[ 2, HB_OO_DATA_SYMBOL ] = "nLeft" * aData[ 2, HB_OO_DATA_VALUE ] = 10 * aData[ 3, HB_OO_DATA_SYMBOL ] = "nBottom" * aData[ 3, HB_OO_DATA_VALUE ] = 20 * aData[ 4, HB_OO_DATA_SYMBOL ] = "nRight" * aData[ 4, HB_OO_DATA_VALUE ] = 70 * __ObjSetValueList( oB, aData ) * ? oB:nTop // 1 * ? oB:nLeft // 10 * ? oB:nBottom // 20 * ? oB:nRight // 70 * * $STATUS$ * R * $COMPLIANCE$ * __ObjSetValueList() is a Harbour extension. * $FILES$ * Header file is hboo.ch * Library is rtl * $SEEALSO$ * __ObjGetValueList() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objAddMethod() * $CATEGORY$ * Object manipulation * $ONELINER$ * Add a METHOD to an already existing class * $SYNTAX$ * __objAddMethod( , , ) --> oObject * $ARGUMENTS$ * is the object to work on. * * is the symbol name of the new METHOD to add. * * is a pointer to a function to associate with the method. * $RETURNS$ * __objAddMethod() return a reference to . * $DESCRIPTION$ * __objAddMethod() is a low level class support function that add a * new METHOD to an object. is unchanged if a symbol with the * name already exist in . * * Note that is a special pointer to a function that was * created using the @ operator, see example below. * $EXAMPLES$ * // create a new THappy class and add a Smile method * oHappy := HBClass():New( "THappy" ) * __objAddMethod( oHappy, "Smile", @MySmile() ) * ? oHappy:Smile( 1 ) // :) * ? oHappy:Smile( 2 ) // ;) * ? oHappy:Smile( 3 ) // *SMILE* * * STATIC FUNCTION MySmile( nType ) * LOCAL cSmile * DO CASE * CASE nType == 1 * cSmile := ":)" * CASE nType == 2 * cSmile := ";)" * CASE nType == 3 * cSmile := "*SMILE*" * ENDCASE * RETURN cSmile * * $STATUS$ * R * $COMPLIANCE$ * __objAddMethod() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objAddInline(),__objAddData(),__objDelMethod(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod(),__objModMethod() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objAddInline() * $CATEGORY$ * Object manipulation * $ONELINER$ * Add an INLINE to an already existing class * $SYNTAX$ * __objAddInline( , , ) --> oObject * $ARGUMENTS$ * is the object to work on. * * is the symbol name of the new INLINE to add. * * is a code block to associate with the INLINE method. * $RETURNS$ * __objAddInline() return a reference to . * $DESCRIPTION$ * __objAddInline() is a low level class support function that add a * new INLINE method to an object. is unchanged if a symbol * with the name already exist in . * $EXAMPLES$ * // create a new THappy class and add a Smile INLINE method * oHappy := HBClass():New( "THappy" ) * bInline := { | nType | { ":)", ";)", "*SMILE*" }[ nType ] } * __objAddInline( oHappy, "Smile", bInline ) * ? oHappy:Smile( 1 ) // :) * ? oHappy:Smile( 2 ) // ;) * ? oHappy:Smile( 3 ) // *SMILE* * * $STATUS$ * R * $COMPLIANCE$ * __objAddInline() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objAddData(),__objAddMethod(),__objDelInline(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod() ,__objModInline() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objAddData() * $CATEGORY$ * Object manipulation * $ONELINER$ * Add a DATA to an already existing class * $SYNTAX$ * __objAddData( , ) --> oObject * $ARGUMENTS$ * is the object to work on. * * is the symbol name of the new DATA to add. * $RETURNS$ * __objAddData() return a reference to . * $DESCRIPTION$ * __objAddData() is a low level class support function that add a new * DATA to an object. is unchanged if a symbol with the name * already exist in . * $EXAMPLES$ * // create a new THappy class and add a lHappy DATA * oHappy := HBClass():New( "THappy" ) * __objAddData( oHappy, "lHappy" ) * oHappy:lHappy := .T. * IF oHappy:lHappy * ? "Happy, Happy, Joy, Joy !!!" * ELSE * ? ":(..." * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * __objAddData() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objAddInline(),__objAddMethod(),__objDelData(),__objGetMsgList(),__ObjGetValueList(),__objHasData(),__ObjSetValueList() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objModMethod() * $CATEGORY$ * Object manipulation * $ONELINER$ * Modify (replace) a METHOD in an already existing class * $SYNTAX$ * __objModMethod( , , ) --> oObject * $ARGUMENTS$ * is the object to work on. * * is the symbol name of the METHOD to modify. * * is a pointer to a new function to associate with the * method. * $RETURNS$ * __objModMethod() return a reference to . * $DESCRIPTION$ * __objModMethod() is a low level class support function that modify * a METHOD in an object and replace it with a new function. * is unchanged if a symbol with the name does not exist * in . __objModMethod() is used in inheritance mechanism. * * Note that is a special pointer to a function that was * created using the @ operator, see example below. * $EXAMPLES$ * // create a new THappy class and add a Smile method * oHappy := HBClass():New( "THappy" ) * __objAddMethod( oHappy, "Smile", @MySmile() ) * ? oHappy:Smile( 1 ) // :) * ? oHappy:Smile( 2 ) // ;) * // replace Smile method with a new function * __objAddMethod( oHappy, "Smile", @YourSmile() ) * ? oHappy:Smile( 1 ) // *SMILE* * ? oHappy:Smile( 2 ) // *WINK* * * STATIC FUNCTION MySmile( nType ) * LOCAL cSmile * DO CASE * CASE nType == 1 * cSmile := ":)" * CASE nType == 2 * cSmile := ";)" * ENDCASE * RETURN cSmile * * STATIC FUNCTION YourSmile( nType ) * LOCAL cSmile * DO CASE * CASE nType == 1 * cSmile := "*SMILE*" * CASE nType == 2 * cSmile := "*WINK*" * ENDCASE * RETURN cSmile * * $STATUS$ * R * $COMPLIANCE$ * __objModMethod() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objAddMethod(),__objDelMethod(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objModInline() * $CATEGORY$ * Object manipulation * $ONELINER$ * Modify (replace) an INLINE method in an already existing class * $SYNTAX$ * __objModInline( , , ) --> oObject * $ARGUMENTS$ * is the object to work on. * * is the symbol name of the INLINE method to modify. * * is a new code block to associate with the INLINE method. * $RETURNS$ * __objModInline() return a reference to . * $DESCRIPTION$ * __objModInline() is a low level class support function that modify * an INLINE method in an object and replace it with a new code block. * is unchanged if a symbol with the name does * not exist in . __objModInline() is used in inheritance * mechanism. * $EXAMPLES$ * // create a new THappy class and add a Smile INLINE method * oHappy := HBClass():New( "THappy" ) * bMyInline := { | nType | { ":)", ";)" }[ nType ] } * bYourInline := { | nType | { "*SMILE*", "*WINK*" }[ nType ] } * __objAddInline( oHappy, "Smile", bMyInline ) * ? oHappy:Smile( 1 ) // :) * ? oHappy:Smile( 2 ) // ;) * // replace Smile inline method with a new code block * __objModInline( oHappy, "Smile", bYourInline ) * ? oHappy:Smile( 1 ) // *SMILE* * ? oHappy:Smile( 2 ) // *WINK* * * $STATUS$ * R * $COMPLIANCE$ * __objModInline() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objAddInline(),__objDelInline(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objDelMethod() * $CATEGORY$ * Object manipulation * $ONELINER$ * Delete a METHOD from class * $SYNTAX$ * __objDelMethod( , ) --> oObject * $ARGUMENTS$ * is the object to work on. * * is the symbol name of METHOD or INLINE method to be * deleted (removed) from the object. * $RETURNS$ * __objDelMethod() return a reference to . * $DESCRIPTION$ * __objDelMethod() is a low level class support function that delete * (remove) a METHOD or an INLINE method from an object. is * unchanged if a symbol with the name does not exist in * . * * __objDelInline() is exactly the same as __objDelMethod(). * $EXAMPLES$ * // create a new THappy class and add a Smile method * oHappy := HBClass():New( "THappy" ) * __objAddMethod( oHappy, "Smile", @MySmile() ) * ? __objHasMethod( oHappy, "Smile" ) // .T. * // remove Smile method * __objDelMethod( oHappy, "Smile" ) * ? __objHasMethod( oHappy, "Smile" ) // .F. * * STATIC FUNCTION MySmile( nType ) * LOCAL cSmile * DO CASE * CASE nType == 1 * cSmile := ":)" * CASE nType == 2 * cSmile := ";)" * ENDCASE * RETURN cSmile * * $STATUS$ * R * $COMPLIANCE$ * __objDelMethod() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objAddInline(),__objAddMethod(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod(),__objModInline(),__objModMethod() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objDelInline() * $CATEGORY$ * Object manipulation * $ONELINER$ * Delete a METHOD INLINE from class * $SYNTAX$ * __objDelInline( , ) --> oObject * $ARGUMENTS$ * is the object to work on. * * is the symbol name of METHOD or INLINE method to be * deleted (removed) from the object. * $RETURNS$ * __objDelInMethod() return a reference to . * $DESCRIPTION$ * __objDelInMethod() is a low level class support function that delete * (remove) a METHOD or an INLINE method from an object. is * unchanged if a symbol with the name does not exist in * . * $EXAMPLES$ * // create a new THappy class and add a Smile method * oHappy := HBClass():New( "THappy" ) * __objAddMethod( oHappy, "Smile", @MySmile() ) * ? __objHasMethod( oHappy, "Smile" ) // .T. * // remove Smile method * __objDelInMethod( oHappy, "Smile" ) * ? __objHasMethod( oHappy, "Smile" ) // .F. * * STATIC FUNCTION MySmile( nType ) * LOCAL cSmile * DO CASE * CASE nType == 1 * cSmile := ":)" * CASE nType == 2 * cSmile := ";)" * ENDCASE * RETURN cSmile * * $STATUS$ * R * $COMPLIANCE$ * __objDelMethod() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objAddInline(),__objAddMethod(),__ObjGetMethodList(),__objGetMsgList(),__objHasMethod(),__objModInline(),__objModMethod() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objDelData() * $CATEGORY$ * Object manipulation * $ONELINER$ * Delete a DATA (instance variable) from class * $SYNTAX$ * __objDelMethod( , ) --> oObject * $ARGUMENTS$ * is the object to work on. * * is the symbol name of DATA to be deleted (removed) from * the object. * $RETURNS$ * __objDelData() return a reference to . * $DESCRIPTION$ * __objDelData() is a low level class support function that delete * (remove) a DATA from an object. is unchanged if a symbol * with the name does not exist in . * $EXAMPLES$ * // create a new THappy class and add a lHappy DATA * oHappy := HBClass():New( "THappy" ) * __objAddData( oHappy, "lHappy" ) * ? __objHasData( oHappy, "lHappy" ) // .T. * // remove lHappy DATA * __objDelData( oHappy, "lHappy" ) * ? __objHasData( oHappy, "lHappy" ) // .F. * * $STATUS$ * R * $COMPLIANCE$ * __objDelData() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objAddData(),__objGetMsgList(),__ObjGetValueList(),__objHasData(),__ObjSetValueList() * $END$ */ /* $DOC$ * $FUNCNAME$ * __objDerivedFrom() * $CATEGORY$ * Object manipulation * $ONELINER$ * Determine whether a class is derived from another class * $SYNTAX$ * __objDerivedFrom( , ) --> lIsParent * $ARGUMENTS$ * is the object to check. * * is the object that may be a parent. can be either * an Object or a Character string with the class name. * $RETURNS$ * __objDerivedFrom() return a logical TRUE (.T.) if is * derived from . * $DESCRIPTION$ * __objDerivedFrom() is a low level class support function that check * is one class is a super class of the other, or in other words, does * class a child or descendant of . * $EXAMPLES$ * // Create three classes and check their relations * * #include "hbclass.ch" * FUNCTION main() * local oSuper, oObject, oDress * oSuper := TMood():New() * oObject := THappy():New() * oDress := TShirt():New() * ? __objDerivedFrom( oObject, oSuper ) // .T. * ? __objDerivedFrom( oSuper, oObject ) // .F. * ? __objDerivedFrom( oObject, oDress ) // .F. * RETURN NIL * * CLASS TMood * METHOD New() INLINE Self * ENDCLASS * * CLASS THappy FROM TMood * METHOD Smile() INLINE qout( "*smile*" ) * ENDCLASS * * CLASS TShirt * DATA Color * DATA Size * METHOD New() INLINE Self * ENDCLASS * * $STATUS$ * R * $COMPLIANCE$ * __objDerivedFrom() is a Harbour extension. * $FILES$ * Library is rtl * $SEEALSO$ * __objHasData(),__ObjHasMethod() * $END$ */
c:\harbour\doc\en\rdd.txt
/*
 * $Id: rdd.txt 6287 2004-04-19 08:44:06Z ckedem $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*
   NOTE: I deleted all the information in this file due to copyright
         vilolation! 2004-4-19 [ckedem].
 */
c:\harbour\doc\en\rdddb.txt
/*
 * $Id: rdddb.txt 9193 2008-08-19 15:07:28Z vszakats $
 */


/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Luiz Rafael Culik 
 *    DB*() documentation
 *    ORD*() documentation
 *    RDD*() documentation
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DBEVAL()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Performs a code block operation on the current Database
 *  $SYNTAX$
 *      DBEVAL( ,
 *      [], [],
 *      [], [],
 *      [] ) --> NIL
 *  $ARGUMENTS$
 *       Operation that is to be performed
 *
 *       Code block for the For condition
 *
 *       Code block for the WHILE condition
 *
 *       Number of NEXT records  to process
 *
 *       Record number to work on exactly
 *
 *       Toggle to rewind record pointer
 *  $RETURNS$
 *      DBEVAL() always returns NIL
 *  $DESCRIPTION$
 *        Performs a code block operation on the current Database
 *  $EXAMPLES$
 *      FUNCTION Main()
 *         LOCAL nCount
 *
 *         USE Test
 *
 *         dbGoto( 4 )
 *         ? RecNo()
 *         COUNT TO nCount
 *         ? RecNo(), nCount
 *         COUNT TO nCount NEXT 10
 *         ? RecNo(), nCount
 *
 *         RETURN NIL
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      DBEVAL is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      EVAL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *     DBF()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Alias name of a work area
 *  $SYNTAX$
 *      Dbf() --> 
 *  $RETURNS$
 *       Name of alias
 *  $DESCRIPTION$
 *      This function returns the same alias name ofthe currently selected
 *      work area.
 *  $EXAMPLES$
 *      FUNCTION Main()
 *
 *         USE Test
 *
 *         select 0
 *         qOut( IF(DBF()=="","No Name",DBF()))
 *         Test->(qOut(DBF())
 *         qOut(Alias(1))
 *
 *         RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      DBF() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      ALIAS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *     DBAPPEND()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Appends a new record to a database file.
 *  $SYNTAX$
 *      DbAppend( [] ) --> NIL
 *  $ARGUMENTS$
 *       Toggle to release record locks
 *  $RETURNS$
 *      DbAppend() always returns NIL
 *  $DESCRIPTION$
 *     This function add a new record to the end of the database
 *     in the selected or aliased work area. All fields in that
 *     database will be given empty data values - character fields
 *     will be filled with blank spaces,date fields with CTOD('//'),
 *     numeric fields with 0, logical fields with .F., and memo fields
 *     with NULL bytes. The header of the database is not updated until
 *     the record is flushed from the buffer and the contents are
 *     written to the disk.
 *
 *     Under a networking enviroment, DBAPPEND() performs an additional
 *     operation: It attrmps to lock the newly added record. If
 *     the database file is currently locked or if a locking assignment
 *     if made to LASTREC()+1, NETERR() will return a logical true (.T.)
 *     immediately after the DBAPPEND() function. This function does
 *     not unlock the locked records.
 *
 *     If  is passed a logical true (.T.) value, it will
 *     release the record locks, which allows the application to main-
 *     tain multiple record locks during an appending operation. The
 *     default for this parameter is a logical false (.F.).
 *  $EXAMPLES$
 *      FUNCTION Main()
 *
 *         USE Test
 *         local cName="HARBOUR",nId=10
 *         Test->(DbAppend())
 *         Replace Test->Name wit cName,Id with nId
 *         Use
 *         RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      DBAPPEND() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBUNLOCK(),DBUNLOCKALL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DBCLEARFILTER()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Clears the current filter condiction in a work area
 *  $SYNTAX$
 *      DbClearFilTer() --> NIL
 *  $RETURNS$
 *      DbClearFilTer() always returns NIL
 *  $DESCRIPTION$
 *      This function clears any active filter condiction
 *      for the current or selected work area.
 *  $EXAMPLES$
 *      Function Main()
 *
 *       Use Test
 *
 *       Set Filter to Left(Test->Name,2) == "An"
 *
 *       Dbedit()
 *
 *       Test->(DbClearFilter())
 *
 *       USE
 *
 *       Return Nil
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      DBCLEARFILTER() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBSETFILTER(),DBFILTER()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DBCLOSEALL()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Close all open files in all work areas.
 *  $SYNTAX$
 *      DbCloseAll() --> NIL
 *  $RETURNS$
 *      DBCLOSEALL() always return NIL
 *  $DESCRIPTION$
 *      This function close all open databases and all associated
 *      indexes. In addition, it closes all format files and moves
 *      the work area pointer to the first position
 *  $EXAMPLES$
 *      Function Main()
 *
 *       Use Test New
 *
 *       DbEdit()
 *
 *       Use Test1 New
 *
 *       DbEdit()
 *
 *       DbCloseAll()
 *
 *       USE
 *
 *       Return Nil
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      DBCLOSEALL() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBUSEAREA(),DBCLOSEAREA()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *     DBCLOSEAREA()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Close a database file in a work area.
 *  $SYNTAX$
 *      DbCloseArea() --> NIL
 *  $RETURNS$
 *      DbCloseArea() always returns NIL.
 *  $DESCRIPTION$
 *      This function  will close any database open in the selected
 *      or aliased work area.
 *  $EXAMPLES$
 *      Function Main()
 *
 *       Use Test
 *
 *       Dbedit()
 *
 *       Test->(DbCloseArea())
 *
 *       USE
 *
 *       Return Nil
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      DBCLOSEAREA() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBUSEAREA(),DBCLOSEALL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DBCOMMIT()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Updates all index and database buffers for a given workarea
 *  $SYNTAX$
 *     DBCOMMIT() --> NIL
 *  $RETURNS$
 *      DBCOMMIT() always returns NIL.
 *  $DESCRIPTION$
 *      This function updates all of the information for a give,selected,
 *      or active workarea. This operation includes all database and index
 *      buffers for that work area only. This function does not update all
 *      open work areas.
 *  $EXAMPLES$
 *      FUNCTION Main()
 *      LOCAL cName:=SPACE(40)
 *      LOCAL nId:=0
 *      USE Test EXCLUSIVE NEW
 *      //
 *      @ 10, 10 GET cName
 *      @ 11, 10 GET nId
 *      READ
 *      //
 *      IF UPDATED()
 *         APPEND BLANK
 *         REPLACE Tests->Name WITH cName
 *         REPLACE Tests->Id WITH nId
 *         Tests->( DBCOMMIT() )
 *      ENDIF
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBCLOSEALL(),DBCOMMITALL(),DBUNLOCK()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DBCOMMITALL()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Flushes the memory buffer and performs a hard-disk write
 *  $SYNTAX$
 *      DBCOMMIT() --> NIL
 *  $RETURNS$
 *      DBCOMMIT() always returns NIL.
 *  $DESCRIPTION$
 *      This function performs a hard-disk write for all work areas.
 *      Before the disk write is performed,all buffers are flushed.
 *      open work areas.
 *  $EXAMPLES$
 *      FUNCTION Main()
 *      LOCAL cName:=SPACE(40)
 *      LOCAL nId:=0
 *      USE Test EXCLUSIVE NEW
 *      USE TestId New INDEX Testid
 *      //
 *      @ 10, 10 GET cName
 *      @ 11, 10 GET nId
 *      READ
 *      //
 *      IF UPDATED()
 *         APPEND BLANK
 *         REPLACE Tests->Name WITH cName
 *         REPLACE Tests->Id WITH nId
 *         IF !TestId->(DBSEEK(nId))
 *            APPEND BLANK
 *            REPLACE Tests->Id WITH nId
 *         ENDIF
 *      ENDIF
 *      DBCOMMITALL()
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *     DBCLOSEALL(),DBCOMMIT(),DBUNLOCK()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DBCREATE()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Creates an empty database from a array.
 *  $SYNTAX$
 *      DBCREATE( , , [], [],
 *                [] ) --> NIL
 *  $ARGUMENTS$
 *       Name of database to be create
 *
 *         Name of a multidimensional array that contains the
 *                  database structure
 *
 *         Name of the RDD
 *
 *        3-way toggle to Open the file in New or Current workarea:
 *
 *                       
 *                       NIL     The file is not opened.
 *                       True    It is opened in a New area.
 *                       False   It is opened in the current area.
 *                  
* Name of database Alias * $RETURNS$ * DBCREATE() always returns NIL. * $DESCRIPTION$ * This function creates the database file specified as from the * multidimensional array . If no file extension is use with * the .dbf extension is assumed. * The array specified in must follow a few guidelines when being * built prior to a call to DBCREATE(): * * - All subscripts values in the second dimension must be set to proper values * * - The fourth subscript value in the second dimension - which contains * the decimal value-must he specified. even 1kw nonnumeric fields. * * - The second subscript value in the second dimension-which contains * the field data type-must contain a proper value: C, D, L, M or N * It is possible to use additional letters (or clarity (e.g., 'Numeric' * for 'N'): however, the first letter of this array element must * be a proper value. * * The DBCREATE( ) function does not use the decimal field to * calculate the length of a character held longer than 256. Values * up to the maximum length of a character field (which is 65,519 bytes) * are stored directly in the database in the length attribute if that * database was created via this function. However, a file containing * fields longer than 256 bytes is not compatible with any interpreter. * * The parameter specifies the name of the Replaceable * Database Driver to use to create the database. If it is not * specified, then the Replaceable Database Driver in the current work * area is used. * * The parameter specifies if the already created database is * to be opened, and where. If NIL, the file is not opened. If True, * it is opened in a New area, and if False it is opened in the current * area (closing any file already occupying that area). * The parameter specifies the alias name for the new opened * database. * $EXAMPLES$ * function main() * * local nI, aStruct := { { "CHARACTER", "C", 25, 0 }, ; * { "NUMERIC", "N", 8, 0 }, ; * { "DOUBLE", "N", 8, 2 }, ; * { "DATE", "D", 8, 0 }, ; * { "LOGICAL", "L", 1, 0 }, ; * { "MEMO1", "M", 10, 0 }, ; * { "MEMO2", "M", 10, 0 } } * * REQUEST DBFCDX * * dbCreate( "testdbf", aStruct, "DBFCDX", .t., "MYALIAS" ) * * RETURN NIL * $STATUS$ * R * $COMPLIANCE$ * This function is Not CA-Cl*pper compliant * $FILES$ * Library is rdd * Header is dbstruct.ch * $SEEALSO$ * AFIELDS()*,DBSTRUCT() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBDELETE() * $CATEGORY$ * Database * $ONELINER$ * Marks records for deletion in a database. * $SYNTAX$ * DBDELETE() --> NIL * $RETURNS$ * DBDELETE() always returns NIL. * $DESCRIPTION$ * This function marks a record for deletion in the selected * or aliased work area. If the DELETED setting is on, the record * will still be visible until the record pointer in that work area * is moved to another record. * * In a networking situation, this function requires that the record * be locked prior to issuing the DBDELETE() function. * $EXAMPLES$ * nId:=10 * USE TestId INDEX TestId NEW * IF TestId->(DBSEEK(nId)) * IF TestId->(RLOCK()) * DBDELETE() * ENDIF * ENDIF * USE * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * DBRECALL() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBFILTER() * $CATEGORY$ * Database * $ONELINER$ * Return the filter expression in a work area * $SYNTAX$ * DBFILTER() --> cFilter * $RETURNS$ * DBFILTER() returns the filter expression. * $DESCRIPTION$ * This function return the expression of the SET FILTER TO command * for the current or designated work area. If no filter condition * is present, a NULL string will be returned. * $EXAMPLES$ * USE Test INDEX Test NEW * SET FILTER TO Name= "Harbour" * USE TestId INDEX TestId NEW * SET FILTER TO Id = 1 * SELECT Test * // * ? DBFILTER() * ? TestId->(DBFILTER()) * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * DBRELATION(),DBRSELECT() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBGOBOTTOM() * $CATEGORY$ * Database * $ONELINER$ * Moves the record pointer to the bottom of the database. * $SYNTAX$ * DBGOBOTTOM() --> NIL * $RETURNS$ * DBGOBOTTOM() always returns NIL. * $DESCRIPTION$ * This function moves the record pointer in the selected or aliased * work area to the end of the file. The position of the record pointer * is affected by the values in the index key or by an active FILTER * condition. Otherwise, if no index is active or if no filter condition * is present, the value of the record pointer will be LASTREC(). * $EXAMPLES$ * USE Tests * DBGOTOP() * ? RECNO() * DBGOBOTTOM() * ? RECNO() * USE * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * BOF(),EOF(),DBSKIP(),DBSEEK(),DBGOTOP() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBGOTO() * $CATEGORY$ * Database * $ONELINER$ * Position the record pointer to a specific location. * $SYNTAX$ * DBGOTO() --> NIL * $ARGUMENTS$ * Record number or unique identity * $RETURNS$ * DBGOTO() always returns NIL. * $DESCRIPTION$ * This function places the record pointer, if working with a .dbf file, * in selected or aliased work area at the record number specified by * . The position if not affected by an active index or * by any enviromental SET condiction. * * Issuing a DBGOTO(RECNO()) call in a network enviroment will refresh * the database and index buffers. This is the same as a DBSKIP(0) call. * The parameter may be something other than a record * number. In some data formats, for example, the value of * is a unique primary key while in other formats, could * be an array offset if the data set was an array. * $EXAMPLES$ * * The following example uses DBGOTO() to iteratively process * every fourth record: * * DBUSEAREA( .T., "DBFNTX", "Sales", "Sales", .T. ) * // * // toggle every fourth record * DO WHILE !EOF() * DBGOTO( RECNO() + 4 ) * Sales->Group := "Bear" * ENDDO * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant. * $FILES$ * Library is rdd * $SEEALSO$ * BOF(),EOF(),DBGOTOP(),DBGOBOTTOM(),DBSEEK(),DBSKIP() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBGOTOP() * $CATEGORY$ * Database * $ONELINER$ * Moves the record pointer to the top of the database. * $SYNTAX$ * DBGOTOP() --> NIL * $RETURNS$ * DBGOTOP() always returns NIL. * $DESCRIPTION$ * This function moves the record pointer in the selected or aliased * work area to the top of the file. The position of the record pointer * is affected by the values in the index key or by an active FILTER * condition. Otherwise, if no index is active or if no filter condition * is present, the value of RECNO() will be 1. * $EXAMPLES$ * USE Tests * DBGOTOP() * ? RECNO() * DBGOBOTTOM() * ? RECNO() * USE * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * BOF(),EOF(),DBSKIP(),DBSEEK(),DBGOBOTTOM() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBRECALL() * $CATEGORY$ * Database * $ONELINER$ * Recalls a record previousy marked for deletion. * $SYNTAX$ * DBRECALL() --> NIL * $RETURNS$ * DBRECALL() always returns NIL. * $DESCRIPTION$ * This function unmarks those records marked for deletion and * reactivates them in the aliased or selected work area. If a record * is DELETED and the DELETED setting is on, the record will still be * visible for a DBRECALL() provided that the database record pointer * has not been skipped. Once a record marked for deletion with the * DELETE setting ON has been skipped, it no longer can be brought back * with DBRECALL(). * $EXAMPLES$ * USE Test NEW * DBGOTO(10) * DBDELETE() * ? DELETED() * DBRECALL() * ? DELETED() * USE * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * DBDELETE() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBRLOCK() * $CATEGORY$ * Database * $ONELINER$ * This function locks the record basedon identify * $SYNTAX$ * DBRLOCK([]) --> lSuccess * $ARGUMENTS$ * Record indetifier * $RETURNS$ * DBRLOCK() returns a logical true (.T.) if lock was successful * $DESCRIPTION$ * This function attempts to lock a record which is indentified * by in the active data set. If the lock is successful * the function will return a logical true (.T.) value; otherwise * a logical false (.F.) will be returned. If is not * passed it will be assumed to lock the current active record/data * item. * $EXAMPLES$ * FUNCTION Main() * LOCAL x:=0 * USE Tests New * FOR x:=1 to reccount() * IF !DBRLOCK() * DBUNLOCK() * ENDIF * NEXT * USE * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * DBUNLOCK(),DBUNLOCKALL(),FLOCK(),RLOCK() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBRLOCKLIST() * $CATEGORY$ * Database * $ONELINER$ * This function return a list of records in the database work area * $SYNTAX$ * DBRLOCKLIST() --> aRecordLocks * $RETURNS$ * is an array of lock records * $DESCRIPTION$ * This function will return an array of locked records in a given * and active work area. If the return array is an empty array * (meaning no elements in it), then there are no locked record in that * work area. * $EXAMPLES$ * FUNCTION Main() * LOCAL aList:={} * LOCAL x:=0 * USE Tests NEW * DBGOTO(10) * RLOCK() * DBGOTO(100) * RLOCK() * aList:=DBRLOCKLIST() * FOR x:=1 TO LEN(aList) * ? aList[x] * NEXT * USE * RETURN NIL * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * RLOCK(),DBRLOCK(),DBRUNLOCK() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBRUNLOCK() * $CATEGORY$ * Database * $ONELINER$ * Unlocks a record base on its indentifier * $SYNTAX$ * DBRUNLOCK([]) --> NIL * $ARGUMENTS$ * Record indentifier,tipicaly a record number * $RETURNS$ * DBRUNLOCK() always returns NIL. * $DESCRIPTION$ * This function will attempt to unlock the record specified as * , which in a .dbf format is the record number. If not * specified, them the current active record/data item will be * unlocked * $EXAMPLES$ * FUNCTION Main() * USE Tests New * DBGOTO(10) * IF RLOCK() * ? Tests->ID * DBRUNLOCK() * ENDIF * USE * RETURN NIL * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * RLOCK(),DBRLOCK(),DBRLOCKLIST() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBSEEK() * $CATEGORY$ * Database * $ONELINER$ * Searches for a value based on an active index. * $SYNTAX$ * DBSEEK(, [],[]) --> lFound * $ARGUMENTS$ * Any expression * * Toggle SOFTSEEK condition * * is an optional logical value that set the current * record position to the last record if successful * $RETURNS$ * DBSEEK() returns logical true (.T.) if found, otherwise false * $DESCRIPTION$ * This function searches for the first record in a database file whose * index key matches . If the item is found, the function will * return a logical true (.T.), the value of FOUND() wilI be a logical * true (.T.), and the value of EOF() wilI be a logical false (.F.). If * no item is found. then the function will return a logical false, the * value of FOUND( ) will be a logical false (.F.), and the value of * EOF( ) will be a logical true (.T.). * * This function always "rewinds" the database pointer and starts the * search from the top of the file. * * If the SOFTSEEK flag is on or if is set to a logical true * (.T.) the value of FOUND() will be a logical false and EOF() will be * false if there is an item in the index key with a greater value than * the key expression ; at this point the record pointer will * position itself on that record. However, if there is no greater key * in the index,EOF() will return a logical true (.T.) value. If * is not passed, the function will look to the internal * status of SOFTSEEK before performing the operation. The default of * is a logical false (.F.) * $EXAMPLES$ * FUNCTION Main() * USE Tests New INDEX Tests * DBGOTO(10) * nId:=Tests->nId * IF Tests->(DBSEEK(nId)) * IF RLOCK() * ? Tests->Name * DBRUNLOCK() * ENDIF * ENDIF * USE * RETURN NIL * * ACCEPT "Employee name: " TO cName * IF ( Employee->(DBSEEK(cName)) ) * Employee->(ViewRecord()) * ELSE * ? "Not found" * END * * $STATUS$ * S * $COMPLIANCE$ * DBSEEK() is Compatible with CA-Cl*pper 5.3 * $FILES$ * Library is rdd * $SEEALSO$ * DBGOBOTTOM(),DBGOTOP(),DBSKIP(),EOF(),BOF(),FOUND() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBSELECTAREA() * $CATEGORY$ * Database * $ONELINER$ * Change to another work area * $SYNTAX$ * DBSELECTAREA() --> NIL * $ARGUMENTS$ * Alias or work area * $RETURNS$ * DBSELECTAREA() always returns NIL. * $DESCRIPTION$ * This function moves the Harbour internal primary focus to the work * area designated by . If is numeric, them it will * select the numeric work area;if is character,then it will * select the work area with the alias name. * * DBSELECTAREA(0) will select the next avaliable and unused work area. * Up to 255 work areas are supported.Each work area has its own alias * and record pointer, as well as its own FOUND(), DBFILTER(), * DBRSELECT() and DBRELATION() function values. * $EXAMPLES$ * FUNCTION Main() * LOCAL nId * USE Tests NEW INDEX Tests * USE Tests1 NEW INDEX Tests1 * DBSELECTAREA(1) * nId:=Tests->Id * DBSELECTAREA(2) * IF DBSEEK(nId) * ? Tests1->cName * ENDIF * DBCLOSEALL() * RETURN NIL * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compatible. * $FILES$ * Library is rdd * $SEEALSO$ * DBUSEAREA(),SELECT() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBSETDRIVER() * $CATEGORY$ * Database * $ONELINER$ * Establishes the RDD name for the selected work area * $SYNTAX$ * DBSETDRIVER( [] ) --> cCurrentDriver * $ARGUMENTS$ * Optional database driver name * $RETURNS$ * DBSETDRIVER() returns the name of active driver * $DESCRIPTION$ * This function returns the name of the current database driver for the * selected work area. The default will be "DBFNTX". If specified, * contains the name of the database driver that should be * used to activate and manage the work area. If the specified driver is * not avaliable,this function will have no effect. * $EXAMPLES$ * DBSETDRIVER("ADS") * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compatible * $FILES$ * Library is rdd * $SEEALSO$ * DBUSEAREA() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBSKIP() * $CATEGORY$ * Database * $ONELINER$ * Moves the record pointer in the selected work area. * $SYNTAX$ * DBSKIP([]) --> NIL * $ARGUMENTS$ * Numbers of records to move record pointer. * $RETURNS$ * DBSKIP() always returns NIL. * $DESCRIPTION$ * This function moves the record pointer in the selected or * aliased work area. The default value for will be 1. * A DBSKIP(0) will flush and refresh the internal database bufer and * make any changes made to the record visible without moving the record * pointer in either direction. * $EXAMPLES$ * FUNCTION Main() * USE Tests NEW * DBGOTOP() * WHILE !EOF() * ? Tests->Id, Tests->Name * DBSKIP() * ENDDO * USE * RETURN NIL * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compatible * $FILES$ * Library is rdd * $SEEALSO$ * BOF(),DBGOBOTTOM(),DBGOTOP(),DBSEEK(),EOF() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBSETFILTER() * $CATEGORY$ * Database * $ONELINER$ * Establishes a filter condition for a work area. * $SYNTAX$ * DBSETFILTER(, []) --> NIL * $ARGUMENTS$ * Code block expression for filtered evaluation. * * Optional character expression of code block. * $RETURNS$ * DBSETFILTER() always returns NIL. * $DESCRIPTION$ * This function masks a database so that only those records that meet * the condition prescribed by the expression in the code block * and literally expressed as are visible. * If is not passed to this function,then the DBFILTER() * function will return an empty string showing no filter in that work * area which in fact,would be not correct. * $EXAMPLES$ * FUNCTION Main() * USE Tests NEW * DBSETFILTER( {|| Tests->Id <100 }, "Tests->Id <100" ) * DBGOTOP() * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant. * $FILES$ * Library is rdd * $SEEALSO$ * DBFILTER(),DBCLEARFILTER() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBSTRUCT() * $CATEGORY$ * Database * $ONELINER$ * Creates a multidimensional array of a database structure. * $SYNTAX$ * DBSTRUCT() --> aStruct * $RETURNS$ * DBSTRUCT() returns an array pointer to database structure * $DESCRIPTION$ * This function returns a multidimensional array. This array has array * pointers to other arrays,each of which contains the characteristic * of a field in the active work area. The lenght of this array is based * in the number of fields in that particular work area. In other words, * LEN(DBSTRUCT()) is equal to the value obtained from FCOUNT(). * Each subscript position * $EXAMPLES$ * FUNCTION Main() * LOCAL aStru,x * USE Tests NEW * aStru:=DBSTRUCT() * FOR x:=1 TO LEN(aStru) * ? aStru[x,1] * NEXT * USE * RETURN NIL * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * Header is dbstruct.ch * $SEEALSO$ * AFIELDS()* * $END$ */ /* $DOC$ * $FUNCNAME$ * DBUNLOCK() * $CATEGORY$ * Database * $ONELINER$ * Unlock a record or release a file lock * $SYNTAX$ * DBUNLOCK() --> NIL * $RETURNS$ * DBUNLOCK() always returns NIL. * $DESCRIPTION$ * This function releases the file or record lock in the currently * selected or aliased work area. It will not unlock an associated lock * in a related databases. * $EXAMPLES$ * nId := 10 * USE TestId INDEX TestId NEW * IF TestId->(DBSEEK(nId)) * IF TestId->(RLOCK()) * DBDELETE() * ELSE * DBUNLOCK() * ENDIF * ENDIF * USE * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compatible. * $FILES$ * Library is rdd * $SEEALSO$ * DBUNLOCKALL(),FLOCK(),RLOCK() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBUNLOCKALL() * $CATEGORY$ * Database * $ONELINER$ * Unlocks all records and releases all file locks in all work areas. * $SYNTAX$ * DBUNLOCKALL() --> NIL * $RETURNS$ * DBUNLOCKALL() always returns NIL. * $DESCRIPTION$ * This function will remove all file and record locks in all work area. * $EXAMPLES$ * nId:=10 * USE Tests INDEX TestId NEW * USE Tests1 INDEX Tests NEW * IF TestId->(DBSEEK(nId)) * IF TestId->(RLOCK()) * DBDELETE() * ELSE * DBUNLOCK() * ENDIF * ELSE * DBUNLOCKALL() * ENDIF * USE * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * DBUNLOCK(),FLOCK(),RLOCK() * $END$ */ /* $DOC$ * $FUNCNAME$ * DBUSEAREA() * $CATEGORY$ * Database * $ONELINER$ * Opens a work area and uses a database file. * $SYNTAX$ * DBUSEAREA( [], [], , [], * [], []) --> NIL * $ARGUMENTS$ * A optional logical expression for the new work area * * Database driver name * * File Name * * Alias name * * Shared/exclusive status flag * * Read-write status flag. * $RETURNS$ * DBUSEAREA() always returns NIL. * $DESCRIPTION$ * This function opens an existing database named in the current * work area. If is set to a logical true (.T.) value, then * the database will be opened in the next available and unused * work area. The default value of is a logical false (.F.). * If used, is the name of the database driver associated with * the file that is opened. The default for this will be the * value of DBSETDRlVER(). * * IF used, contains the alias name for that work area, If not * specified, the root name of the database specified in will be * used. * * If is set to a logical true (.T.) value, the database that * is specified in will be opened by the user EXCLUSIVELY. Thus * locking it from all other nodes or users on the network. If * is set to a logical false (.F.) value, then the database will be in * SHARED mode. If is not passed, then the function will turn * to the internal setting of SET EXCLUSIVE to determine a setting. * * If is specified, the file will be set to READ ONLY mode. * If it is not specified, the file will he opened in normal read-write * mode. * $EXAMPLES$ * DBUSEAREA(.T.,,"Tests") * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $FILES$ * Library is rdd * $SEEALSO$ * DBCLOSEAREA(),DBSETDRIVER(),SELECT(),SET() * $END$ */
c:\harbour\doc\en\rddmisc.txt
/*
 * $Id: rddmisc.txt 9193 2008-08-19 15:07:28Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Luiz Rafael Culik 
 *    DB*() documentation
 *    ORD*() documentation
 *    RDD*() documentation
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *     AFIELDS()*
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Fills referenced arrays with database field information
 *  $SYNTAX$
 *      AFields([,][,][,]) --> 
 *  $ARGUMENTS$
 *        Array of field names
 *
 *        Array of field names
 *
 *        Array of field names
 *
 *        Array of field names
 *  $RETURNS$
 *       Number od fields in a database or work area
 *  $DESCRIPTION$
 *      This function will fill a series of arrays with field
 *      names, field types, field lenghts, and number of field
 *      decimal positions for the currently selected or designed
 *      database. Each array parallels the different descriptors
 *      of a file's structure. The first array will consist of the
 *      names of the fields in the current work area. All other arrays
 *      are optional and will be filled with the corrensponding data.
 *      This function will return zero if no parameters are specified
 *      or if no database is avaliable in the current work area. Otherwise,
 *      the number of fields or the lenght of the shortest array argument,
 *      witchever is smaller, will be returned.
 *
 *      AFIELDS() is a compatibility function, it is superseded by
 *      DBSTRUCT() which returns one multidimensional array.
 *
 *      NOTE: The destination arrays must be initialized to a given size,
 *            usually FCOUNT(), before calling this function.
 *
 *  $EXAMPLES$
 *      FUNCTION Main()
 *         LOCAL aNames, aTypes, aLens, aDecs, nCount, nFields, i
 *         USE Test
 *
 *         nCount := FCount()
 *         ? "Number of fields:", nCount
 *         PrintFields( nCount )   // Information for all fields
 *         PrintFields( 4      )   // Information for first 4 fields
 *      RETURN NIL
 *
 *      FUNCTION PrintFields( nCount )
 *         LOCAL aNames, aTypes, aLens, aDecs, nFields, i
 *
 *         aNames  := Array( nCount )
 *         aTypes  := Array( nCount )
 *         aLens   := Array( nCount )
 *         aDecs   := Array( nCount )
 *         nFields := aFields( aNames, aTypes, aLens, aDecs )
 *
 *         ? "Number of items :", nFields
 *         FOR i := 1 TO nFields
 *             ?  i, PadR( aNames[ i ], 12 ), aTypes[ i ]
 *             ?? aLens[ i ], aDecs[ i ]
 *         NEXT
 *         ?
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      AFIELDS() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBSTRUCT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *     ALIAS()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Returns the alias name of a work area
 *  $SYNTAX$
 *      Alias([]) --> 
 *  $ARGUMENTS$
 *       Number of a work area
 *  $RETURNS$
 *       Name of alias
 *  $DESCRIPTION$
 *      This function returns the alias of the work area indicated by 
 *      If  is not provided, the alias of the current work area is
 *      returned.
 *  $EXAMPLES$
 *      FUNCTION Main()
 *
 *      USE Test
 *      select 0
 *      qOut( IF(Alias()=="","No Name",Alias()))
 *      Test->(qOut(Alias())
 *      qOut(Alias(1))
 *
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      ALIAS() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBF()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *     BOF()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Test for the beggining-of-file condition
 *  $SYNTAX$
 *      BOF() --> 
 *  $RETURNS$
 *      BOF() Logical true (.T.) or false (.F.)
 *  $DESCRIPTION$
 *      This function determines if the beggining of the file marker has been
 *      reached. If so, the function will return a logical true (.T.); otherwise,
 *      a logical false (.F.) will be returned.
 *      By default, BOF() will apply to the currently selected database unless
 *      the function is preceded by an alias
 *  $EXAMPLES$
 *      FUNCTION Main()
 *        USE Tests NEW
 *        DBGOTOP()
 *        ? "Is Eof()",EOF()
 *        DBGOBOTTOM()
 *        ? "Is Eof()",EOF()
 *        USE
 *     RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      BOF() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *    EOF(),FOUND(),LASTREC()
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      ZAP
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Remove all records from the current database file
 *  $SYNTAX$
 *      ZAP
 *  $DESCRIPTION$
 *      This command removes all of the records from the database in the
 *      current work area. This operation also updates any index file in
 *      use at the time of this operation. In addition, this command removes
 *      all items within an associated memo file.
 *      In a network enviroment, any file that is about to be ZAPped must
 *      be used exclusively.
 *  $EXAMPLES$
 *      USE Tests NEW index Tests
 *      ZAP
 *      USE
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This command is CA-Cl*pper compliant
 *  $SEEALSO$
 *      DELETE,PACK,USE
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DELETED()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Tests the record's deletion flag.
 *  $SYNTAX$
 *      DELETED() --> lDeleted
 *  $RETURNS$
 *      DELETED() return a logical true (.T.) or false (.F.).
 *  $DESCRIPTION$
 *      This function returns a logical true (.T.) is the current record in the
 *      selected or designated work area ha ben marked for deletion. If not, the
 *      function will return a logical false (.F.).
 *  $EXAMPLES$
 *      FUNCTION Main()
 *      USE Test New
 *      DBGOTO()
 *      DBDELETE()
 *      ? "Is Record Deleted",Test->(DELETED())
 *      DBRECALL()
 *      USE
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBDELETE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      EOF()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Test for end-of-file condition.
 *  $SYNTAX$
 *      EOF() --> 
 *  $RETURNS$
 *       A logical true (.T.) or false (.F.)
 *  $DESCRIPTION$
 *      This function determines if the end-of-file marker has been reached.
 *      If it has, the function will return a logical true (.T.); otherwise
 *      a logical false (.F.) will be returnd
 *  $EXAMPLES$
 *      FUNCTION Main()
 *        USE Tests NEW
 *        DBGOTOP()
 *        ? "Is Eof()",EOF()
 *        DBGOBOTTOM()
 *        ? "Is Eof()",EOF()
 *        USE
 *     RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      EOF() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *    BOF(),FOUND(),LASTREC()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FCOUNT()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Counts the number of fields in an active database.
 *  $SYNTAX$
 *      FCOUNT() --> nFields
 *  $RETURNS$
 *       Return the number of fields
 *  $DESCRIPTION$
 *      This function returns the number of fields in the current or designated
 *      work area. If no database is open in this work area, the function will
 *      return 0.
 *  $EXAMPLES$
 *      FUNCTION Main()
 *        USE Tests NEW
 *        ? "This database have ",Tests->(FCOUNT()),"Fields"
 *        USE
 *      RETURN Nil
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      FIELDNAME(),TYPE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FIELDGET()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Obtains the value  of a specified field
 *  $SYNTAX$
 *      FIELDGET() --> ValueField
 *  $ARGUMENTS$
 *       Is the numeric field position
 *  $RETURNS$
 *        Any expression
 *  $DESCRIPTION$
 *      This function returns the value of the field at the th location
 *      in the selected or designed work area. If the value in  does not
 *      correspond to n avaliable field position in this work area, the function
 *      will return a NIL data type.
 *  $EXAMPLES$
 *      FUNCTION Main()
 *      USE Test NEW
 *      ? Test->(FieldGet(1))
 *      USE
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper Compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      FIELDPUT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FIELDNAME()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Return the name of a field at a numeric field location.
 *  $SYNTAX$
 *      FIELDNAME/FIELD() --> cFieldName
 *  $ARGUMENTS$
 *       Field order in the database.
 *  $RETURNS$
 *       returns the field name.
 *  $DESCRIPTION$
 *      This function return the name of the field at the th position.
 *      If the numeric value passed to this function does not correspond to an
 *      existing field in the designated or selected work area, this function
 *      will return a NULL byte.
 *  $EXAMPLES$
 *      FUNCTION Main()
 *        LOCAL x
 *        USE Tests NEW
 *        FOR x := 1 to Tests->(FCOUNT())
 *          ? "Field Name",FieldName(x)
 *        NEXT
 *        USE
 *      RETURN Nil
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compatible.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *    DBSTRUCT(),FCOUNT(),LEN(),VALTYPE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FIELDPOS()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Return the ordinal position of a field.
 *  $SYNTAX$
 *      FIELDPOS() --> nFieldPos
 *  $ARGUMENTS$
 *       Name of a field.
 *  $RETURNS$
 *       is ordinal position of the field.
 *  $DESCRIPTION$
 *      This function return the ordinal position of the specified field 
 *      in the current or aliased work areaIf there isn't field under the name
 *      of  or of no database is open in the selected work area, the func-
 *      tion will return a 0.
 *  $EXAMPLES$
 *      FUNCTION Main()
 *      USE Test NEW
 *      ? Test->(FIELDPOS("ID"))
 *      USE
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      FIELDGET(),FIELDPUT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FIELDPUT()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Set the value of a field variable
 *  $SYNTAX$
 *      FIELDPUT(, ) --> ValueAssigned
 *  $ARGUMENTS$
 *       The field numeric position
 *
 *       Expression to be assigned to the specified field
 *  $RETURNS$
 *       Any expression
 *  $DESCRIPTION$
 *      This function assings the value in  to the th
 *      field in the current or designated work area. If the operation is
 *      successful, the return value of the function will be the same value
 *      assigned to the specified field. If the operation is not successful,
 *      the function will return a NIL data type
 *  $EXAMPLES$
 *      USE Tests New
 *      FIELDPUT(1,"Mr. Jones")
 *      USE
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compatible.
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      FIELDGET()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FLOCK()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Locks a file
 *  $SYNTAX$
 *      FLOCK() --> lSuccess
 *  $RETURNS$
 *       A true (.T.) value, if the lock was successful;otherwise
 *      false (.F.)
 *  $DESCRIPTION$
 *      This function returns a logical true (.T.) if a file lock is
 *      attempted and is successfully placed on the current or designated
 *      database. This function will also unlock all records locks placed
 *      by the same network station.
 *  $EXAMPLES$
 *      USE Tests New
 *      IF FLOCK()
 *         SUM Tests->Ammount
 *      ENDIF
 *      USE
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compatible
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      RLOCK()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FOUND()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Determine the success of a previous search operation.
 *  $SYNTAX$
 *      FOUND() --> lSuccess
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *       A logical true (.T.) is successful; otherwise, false (.F.)
 *  $DESCRIPTION$
 *      This function is used to test if the previous SEEK, LOCATE, CONTINUE,
 *      or FIND operation was successful. Each wrk area has its own FOUND()
 *      flag, so that a FOUND() condition may be tested in unselected work
 *      areas by using an alias.
 *  $EXAMPLES$
 *      nId:=100
 *      USE Tests NEW INDEX Tests
 *      SEEK nId
 *      IF FOUND()
 *        ? Tests->Name
 *      ENDIF
 *      USE
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compatible
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      EOF()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HEADER()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Return the length of a database file header
 *  $SYNTAX$
 *      HEADER() --> nBytes
 *  $RETURNS$
 *       The numeric size of a database file header in bytes
 *  $DESCRIPTION$
 *      This function returns the number of bytes in the header of the
 *      selected database ot the database in the designated work area.
 *
 *      If used in conjunction with the LASTREC(), RECSIZE() and DISKSPACE()
 *      functions, this functions is capable of implementing a backup and
 *      restore routine.
 *  $EXAMPLES$
 *      USE Tests New
 *      ? Header()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compatible
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DISKSPACE(),LASTREC(),RECSIZE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      LASTREC()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Returns the number of records in an active work area or database.
 *  $SYNTAX$
 *      LASTREC() | RECCOUNT()* --> nRecords
 *  $RETURNS$
 *       The number of records
 *  $DESCRIPTION$
 *      This function returns the number of records present in the database
 *      in the selected or designated work area. If no records are present
 *      the value of this function will be 0. Additionaly, if no database is
 *      in use in the selected or designated work area, this function will
 *      return a 0 value as well.
 *  $EXAMPLES$
 *      USE Tests NEW
 *      ? LASTREC(), RECCOUNT()
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compatible
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      EOF()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      LUPDATE()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Yields the date the database was last updated.
 *  $SYNTAX$
 *      LUPDATE() --> dModification
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *        The date of the last modification.
 *  $DESCRIPTION$
 *      This function returns the date recorded by the OS when the selected
 *      or designated database was last written to disk. This function will
 *      only work for those database files in USE.
 *  $EXAMPLES$
 *      Function Main
 *
 *      Use Tests New
 *      ? Lupdate() // 04/25/2000
 *      Use
 *      Return Nil
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      FIELDNAME(),LASTREC(),RECSIZE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      NETERR()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Tests the success of a network function
 *  $SYNTAX$
 *      NETERR([]) --> lError
 *  $ARGUMENTS$
 *       Is a logical Expression.
 *  $RETURNS$
 *       A value based on the success of a network operation or
 *      function.
 *  $DESCRIPTION$
 *      This function return a logical true (.T.) is a USE, APPEND BLANK, or
 *      a USE...EXCLUSIVE command is issue and fails in a network enviroment.
 *      In the case of USE and USE...EXCLUSIVE commands, a NETERR() value
 *      of .T. would be returned if another node of the network has the
 *      exclusive use of a file. And the case of the APPEND BLANK command,
 *      NETERR() will return a logical true (.T.) if the file or record
 *      is locked by another node or the value of LASTREC() has been advanced
 *      The value of NETERR() may be changed via the value of .
 *      This allow the run-time error-handling system to control the way
 *      certains errors are handled.
 *  $EXAMPLES$
 *      USE TEST NEW Index Test
 *      If !NetErr()
 *          Seek Test->Name="HARBOUR"
 *          If Found()
 *             ? Test->Name
 *          Endif
 *      Endif
 *      USE
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      FLOCK(),RLOCK()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      RECCOUNT()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Counts the number of records in a database.
 *  $SYNTAX$
 *      RECCOUNT()* | LASTREC() --> nRecords
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *        The number of records
 *  $DESCRIPTION$*
 *      This function returns the number of records present in the database
 *      in the selected or designated work area. If no records are present
 *      the value of this function will be 0. Additionaly, if no database is
 *      in use in the selected or designated work area, this function will
 *      return a 0 value as well.
 *  $EXAMPLES$
 *      Use Test NEW
 *      USE Harbour NEW
 *      ? Reccount()
 *      ? Test->(RECCOUNT())
 *      CLOSE ALL
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      EOF(),LASTREC(),RECNO(),DBGOBOTTOM()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      RECNO()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Returns the current record number or identity.
 *  $SYNTAX$
 *      RECNO() --> Identity
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *      RECNO() The record number or indentity
 *  $DESCRIPTION$
 *      This function returns the position of the record pointer in the
 *      currently selected ot designated work area.
 *      If the database file is empty and if the RDD is the traditional .dbf
 *      file, the value of this function will be 1.
 *  $EXAMPLES$
 *      USE Tests NEW
 *      DBGOTOP()
 *      RECNO()            // Returns 1
 *      DBGOTO(50)
 *      RECNO()            // Returns 50
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBGOTO(),DBGOTOP(),DBGOBOTTOM(),LASTREC(),EOF(),BOF()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      RECSIZE()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Returns the size of a single record in an active database.
 *  $SYNTAX$
 *      RECSIZE() --> nBytes
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *       The record size.
 *  $DESCRIPTION$
 *      This function returns the number os bytes used by a single record
 *      in the currently selected or designated database file. If no database
 *      is in use in this work area, the return value from this function
 *      will be 0.
 *  $EXAMPLES$
 *      USE Tests NEW
 *      DBGOTOP()
 *      RECSIZE()            // Returns 1
 *      DBGOTO(50)
 *      RECSIZE()
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DISKSPACE(),FIELDNAME(),HEADER(),LASTREC()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      RLOCK()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Lock a record in a work area
 *  $SYNTAX$
 *      RLOCK() --> lSuccess
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *      RLOCK() True (.T.) if record lock is successful; otherwise, it
 *      returns false (.F.).
 *  $DESCRIPTION$
 *      This function returns a logical true (.T.) if an attempt to lock a
 *      specific record in a selected or designated work area is successful.
 *      It will yield a false (.F.) if either the file or the desired record
 *      is currently locked.
 *      A record that is locked remains locked until another RLOCK() is issued
 *      or until an UNLOCK command is executed.
 *      On a Network enviroment the follow command need that the record is
 *      locked:
 *
 *      @...GET
 *
 *      DELETE (single record)
 *
 *      RECALL (single record)
 *
 *      REPLACE (single record)
 *  $EXAMPLES$
 *      nId:=10
 *      USE TestId INDEX TestId NEW
 *      IF TestId->(DBSEEK(nId))
 *         IF TestId->(RLOCK())
 *            DBDELETE()
 *         ENDIF
 *      ENDIF
 *      USE
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      FLOCK()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SELECT()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Returns the work area number for a specified alias.
 *  $SYNTAX$
 *      SELECT([]) --> nWorkArea
 *  $ARGUMENTS$
 *       is the target work area alias name.
 *  $RETURNS$
 *      SELECT() returns the work area number.
 *  $DESCRIPTION$
 *      This function returns the work area number for the specified alias
 *      name . If no parameter is specified, the current work area will
 *      be the return value of the function.
 *  $EXAMPLES$
 *      USE TESTS NEW
 *      USE NAMES NEW
 *      cOldArea:=SELECT("NAMES")
 *      select TEST
 *      LIST
 *      SELECT cOldArea
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      ALIAS(), USED()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      USED()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Checks whether a database is in use in a work area
 *  $SYNTAX$
 *      USED() --> lDbfOpen
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *       True is a database is Used;otherwise False
 *  $DESCRIPTION$
 *      This function returns a logical true (.T.) if a database file is in
 *      USE in the current or designated work area. If no alias is specified
 *      along with this function , it will default to the currently selected
 *      work area.
 *  $EXAMPLES$
 *      Use TESTS NEW
 *      USE Names New
 *      ? USED()    // .T.
 *      ? TESTS->(USED()) //.T.
 *      CLOSE
 *      ? USED()  // .F.
 *      Select TESTS
 *      ? USED() //.T.
 *
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper Compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      ALIAS(), SELECT()
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      PACK
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Remove records marked for deletion from a database
 *  $SYNTAX$
 *      PACK
 *  $DESCRIPTION$
 *      This command removes records that were marked for deletion from the
 *      currently selected database. This command does not pack the contents
 *      of a memo field; those files must be packed via low-level fuctions.
 *
 *      All open index files will be automatically reindexed once PACK command
 *      has completed its operation. On completion, the record pointer is placed
 *      on the first record in the database.
 *  $EXAMPLES$
 *      USE Tests NEW index Tests
 *      DBGOTO(10)
 *      DELETE NEXT 10
 *      PACK
 *      USE
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This command is CA-Cl*pper compliant
 *  $SEEALSO$
 *      DBEVAL(), DELETE, DELETED(), ZAP, RECALL
 *  $END$
 */
c:\harbour\doc\en\rddord.txt
/*
 * $Id: rddord.txt 9194 2008-08-19 15:18:13Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Luiz Rafael Culik 
 *    DB*() documentation
 *    ORD*() documentation
 *    RDD*() documentation
 *
 * See doc/license.txt for licensing terms.
 *
 */


/*  $DOC$
 *  $FUNCNAME$
 *      ORDBAGEXT()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Returns the Order Bag extension
 *  $SYNTAX$
 *      ORDBAGEXT() --> cBagExt
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *       The Rdd extension name.
 *  $DESCRIPTION$
 *      This function return th character name of the RDD extension for
 *      the order bag. This is determined by the active RDD for the selected
 *      work area.
 *
 *      This function replaces the Indexord() function.
 *  $EXAMPLES$
 *      USE Tests NEW VIA "DBFNTX"
 *      ? ORDBAGEXT()      //  Returns .ntx
 *      DBCLOSEAREA()
 *      USE Tests NEW VIA "DBFCDX"
 *      ? ORDBAGEXT()      //  Returns .cdx
 *      DBCLOSEAREA()
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      INDEXEXT(),ORDBAGNAME()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ORDBAGNAME()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Returns the Order Bag Name.
 *  $SYNTAX$
 *      ORDBAGNAME( | ) --> cOrderBagName
 *  $ARGUMENTS$
 *      A numeric value representing the Order bag number.
 *
 *      The character name of the Order Bag.
 *  $RETURNS$
 *      ORDBAGNAME() returns the Order bag name
 *  $DESCRIPTION$
 *      This function returns the name of the order bag for the specified
 *      work area. If  is specidied, it will represent the position
 *      in the order list of the target order. If  is specified,
 *      it will represent the name of the target order. In essence, it will
 *      tell the name of the database (if That Rdd is in use) for a given
 *      index name or index order number. If  is not specified
 *      or  is 0, the Current active order will be used.
 *  $EXAMPLES$
 *      USE Tests VIA "DBFCDX" NEW
 *      Set index to TESTs
 *      ORDBAGNAME( "TeName" )        // Returns: Customer
 *      ORDBAGNAME( "TeLast" )        // Returns: Customer
 *      ORDBAGNAME( "teZip" )         // Returns: Customer
 *      Set Order to Tag TeName
 *      ? OrderBagName() //Return Custumer
 *  $TESTS$
 *      See Examples
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      INDEXORD(),ORDBAGEXT(),ALIAS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ORDCONDSET()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Set the Condition and scope for an order
 *  $SYNTAX$
 *      ORDCONSET([],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [],
 *        [])
 *  $ARGUMENTS$
 *       is a string that specifies the FOR condition for the
 *   order.
 *      is a code block that defines a FOR condition that
 *   each record within the scope must meet in order to be processed. If
 *   a record does not meet the specified condition, it is ignored and the
 *   next  record is processed.Duplicate keys values are not added to the
 *   index file when a FOR condition is Used.
 *  $RETURNS$
 *
 *  $DESCRIPTION$
 *
 *  $EXAMPLES$
 *
 *  $TESTS$
 *
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      ORDCONDSET() is CA-Cl*pper compliant
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ORDCREATE()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Create an Order in an Order Bag
 *  $SYNTAX$
 *      ORDCREATE(,[], ,
 *      [], []) --> NIL
 *  $ARGUMENTS$
 *        Name of the file that contains one or more Orders.
 *
 *       Name of the order to be created.
 *
 *       Key value for order for each record in the current work area
 *
 *       Code block that evaluates to a key for the order for each
 *      record in the work area.
 *
 *       Toggle the unique status of the index.
 *  $RETURNS$
 *      ORDCREATE() always returns NIL.
 *  $DESCRIPTION$
 *      This function creates an order for the current work area. It is
 *      similar to the DBCREATEINDEX() except that this function allows
 *      different orders based on the RDD in effect. The name of the file
 *       or the name of the order  are technically
 *      both considered to be "optional" except that at least one of two
 *      must exist in order to create the order.
 *
 *      The parameter  is the index key expression; typically in
 *      a .dbf driver, the maximum length of the key is 255 characters.
 *
 *      If  is not specified, then the code block is create by
 *      macro expanding the value of .
 *
 *      If  is not specified, then the current internal setting of
 *      SET UNIQUE ON or OFF will be observed.
 *
 *      The active RDD driver determines the capacity in the order for a
 *      specific order bag.
 *
 *      If the name  is found in the order bag can contain
 *      a single order, the the name  is erased and a new
 *      order is added to the order list in the current or specified work
 *      area.On the other hand, if it can contain multiples tags and if
 *       does not already exist in the order list, then it is
 *      added. It is does exist, then the  replaces the former
 *      name in the order list in the current or specified work area.
 *  $EXAMPLES$
 *      USE TESTS VIA "DBFNDX" NEW
 *      ORDCREATE( "FNAME",, "Tests->fName" )
 *
 *      USE TEsts VIA "DBFCDX" NEW
 *      ORDCREATE( , "lName", "tests->lName" )
 *  $TESTS$
 *      See examples
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      DBCREATEINDEX(),ORDNAME(),ORDSETFOCUS()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ORDDESTROY()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Remove an Order from an Order Bag
 *  $SYNTAX$
 *      ORDDESTROY( [,  ]) --> NIL
 *  $ARGUMENTS$
 *       Name of the order to remove
 *
 *       Name of the order bag from which order id to be
 *      removed
 *  $RETURNS$
 *      ORDDESTROY() always returns NIL.
 *  $DESCRIPTION$
 *      This function attempts to remove the order named  from the
 *      file containing the order bag name . If 
 *      is not specified, then the name of the file will be based on the value
 *      of the ORDNAME() function. If the extension is not included with the
 *      name of the order file, then the extension will be obtained from the
 *      default extension of the current and active RDD.
 *
 *      The DBFNTX driver do not support multiple order bags; therefore, there
 *      cannot be an order to "destroy" from a bag. This function only works
 *      for those drivers with support multiple orders bags (e.q. DBFCDX
 *      and RDDADS drivers).
 *  $EXAMPLES$
 *      USE Tests VIA "DBFCDX" NEW
 *      ORDdestroy( "lName", "tests" )
 *  $TESTS$
 *      See examples
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      ORDCREATE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ORDFOR()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Return the FOR expression of an Order
 *  $SYNTAX$
 *      ORDFOR([, ]) --> cForExp
 *
 *  $ARGUMENTS$
 *        It the name of the target order,or the numeric position
 *      of the order.
 *
 *       Name of the order bag.
 *  $RETURNS$
 *      ORDFOR() returns a expression containing the FOR condition for
 *      an order.
 *  $DESCRIPTION$
 *      This function returns a character string that is the expression for
 *      the FOR condition for the specified order. The order may be specified
 *      if  is the name of the order.However, may be an
 *      numeric which represent the position in the order list of the desired
 *      Order.
 *  $EXAMPLES$
 *      USE Tests NEW via _DBFCDX
 *      INDEX ON  Tests->Id ;
 *         TO  TESTS          ;
 *         FOR Tests->Id > 100
 *
 *      ORDFOR( "Tests" )      // Returns: Tests->Id > 100
 *  $TESTS$
 *      See examples
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant with one exception.
 *      If the  paramter is not specified or  is 0, the current
 *      active order is used.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      ORDKEY(),ORDCREATE(),ORDNAME(),ORDNUMBER()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ORDKEY()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Return the key expression of an Order
 *  $SYNTAX$
 *      ORDKEY( |  [, ]) --> cExpKey
 *  $ARGUMENTS$
 *        It the name of the target order,or the numeric position
 *      of the order.
 *
 *       Name of the order bag.
 *  $RETURNS$
 *       Returns a character string, cExpKey.
 *  $DESCRIPTION$
 *  $EXAMPLES$
 *      USE Tests NEW via _DBFCDX
 *      INDEX ON  Tests->fName ;
 *         TO  Tests           ;
 *         FOR Tests->fName > "CK"
 *      Index on Tests->Id to TestId
 *
 *      ORDKEY( "Tests" )      // Returns: Tests->fName
 *      Set order to 2
 *      ORDKEY()               // Returns: Tests->Id
 *
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant with one exception.
 *      If the  paramter is not specified or  is 0, the current
 *      active order is used.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      ORDFOR(),ORDNAME(),ORDNUMBER(),ORDKEY()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      INDEXEXT()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Returns the file extension of the index module used in an application
 *  $SYNTAX$
 *      INDEXEXT() --> 
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *         Current driver file extension
 *  $DESCRIPTION$
 *      This function returns a string that tells what indexes are to be used
 *      or will be created in the compiled application. The default value is
 *      ".ntx". This is controled by the particular database driver that is
 *      linked with the application.
 *  $EXAMPLES$
 *      IF INDEXEXT()==".ntx"
 *          ? "Current driver being used is DBFNTX"
 *      Endif
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      INDEXKEY(),INDEXORD()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      INDEXKEY()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Yields the key expression of a specified index file.
 *  $SYNTAX$
 *      INDEXKEY() --> 
 *  $ARGUMENTS$
 *        Index order number
 *  $RETURNS$
 *         The index key
 *  $DESCRIPTION$
 *      This function returns a character string stored in the header of the
 *      index file
 *
 *      The index key is displayed for an index file that is designated by
 *      , its position in the USE...INDEX or SET INDEX TO command in
 *      the currently selected or designated work area. If there is no
 *      corresnponding index key at the specified order position, a NULL
 *      byte will be returned.
 *  $EXAMPLES$
 *      USE TESTS NEW INDEX TEST1
 *      ? INDEXKEY(1)
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      INDEXORD()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      INDEXORD()
 *  $CATEGORY$
 *      Database
 *  $ONELINER$
 *      Returns the numeric position of the controlling index.
 *  $SYNTAX$
 *      INDEXORD() --> 
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *         Ordinal position of a controling index
 *  $DESCRIPTION$
 *      The INDEXORD() function returns the numeric position of the current
 *      controlling index in the selected or designated work area.
 *      A returned value of 0 indicated that no active index is controlling
 *      the database,which therefore is in the natural order.
 *  $EXAMPLES$
 *      USE TESTS NEW INDEX TEST1
 *      IF INDEXORD()>0
 *          ? "Current order is ",INDEXORD()
 *      Endif
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rdd
 *  $SEEALSO$
 *      INDEXKEY()
 *  $END$
 */
c:\harbour\doc\en\readme.txt
/*
 * $Id: readme.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*  $DOC$
 *  $FUNCNAME$
 *     OVERVIEW
 *  $CATEGORY$
 *     Document
 *  $ONELINER$
 *     HARBOUR Read me
 *  $DESCRIPTION$
 *
 *                        The Harbour project   
 *
 * ************************************************************************   
 * *  This file contains information on obtaining, installing, and using  *   
 * *  Harbour. Please read it *completely* before asking for help.        *   
 * ************************************************************************   

 * Harbour is a free implementation of an xBase language compiler. It is
 * designed to be source code compatible with the CA-Cl*pper(r) compiler.
 * That means that if you've got some code that would compile using
 * CA-Cl*pper(r) then it should compile under Harbour. The Harbour-Project
 * web page is:   
 *              http://www.harbour-project.org/   
 *
 *
 * Status and other information is always available from the web site.
 * There is a Harbour mailing list. Harbour is still at a very early
 * stage of development, so the mailing list is very much a Developers
 * only list, although every body is welcome to join in the discussions.   
 *
 * We would like you to join the Harbour development team. If you are
 * interested you may suscribe to our mailing list and start contributing
 * to this free public project.   
 *
 * Please feel free to report all questions, ideas, suggestions, fixes,
 * code, etc. you may need and want. With the help of all of you, the Harbour
 * compiler and runtime libraries will become a reality very soon.   
 *
 *
 * What this distribution contains   
 * ===============================   
 *
 * This distribution is a Source code only distribution. It does not contain
 * any executable files. Executable versions of Harbour are available from
 * the web site. Executable versions of Harbour DO NOT create runable
 * programs. Harbour at the moment produces C output code, which must be
 * compiled with the Harbour Virtual Machine and the support libraries
 * in order to create a functioning program.   
 * Please test running Harbour against your Clipper source code and report
 * any problems that might occur.    
 *
 * Very important: The preprocessor functionality is now working.
 *
 * Installation   
 * ------------   
 *
 * 1. Unzip with Harbour zip file using pkunzip or equivalent.   
 *         E.G. pkunzip -d build72.zip   
 *    This will create Harbour/ directory and all the relevant sub
 *    directories.   
 *
 * 2. Compile Harbour using your C compiler. Make files for different
 *    platforms are included in the  directory.   
 *
 *
 * --- COPYRIGHT ---   
 *
 * What copyright information do we have   
 *
 *
 * --- LICENCE ---   
 *
 * Information about the License for usage of Harbour is available in the
 * file licence.txt (when we have a license)   
 *
 * --- DISCLAIMER ---   
 *
 * Participants of The Harbour Project assume no responsibility for errors or
 * omissions in these materials.   
 *
 * THESE MATERIALS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.   
 *
 * Participants of The Harbour Project further do not warrant the accuracy or
 * completeness of the code, information, text, output or any other items
 * contained within these materials. Participants of The Harbour Project
 * shall not be liable for any special, direct, indirect, incidental, or
 * consequential damages, including without limitation, lost revenues or
 * lost profits, which may result from the use or mis-use of these materials.   
 *
 * The information in The Harbour Project is subject to change without notice
 * and does not represent any future commitment by the participants of The
 * Harbour Project.      
 *
 * The Harbour Project   
 *
 *  $SEEALSO$
 *     License
 *  $END$
 */
c:\harbour\doc\en\sayget.txt
/*
 * $Id: sayget.txt 9193 2008-08-19 15:07:28Z vszakats $
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      @...Get
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Creates a GET object and displays it to the screen
 *  $SYNTAX$
 *      @ , [SAY  [PICTURE ] COLOR  ]
 *      GET  [PICTURE ] [WHEN ] [COLOR ]
 *      [VALID  / RANGE ,]
 *  $ARGUMENTS$
 *            The row coordinate.
 *
 *            The column coordinate.
 *
 *            Message to display.
 *
 *        Character expression of PICTURE displayed.
 *
 *       Color to be Used for the SAY expression.
 *
 *            An variable/field name.
 *
 *        Character expression of PICTURE to get.
 *
 *           Logical expression to allow GET.
 *
 *          Logical expression to validate GET input.
 *
 *          Lower RANGE value.
 *
 *            Upper RANGE value.
 *
 *       Color string to be used for the GET expression.
 *  $RETURNS$
 *      None
 *  $DESCRIPTION$
 *      This command adds a GET object to the reserved array variable
 *      named GETLIST[] and displays it to the screen. The field or variable
 *      to be added to the GET object is specified in  and is displayed
 *      at row, column coordinate , .
 *
 *      If the SAY clause is used  will be displayed starting at
 *      ,, with the field variable  displayed at ROW(),
 *      COL()+ 1. If , the picture template for the SAY expression
 *      , is used, all formatting rules contained will apply See the
 *      TRANSFORM I function for futher information.
 *
 *      If  is specified, the PICTURE clause of  will be
 *      used for the GET object and all formatting rules will apply. See
 *      the table below for GET formatting rules.
 *
 *      If the WHEN clause is specified,when  evaluates to a logical
 *      true (.T.) condition, the GET object will he activated otherwise the
 *      GET object will be skipped and no information will be obtained via
 *      the screen. The name of a user-defined function returning a logical
 *      true (.T.) or false ( F.) or a code block may be ,specified in 
 *      This clause not activated until a READ command or READMODAL()
 *      function call is issued.
 *
 *      If the VALID clause is specified and  evaluates to it logical
 *      true (.T.) condition the current GET will be considered valid and
 *      the get operation will continue onto the next active GET object. If
 *      not, the cursor will remain on this GET object until aborted or
 *      until the condition in  evaluates to true (.T.). The name
 *      of a user-defined function returning a logical true (.T.) or false
 *      (.F.) or it code block may be specified in . This clause is
 *      not activated until a READ command or READMODAL( ) function call is
 *      issued.
 *
 *      If the RANGE clause is specified instead of the VALID clause, the
 *      two inclusive range values for  must be specified in 
 *      and . Id  is a date data type, and  must
 *      also be date data types; if  is a numeric data type 
 *      and  must also be numeric data types. If a value fails the
 *      RANGE test ,a message of OUT OF RANGE will appear in the SCOREBOARD
 *      area (row = 0, col = 60). The RANGE message may be turned off it the
 *      SET SCOREBOARD command or SET() function appropriately toggled.
 *
 *      NOTE       GET functions/formatting rules:

 *      
 *      @A          Allows only alphabetic characters.
 *      @B          Numbers will be left justified
 *      @C          All positive numbers will be followes by CR.
 *      @D          All dates will be in the SET DATE format.
 *      @E          Dates will be in British formal: numbers in European format.
 *      @K          Allows a suggested value to be seen within the GET
 *                  area but clears It if any noncu sor key is pressed when
 *                  the cursor is in the first Position in the GET area.
 *      @R          Nontemplate characters will be inserted.
 *      @S   Allows horizontal scrolling of a field or variable that
 *                  is  characters wide.
 *      @X          All negative numbers will be followed by DB
 *      @Z          Displays zero values as blanks.
 *      @!          Forces uppercase lettering
 *      @(          Displays negative numbers in parentheses with leading spaces.
 *      @)          Displays negative numbers in parentheses without leading spaces.
 *      
* GET templates/formatting rules: * * A Only alphabetic characters allowed. * N Only alphabetic and numeric characters allowed * X Any character allowed. * L Only T or F allowed For logical data. * Y Only Y or N allowed for logical data. * 9 Only digits, including signs, will be allowed. * # Only digits, signs. and spaces will he allowed. * ! Alphabetic characters are converted to Uppercase. * $ Dollar will be displayed in place of leading * spaces for numeric data types. * * Asterisk,, will Be displayed in place of leading spaces * for numeric data types. * . Position of decimal point. * , Position of comma. *
* Format PICTURE functions may he grouped together as well as used * in Conjunction with a PICTURE templates;however, a blank space must * be included in the PICTURE string if there are both functions and * templates. * $EXAMPLES$ * Function Main() * Local cVar:=Space(50) * Local nId:=0 * cls * @ 3,1 SAY "Name" GET cVar PICTURE "@!S 30" * @ 4,1 SAY "Id" GET nId PICTURE "999.999" * READ * ? "The name you entered is",cVar * ? "The id you entered is",nId * RETURN NIL * $TESTS$ * See Examples * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compatible * $PLATFORMS$ * All * $SEEALSO$ * @...SAY,READ,TRANSFORM() * $END$ */ /* $DOC$ * $COMMANDNAME$ * @...SAY * $CATEGORY$ * Command * $ONELINER$ * Displays data to specified coordinates of the current device. * $SYNTAX$ * @ , SAY [ PICTURE ] [COLOR ] * $ARGUMENTS$ * Row coordinate * * Column coordinate * * Value to display * * PICTURE format * * Color string * $RETURNS$ * None * $DESCRIPTION$ * This command displays the contents of at row column * coordinates , . A PICTURE clause may be speclfied * in . If the current device is set to the printer, the output * will go to the printer; the default is for all output to go to * the screen. * * For a complete list of PICTURES templates and functions, see the * @...GET command. * $EXAMPLES$ * Function Main * Cls * @ 2,1 SAY "Harbour" * @ 3,1 SAY "is" COLOR "b/r+" * @ 4,1 SAY "Power" PICTURE "@!" * Return NIL * $TESTS$ * See Examples * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $PLATFORMS$ * All * $FILES$ * * $SEEALSO$ * @...GET,SET DEVICE,TRANSFORM() * $END$ */
c:\harbour\doc\en\set.txt
/*
 * $Id: set.txt 9243 2008-08-25 21:36:00Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 David G. Holm 
 *    Documentation for: SET(), __SETCENTURY()
 *
 * Copyright 1999 A White 
 *    Documentation for: SETKEY(), HB_SetKeyGet(), HB_SETKEYSAVE(),
 *                       HB_SetKeyCheck(), SET KEY
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: __SetFunction(), SET FUNCTION
 *
 * Copyright 1999 Jose Lalin 
 *    Documentation for: SETTYPEAHEAD()
 *    Documentation for: __XHELP()
 *
 * Copyright 2000 Luiz Rafael Culik 
 *    Documentation for: SET WRAP,SET DEFAULT,SET MESSAGE
 *    Documentation for: SET PATH,SET INTENSITY,SET ALTERNATE
 *    Documentation for: SET CENTURY,SET DATE,SET CONSOLE
 *    Documentation for: SET EPOCH,SET PRINTER,SET FIXED
 *    Documentation for: SET BELL
 * See doc/license.txt for licensing terms.
 *
 */

/* $DOC$
 * $FUNCNAME$
 *      __SETCENTURY()
 * $CATEGORY$
 *      Environment
 *  $ONELINER$
 *      Set the Current Century
 * $SYNTAX$
 *      __SETCENTURY([ |  ] ) --> lPreviousValue
 * $ARGUMENTS$
 *      optional  or  (not case sensitive)
 *              .T. or "ON" to enable the century setting (4-digit years)
 *              .F. or "OFF" to disable the century setting (2-digit years)
 * $RETURNS$
 *      Either the current or previous century setting as a logical value
 * $FILES$
 *      Library is rtl
 * $END$
 */

/* $DOC$
 * $FUNCNAME$
 *      SET()
 * $CATEGORY$
 *      Environment
 *  $ONELINER$
 *      Changes or evaluated enviromental settings
 * $SYNTAX$
 *      Set( [,  [,  ] ] ) --> xPreviousSetting
 * $ARGUMENTS$
 *       Set Number
 *
 *       Any expression to assing a value to the seting
 *
 *       Logical expression
 *
 *                                      
 *
 *              _SET_ALTERNATE    | 
 *
 *                   If enabled, QOUT() and QQOUT() write to the screen and to
 *                   a file, provided that a file has been opened or created
 *                   with _SET_ALTFILE. If disabled, which is the default,
 *                   QOUT() and QQOUT() only write to the screen (and/or to
 *                   the PRINTFILE). Defaults to disabled.
 *
 *              _SET_ALTFILE                  
 *
 *                   When set, creates or opens file to write QOUT() and
 *                   QQOUT() output to. If  is TRUE and the file
 *                   already exists, the file is opened and positioned at end
 *                   of file. Otherwise, the file is created. If a file is
 *                   already opened, it is closed before the new file is
 *                   opened or created (even if it is the same file). The
 *                   default file extension is ".txt". There is no default
 *                   file name. Call with an empty string to close the file.
 *
 *              _SET_AUTOPEN      | 
 *
 *                   TODO: Document
 *
 *              _SET_AUTORDER     | 
 *
 *                   TODO: Document
 *
 *              _SET_AUTOSHARE    | 
 *
 *                   TODO: Document
 *
 *              _SET_BELL         | 
 *
 *                   When enabled, the bell sounds when the last position of
 *                   a GET is reached and/or when a GET validation fails.
 *                   Disabled by default.
 *
 *              _SET_CANCEL       | 
 *
 *                   When enabled, which is the default, pressing Alt+C or
 *                   Ctrl+Break terminates the program. When disabled, both
 *                   keystrokes can be read by INKEY(). Note: SET KEY has
 *                   precedence over SET CANCEL.
 *
 *              _SET_COLOR       
 *
 *                   Sets the current color scheme, using color pairs in the
 *                   sequence ",,,,
 *                   ". Each color pair uses the format
 *                   "/". The color codes are space
 *                   or "N" for black, "B" for blue, "G" for green, "BG" for
 *                   Cyan, "R" for red, "RB" for magenta, "GR" for brown, "W"
 *                   for white, "N+" for gray, "B+" for bright blue, "G+" for
 *                   bright green, "BG+" for bright cyan, "R+" for bright red,
 *                   "RB+" for bright magenta, "GR+" for yellow, and "W+" for
 *                   bright white. Special codes are "I" for inverse video,
 *                   "U" for underline on a monochrome monitor (blue on a
 *                   color monitor), and "X" for blank. The default color is
 *                   "W/N,N/W,N,N,N/W".
 *
 *              _SET_CONFIRM      | 
 *
 *                   If enabled, an exit key must be pressed to leave a GET.
 *                   If disabled, which is the default, typing past the end
 *                   will leave a GET.
 *
 *              _SET_CONSOLE      | 
 *
 *                   If enabled, which is the default, all screen output goes
 *                   to the screen. When disabled, screen output is suppressed
 *                   (Note: This setting does not affect OUTSTD() or OUTERR()).
 *
 *              _SET_CURSOR      
 *
 *                   If enabled, which is the default, the cursor is displayed
 *                   on screen. If disabled, the screen cursor is hidden.
 *
 *              _SET_DATEFORMAT  
 *
 *                   Sets the default date format for display, date input, and
 *                   date conversion. Defaults to American ("mm/dd/yy"). Other
 *                   formats include ANSI ("yy.mm.dd"), British ("dd/mm/yy"),
 *                   French ("dd/mm/yy"), German ("dd.mm.yy"), Italian
 *                   ("dd-mm-yy"), Japan ("yy/mm/dd"), and USA ("mm-dd-yy").
 *                   SET CENTURY modifies the date format. SET CENTURY ON
 *                   replaces the "y"s with "YYYY". SET CENTURY OFF replaces
 *                   the "y"s with "YY".
 *
 *              _SET_DEBUG       
 *
 *                   When set to .t., pressing Alt+D activates the debugger.
 *                   When set to .f., which is the default, Alt+D can be read
 *                   by INKEY(). (Also affected by AltD(1) and AltD(0))
 *
 *              _SET_DECIMALS    
 *
 *                   Sets the number of decimal digits to use when displaying
 *                   printing numeric values when SET FIXED is ON. Defaults to
 *                   2. If SET FIXED is OFF, then SET DECIMALS is only used to
 *                   determine the number of decimal digits to use after using
 *                   EXP(), LOG(), SQRT(), or division. Other math operations
 *                   may adjust the number of decimal digits that the result
 *                   will display. Note: This never affects the precision of
 *                   a number. Only the display format is affected.
 *
 *              _SET_DEFAULT     
 *
 *                   Sets the default directory in which to open, create and
 *                   check for files. Defaults to current directory (blank).
 *
 *              _SET_DELETED      | 
 *
 *                   If enabled, deleted records will be processed. If
 *                   disabled, which is the default, deleted records will
 *                   be ignored.
 *
 *              _SET_DELIMCHARS  
 *
 *                   Sets the GET delimiter characters. Defaults to "::".
 *
 *              _SET_DELIMITERS   | 
 *
 *                   If enabled, GETs are delimited on screen. If disabled,
 *                   which is the default, no GET delimiters are used.
 *
 *              _SET_DEVICE      
 *
 *                   Selects the output device for DEVOUT(). When set to
 *                   "PRINTER", all output is sent to the printer device or
 *                   file set by _SET_PRINTFILE. When set to anything else,
 *                   all output is sent to the screen. Defaults to "SCREEN".
 *
 *              _SET_EOF          | 
 *
 *                   Defaults to FALSE on UN*X, but defaults to TRUE on
 *                   everything else. If set to FALSE, then CHR(26) does not
 *                   get written when using COPY TO DELIMITED, COPY TO SDF,
 *                   or when closing any of the various text files that are
 *                   created using various SET values.
 *                   [This is a Harbour extension]
 *
 *              _SET_EPOCH       
 *
 *                   Determines how to handle the conversion of 2-digit years
 *                   to 4 digit years. When a 2-digit year is greater than or
 *                   equal to the year part of the epoch, the century part of
 *                   the epoch is added to the year. When a 2-digit year is
 *                   less than the year part of the epoch, the century part
 *                   of the epoch is incremented and added to the year. The
 *                   default epoch is 1900, which converts all 2-digit years
 *                   to 19xx. Example: If the epoch is set to 1950, 2-digit
 *                   years in the range from 50 to 99 get converted to 19xx
 *                   and 2-digit years in the range 00 to 49 get converted
 *                   to 20xx.
 *
 *              _SET_ESCAPE       | 
 *
 *                   When enabled, which is the default, pressing Esc will
 *                   exit a READ. When disabled, pressing Esc during a READ
 *                   is ignored, unless the Esc key has been assigned to a
 *                   function using SET KEY.
 *
 *              _SET_EVENTMASK   
 *
 *                   Determines which events INKEY() will respond to.
 *                   INKEY_MOVE allows mouse movement events. INKEY_LDOWN
 *                   allows the left mouse button down click. INKEY_LUP
 *                   allows the left mouse button up click. INKEY_RDOWN
 *                   allows the right mouse button down click. INKEY_RUP
 *                   allows the right mouse button up clock. INKEY_KEYBOARD
 *                   allows keyboard keystrokes. INKEY_ALL allows all of the
 *                   preceding events. Events may be combined (e.g., using
 *                   INKEY_LDOWN + INKEY_RUP will allow left mouse button
 *                   down clicks and right mouse button up clicks). The
 *                   default is INKEY_KEYBOARD.
 *
 *              _SET_EXACT        | 
 *
 *                   When enabled, all string comparisons other than "=="
 *                   exclude trailing spaces when checking for equality.
 *                   When disabled, which is the default, all string
 *                   comparisons other than "==" treat two strings as
 *                   equal if the right hand string is "" or if the right
 *                   hand string is shorter than or the same length as the
 *                   left hand string and all of the characters in the right
 *                   hand string match the corresponding characters in the
 *                   left hand string.
 *
 *              _SET_EXCLUSIVE    | 
 *
 *                   When enabled, which is the default, all database files
 *                   are opened in exclusive mode. When disabled, all
 *                   database files are opened in shared mode. Note: The
 *                   EXCLUSIVE and SHARED clauses of the USE command can be
 *                   used to override this setting.
 *
 *              _SET_EXIT         | 
 *
 *                   Toggles the use of Uparrow and Dnarrow as READ exit keys.
 *                   Specifying true (.T.) enables them as exit keys, and
 *                   false (.F.) disables them. Used internally by the
 *                   ReadExit() function.
 *
 *              _SET_EXTRA        | 
 *
 *                   QUESTION: What is this for?
 *                   It does not affect _SET_EXTRAFILE in Clipper!
 *
 *              _SET_EXTRAFILE                
 *
 *                   When set, creates or opens file to write QOUT() and
 *                   QQOUT() output to. If  is TRUE and the file
 *                   already exists, the file is opened and positioned at end
 *                   of file. Otherwise, the file is created. If a file is
 *                   already opened, it is closed before the new file is
 *                   opened or created (even if it is the same file). The
 *                   default file extension is ".prn". There is no default
 *                   file name. Call with an empty string to close the file.
 *
 *              _SET_FIXED        | 
 *
 *                   When enabled, all numeric values will be displayed
 *                   and printed with the number of decimal digits set
 *                   by SET DECIMALS, unless a PICTURE clause is used.
 *                   When disabled, which is the default, the number
 *                   of decimal digits that are displayed depends upon
 *                   a variety of factors. See _SET_DECIMALS for more.
 *
 *              _SET_INSERT       | 
 *
 *                   When enabled, characters typed in a GET or MEMOEDIT
 *                   are inserted. When disabled, which is the default,
 *                   characters typed in a GET or MEMOEDIT overwrite.
 *                   Note: This setting can also be toggled between on and
 *                   off by pressing the Insert key during a GET or MEMOEDIT.
 *
 *              _SET_INTENSITY    | 
 *
 *                   When enabled, which is the default, GETs and PROMPTs
 *                   are displayed using the enhanced color setting. When
 *                   disabled, GETs and PROMPTs are displayed using the
 *                   standard color setting.
 *
 *              _SET_LANGUAGE    
 *
 *                   Specifies the language to be used for Harbour messages.
 *                   [This is a Harbour extension]
 *
 *              _SET_MARGIN      
 *
 *                   Sets the left margin for all printed output. The default
 *                   value is 0. Note: PCOL() reflects the printer's column
 *                   position including the margin (e.g., SET MARGIN TO 5
 *                   followed by DEVPOS(5, 10) makes PCOL() return 15).
 *
 *              _SET_MBLOCKSIZE 
 *
 *                   TODO: Document
 *
 *              _SET_MCENTER      | 
 *
 *                   If enabled, display PROMPTs centered on the MESSAGE row.
 *                   If disabled, which is the default, display PROMPTS at
 *                   column position 0 on the MESSAGE row.
 *
 *              _SET_MESSAGE     
 *
 *                   If set to 0, which is the default, PROMPTs are always
 *                   suppressed. Otherwise, PROMPTs are displayed on the
 *                   set row. Note: It is not possible to display prompts
 *                   on the top-most screen row, because row 0 is reserved
 *                   for the SCOREBOARD, if enabled.
 *
 *              _SET_MFILEEXT    
 *
 *                   TODO: Document
 *
 *              _SET_OPTIMIZE     | 
 *
 *                   TODO: Document
 *
 *              _SET_PATH        
 *
 *                   Specifies a path of directories to search through to
 *                   locate a file that can't be located in the DEFAULT
 *                   directory. Defaults to no path (""). Directories must
 *                   be separated by a semicolon (e.g., "C:\data;C:\more").
 *
 *              _SET_PRINTER      | 
 *
 *                   If enabled, QOUT() and QQOUT() write to the screen and to
 *                   a file, provided that a file has been opened or created
 *                   with _SET_ALTFILE. If disabled, which is the default,
 *                   QOUT() and QQOUT() only write to the screen (and/or to
 *                   the ALTFILE).
 *
 *              _SET_PRINTFILE                
 *
 *                   When set, creates or opens file to write QOUT(), QQOUT()
 *                   and DEVOUT() output to. If  is TRUE and the
 *                   file already exists, the file is opened and positioned
 *                   at end of file. Otherwise, the file is created. If a
 *                   file is already opened, it is closed before the new file
 *                   is opened or created (even if it is the same file). The
 *                   default file extension is ".prn". The default file name
 *                   is "PRN", which maps to the default printer device. Call
 *                   with an empty string to close the file.
 *
 *              _SET_SCOREBOARD   | 
 *
 *                   When enabled, which is the default, READ and MEMOEDIT
 *                   display status messages on screen row 0. When disabled,
 *                   READ and MEMOEDIT status messages are suppressed.
 *
 *              _SET_SCROLLBREAK  | 
 *
 *                   QUESTION: What is this flag for?
 *
 *              _SET_SOFTSEEK     | 
 *
 *                   When enabled, a SEEK that fails will position the record
 *                   pointer to the first key that is higher than the sought
 *                   after key or to LASTREC() + 1 if there is no higher key.
 *                   When disabled, which is the default, a SEEK that fails
 *                   will position the record pointer to LASTREC()+1.
 *
 *              _SET_STRICTREAD   | 
 *
 *                   TODO: Document
 *
 *              _SET_TYPEAHEAD   
 *
 *                   Sets the size of the keyboard typeahead buffer. Defaults
 *                   to 50. The minimum is 16 and the maximum is 4096.
 *
 *              _SET_UNIQUE       | 
 *
 *                   When enabled, indexes are not allowed to have duplicate
 *                   keys. When disabled, indexes are allowed duplicate keys.
 *
 *              _SET_VIDEOMODE   
 *
 *                   TODO: Document
 *
 *              _SET_WRAP         | 
 *
 *                   When enabled, lightbar menus can be navigated from the
 *                   last position to the first and from the first position
 *                   to the last. When disabled, which is the default, there
 *                   is a hard stop at the first and last positions.
 * $RETURNS$
 *      SET() The current or previous setting
 * $FILES$
 *      Library is rtl
 * $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __SetFunction()
 *  $CATEGORY$
 *      Environment
 *  $ONELINER$
 *      Assign a character string to a function key
 *  $SYNTAX$
 *      __SetFunction( , [] ) --> NIL
 *  $ARGUMENTS$
 *       is a number in the range 1..40 that represent the
 *      function key to be assigned.
 *
 *       is a character string to set. If  is not
 *      specified, the function key is going to be set to NIL releasing by
 *      that any previous __SetFunction() or SETKEY() for that function.
 *  $RETURNS$
 *      __SetFunction() always return NIL.
 *  $DESCRIPTION$
 *      __SetFunction() assign a character string with a function key, when
 *      this function key is pressed, the keyboard is stuffed with this
 *      character string. __SetFunction() has the effect of clearing any
 *      SETKEY() previously set to the same function number and vice versa.
 *
 *      
 *      nFunctionKey    Key to be set
 *
 *         1 .. 12      F1 .. F12
 *        13 .. 20      Shift-F3 .. Shift-F10
 *        21 .. 30      Ctrl-F1 .. Ctrl-F10
 *        31 .. 40      Alt-F1 .. Alt-F10
 *      
* SET FUNCTION command is preprocessed into __SetFunction() function * during compile time. * $EXAMPLES$ * // Set F1 with a string * CLS * __SetFunction( 1, "I Am Lazy" + CHR( 13 ) ) * cTest := SPACE( 20 ) * @ 10, 0 SAY "type something or F1 for lazy mode " GET cTest * READ * ? cTest * * $STATUS$ * R * $COMPLIANCE$ * Harbour use 11 and 12 to represent F11 and F12, while CA-Cl*pper use * 11 and 12 to represent Shift-F1 and Shift-F2. * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * INKEY(),SETKEY(),__Keyboard(),SET KEY * $END$ */ /* $DOC$ * $FUNCNAME$ * SET FUNCTION * $CATEGORY$ * Command * $ONELINER$ * Assign a character string to a function key * $SYNTAX$ * SET FUNCTION TO [] * $ARGUMENTS$ * is a number in the range 1..40 that represent the * function key to be assigned. * * is a character string to set. If is not * specified, the function key is going to be set to NIL releasing by * that any previous Set Function or SETKEY() for that function. * $DESCRIPTION$ * Set Function assign a character string with a function key, when * this function key is pressed, the keyboard is stuffed with this * character string. Set Function has the effect of clearing any * SETKEY() previously set to the same function number and vice versa. * * * nFunctionKey Key to be set * * 1 .. 12 F1 .. F12 * 13 .. 20 Shift-F3 .. Shift-F10 * 21 .. 30 Ctrl-F1 .. Ctrl-F10 * 31 .. 40 Alt-F1 .. Alt-F10 *
* SET FUNCTION command is preprocessed into __SetFunction() function * during compile time. * $EXAMPLES$ * // Set F1 with a string * CLS * Set Function 1 to "I Am Lazy" + CHR( 13 ) * cTest := SPACE( 20 ) * @ 10, 0 SAY "type something or F1 for lazy mode " GET cTest * READ * ? cTest * * $STATUS$ * R * $COMPLIANCE$ * Harbour use 11 and 12 to represent F11 and F12, while CA-Cl*pper use * 11 and 12 to represent Shift-F1 and Shift-F2. * $PLATFORMS$ * All * $SEEALSO$ * INKEY(),SETKEY(),__Keyboard() * $END$ */ /* $DOC$ * $FUNCNAME$ * SETKEY() * $CATEGORY$ * Events * $ONELINER$ * Assign an action block to a key * $SYNTAX$ * SETKEY( [, [, ] ] ) * $ARGUMENTS$ * is either a numeric key value, or an array of such values * is an optional code-block to be assigned * is an optional condition code-block * $RETURNS$ * Current assigned action-block * $DESCRIPTION$ * The SetKey() function returns the current code-block assigned to a * key when called with only the key value. If the action block (and * optionally the condition block) are passed, the current block is * returned, and the new code block and condition block are stored. * A group of keys may be assigned the same code block/condition block * by using an array of key values in place on the first parameter. * $EXAMPLES$ * local bOldF10 := setKey( K_F10, {|| Yahoo() } ) * ... // some other processing * SetKey( K_F10, bOldF10 ) * ... // some other processing * bBlock := SetKey( K_SPACE ) * if bBlock != NIL ... * * // make F10 exit current get, but only if in a get - ignores other * // wait-states such as menus, achoices, etc... * SetKey( K_F10, {|| GetActive():State := GE_WRITE },; * {|| GetActive() != NIL } ) * * $TESTS$ * None definable * * $STATUS$ * R * $COMPLIANCE$ * SETKEY() is mostly CA-Cl*pper compliant. The only difference is the * addition of the condition code-block parameter, allowing set-keys to * be conditionally turned off or on. This condition-block cannot be * returned once set - see SetKeyGet() * $FILES$ * Library is rtl * $SEEALSO$ * HB_SETKEYSAVE() * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_SetKeyGet() * $CATEGORY$ * Events * $ONELINER$ * Determine a set-key code block & condition-block * $SYNTAX$ * HB_SETKEYGET( [, ] ) * $ARGUMENTS$ * is an numeric key value * is an optional return-parameter * $RETURNS$ * Current assigned action-block * $DESCRIPTION$ * The HB_SetKeyGet() function returns the current code-block assigned to * a key, and optionally assignes the condition-block to the * return-parameter * $EXAMPLES$ * local bOldF10, bOldF10Cond * bOldF10 := HB_SetKeyGet( K_F10, @bOldF10Cond ) * ... // some other processing * SetKey( K_F10, bOldF10, bOldF10Cond ) * * $TESTS$ * See test code above * * $STATUS$ * R * $COMPLIANCE$ * HB_SETKEYGET() is a new function and hence not CA-Cl*pper compliant. * $FILES$ * Library is rtl * $SEEALSO$ * SETKEY(),HB_SETKEYSAVE(),HB_SETKEYCHECK() * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_SETKEYSAVE() * $CATEGORY$ * Events * $ONELINER$ * Returns a copy of internal set-key list, optionally overwriting * $SYNTAX$ * HB_SETKEYSAVE( [ ] ) * $ARGUMENTS$ * is an optional set-key list from a previous call to * HB_SetKeySave(), or NIL to clear current set-key list * $RETURNS$ * Current set-key list * $DESCRIPTION$ * HB_SetKeySave() is designed to act like the set() function which * returns the current state of an environment setting, and optionally * assigning a new value. In this case, the "environment setting" is the * internal set-key list, and the optional new value is either a value * returned from a previous call to SetKeySave() - to restore that list, * or the value of NIL to clear the current list. * $EXAMPLES$ * local aKeys := HB_SetKeySave( NIL ) // removes all current set=keys * ... // some other processing * HB_SetKeySave( aKeys ) * * $TESTS$ * None definable * * $STATUS$ * R * $COMPLIANCE$ * HB_SETKEYSAVE() is new. * $FILES$ * Library is rtl * $SEEALSO$ * SETKEY() * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_SetKeyCheck() * $CATEGORY$ * Events * $ONELINER$ * Impliments common hot-key activation code * $SYNTAX$ * HB_SetKeyCheck( [, ][, ][, ] ) * $ARGUMENTS$ * is a numeric key value to be tested code-block, if executed * .. are optional parameters that will be passed to the code-block * $RETURNS$ * True if there is a hot-key associated with and it was executed; * otherwise False * If there is a hot-key association (before checking any condition): * - if there is a condition-block, it is passed one parameter - * - when the hot-key code-block is called, it is passed 1 to 4 parameters, * depending on the parameters passed to HB_SetKeyCheck(). Any * parameters so passed are directly passed to the code-block, with an * additional parameter being * $DESCRIPTION$ * HB_SetKeyCheck() is intended as a common interface to the SetKey() * functionality for such functions as ACHOICE(), DBEDIT(), MEMOEDIT(), * ACCEPT, INPUT, READ, and WAIT * $EXAMPLES$ * // within ReadModal() * if HB_SetKeyCheck( K_ALT_X, GetActive() ) * ... // some other processing * endif * // within TBrowse handler * case HB_SetKeyCheck( nInkey, oTBrowse ) * return * case nInKey == K_ESC * ... // some other processing * * $TESTS$ * None definable * * $STATUS$ * R * $COMPLIANCE$ * HB_SETKEYCHECK() is new. * $FILES$ * Library is rtl * $SEEALSO$ * SETKEY(),HB_SETKEYSAVE() * $END$ */ /* $DOC$ * $FUNCNAME$ * SET KEY * $CATEGORY$ * Command * $ONELINER$ * Assign an action block to a key * $SYNTAX$ * SET KEY to p] [when ] ) * $ARGUMENTS$ * is either a numeric key value, or an array of such values * is an optional code-block to be assigned * is an optional condition code-block * $DESCRIPTION$ * The Set Key Command function is translated to the SetKey() function * witch returns the current code-block assigned to a * key when called with only the key value. If the action block (and * optionally the condition block) are passed, the current block is * returned, and the new code block and condition block are stored. * A group of keys may be assigned the same code block/condition block * by using an array of key values in place on the first parameter. * $EXAMPLES$ * local bOldF10 := setKey( K_F10, {|| Yahoo() } ) * ... // some other processing * Set Key K_F10 to bOldF10) * ... // some other processing * bBlock := SetKey( K_SPACE ) * if bBlock != NIL ... * * // make F10 exit current get, but only if in a get - ignores other * // wait-states such as menus, achoices, etc... * SetKey( K_F10, {|| GetActive():State := GE_WRITE },; * {|| GetActive() != NIL } ) * * $TESTS$ * None definable * * $STATUS$ * R * $COMPLIANCE$ * SET KEY is mostly CA-Cl*pper compliant. The only difference is the * addition of the condition code-block parameter, allowing set-keys to * be conditionally turned off or on. This condition-block cannot be * returned once set - see SetKeyGet() * $SEEALSO$ * HB_SETKEYSAVE() * $END$ */ /* $DOC$ * $FUNCNAME$ * SETTYPEAHEAD() * $CATEGORY$ * Environment * $ONELINER$ * Sets the typeahead buffer to given size. * $SYNTAX$ * SETTYPEAHEAD( ) --> * $ARGUMENTS$ * is a valid typeahead size. * $RETURNS$ * The previous state of _SET_TYPEAHEAD * $DESCRIPTION$ * This function sets the typeahead buffer to a valid given size as is * Set( _SET_TYPEAHEAD ) where used. * $EXAMPLES$ * // Sets typeahead to 12 * SetTypeahead( 12 ) * * $STATUS$ * R * $COMPLIANCE$ * SETTYPEAHEAD() is fully CA-Cl*pper compliant. * $FILES$ * Library is rtl * $SEEALSO$ * __ACCEPT(),__INPUT() * $END$ */ /* $DOC$ * $FUNCNAME$ * __XHELP() * $CATEGORY$ * Internal * $ONELINER$ * Looks if a Help() user defined function exist. * $SYNTAX$ * __XHELP() --> * $ARGUMENTS$ * None * $RETURNS$ * This function returns aleatory values. * $DESCRIPTION$ * This is an internal undocumented Clipper function, which will * try to call the user defined function HELP() if it's defined * in the current application. This is the default SetKey() handler * for the F1 key. * $STATUS$ * R * $COMPLIANCE$ * __XHELP() is fully CA-Cl*pper compliant. * $FILES$ * Library is rtl * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET DEFAULT * $CATEGORY$ * Command * $ONELINER$ * Establishes the Harbour search drive and directory. * $SYNTAX$ * SET DEFAULT TO [] * $ARGUMENTS$ * Drive and/or path. * $DESCRIPTION$ * This command changes the drive and directory used for reading and * writting database,index,memory, and alternate files. Specifying no * parameters with this command will default the operation to the * current logged drive and directory. * $EXAMPLES$ * SET DEFAULT to C:\temp * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper Compliant. * $SEEALSO$ * SET PATH,CURDIR(),SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET WRAP * $CATEGORY$ * Command * $ONELINER$ * Toggle wrapping the PROMPTs in a menu. * $SYNTAX$ * SET WRAP on | OFF | ( * $ARGUMENTS$ * Logical expression for toggle * $DESCRIPTION$ * This command toggles the highlighted bars in a @...PROMPT command * to wrap around in a bottom-to-top and top-to-bottom manner. If the * value of the logical expression is a logical false (.F.), * the wrapping mode is set OFF;otherwise,it is set ON. * $EXAMPLES$ * See Tests/menutest.prg * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper Compliant. * $SEEALSO$ * @...PROMPT,MENU TO * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET MESSAGE * $CATEGORY$ * Command * $ONELINER$ * Extablishes a message row for @...PROMPT command * $SYNTAX$ * SET MESSAGE TO [ [CENTER]] * $ARGUMENTS$ * Row number to display the message * $DESCRIPTION$ * This command is designed to work in conjuntion with the MENU TO and * @...PROMPT commands. With this command, a row number between 0 and * MAXROW() may be specified in . This establishes the row on * witch any message associated with an @...PROMPT command will apear. * If the value of is 0, all messages will be supressed. * All messaged will be left-justifies unless the CENTER clause is * used. In this case, the individual messages in each @...PROMPT command * will be centered at the designated row (unless is 0). All * messages are independent; therefore, the screen area is cleared out * by the centered message will vary based on the length of each * individual message. * Specifying no parameters with this command set the row value to 0, * witch suppresses all messages output. * The British spelling of CENTRE is also supported. * $EXAMPLES$ * See Tests/menutest.prg * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper Compliant. * $SEEALSO$ * SET(),SET WRAP,@...PROMPT,MENU TO * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET PATH * $CATEGORY$ * Command * $ONELINER$ * Specifies a search path for opening files * $SYNTAX$ * SET PATH TO [] * $ARGUMENTS$ * Search path for files * $DESCRIPTION$ * This command specifies the search path for files required by most * commands and functions not found in the current drive and directory. * This pertains primarily, but not exclusively, to databases, indexes, * and memo files, as well as to memory, labels and reports files. The * search hirarchy is: 1 Current drive and directory, 2 The SET DEFAULT * path; 3 The SET PATH path. * $EXAMPLES$ * SET PATH TO C:\harbour\test * * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper Compliant. * $SEEALSO$ * SET DEFAULT,CURDIR(),SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET INTENSITY * $CATEGORY$ * Command * $ONELINER$ * Toggles the enhaced display of PROMPT's and GETs. * $SYNTAX$ * SET INTENSITY ON | off | () * $ARGUMENTS$ * Logical expression for toggle command * $DESCRIPTION$ * This command set the field input color and @...PROMPT menu color * to either highlighted (inverse video) or normal color. The default * condition is ON (highlighted). * $EXAMPLES$ * SET INTENSITY ON * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper Compliant. * $SEEALSO$ * @...GET,@...PROMPT,@...SAY,SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET ALTERNATE * $CATEGORY$ * Command * $ONELINER$ * Toggle and echos output to an alternate file * $SYNTAX$ * SET ALTERNATE to [ADDITIVE] * SET ALTERNATE on | OFF | () * $ARGUMENTS$ * Name of alternate file. * * Logical expression for toggle * $DESCRIPTION$ * This command toggles and output console information to the alternate * file , provided that the command is toggled on or the condition * is set to a logical true (.T.). If does not has a * file extension, .txt will be assumed. The file name may optionally * have a drive letter and/or directory path. If none is speficied, the * current drive and directory will be used. * If the ALTERNATE file is created but no ALTERNATE ON command is * issued, nothing will be echoed to the file. * If ADDITIVE clause is used, then the information will be appended * to the existing alternate file. Otherwise, a new file will be created * with the specified name (or an existing one will be overwritten) and * the information will be appended to the file. The default is to create * a new file. * A SET ALTERNATE TO command will close the alternate file * $EXAMPLES$ * SET ALTERNATE TO test.txt * SET ALTERNATE ON * ? 'Harbour' * ? "is" * ? "Power" * SET ALTERNATE TO * SET ALTERNATE OFF * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper Compliant. * $SEEALSO$ * CLOSE,SET PRINTER,SET CONSOLE,SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET CENTURY * $CATEGORY$ * Command * $ONELINER$ * Toggle the century digits in all dates display * $SYNTAX$ * SET CENTURY on | OFF | () * $ARGUMENTS$ * Logical expression for toggle * $DESCRIPTION$ * This command allows the input and display of dates with the century * prefix. It will be in the standart MM/DD/YYYY format unless specified * by the SET DATE command or SET() function. If is a logical * true (.T.), the command will be set on; otherwise, the command will * be set off * $EXAMPLES$ * SET CENTURY ON * ? DATE() * SET CENTURY OFF * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * SET DATE,SET EPOCH,CTOD(),DATE(),DTOC(),SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET DATE * $CATEGORY$ * Command * $ONELINER$ * Assings a date format or chooses a predefined date data set. * $SYNTAX$ * SET DATE FORMAT [TO] * SET DATE [TO] [ ANSI / BRITISH / FRENCH / GERMAN / ITALIAN / JAPAN * / USA / AMERICAN] * $ARGUMENTS$ * Keyword for date format * $DESCRIPTION$ * This command sets the date format for function display purposes. * If specified, may be a customized date format in which the * letters d, m and y may be used to desing a date format. The default * is an AMERICAN date format; specifying no parameters will set the * date format to AMERICAN. Below is a table of the varius predefined * dates formats. * * * Syntax Date Format * ANSI yy.mm.dd * BRITISH dd/mm/yy * FRENCH dd/mm/yy * GERMAN dd.mm.yy * ITALIAN dd-mm-yy * JAPAN yy.mm.dd * USA mm-dd-yy * AMERICAN mm/dd/yy *
* $EXAMPLES$ * SET DATE JAPAN * ? DATE() * SET DATE GERMAN * ? Date() * $TESTS$ * See tests/dates.prg * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * SET DATE,SET EPOCH,CTOD(),DATE(),DTOC(),SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET EPOCH * $CATEGORY$ * Command * $ONELINER$ * Specifie a base year for interpreting dates * $SYNTAX$ * SET EPOCH TO * $ARGUMENTS$ * Base Century. * $DESCRIPTION$ * This command sets the base year value for dates that have only two * digits. The default setting is 1900. Dates between 01/01/0100 and * 12/31/2999 are fully supported. * $EXAMPLES$ * SET EPOCH TO 2000 * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * SET DATE,SET CENTURY,CTOD(),DATE(),DTOC(),SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET FIXED * $CATEGORY$ * Command * $ONELINER$ * Set the number of decimal position to be displayed * $SYNTAX$ * SET FIXED on | OFF | () * $ARGUMENTS$ * Logical expression for toggle * $DESCRIPTION$ * This command activates a system wide fixed placement of decimals * places shown for all numeric outputs. If the value of is * a logical true (.T.), FIXED will be turned ON; otherwise it will be * turned OFF. * * When SET DECIMALS OFF is used, the follow rules apply to the number * of decimal placed displayed. * * * Addition Same as operand with the greatest number of decimal digits * Subraction Same as operand with the greatest number of decimal digits * Multiplication Sum of operand decimal digits * Division Determined by SET DECIMAL TO * Exponential Determined by SET DECIMAL TO * LOG() Determined by SET DECIMAL TO * EXP() Determined by SET DECIMAL TO * SQRT() Determined by SET DECIMAL TO * VAL() Determined by SET DECIMAL TO *
* $EXAMPLES$ * SET FIXED ON * ? 25141251/362 * SET FIXED OFF * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * SET DECIMALS,EXP(),LOG(),SQRT(),VAL(),SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET PRINTER * $CATEGORY$ * Command * $ONELINER$ * Toggles the printer and controls the printer device * $SYNTAX$ * SET PRINTER on | OFF * SET PRINTER () * SET PRINTER TO [] [ADDITIVE] * $ARGUMENTS$ * Logical condition by which to toggle the printer * A device name or an alternate name * $DESCRIPTION$ * This command can direct all output that is not controled by the * @...SAY command and the DEVPOS() and DEVOUT() functions to the * printer. If specified,the condition toggles the printer * ON if a logical true (.T.) and OFF if a logical false (.F.). If no * argument is specified in the command, the alternate file (if one * is open) is closed, or the device is reselected and the PRINTER * option is turned OFF. * * If a device is specified in , the outpur will be directed * to that device instead of to the PRINTER. A specified device may be * a literal string or a variable, as long as the variable is enclosed * in parentheses. For a network, do not use a trailing colon when * redirecting to a device. * * If an alternate file is specified, becomes the name of a * file that will contain the output. If no file extension is specified * an extension of .prn will be defaulted to. * * If the ADDITIVE clause is specified, the information will be appended * to the end of the specified output file. Otherwise, a new file will * be created with the specified name (or an existing file will first * be cleared) and the information will then be appended to the file. * The default is to create a new file. * $EXAMPLES$ * SET PRINTER ON * SET PRINTER TO LPT1 * ? 25141251/362 * SET PRINTER .F. * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * SET DEVICE, SET CONSOLE, DEVOUT(), SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET CONSOLE * $CATEGORY$ * Command * $ONELINER$ * Toggle the console display * $SYNTAX$ * SET CONSOLE ON | off | () * $ARGUMENTS$ * Logical expression for toggle command * $DESCRIPTION$ * This command turns the screen display either off or on for all * screens display other then direct output via the @...SAY commands * or the <-> DEVOUT() function. * * If is a logical true (.T.),the console will be turned * ON;otherwise, the console will be turned off. * $EXAMPLES$ * SET console on * ? DATE() * SET console off * ? date() * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * SET DEVICE,SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET DECIMALS * $CATEGORY$ * Command * $ONELINER$ * Toggle the console display * $SYNTAX$ * SET DECIMALS TO [] * $ARGUMENTS$ * Number of decimals places * $DESCRIPTION$ * This command establishes the number of decimal places that Harbour * will display in mathematical calculations, functions, memory variables, * and fields. Issuing no parameter with this command will the default * number of decimals to 0. For decimals to be seen, the SET FIXED ON * command must be activated. * $EXAMPLES$ * SET FIXED ON * ? 25141251/362 * SET DECIMALS TO 10 * ? 214514.214/6325 * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * SET FIXED,SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET DEVICE * $CATEGORY$ * Command * $ONELINER$ * Directs all @...SAY output to a device. * $SYNTAX$ * SET DEVICE TO [printer | SCREEN ] * $ARGUMENTS$ * None. * $DESCRIPTION$ * This command determines whether the output from the @...SAY command * and the DEVPOS() and DEVOUT() function will be displayed on the * printer. * * When the device is set to the PRINTER,the SET MARGIN value adjusts * the position of the column values accordingly. Also, an automatic * page eject will be issued when the current printhead position is * less than the last printed row. Finally, if used in conjunction with * the @...GET commands, the values for the GETs will all be ignored. * $EXAMPLES$ * SET DEVICE TO SCRENN * ? 25141251/362 * SET DEVICE TO PRINTER * SET PRINTER TO LPT1 * ? 214514.214/6325 * SET PRINTER OFF * SET DEVICE TO SCREEN * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * @...SAY,SET PRINTER,SETPRC(),SET() * $END$ */ /* $DOC$ * $COMMANDNAME$ * SET BELL * $CATEGORY$ * Command * $ONELINER$ * Toggle the bell to sound once a GET has been completed. * $SYNTAX$ * SET BELL on | OFF | () * $ARGUMENTS$ * Logical expression for toggle command * $DESCRIPTION$ * This command toggles the bell to sound whenever a character is * entered into the last character positionof a GET, of if an invalid * data type is entered into a GET. * * If is a logical true (.T.), the bell will be turned * ON;otherwise, the belle will be turned off. * $EXAMPLES$ * SET BEEL ON * cDummy:=space(20) * ? 3,2 get cDummy * Read * SET bell off * $STATUS$ * R * $COMPLIANCE$ * This command is CA-Cl*pper compliant * $SEEALSO$ * SET() * $END$ */
c:\harbour\doc\en\setmode.txt
/*
 * $Id: setmode.txt 9193 2008-08-19 15:07:28Z vszakats $
 */
/*
 * Copyright 2000 Alejandro de Garate 
 *    Documentation for: SETMODE()
 *
 * See doc/license.txt for licensing terms.
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SETMODE()
 *  $CATEGORY$
 *      Environment
 *  $ONELINER$
 *      Change the video mode to a specified number of rows and columns
 *  $SYNTAX$
 *      SETMODE( ,  ) --> lSuccess
 *  $ARGUMENTS$
 *       is the number of rows for the video mode to set.
 *
 *       is the number of columns for the video mode to set.
 *  $RETURNS$
 *      SETMODE() returns true if the video mode change was successful;
 *      otherwise, it returns false.
 *  $DESCRIPTION$
 *      SETMODE() is a function that change the video mode depend on the
 *      video card and monitor combination, to match the number of rows and
 *      columns specified.
 *      Note that there are only a real few combination or rows/cols pairs
 *      that produce the video mode change.
 *      The followings are availables for DOS:
 *
 *  
 *      12 rows x 40 columns   12 rows x 80 columns
 *      25 rows x 40 columns   25 rows x 80 columns
 *      28 rows x 40 columns   28 rows x 80 columns
 *      50 rows x 40 columns   43 rows x 80 columns
 *                             50 rows x 80 columns
 *   
* The follow modes are avaliable to Windows * * * 25 rows x 40 columns 25 rows x 80 columns * 50 rows x 40 columns 43 rows x 80 columns * 50 rows x 80 columns *
* Some modes only are availables for color and/or VGA monitors. * Any change produced on the screen size is updated in the values * returned by MAXROW() and MAXCOL(). * $EXAMPLES$ * þ The first example change to a 12 lines of display mode: * IF SETMODE( 12, 40) * ? "Hey man are you blind ?" * ELSE * ? "Mom bring me my glasses!" * ENDIF * * þ Next example change to a 50 lines mode: * IF SETMODE( 50, 80) * ? "This wonderful mode was successfully set" * ELSE * ? "Wait. this monitor are not made in rubber !" * ENDIF * * $STATUS$ * R * $COMPLIANCE$ * Some of these modes are not availables on Clipper * $PLATFORMS$ * DOS,WIN32 * $FILES$ * Source is gtdos.c,gtwin.c * $SEEALSO$ * MAXCOL(),MAXROW() * $END$ */
c:\harbour\doc\en\string.txt
/*
 * $Id: string.txt 9194 2008-08-19 15:18:13Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Jose Lalin 
 *    Documentation for: DESCEND()
 *
 * Copyright 2000 Luiz Rafael Culik 
 *    Documentation for: HB_OEMTOANSI(), HB_ANSITOOEM(), ISALPHA(), ISDIGIT(),
 *                       ISUPPER(), ISLOWER(), LTRIM(), AT(), RAT(), LEFT(),
 *                       RIGHT(), SUBSTR(), UPPER(), LOWER(), ASC(), CHR(),
 *                       PADC(), PADL(), PADR(), ALLTRIM(), TRIM(), RTRIM(),
 *                       SPACE(), REPLICATE(), VAL(), TRANSFORM(), STRTRAN()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ISALPHA()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Checks if leftmost character in a string is an alphabetic character
 *  $SYNTAX$
 *      ISALPHA(  ) --> lAlpha
 *  $ARGUMENTS$
 *       Any character string
 *  $RETURNS$
 *      lAlpha Logical true (.T.) or false (.F.).
 *  $DESCRIPTION$
 *      This function return a logical true (.T.) if the first character
 *      in  is an alphabetic character. If not, the function will
 *      return a logical false (.F.).
 *  $EXAMPLES$
 *      QOUT( "isalpha( 'hello' ) = ", isalpha( 'hello' ) )
 *      QOUT( "isalpha( '12345' ) = ", isalpha( '12345' ) )
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ISDIGIT(),ISLOWER(),ISUPPER(),LOWER(),UPPER()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ISDIGIT()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Checks if leftmost character is a digit character
 *  $SYNTAX$
 *      ISDIGIT(  ) --> lDigit
 *  $ARGUMENTS$
 *       Any character string
 *  $RETURNS$
 *      lDigit Logical true (.T.) or false (.F.).
 *  $DESCRIPTION$
 *      This function takes the caracter string  and checks to
 *      see if the leftmost character is a digit, from 1 to 9. If so, the
 *      function will return a logical true (.T.); otherwise, it will
 *      return a logical false (.F.).
 *  $EXAMPLES$
 *      ? ISDIGIT( '12345' )      // .T.
 *      ? ISDIGIT( 'abcde' )      // .F.
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ISALPHA(),ISLOWER(),ISUPPER(),LOWER(),UPPER()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ISUPPER()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Checks if leftmost character is an uppercased letter.
 *  $SYNTAX$
 *      ISUPPER(  ) --> lUpper
 *  $ARGUMENTS$
 *       Any character string
 *  $RETURNS$
 *      lUpper Logical true (.T.) or false (.F.).
 *  $DESCRIPTION$
 *      This function takes the caracter string  and checks to
 *      see if the leftmost character is a uppercased letter. If so, the
 *      function will return a logical true (.T.); otherwise, it will
 *      return a logical false (.F.).
 *  $EXAMPLES$
 *      ? ISUPPER( 'Abcde' )    // .T.
 *      ? ISUPPER( 'abcde' )    // .F.
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ISALPHA(),ISLOWER(),ISDIGIT(),LOWER(),UPPER()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ISLOWER()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Checks if leftmost character is an lowercased letter.
 *  $SYNTAX$
 *      ISLOWER(  ) --> lLower
 *  $ARGUMENTS$
 *       Any character string
 *  $RETURNS$
 *      lLower Logical true (.T.) or false (.F.).
 *  $DESCRIPTION$
 *      This function takes the caracter string  and checks to
 *      see if the leftmost character is a lowercased letter. If so, the
 *      function will return a logical true (.T.); otherwise, it will
 *      return a logical false (.F.).
 *  $EXAMPLES$
 *      ? islower( 'ABCde' )      // .F.
 *      ? islower( 'aBCde' )      // .T.
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ISALPHA(),ISDIGIT(),ISUPPER(),LOWER(),UPPER()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      LTRIM()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Removes leading spaces from a string
 *  $SYNTAX$
 *      LTRIM(  ) --> cReturn
 *  $ARGUMENTS$
 *        Character expression with leading spaces
 *  $RETURNS$
 *      LTRIM() returns a copy of the original string with leading spaces
 *      removed.
 *  $DESCRIPTION$
 *      This function trims the leading space blank
 *  $EXAMPLES$
 *      ? LTRIM( "HELLO     " )
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This functions is CA-Cl*pper compatible
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      TRIM(),RTRIM(),ALLTRIM()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      AT()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Locates the position of a substring in a main string.
 *  $SYNTAX$
 *      AT( , , [], [] ) --> nPos
 *  $ARGUMENTS$
 *       Substring to search for
 *
 *       Main string
 *
 *       First position to search in cString, by default 1
 *
 *       End posistion to search, by default cString length
 *  $RETURNS$
 *      AT() return the starting position of the first occurrence of the
 *      substring in the main string
 *  $DESCRIPTION$
 *      This function searches the string  for the characters in
 *      the first string . If the substring is not contained within
 *      the second expression, the function will return 0. The third and fourth
 *      parameters lets you indicate a starting and end offset to search in.
 *  $EXAMPLES$
 *      QOUT( "at( 'cde', 'abcdefgfedcba' ) = '" +;
 *      at( 'cde', 'abcsefgfedcba' ) + "'" )
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is sensitive to HB_C52_STRICT settings during the
 *      compilation of source/rtl/at.c
 *
 *       and  are Harbour extensions and do not exist if
 *      HB_C52_STRICT is defined. In that case, the whole string is searched.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      RAT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      RAT()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Searches for a substring from the right side of a string.
 *  $SYNTAX$
 *      RAT( ,  ) --> nPos
 *  $ARGUMENTS$
 *       Substring to search for
 *
 *       Main string
 *  $RETURNS$
 *      RAT() return the location of beginnig position.
 *  $DESCRIPTION$
 *      This function searches througt  for the first existence
 *      of . The search operation is performed from the right side
 *      of  to the left. If the function is unable to find any
 *      occurence of  in , the return value is 0.
 *  $EXAMPLES$
 *      QOUT( "rat( 'cde', 'abcdefgfedcba' ) = '" +;
 *      rat( 'cde', 'abcsefgfedcba' ) + "'" )
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Will not work with a search string > 64 KB on some platforms
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      AT(), SUBSTR(), RIGHT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      LEFT()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Extract the leftmost substring of a character expression
 *  $SYNTAX$
 *      LEFT( ,  ) --> cReturn
 *  $ARGUMENTS$
 *       Main character to be parsed
 *
 *       Number of bytes to return beggining at the leftmost position
 *  $RETURNS$
 *        Substring of evaluation
 *  $DESCRIPTION$
 *      This functions returns the leftmost  characters of .
 *      It is equivalent to the following expression:
 *      
 *      SUBSTR( , 1,  )
 *      
 *  $EXAMPLES$
 *      ? LEFT( 'HELLO HARBOUR', 5 )    // HELLO
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This functions is CA-Cl*pper compatible
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      SUBSTR(),RIGHT(),AT(),RAT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      RIGHT()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Extract the rightmost substring of a character expression
 *  $SYNTAX$
 *      RIGHT( ,  ) --> cReturn
 *  $ARGUMENTS$
 *       Character expression to be parsed
 *
 *       Number of bytes to return beggining at the rightmost position
 *  $RETURNS$
 *        Substring of evaluation
 *  $DESCRIPTION$
 *      This functions returns the rightmost  characters of .
 *      It is equivalent to the following expressions:
 *      
 *      SUBSTR( ,  -  )
 *      SUBSTR( , LEN(  ) -  + 1,  )
 *      
 *  $EXAMPLES$
 *      ? RIGHT( 'HELLO HARBOUR', 5 )     // RBOUR
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This functions is CA-Cl*pper compatible
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      SUBSTR(),LEFT(),AT(),RAT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      SUBSTR()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Returns a substring from a main string
 *  $SYNTAX$
 *      SUBSTR( , , [] ) --> cReturn
 *  $ARGUMENTS$
 *       Character expression to be parsed
 *
 *       Start position
 *
 *       Number of characters to return
 *  $RETURNS$
 *       Substring of evaluation
 *  $DESCRIPTION$
 *      This functions returns a character string formed from ,
 *      starting at the position of  and continuing on for a
 *      lenght of  characters. If  is not specified, the value
 *      will be all remaining characters from the position of .

 *      The value of  may be negative. If it is, the direction of
 *      operation is reversed from a default of left-to-right to right-to-left
 *      for the number of characters specified in . If the number of
 *      characters from  to the end of the string is less than 
 *      the rest are ignored.
 *  $EXAMPLES$
 *      ? SUBSTR( 'HELLO HARBOUR' , 7, 4 )      // HARB
 *      ? SUBSTR( 'HELLO HARBOUR' ,-3, 3 )      // OUR
 *      ? SUBSTR( 'HELLO HARBOUR' , 7    )      // HARBOUR
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This functions is CA-Cl*pper compatible with the execption that
 *      CA-Cl*pper will generate an error if the passed string is longer
 *      than 64Kb, and Harbour on some plataform is not limit by this size.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *     LEFT(),AT(),RIGHT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      STR()
 *  $CATEGORY$
 *      Strings
 *  $ONELINER$
 *      Convert a numeric expression to a character string.
 *  $SYNTAX$
 *      STR( , [], [] ) --> cNumber
 *  $ARGUMENTS$
 *       is the numeric expression to be converted to a character
 *      string.
 *
 *       is the length of the character string to return, including
 *      decimal digits, decimal point, and sign.
 *
 *       is the number of decimal places to return.
 *  $RETURNS$
 *      STR() returns  formatted as a character string.  If the
 *      optional length and decimal arguments are not specified, STR()
 *      returns the character string according to the following rules:
 *
 *      Results of STR() with No Optional Arguments
 *
 *  
 *      Expression               Return Value Length
 *
 *      Field Variable           Field length plus decimals
 *      Expressions/constants    Minimum of 10 digits plus decimals
 *      VAL()                    Minimum of 3 digits
 *      MONTH()/DAY()            3 digits
 *      YEAR()                   5 digits
 *      RECNO()                  7 digits
 *      
* $DESCRIPTION$ * STR() is a numeric conversion function that converts numeric values * to character strings. It is commonly used to concatenate numeric * values to character strings. STR() has applications displaying * numbers, creating codes such as part numbers from numeric values, * and creating index keys that combine numeric and character data. * * STR() is like TRANSFORM(), which formats numeric values as character * strings using a mask instead of length and decimal specifications. * * The inverse of STR() is VAL(), which converts character numbers to * numerics. * * * If is less than the number of whole number digits in * , STR() returns asterisks instead of the number. * * * If is less than the number of decimal digits * required for the decimal portion of the returned string, Harbour * rounds the number to the available number of decimal places. * * * If is specified but is omitted (no * decimal places), the return value is rounded to an integer. * $EXAMPLES$ * ? STR( 10, 6, 2 ) // " 10.00" * ? STR( -10, 8, 2 ) // " -10.00" * * $TESTS$ * see the regression test suit for comprehensive tests. * * $STATUS$ * R * $COMPLIANCE$ * CA-Cl*pper compatible. * $FILES$ * Library is rtl * $SEEALSO$ * STRZERO(),TRANSFORM(),VAL() * $END$ */ /* $DOC$ * $FUNCNAME$ * STRZERO() * $CATEGORY$ * Strings * $ONELINER$ * Convert a numeric expression to a character string, zero padded. * $SYNTAX$ * STRZERO( , [], [] ) --> cNumber * $ARGUMENTS$ * is the numeric expression to be converted to a character * string. * * is the length of the character string to return, including * decimal digits, decimal point, and sign. * * is the number of decimal places to return. * $RETURNS$ * STRZERO() returns formatted as a character string. If the * optional length and decimal arguments are not specified, STRZERO() * returns the character string according to the following rules: * * Results of STRZERO() with No Optional Arguments * * * Expression Return Value Length * * Field Variable Field length plus decimals * Expressions/constants Minimum of 10 digits plus decimals * VAL() Minimum of 3 digits * MONTH()/DAY() 3 digits * YEAR() 5 digits * RECNO() 7 digits *
* $DESCRIPTION$ * STRZERO() is a numeric conversion function that converts numeric * values to character strings. It is commonly used to concatenate * numeric values to character strings. STRZERO() has applications * displaying numbers, creating codes such as part numbers from numeric * values, and creating index keys that combine numeric and character * data. * * STRZERO() is like TRANSFORM(), which formats numeric values as * character strings using a mask instead of length and decimal * specifications. * * The inverse of STRZERO() is VAL(), which converts character numbers * to numerics. * * * If is less than the number of whole number digits in * , STR() returns asterisks instead of the number. * * * If is less than the number of decimal digits * required for the decimal portion of the returned string, Harbour * rounds the number to the available number of decimal places. * * * If is specified but is omitted (no * decimal places), the return value is rounded to an integer. * $EXAMPLES$ * ? STRZERO( 10, 6, 2 ) // "010.00" * ? STRZERO( -10, 8, 2 ) // "-0010.00" * * $TESTS$ * see the regression test suit for comprehensive tests. * * $STATUS$ * R * $COMPLIANCE$ * CA-Cl*pper compatible (it was part of the samples). * $FILES$ * Library is rtl * $SEEALSO$ * STR() * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_VALTOSTR() * $CATEGORY$ * Strings * $ONELINER$ * Converts any scalar type to a string. * $SYNTAX$ * HB_VALTOSTR( ) --> cString * $ARGUMENTS$ * is any scalar argument. * $RETURNS$ * A string representation of using default * conversions. * $DESCRIPTION$ * HB_VALTOSTR can be used to convert any scalar value to a string. * $EXAMPLES$ * ? HB_VALTOSTR( 4 ) * ? HB_VALTOSTR( "String" ) * * $TESTS$ * ? HB_VALTOSTR( 4 ) == " 4" * ? HB_VALTOSTR( 4.0 / 2 ) == " 2.00" * ? HB_VALTOSTR( "String" ) == "String" * ? HB_VALTOSTR( CTOD( "01/01/2001" ) ) == "01/01/01" * ? HB_VALTOSTR( NIL ) == "NIL" * ? HB_VALTOSTR( .F. ) == ".F." * ? HB_VALTOSTR( .T. ) == ".T." * * $STATUS$ * R * $COMPLIANCE$ * HB_VALTOSTR() is a Harbour enhancement. * $FILES$ * Library is rtl * $SEEALSO$ * STR() * $END$ */ /* $DOC$ * $FUNCNAME$ * LEN() * $CATEGORY$ * Strings * $ONELINER$ * Returns size of a string or size of an array. * $SYNTAX$ * LEN( | ) --> * $ARGUMENTS$ * is a character string or the array to check. * $RETURNS$ * The length of the string or the number of elements that contains * an array. * $DESCRIPTION$ * This function returns the string length or the size of an array. If * it is used with a multidimensional array it returns the size of the * first dimension. * $EXAMPLES$ * ? LEN( "Harbour" ) // 7 * ? LEN( { "One", "Two" } ) // 2 * * $TESTS$ * function Test() * LOCAL cName := "" * ACCEPT "Enter your name: " TO cName * ? LEN( cName ) * return nil * * $STATUS$ * R * $COMPLIANCE$ * LEN() is fully CA-Cl*pper compliant. * $FILES$ * Library is rtl * $SEEALSO$ * EMPTY(),RTRIM(),LTRIM(),AADD(),ASIZE() * $END$ */ /* $DOC$ * $FUNCNAME$ * EMPTY() * $CATEGORY$ * Conversion * $ONELINER$ * Checks if the passed argument is empty. * $SYNTAX$ * EMPTY( ) --> lIsEmpty * $ARGUMENTS$ * is any valid expression. * $RETURNS$ * A logical value. It is true (.T.) if the passed argument is empty * otherwise it is false (.F.). * $DESCRIPTION$ * This function checks if an expression has empty value and returns a * logical indicating whether it the expression is empty or not. * $EXAMPLES$ * ? EMPTY( "I'm not empty" ) // .F. * * $TESTS$ * FUNCTION Test() * ? EMPTY( NIL ) // .T. * ? EMPTY( 0 ) // .T. * ? EMPTY( .F. ) // .T. * ? EMPTY( "" ) // .T. * ? EMPTY( 1 ) // .F. * ? EMPTY( .T. ) // .F. * ? EMPTY( "smile" ) // .F. * ? EMPTY( Date() ) // .F. * RETURN NIL * * $STATUS$ * R * $COMPLIANCE$ * EMPTY() is fully CA-Cl*pper compliant. * $FILES$ * Library is rtl * $SEEALSO$ * LEN() * $END$ */ /* $DOC$ * $FUNCNAME$ * DESCEND() * $CATEGORY$ * Conversion * $ONELINER$ * Inverts an expression of string, logical, date or numeric type. * $SYNTAX$ * DESCEND( ) --> xExpInverted * $ARGUMENTS$ * is any valid expression. * $RETURNS$ * Inverted value of the same type as passed. * $DESCRIPTION$ * This function converts an expression in his inverted form. It is * useful to build descending indexes. * $EXAMPLES$ * // Seek for Smith in a descending index * SEEK DESCEND( "SMITH" ) / * $TESTS$ * DATA->( DBSEEK( DESCEND( "SMITH" ) ) ) * will seek "SMITH" into a descending index. * * $STATUS$ * R * $COMPLIANCE$ * DESCEND() is fully CA-Cl*pper compliant. * $FILES$ * Library is rtl * $SEEALSO$ * INDEX, SEEK * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_ANSITOOEM() * $CATEGORY$ * Strings * $ONELINER$ * Convert a windows Character to a Dos based character * $SYNTAX$ * HB_ANSITOOEM( ) --> cDosString * $ARGUMENTS$ * Windows ansi string to convert to DOS oem String * $RETURNS$ * Dos based string * $DESCRIPTION$ * This function converts each character in to the * corresponding character in the MS-DOS (OEM) character set. The * character expression should contain characters from the * ANSI character set. If a character in doesn't have a * MS-DOS equivalent, the character is converted to a similar MS-DOS * character. * $EXAMPLES$ * ? HB_OEMTOANSI( "Harbour" ) * * $STATUS$ * R * $COMPLIANCE$ * This function is a Harbour extension * $PLATFORMS$ * This functions work only on Windows Plataform * $FILES$ * Library is rtl * $SEEALSO$ * HB_OEMTOANSI() * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_OEMTOANSI() * $CATEGORY$ * Strings * $ONELINER$ * Convert a DOS(OEM) Character to a WINDOWS (ANSI) based character * $SYNTAX$ * HB_OEMTOANSI( ) --> cDosString * $ARGUMENTS$ * DOS (OEM) string to convert to WINDOWS (ANSI) String * $RETURNS$ * WINDOWS based string * $DESCRIPTION$ * This function converts each character in to the * corresponding character in the Windows (ANSI) character set. The * character expression should contain characters from the * OEM character set. If a character in doesn't have a ANSI * equivalent, the character is remais the same. * $EXAMPLES$ * ? HB_OEMTOANSI( "Harbour" ) * * $STATUS$ * R * $COMPLIANCE$ * This function is a Harbour extension * $PLATFORMS$ * This functions work only on Windows Plataform * $FILES$ * Library is rtl * $SEEALSO$ * HB_ANSITOOEM() * $END$ */ /* $DOC$ * $FUNCNAME$ * LOWER() * $CATEGORY$ * Strings * $ONELINER$ * Universally lowercases a character string expression. * $SYNTAX$ * LOWER( ) --> cLowerString * $ARGUMENTS$ * Any character expression. * $RETURNS$ * Lowercased value of * $DESCRIPTION$ * This function converts any character expression passes as * to its lowercased representation.Any nonalphabetic character withing * will remain unchanged. * $EXAMPLES$ * ? LOWER( "HARBOUR" ) // harbour * ? LOWER( "Hello All" ) // hello all * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compatible * $PLATFORMS$ * ALL * $FILES$ * Library is rtl * $SEEALSO$ * UPPER(),ISLOWER(),ISUPPER() * $END$ */ /* $DOC$ * $FUNCNAME$ * UPPER() * $CATEGORY$ * Strings * $ONELINER$ * Converts a character expression to uppercase format * $SYNTAX$ * UPPER( ) --> cUpperString * $ARGUMENTS$ * Any character expression. * $RETURNS$ * Uppercased value of * $DESCRIPTION$ * This function converts all alpha characters in to upper * case values and returns that formatted character expression. * $EXAMPLES$ * ? UPPER( "harbour" ) // HARBOUR * ? UPPER( "Harbour" ) // HARBOUR * * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compatible * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * LOWER(),ISUPPER(),ISLOWER() * $END$ */ /* $DOC$ * $FUNCNAME$ * CHR() * $CATEGORY$ * Strings * $ONELINER$ * Converts an ASCII value to it character value * $SYNTAX$ * CHR( ) --> cReturn * $ARGUMENTS$ * Any ASCII character code. * $RETURNS$ * Character expression of that ASCII value * $DESCRIPTION$ * This function returns the ASCII character code for . The * number expressed must be an interger value within the range of 0 to * 255 inclusive. The CHR() function will send the character returned * to whatever device is presently set. * * The CHR() function may be used for printing special codes as well * as normal and graphics character codes. * $EXAMPLES$ * ? CHR( 32 ) * ? chr( 215 ) * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * ASC(), INKEY() * $END$ */ /* $DOC$ * $FUNCNAME$ * ASC() * $CATEGORY$ * Strings * $ONELINER$ * Returns the ASCII value of a character * $SYNTAX$ * ASC( ) --> nAscNumber * $ARGUMENTS$ * Any character expression * $RETURNS$ * ASCII value * $DESCRIPTION$ * This function return the ASCII value of the leftmost character of * any character expression passed as . * $EXAMPLES$ * ? ASC( "A" ) * ? ASC( "¹" ) * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * CHR() * $END$ */ /* $DOC$ * $FUNCNAME$ * PADC() * $CATEGORY$ * Strings * $ONELINER$ * Centers an expression for a given width * $SYNTAX$ * PADC( , , ) --> cString * $ARGUMENTS$ * A Number, Character or Date value to pad * * Width of output string * * Character to fill in the string * $RETURNS$ * The Center string of * $DESCRIPTION$ * This function takes an date, number or character expression * and attempt to center the expression within a string of a given width * expressed as . The default character used to pad either side * of will be a blank space. This character may be explicitly * specified the value of . * * If the lenght of is longer then , this function will * truncate the string from the leftmost side to the lenght of * . * $EXAMPLES$ * ? PADC( 'Harbour',20 ) * ? PADC( 34.5142, 20 ) * ? PADC( Date(), 35 ) * $TESTS$ * See Examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compilant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * ALLTRIM(),PADL(),PADR() * $END$ */ /* $DOC$ * $FUNCNAME$ * PADL() * $CATEGORY$ * Strings * $ONELINER$ * Left-justifies an expression for a given width * $SYNTAX$ * PADL( , , ) --> cString * $ARGUMENTS$ * An number,Character or date to pad * * Width of output string * * Character to fill in the string * $RETURNS$ * The left-justifies string of * $DESCRIPTION$ * This function takes an date,number,or character expression * and attempt to left-justify it within a string of a given width * expressed as . The default character used to pad left side * of will be an blank space; however, this character may be * explicitly specified the value of . * * If the lenght of is longer then , this function will * truncate the string from the leftmost side to the lenght of * . * $EXAMPLES$ * ? PADL( 'Harbour', 20 ) * ? PADL( 34.5142, 20 ) * ? PADL( Date(), 35 ) * $TESTS$ * See examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compilant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * ALLTRIM(),PADC(),PADR() * $END$ */ /* $DOC$ * $FUNCNAME$ * PADR() * $CATEGORY$ * Strings * $ONELINER$ * Right-justifies an expression for a given width * $SYNTAX$ * PADR( , , ) --> cString * $ARGUMENTS$ * A Number, Character or Date value to pad * * Width of output string * * Character to fill in the string * $RETURNS$ * The right-justifies string of * $DESCRIPTION$ * This function takes an date,number,or character expression * and attempt to right-justify it within a string of a given width * expressed as . The default character used to pad right side * of will be an blank space; however, this character may be * explicitly specified the value of . * * If the lenght of is longer then , this function will * truncate the string from the leftmost side to the lenght of * . * $EXAMPLES$ * ? PADR( 'Harbour', 20 ) * ? PADR( 34.5142, 20 ) * ? PADR( Date(), 35 ) * $TESTS$ * See examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compilant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * ALLTRIM(),PADC(),PADL() * $END$ */ /* $DOC$ * $FUNCNAME$ * ALLTRIM() * $CATEGORY$ * Strings * $ONELINER$ * Removes leading and trailing blank spaces from a string * $SYNTAX$ * ALLTRIM( ) --> cExpression * $ARGUMENTS$ * Any character string * $RETURNS$ * An string will all blank spaces removed from * $DESCRIPTION$ * This function returns the string will all leading and * trailing blank spaces removed. * $EXAMPLES$ * ? ALLTRIM( "HELLO HARBOUR" ) * ? ALLTRIM( " HELLO HARBOUR" ) * ? ALLTRIM( "HELLO HARBOUR " ) * ? ALLTRIM( " HELLO HARBOUR " ) * $TESTS$ * See Examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compilant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * LTRIM(),RTRIM(),TRIM() * $END$ */ /* $DOC$ * $FUNCNAME$ * RTRIM() * $CATEGORY$ * Strings * $ONELINER$ * Remove trailing spaces from a string. * $SYNTAX$ * RTRIM( ) --> cString * $ARGUMENTS$ * Any character expression * $RETURNS$ * A formated string with out any blank spaced. * $DESCRIPTION$ * This function returns the value of with any trailing blank * removed. * * This function is indentical to RTRIM() and the opposite of LTRIM(). * Together with LTRIM(), this function equated to the ALLTRIM() * function. * $EXAMPLES$ * ? RTRIM( "HELLO" ) // "HELLO" * ? RTRIM( "" ) // "" * ? RTRIM( "UA " ) // "UA" * ? RTRIM( " UA" ) // " UA" * $TESTS$ * See Examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compilant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * ALLTRIM(),LTRIM(),TRIM() * $END$ */ /* $DOC$ * $FUNCNAME$ * TRIM() * $CATEGORY$ * Strings * $ONELINER$ * Remove trailing spaces from a string. * $SYNTAX$ * TRIM( ) --> cString * $ARGUMENTS$ * Any character expression * $RETURNS$ * A formated string with out any blank spaced. * $DESCRIPTION$ * This function returns the value of with any trailing blank * removed. * * This function is indentical to RTRIM() and the opposite of LTRIM(). * Together with LTRIM(), this function equated to the ALLTRIM() * function. * $EXAMPLES$ * ? TRIM( "HELLO" ) // "HELLO" * ? TRIM( "" ) // "" * ? TRIM( "UA " ) // "UA" * ? TRIM( " UA" ) // " UA" * $TESTS$ * See Examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compilant * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * RTRIM(),LTRIM(),ALLTRIM() * $END$ */ /* $DOC$ * $FUNCNAME$ * REPLICATE() * $CATEGORY$ * Strings * $ONELINER$ * Repeats a single character expression * $SYNTAX$ * REPLICATE( , ) --> cReplicateString * $ARGUMENTS$ * Character string to be replicated * * Number of times to replicate * $RETURNS$ * A character expression containg the * fill character. * $DESCRIPTION$ * This function returns a string composed of repetitions of * . The lenght of the character string returned by this * function is limited to the memory avaliable. * * A value of 0 for will return a NULL string. * $EXAMPLES$ * ? REPLICATE( 'a', 10 ) // aaaaaaaaaa * ? REPLICATE( 'b', 100000 ) * $TESTS$ * See Examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant in all aspects, with the * exception don't have the Clipper 64Kb string length. * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * SPACE(),PADC(),PADL(),PADR() * $END$ */ /* $DOC$ * $FUNCNAME$ * SPACE() * $CATEGORY$ * Strings * $ONELINER$ * Returns a string of blank spaces * $SYNTAX$ * SPACE( ) --> cString * $ARGUMENTS$ * The lenght of the string * $RETURNS$ * A string containing blank spaces * $DESCRIPTION$ * This function returns a string consisting of blank spaces. * If the value of is 0, a NULL string ( "" ) will be returned. * * This function is useful to declare the lenght of a character memory * variable. * $EXAMPLES$ * FUNC MAIN * LOCAL cBigString * LOCAL cFirst * LOCAL cString := Space(20) // Create an characte memory variable * // with lenght 20 * ? len(cString) // 20 * cBigString:=space(100000) // create a memory variable with 100000 * // blank spaces * ? len(cBigString) * Use Tests New * cFirst:= makeempty(1) * ? len(cFirst) * Return Nil * * Function MakeEmpty(xField) * LOCAL nRecord * LOCAL xRetValue * * If !empty(alias()) * nRecord:=recno() * dbgoto(0) * if valtype(xField)=="C" * xField:= ascan(dbstruct(),{|aFields| aFields[1]==upper(xfield)}) * else * default xField to 0 * if xField < 1 .or. xField>fcount() * xfield:=0 * endif * endif * if !(xfield ==0) * xRetvalue:=fieldget(xfield) * endif * dbgoto(nrecord) * endif * return( xRetvalue) * $TESTS$ * See examples * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compliant in all aspects, with the * exception don't have the Clipper 64Kb string length. * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * PADC(),PADL(),PADR(),REPLICATE() * $END$ */ /* $DOC$ * $FUNCNAME$ * VAL() * $CATEGORY$ * Strings * $ONELINER$ * Convert a number from a character type to numeric * $SYNTAX$ * VAL( ) --> nNumber * $ARGUMENTS$ * Any valid character string of numbers. * $RETURNS$ * The numeric value of * $DESCRIPTION$ * This function converts any number previosly defined as an character * expression into a numeric expression. * * This functions is the oppose of the STR() function. * $EXAMPLES$ * ? VAL( '31421' ) // 31421 * $TESTS$ * See regression test * $STATUS$ * R * $COMPLIANCE$ * This function is CA-Cl*pper compatible * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * STR(),TRANSFORM() * $END$ */ /* $DOC$ * $FUNCNAME$ * STRTRAN() * $CATEGORY$ * Strings * $ONELINER$ * Translate substring valuw with a main string * $SYNTAX$ * STRTRAN( , , [], [], * [] ) --> cReturn * $ARGUMENTS$ * The main string to search * * The string to locate in the main string * * The string to replace the * * The first occurence to be replaced * * Number of occurence to replace * $RETURNS$ * Formated string * $DESCRIPTION$ * This function searches for any occurence of in * and replacesit with . If is not specified, a * NULL byte will replace . * * If is used, its value defines the first occurence to be * replaced. The default value is 1. Additionally, if used, the value of * tell the function how many occurrences of * in are to the replaced. The default of is * all occurrences. * $EXAMPLES$ * ? STRTRAN( "Harbour Power", " ", " " ) // Harbour Power * // Harbour Power The future of xBase * ? STRTRAN( "Harbour Power The Future of xBase", " ", " " ,, 2 ) * $TESTS$ * See regression test * $STATUS$ * R * $COMPLIANCE$ * Will not work with a search string of > 64 KB on some platforms * $PLATFORMS$ * All * $FILES$ * Libraty is rtl * $SEEALSO$ * SUBSTR(),AT() * $END$ */ /* $DOC$ * $FUNCNAME$ * TRANSFORM() * $CATEGORY$ * Strings * $ONELINER$ * Formats a value based on a specific picture template. * $SYNTAX$ * TRANSFORM( , ) --> cFormated * $ARGUMENTS$ * Any expression to be formated. * * Character string with picture template * $RETURNS$ * Formatted expression in character format * $DESCRIPTION$ * This function returns in the format of the picture * expression passed to the function as . * * Their are two components that can make up : a function * string and a template string.Function strings are those functions * that globally tell what the format of should be. These * functions are represented by a single character precede by the * @ symbol. * * There are a couple of rules to follow when using function strings * and template strings: * * - First, a single space must fall between the function template * and the template string if they are used in conjunction with * one another. * * - Second, if both components make up the value of , the * function string must precede the template string. Otherwise, the * function string may appear with out the template string and * vice versa. * * The table below shows the possible function strings avaliable with * the TRANSFORM() function. * * * @B Left justify the string within the format. * @C Issue a CR after format is numbers are positive. * @D Put dates in SET DATE format. * @E Put dates in BRITISH format. * @L Make a zero padded string out of the number. * @R Insert nontemplate characters. * @X Issue a DB after format is numbers are negative. * @Z Display any zero as blank spaces. * @( Quotes around negative numbers * @! Convert alpha characters to uppercased format. *
* * The second part of consists of the format string.Each * character in the string may be formated based on using the follow * characters as template markers for the string. * * * A,N,X,9,# Any data type * L Shows logical as "T" or "F" * Y Shows logical as "Y" or "N" * ! Convert to uppercase * $ Dolar sing in place of leading spaces in numeric expression * * Asterisks in place of leading spaces in numeric expression * , Commas position * . Decimal point position *
* $EXAMPLES$ * LOCAL cString := 'This is harbour' * LOCAL nNumber := 9923.34 * LOCAL nNumber1 := -95842.00 * LOCAL lValue := .T. * LOCAL dDate := DATE() * ? 'working with String' * ? "Current String is", cString * ? "All uppercased", TRANSFORM( cString, "@!" ) * ? "Date is", ddate * ? "Date is ", TRANSFORM( ddate, "@D" ) * ? TRANSFORM( nNumber, "@L 99999999" ) // "009923.34" * ? TRANSFORM( 0 , "@L 9999" ) // "0000" * * $TESTS$ * See regression Test * $STATUS$ * R * $COMPLIANCE$ * The @L function template is a FOXPRO/Xbase Extension * $PLATFORMS$ * All * $FILES$ * Library is rtl * $SEEALSO$ * @...SAY,DEVOUTPICT() * $END$ */
c:\harbour\doc\en\strotype.txt
/*
 * $Id: strotype.txt 4244 2001-07-30 13:39:30Z ckedem $
 */

/*  $DOC$
 *  $FUNCNAME$
 *      Strong Typing
 *  $CATEGORY$
 *      Document
 *  $ONELINER$
 *      Compile-Time type checking
 *  $DESCRIPTION$
 *      Strong Type Checking, could also be described as "Compile-Time Type
 *      Checking". As you might know Clipper, generates a Run-Time Error,
 *      ("Type Mismatch") when we attempt to perform some operations with
 *      the wrong type of Variable.
 *
 *      Examples:
 *
 *      LOCAL Var1 := "A"
 *
 *      ? Var1 * 3 // Error here.
 *
 *      @ Var1, 7 SAY 'Hello' // Error here.
 *
 *      ? SubStr( "Hello", Var1 ) // Error here.
 *
 *      The above 3 lines would all result in Run-Time Error, because Var1 is
 *      of type CHARACTER but the above lines used it as if it was of type
 *      NUMERIC.
 *
 *      Using Strong Type Checking, or Compile-Time Type Checking, the above
 *      problem would have been discovered and reported in COMPILE-TIME,
 *      rather than waiting for the inevitable problem to be discovered when
 *      we finally execute the program.
 *
 *      Strong Typed Languages allow the programmer to "tell" the compiler (declare)
 *      what is the type of a each Variable, so that the Compiler in return can warn
 *      the programmer, when ever such Declared (Strong Typed) Variable, is used in
 *      a context which is incompatible with its declared type.
 *
 *      For instance, if we "told" the compiler that Var1 above is of type
 *      CHARACTER (LOCAL Var1 AS CHARACTER) the Harbour Compiler could, in
 *      return, warn us if we attempted to perform the calculation:
 *
 *      Var1 * 3
 *
 *      because the Compiler knows we can't perform a multiplication of a
 *      Character. (we might allow it in some context, but this is beyond
 *      the scope of this discussion). Similarly we would have been warned
 *      when attempting to use Var1 as a Row Number ( @ Var1 ), or as the
 *      2nd operand of the SubStr() function SubStr( "Hello", Var1) ),
 *      because the Compiler knows that these operations require a NUMERIC
 *      rather than CHARACTER type.
 *
 *      The above may save us lots of time, by pointing a problem, we can not
 *      escape, since such code will never perform correctly once executed.
 *      So rather than wait to the testing cycle, for such problems to be
 *      discovered, (and some times even later, after we may have
 *      distributed our applications) instead we may know of such problems
 *      as soon as we type HARBOUR ProgName -w3
 *
 *      Harbour also offers a hybrid mode, where it can report such type
 *      mismatch problems, even without requiring the programmer to declare
 *      the type of variables. This feature, is referred to as Adaptive Type
 *      Checking. The programmer, is not required to make any changes in his
 *      code, to take advantage of this feature. All of the above 3 errors
 *      would have been reported just as effectively as if the programmer
 *      Strong Typed (declared) Var1. Harbour would have been able to report
 *      such problems at compile time,because the assignment Var1 := "A"
 *      implied that Var1 is of type CHARACTER,until it will be assigned
 *       another value. Therefore Harbour will "remember" that Var1 "adapted"
 *      type CHARACTER, and thus the subsequent multiplication Var1 * 3, will
 *      be reported as an error, as soon as you attempt to compile such code.
 *
 *      The nice aspect of this hybrid mode, is that unlike Strong Typed
 *      Variables,you don't have to declare the type, so no code changes
 *      are need, the Type instead is assumed by implication (type of the
 *      assigned value). The other benefit, is that it is completely ok to
 *      assign a new value of different type, any time, to such undeclared
 *      (variant) variable. As soon as we assign a new type, the Compiler
 *      will than protect us from using the Variable in an incompatible
 *      context, since the variable "adapted" this type as soon as we
 *      assigned a value which implies a type.
 *
 *      While Adapted Type Checking may be fairly effective in reporting many
 *      common mistakes, to take full benefits of such Compile-Time checking,
 *      it is recommended to do declare the Type of Variables, when ever
 *      possible.
 *
 *      The Harbour Strong Type features, also allows the declaration of the
 *      expected parameters (including optionals) of User Defined Functions,
 *      as well as their return Type. Similarly, you may declare the Type of
 *      any Class Variables, Methods, and Methods Parameters.
 *  $END$
 */
c:\harbour\doc\en\subcodes.txt
/*
 * $Id: subcodes.txt 3304 2000-08-12 23:39:35Z lculik $
 */
/*
 Proposition:

*   If the error is raised in the same condition as in Clipper then the same
subcode number should be used.

*   Errors specific to the Harbour and generated in RTL modules should
start from 3000

*   Errors generated in tools functions should start from 4000
*/
/* ************************************************************************** */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1003
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Attempt to acces nonexisting or hidden variable
 *  $DESCRIPTION$
 *      The specified variable was not found. 
 *      If it is a database field make sure that the required database is open.  
 *      If it is a private or public variable then you must first create it
 *      using PRIVATE or PUBLIC statement.  
 *  $FUNCTION$
 *
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1068
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of argument
 *  $DESCRIPTION$
 *      The used data is not of logical type  
 *  $FUNCTION$
 *
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1068
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Bound error in array access
 *  $DESCRIPTION$
 *      The attempt to retrieve data from non-array value  
 *  $FUNCTION$
 *
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1069
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Bound error in array access
 *  $DESCRIPTION$
 *      The attempt to set data to non-array value  
 *  $FUNCTION$
 *
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1078
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The type of compared arguments do not match  
 *  $FUNCTION$
 *      ==  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1072
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The type of compared arguments do not match  
 *  $FUNCTION$
 *      <>  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1073
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The type of compared argument do not match  
 *  $FUNCTION$
 *      <  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1074
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The type of compared arguments do not match  
 *  $FUNCTION$
 *      <=  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1075
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The type of compared arguments do not match  
 *  $FUNCTION$
 *      >  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1076
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The type of compared arguments do not match  
 *  $FUNCTION$
 *      >=  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1077
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      Operation is not allowed for passed argument. The argument is not
 *      a logical value.  
 *  $FUNCTION$
 *      !  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1078
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The type of one or both arguments is not a logical  
 *  $FUNCTION$
 *      .AND.  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1079
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The type of one or both arguments is not a logical  
 *  $FUNCTION$
 *      .OR.  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1076
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The value of argument cannot be incremented  
 *  $FUNCTION$
 *      ++  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1081
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The plus operation is not allowed for used arguments.  
 *  $FUNCTION$
 *      +  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1082
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The minus operation is not allowed for used arguments.  
 *  $FUNCTION$
 *      -  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1100
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect type of argument
 *  $DESCRIPTION$
 *      The specified argument is not a string.  
 *  $FUNCTION$
 *      RTRIM, TRIM  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1101
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect type of argument
 *  $DESCRIPTION$
 *      The specified argument is not a string.  
 *  $FUNCTION$
 *      LTRIM  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1102
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The first argument passed to a function is not a string.  
 *  $FUNCTION$
 *      UPPER  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1103
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The first argument passed to a function is not a string.  
 *  $FUNCTION$
 *      LOWER  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1104
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect type of argument
 *  $DESCRIPTION$
 *      The specified argument is not a numeric value.  
 *  $FUNCTION$
 *      CHR  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1105
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The arguments passed to a function are of incorrect type.  
 *  $FUNCTION$
 *      SPACE  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1106
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The arguments passed to a function are of incorrect type.  
 *  $FUNCTION$
 *      REPLICATE  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1107
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect type of argument
 *  $DESCRIPTION$
 *      The specified argument is not a string.  
 *  $FUNCTION$
 *      ASC  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1108
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect type of argument
 *  $DESCRIPTION$
 *      The specified argument is not a string.  
 *  $FUNCTION$
 *      AT  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1076
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of arguments
 *  $DESCRIPTION$
 *      The arguments of '$' operator are not a strings.  
 *  $FUNCTION$
 *      $  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1110
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The first argument passed to a function is not a string.  
 *  $FUNCTION$
 *      SUBSTR  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1110
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The passed argument is neither a string nor an array.  
 *  $FUNCTION$
 *      LEN  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

 /*  $DOC$
 *  $SUBCODE$
 *      BASE/1112
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function are of incorrect
 *      type  
 *  $FUNCTION$
 *      YEAR  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1113
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function are of incorrect
 *      type  
 *  $FUNCTION$
 *      MONTH  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1114
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function are of incorrect
 *      type   
 *  $FUNCTION$
 *      DAY  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1115
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function are of incorrect
 *      type  
 *  $FUNCTION$
 *      DOW   
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1116
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function are of incorrect
 *      type  
 *  $FUNCTION$
 *      CMONTH  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1117
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is of incorrect
 *      type    
 *  $FUNCTION$
 *      CDOW    
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1120
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is of incorrect
 *      type  
 *  $FUNCTION$
 *      DTOS  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1122
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect type of argument
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is of incorrect
 *      type  
 *  $FUNCTION$
 *      TRANSFORM  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1124
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect type of argument
 *  $DESCRIPTION$
 *      The first argument is not a string.  
 *  $FUNCTION$
 *      LEFT  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1126
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The first arguments passed to a function is not a string.  
 *  $FUNCTION$
 *      STRTRAN  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1132
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Bound error in array access
 *  $DESCRIPTION$
 *      The specified index into an array was greater then the number of
 *      elements in the array.  
 *  $FUNCTION$
 *
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1133
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Bound error in array assigment
 *  $DESCRIPTION$
 *      The specified index into an array was greater then the number of
 *      elements in the array.  
 *  $FUNCTION$
 *
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1068
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Bound error in array element assigment
 *  $DESCRIPTION$
 *      The specified index into an array was greater then the number of
 *      elements in the array.  
 *  $FUNCTION$
 *
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */
/*  $DOC$
 *  $SUBCODE$
 *      BASE/1085
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not an numeric
 *      value  
 *  $FUNCTION$
 *      MOD  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1089
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not an numeric
 *      value  
 *  $FUNCTION$
 *      ABS  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1090
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not an numeric
 *      value  
 *  $FUNCTION$
 *      INT  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1092
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not an numeric
 *      value  
 *  $FUNCTION$
 *      MIN  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1093
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not an numeric
 *      value  
 *  $FUNCTION$
 *      MAX  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1094
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not an numeric
 *      value  
 *  $FUNCTION$
 *      ROUND  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1095
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not an numeric
 *      value  
 *  $FUNCTION$
 *      LOG  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1096
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not an numeric
 *      value  
 *  $FUNCTION$
 *      EXP  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1097
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not an numeric
 *      value  
 *  $FUNCTION$
 *      SQRT  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1098
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not a string
 *      value  
 *  $FUNCTION$
 *      VAL  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/1099
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The argument (or arguments) passed to a function is not a numeric
 *      value  
 *  $FUNCTION$
 *      STR  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/* ************************************************************************** */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/2010
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect arguments type
 *  $DESCRIPTION$
 *      Passed Run Time Errors was not strings with filenames to copy/  
 *  $FUNCTION$
 *      __COPYFILE  
 *  $COMPLIANCE$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/2012
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      File error
 *  $DESCRIPTION$
 *      An error has occured during the attempt to open, create or write
 *      during copy operation  
 *  $FUNCTION$
 *      __COPYFILE  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/2017
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to a function
 *  $DESCRIPTION$
 *      The first argument is not an array or/and the second argument
 *      is not a code block  
 *  $FUNCTION$
 *      AEVAL  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/2020
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The passed value is negative. Only values > 0 are allowed.  
 *  $FUNCTION$
 *      SET DECIMALS  
 *      SET EPOCH     
 *      SET MARGIN    
 *      SET MESSAGE   
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */

/* ************************************************************************** */


/*  $DOC$
 *  $SUBCODE$
 *      BASE/3001
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect argument type
 *  $DESCRIPTION$
 *      The passed argument is not an object. Only data of type OBJECT
 *      can be cloned by this function  
 *  $FUNCTION$
 *      OCLONE  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3002
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Super class does not return an object
 *  $DESCRIPTION$
 *      Passed argument is not a name of defined class or specified class
 *      doesn't have a super class  
 *  $FUNCTION$
 *      __INSTSUPER  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3003
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Cannot find super class
 *  $DESCRIPTION$
 *      Passed argument is not a name of defined class  
 *  $FUNCTION$
 *      __INSTSUPER  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3004
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Cannot modify a DATA item in a class
 *  $DESCRIPTION$
 *      The attempt to modify a data member of a class was made.
 *      Only INLINE and METHOD can be modified  
 *  $FUNCTION$
 *      CLASSMOD  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3005
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect arguments type
 *  $DESCRIPTION$
 *      Either the first argument was not an object or the second argument
 *      wasn't a string.  
 *  $FUNCTION$
 *      ISMESSAGE, OSEND  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */


/*  $DOC$
 *  $SUBCODE$
 *      BASE/3007
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of argument
 *  $DESCRIPTION$
 *      The passed arguments are causing conflict in hanndling of the request.
 *      There is no point in waiting forever for no input events!  
 *  $FUNCTION$
 *      INKEY  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3008
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid type of argument
 *  $DESCRIPTION$
 *      The passed argument(s) is not a string. It should be a string with
 *      a variable name or an one-dimensional array of strings.  
 *  $FUNCTION$
 *      __MVPRIVATE, __MVPUBLIC  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3009
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect argument passed to __MVGET function
 *  $DESCRIPTION$
 *      __MVGET function expects only one argument: a string with a name
 *      of variable. The value of this variable will be returned.  
 *  $FUNCTION$
 *      __MVGET  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3010
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Incorrect argument passed to __MVPUT function
 *  $DESCRIPTION$
 *      __MVPUT function expects at least one argument: a string with a name
 *      of variable. The value of this variable will be set.  
 *  $FUNCTION$
 *      __MVPUT  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3011
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to a function
 *  $DESCRIPTION$
 *      The attempt to retrieve the function argument that was not passed.
 *      The number of requested argument is greated then the number of
 *      passed arguments.  
 *  $FUNCTION$
 *      PVALUE  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3012
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to a function
 *  $DESCRIPTION$
 *      The first argument is not a string with function/procedure name
 *      that should be called.  
 *  $FUNCTION$
 *      DO  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3101
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to an object/class function
 *  $DESCRIPTION$
 *      One passed argument is not of the required type.  
 *  $FUNCTION$
 *      __OBJ*()  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3102
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      A symbol should be modified or deleted from a class, but the symbol
 *      doesn't exist.
 *  $DESCRIPTION$
 *      A symbol should be modified or deleted from a class, but the symbol
 *      doesn't exist.  
 *  $FUNCTION$
 *      __OBJ*()  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $SUBCODE$
 *      BASE/3103
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      A symbol should be added to a class, but the symbol already exists.
 *  $DESCRIPTION$
 *      A symbol should be added to a class, but the symbol already exists.  
 *  $FUNCTION$
 *      __OBJ*()  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

 /* ************************************************************************** */

/*  $DOC$
 *  $SUBCODE$
 *      TOOLS/4001
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Invalid argument passed to function
 *  $DESCRIPTION$
 *      The second arguments passed to a function is not a string.  
 *  $FUNCTION$
 *      ISLEAPYEAR  
 *  $STATUS$
 *      Harbour specific
 *  $SEEALSO$
 *
 *  $END$
 */

/* ************************************************************************** */

/*  $DOC$
 *  $SUBCODE$
 *      TERM/2013
 *  $CATEGORY$
 *      Run Time Errors
 *  $ONELINER$
 *      Create error
 *  $DESCRIPTION$
 *      The specified file cannot be created due some OS error.  
 *  $FUNCTION$
 *      SET, SET ALTERNATE TO  
 *  $STATUS$
 *      Clipper
 *  $SEEALSO$
 *
 *  $END$
 */
c:\harbour\doc\en\tbrowse.txt
/*
 * $Id: tbrowse.txt 9193 2008-08-19 15:07:28Z vszakats $
 */

/*  $CLASSDOC$
 *  $FUNCNAME$
 *      TBROWSENew()
 *  $CATEGORY$
 *      TBrowse class
 *  $ONELINER$
 *      Create a Browse Object
 *  $CONSTRUCTOR$
 *      TBROWSENew(,,,)   --> 
 *  $ARGUMENTS$
 *          Top Row

 *         Top Left Column

 *       Bottom Row

 *        Bottom Right Column
 *  $RETURNS$
 *        An new Browse Object
 *  $DESCRIPTION$
 *      This function set up a browsing window at top-left coordinates of
 *      , to bottom-right coordinates of ,.
 *      To browse Database files use TBROWSEDB() function insted.
 *  $DATANOLINK$
 *      :aColumns       Array to hold all browse columns

 *      :autoLite       Logical value to control highlighting

 *      :cargo          User-definable variable

 *      :colorSpec      Color table for the TBrowse display

 *      :colPos         Current cursor column position

 *      :colSep         Column separator character

 *      :footSep        Footing separator character

 *      :freeze         Number of columns to freeze

 *      :goBottomBlock  Code block executed by TBrowse:goBottom()

 *      :goTopBlock     Code block executed by TBrowse:goTop()

 *      :headSep        Heading separator character

 *      :hitBottom      Indicates the end of available data

 *      :hitTop         Indicates the beginning of available data

 *      :leftVisible    Indicates position of leftmost unfrozen column
 *      in display

 *      :nBottom        Bottom row number for the TBrowse display

 *      :nLeft          Leftmost column for the TBrowse display

 *      :nRight         Rightmost column for the TBrowse display

 *      :nTop           Top row number for the TBrowse display

 *      :rightVisible   Indicates position of rightmost unfrozen column
 *      in display

 *      :rowCount       Number of visible data rows in the TBrowse
 *      display

 *      :rowPos         Current cursor row position

 *      :skipBlock      Code block used to reposition data source

 *      :stable         Indicates if the TBrowse object is stable
 *
 *      :aRedraw        Array of logical items indicating, is appropriate
 *      row need to be redraw

 *      :RelativePos    Indicates record position relatively position of
 *      first record on the screen

 *      :lHeaders       Internal variable which indicates whether there
 *      are column footers to paint

 *      :lFooters       Internal variable which indicates whether there
 *      are column footers to paint

 *      :aRect          The rectangle specified with ColorRect()

 *      :aRectColor     The color positions to use in the rectangle
 *      specified with ColorRect()

 *      :aKeys        Holds the Default movement keys
 *  $METHODSLINK$
 *      AddColumn() Adds an new TBColumn object to the current Browse
 *
 *      Applykey()  Perform the Browse Key movement
 *
 *      SetKey()    Add an New key to the Keyboard dictionary
 *  $METHODSNOLINK$
 *      New(nTop, nLeft, nBottom, nRight) Create an new Browse class and set the
 *      default values
 *
 *      Down()       Moves the cursor down one row
 *
 *      End()        Moves the cursor to the rightmost visible data column
 *
 *      GoBottom()   Repositions the data source to the bottom of file
 *
 *      GoTop()      Repositions the data source to the top of file
 *
 *      Home()       Moves the cursor to the leftmost visible data column
 *
 *      Left()       Moves the cursor left one column
 *
 *      PageDown()   Repositions the data source downward
 *
 *      PageUp()     Repositions the data source upward
 *
 *      PanEnd()     Moves the cursor to the rightmost data column
 *
 *      PanHome()    Moves the cursor to the leftmost visible data column
 *
 *      PanLeft()    Pans left without changing the cursor position
 *
 *      PanRight()   Pans right without changing the cursor position
 *
 *      Right()      Moves the cursor right one column
 *
 *      Up()         Moves the cursor up one row
 *
 *      ColCount()    Return the Current number of Columns
 *
 *      ColorRect()   Alters the color of a rectangular group of cells
 *
 *      ColWidth( nColumn )  Returns the display width of a particular column
 *
 *      Configure( nMode )   Reconfigures the internal settings of the TBrowse
 *      object nMode is an undocumented parameter in CA-Cl*pper
 *
 *      LeftDetermine()      Determine leftmost unfrozen column in display
 *
 *      DeHilite()           Dehighlights the current cell
 *
 *      DelColumn( nPos )    Delete a column object from a browse
 *
 *      ForceStable()        Performs a full stabilization
 *
 *      GetColumn( nColumn ) Gets a specific TBColumn object
 *
 *      Hilite()             Highlights the current cell
 *
 *      InsColumn( nPos, oCol )   Insert a column object in a browse
 *
 *      Invalidate()        Forces entire redraw during next stabilization
 *
 *      RefreshAll()        Causes all data to be recalculated during the next
 *      stabilize
 *
 *      RefreshCurrent()    Causes the current row to be refilled and repainted
 *      on next stabilize
 *
 *      SetColumn( nColumn, oCol )   Replaces one TBColumn object with another
 *
 *      Stabilize()          Performs incremental stabilization
 *
 *      DispCell( nColumn, cColor )  Displays a single cell
 *  $EXAMPLES$
 *      See tests/testbrw.prg
 *  $TESTS$
 *      See tests/testbrw.prg
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      This functions is Compatible with CA-Cl*pper 5.2. The applykey() and
 *      Setkey() methods are only visible if HB_COMPAT_C53 is defined.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      TBROWSENEW(),TBCOLUMNNEW()
 *  $END$
 */


/*  $CLASSDOC$
 *  $METHOD$
 *      SetKey()
 *  $CATEGORY$
 *      TBrowse Method
 *  $ONELINER$
 *      Get an optionaly Set an new Code block associated to a inkey value
 *  $SYNTAX$
 *      SetKey([,]) --> bOldBlock
 *  $ARGUMENTS$
 *       An valid inkey Code
 *
 *        An optional action to associate to the inkey value.
 *  $RETURNS$
 *        If an Keypress has it code block changes, it will return
 *      the previus one; otherwise, it will return the current one
 *  $DESCRIPTION$
 *      This method Get an optionaly set an code block that is associated to
 *      an inkey value.
 *      The table below show the default keypress/Code Block definitions
 *
 *      
 *      Inkey Value    Code Block
 *
 *      K_DOWN         {|Ob,nKey| Ob:Down(),0}
 *      K_END          {|Ob,nKey| Ob:End(),0}
 *      K_CTRL_PGDN    {|Ob,nKey| Ob:GoBottom(),0}
 *      K_CTRL_PGUP    {|Ob,nKey| Ob:GoTop(),0}
 *      K_HOME         {|Ob,nKey| Ob:Home(),0}
 *      K_LEFT         {|Ob,nKey| Ob:Left(),0}
 *      K_PGDN         {|Ob,nKey| Ob:PageDown(),0}
 *      K_PGUP         {|Ob,nKey| Ob:PageUp(),0}
 *      K_CTRL_END     {|Ob,nKey| Ob:PanEnd(),0}
 *      K_CTRL_HOME    {|Ob,nKey| Ob:PanHome(),0}
 *      K_CTRL_LEFT    {|Ob,nKey| Ob:PanLeft(),0}
 *      K_CTRL_RIGHT   {|Ob,nKey| Ob:PanRight(),0}
 *      K_RIGHT        {|Ob,nKey| Ob:Right(),0}
 *      K_UP           {|Ob,nKey| Ob:Up(),0}
 *      K_ESC          {|Ob,nKey| -1 }
 *      
* * The keys handlers can be queried,added and replace an removed from * the internal keyboard dictionary. See the example. * * oTb:SETKEY( K_TAB,{|oTb,nKey| -1}) * * An default key handler can be declared by specifyin a value of 0 * for . It associate code block will be evaluated each time * TBrowse:Applykey() is called with an key value that is not contained * in the dictionary. For example * * oTb:SetKey(0,{|oTb,nKey| DefKeyHandler(otb,nkey}) * This call the a function named DefKeyHandler() when nKey is not * contained in the dictionary. * * To remove an keypress/code block definition, specify NIL for * oTb:SetKey(K_ESC,nil) * $EXAMPLES$ * oTb:SeyKey(K_F10,{|otb,nkey| ShowListByname(otb)} * $END$ */ /* $CLASSDOC$ * $METHOD$ * Applykey() * $CATEGORY$ * TBrowse Method * $ONELINER$ * Evaluates an code block associated with an specific key * $SYNTAX$ * ApplyKey() --> nResult * $ARGUMENTS$ * An valid Inkey code * $RETURNS$ * Value returned from the evaluated Code Block * See Table Below * * * Value Meaning * -1 User request for the browse lost input focus * 0 Code block associated with was evaluated * 1 Unable to locate in the dictionary,Key was not processed *
* $DESCRIPTION$ * This method evaluate an code block associated with that is * contained in the TBrowse:setkey() dictionary. * $EXAMPLES$ * while .t. * oTb:forceStable() * if (oTb:applykey(inkey(0))==-1) * exit * endif * enddo * $END$ */ /* $CLASSDOC$ * $METHOD$ * AddColumn() * $CATEGORY$ * TBrowse Method * $ONELINER$ * Add an New Column to an TBrowse Object * $SYNTAX$ * AddColumn(oCol) --> Self * $ARGUMENTS$ * Is an TbColumn object * $RETURNS$ * The Current object * $DESCRIPTION$ * This method add an new column object specified as to the * assigned browsing object. * $END$ */
c:\harbour\doc\en\tclass.txt
/*
 * $Id: tclass.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Brian Hays 
 *    Documentation
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HBClass()
 *  $CATEGORY$
 *      Classes
 *  $ONELINER$
 *      HBClass() is used in the creation of all classes
 *  $SYNTAX$
 *      oClass := HBClass():New("TMyClass")
 *        -or-
 *      HBClass() is usually accessed by defining a class with the commands
 *      defined in hbclass.h:
 *        CLASS HBGetList    // Calls HBClass() to create the HBGetList class
 *           ...
 *        ENDCLASS
 *  $ARGUMENTS$
 *
 *  $RETURNS$
 *      An instance of the HBClass Class. This special object's :New()
 *      method can then create the classes you define.
 *  $DESCRIPTION$
 *      HBClass is a class that ...
 *      The class methods are as follows:
 *
 *        New()                 Create a new instance of the class
 *  $EXAMPLES$
 *      FUNCTION TestObject()
 *      local oObject
 *
 *      oObject := HBClass():New("TMyClass")
 *      oObject:End()
 *
 *     RETURN Nil
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Object Oriented syntax in Harbour is compatible with CA-Cl*pper.
 *      But Clipper only allowed creation of objects from a few standard
 *      classes, and did not let the programmer create new classes.
 *      In Harbour, you can create your own classes--complete with
 *      Methods, Instance Variables, Class Variables and Inheritance.
 *      Entire applications can be designed and coded in Object Oriented
 *      style.
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      __objHasData(),Object Oriented Programming,CLASS
 *  $END$
 */
c:\harbour\doc\en\terminal.txt
/*
 * $Id: terminal.txt 9193 2008-08-19 15:07:28Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999-2001 Viktor Szakats 
 *    Documentation for: HB_COLORINDEX()
 *
 * Copyright 1999 Jose Lalin 
 *    Documentation for: __WAIT(), __INPUT()
 *
 * Copyright 1999-2000 Chen Kedem 
 *    Documentation for: ALERT(), __NONOALERT(), OUTSTD(), OUTERR(),
 *                       __XSaveScreen(), SAVE SCREEN, __XRestScreen(),
 *                       RESTORE SCREEN, __TextSave(), __TextRestore()
 *
 * Copyright 1999 David G. Holm 
 *    Documentation for: DEVOUTPICT()
 *
 * Copyright 2000 Luiz Rafael Culik 
 *    Documentation for: EJECT,MAXROW(),MAXCOL(),ROW(),COL(),PROW(),PCOL()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __XSaveScreen()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Save whole screen image and coordinate to an internal buffer
 *  $SYNTAX$
 *      __XSaveScreen() --> NIL
 *  $ARGUMENTS$
 *      none.
 *  $RETURNS$
 *      __XSaveScreen() always return NIL.
 *  $DESCRIPTION$
 *      __XSaveScreen() save the image of the whole screen into an internal
 *      buffer, it also save current cursor position. The information could
 *      later be restored by __XRestScreen(). Each call to __XSaveScreen()
 *      overwrite the internal buffer.
 *
 *      SAVE SCREEN command is preprocessed into __XSaveScreen() function
 *      during compile time. Note that SAVE SCREEN TO is preprocessed into
 *      SAVESCREEN() function.
 *
 *      __XSaveScreen() is a compatibility function, it is superseded by
 *      SAVESCREEN() which allow you to save part or all the screen into a
 *      variable.
 *  $EXAMPLES$
 *      // save the screen, display list of files than restore the screen
 *      SAVE SCREEN
 *      DIR *.*
 *      WAIT
 *      RESTORE SCREEN
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __XSaveScreen() works exactly like CA-Cl*pper's __XSaveScreen()
 *  $PLATFORMS$
 *      __XSaveScreen() is part of the GT API, and supported only by some
 *      platforms.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *       RESTORE SCREEN,RESTSCREEN(),SAVESCREEN()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *     SAVE SCREEN
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Save whole screen image and coordinate to an internal buffer
 *  $SYNTAX$
 *      SAVE SCREEN
 *  $ARGUMENTS$
 *      none.
 *  $RETURNS$
 *      SAVE SCREEN always return NIL.
 *  $DESCRIPTION$
 *      SAVE SCREEN save the image of the whole screen into an internal
 *      buffer, it also save current cursor position. The information could
 *      later be restored by REST SCREEN. Each call to SAVE SCREEN
 *      overwrite the internal buffer.
 *
 *      SAVE SCREEN command is preprocessed into __XSaveScreen() function
 *      during compile time. Note that SAVE SCREEN TO is preprocessed into
 *      SAVESCREEN() function.
 *  $EXAMPLES$
 *      // save the screen, display list of files than restore the screen
 *      SAVE SCREEN
 *      DIR *.*
 *      WAIT
 *      RESTORE SCREEN
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __XSaveScreen() works exactly like CA-Cl*pper's __XSaveScreen()
 *  $PLATFORMS$
 *      __XSaveScreen() is part of the GT API, and supported only by some
 *      platforms.
 *  $SEEALSO$
 *      RESTORE SCREEN,__XRESTSCREEN(),__XSAVESCREEN()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __XRestScreen()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Restore screen image and coordinate from an internal buffer
 *  $SYNTAX$
 *      __XRestScreen() --> NIL
 *  $ARGUMENTS$
 *      none.
 *  $RETURNS$
 *      __XRestScreen() always return NIL.
 *  $DESCRIPTION$
 *      __XRestScreen() restore saved image of the whole screen from an
 *      internal buffer that was saved by __XSaveScreen(), it also restore
 *      cursor position. After a call to __XRestScreen() the internal buffer
 *      is cleared.
 *
 *      RESTORE SCREEN command is preprocessed into __XRestScreen() function
 *      during compile time. Note that RESTORE SCREEN FROM is preprocessed
 *      into RESTSCREEN() function.
 *
 *      __XRestScreen() is a compatibility function, it is superseded by
 *      RESTSCREEN() which allow you to restore the screen from a variable.
 *  $EXAMPLES$
 *      // save the screen, display list of files than restore the screen
 *      SAVE SCREEN
 *      DIR *.*
 *      WAIT
 *      RESTORE SCREEN
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __XRestScreen() works exactly like CA-Cl*pper's __XRestScreen()
 *  $PLATFORMS$
 *      __XRestScreen() is part of the GT API, and supported only by some
 *      platforms.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      __XRESTSCREEN(),SAVE SCREEN,__XSAVESCREEN()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      RESTORE SCREEN
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Restore screen image and coordinate from an internal buffer
 *  $SYNTAX$
 *      RESTORE SCREEN
 *  $ARGUMENTS$
 *      none.
 *  $RETURNS$
 *      REST SCREEN always return NIL.
 *  $DESCRIPTION$
 *      Rest Screen restore saved image of the whole screen from an
 *      internal buffer that was saved by Save Screen, it also restore
 *      cursor position. After a call to Rest Screen the internal buffer
 *      is cleared.
 *
 *      RESTORE SCREEN command is preprocessed into __XRestScreen() function
 *      during compile time. Note that RESTORE SCREEN FROM is preprocessed
 *      into RESTSCREEN() function.
 *  $EXAMPLES$
 *      // save the screen, display list of files than restore the screen
 *      SAVE SCREEN
 *      DIR *.*
 *      WAIT
 *      RESTORE SCREEN
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Rest Screen() works exactly like CA-Cl*pper's Rest Screen
 *  $PLATFORMS$
 *      Rest Screen is part of the GT API, and supported only by some
 *      platforms.
 *  $SEEALSO$
 *      __XRESTSCREEN(),SAVE SCREEN,__XSAVESCREEN()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ALERT()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Display a dialog box with a message
 *  $SYNTAX$
 *      ALERT( , [], [], [] ) --> nChoice or NIL
 *  $ARGUMENTS$
 *       Message to display in the dialog box.  can be
 *      of any Harbour type.
 *      If  is an array of Character strings, each element would
 *      be displayed in a new line. If  is a Character
 *      string, you could split the message to several lines by placing
 *      a semicolon (;) in the desired places.
 *
 *       Array with available response. Each element should be
 *      Character string. If omitted, default is { "Ok" }.
 *
 *       Color string to paint the dialog box with.
 *      If omitted, default color is "W+/R".
 *
 *       Number of seconds to wait to user response before abort.
 *      Default value is 0, that wait forever.
 *  $RETURNS$
 *      ALERT() return Numeric value representing option number chosen.
 *      If ESC was pressed, return value is zero. The return value is NIL
 *      if ALERT() is called with no parameters, or if  type is
 *      not Character and HB_C52_STRICT option was used. If  seconds
 *      had passed without user response, the return value is 1.
 *  $DESCRIPTION$
 *      ALERT() display simple dialog box on screen and let the user select
 *      one option. The user can move the highlight bar using arrow keys or
 *      TAB key. To select an option the user can press ENTER, SPACE or the
 *      first letter of the option.
 *
 *      If the program is executed with the //NOALERT command line switch,
 *      nothing is displayed and it simply returns NIL. This switch could
 *      be overridden with __NONOALERT().
 *
 *      If the GT system is linked in, ALERT() display the message using
 *      the full screen I/O system, if not, the information is printed to
 *      the standard output using OUTSTD().
 *  $EXAMPLES$
 *      LOCAL cMessage, aOptions, nChoice
 *
 *      // harmless message
 *      cMessage := "Major Database Corruption Detected!;" +  ;
 *                  "(deadline in few hours);;"             +  ;
 *                  "where DO you want to go today?"
 *
 *      // define response option
 *      aOptions := { "Ok", "www.jobs.com", "Oops" }
 *
 *      // show message and let end user select panic level
 *      nChoice := ALERT( cMessage, aOptions )
 *      DO CASE
 *         CASE nChoice == 0
 *              // do nothing, blame it on some one else
 *         CASE nChoice == 1
 *              ? "Please call home and tell them you're gonn'a be late"
 *         CASE nChoice == 2
 *              // make sure your resume is up to date
 *         CASE nChoice == 3
 *              ? "Oops mode is not working in this version"
 *      ENDCASE
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is sensitive to HB_C52_STRICT settings during the
 *      compilation of source/rtl/alert.prg
 *
 *      defined:  accept Character values only and return
 *      NIL if other types are passed.
 *
 *      undefined:  could be any type, and internally
 *      converted to Character string. If type is Array, multi-line message
 *      is displayed.
 *
 *      defined: Only the first four valid  are taken.
 *
 *      undefined:  could contain as many as needed options.
 *
 *      If HB_COMPAT_C53 was define during compilation of
 *      source/rtl/alert.prg the Left-Mouse button could be used to select
 *      an option.
 *
 *      The interpretation of the //NOALERT command line switch is done only
 *      if HB_C52_UNDOC was define during compilation of source/rtl/alert.prg
 *
 *       is a Harbour extension, or at least un-documented
 *      in Clipper 5.2 NG.
 *
 *       is a Harbour extension.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *       @...PROMPT,MENU TO,OUTSTD(),__NONOALERT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __NONOALERT()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Override //NOALERT command line switch
 *  $SYNTAX$
 *      __NONOALERT() --> NIL
 *  $ARGUMENTS$
 *      This function takes no arguments.
 *  $RETURNS$
 *      __NONOALERT() always return NIL.
 *  $DESCRIPTION$
 *      The //NOALERT command line switch cause Clipper to ignore calls to
 *      the ALERT() function, this function override this behavior
 *      and always display ALERT() dialog box.
 *  $EXAMPLES$
 *      // make sure alert are been displayed
 *      __NONOALERT()
 *  $STATUS$
 *      R
 *  $FILES$
 *      Library is rtl
 *  $COMPLIANCE$
 *      __NONOALERT() is an undocumented CA-Cl*pper function and exist only
 *      if HB_C52_UNDOC was defined during the compilation of
 *      source/rtl/alert.prg
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_OSNEWLINE()
 *  $CATEGORY$
 *      Operating System Specific
 *  $ONELINER$
 *      Returns the newline character(s) to use with the current OS
 *  $SYNTAX$
 *      HB_OSNewLine() --> cString
 *  $RETURNS$
 *       A character string containing the character or characters
 *      required to move the screen cursor or print head to the start of a
 *      new line. The string will hold either CHR(10) or CHR(13) + CHR(10).
 *  $DESCRIPTION$
 *      Returns a character string containing the character or characters
 *      required to move the screen cursor or print head to the start of a
 *      new line for the operating system that the program is running on
 *      (or thinks it is running on, if an OS emulator is being used).
 *  $EXAMPLES$
 *      // Get the newline character(s) for the current OS using defaults.
 *      STATIC s_cNewLine
 *      ...
 *      s_cNewLine := HB_OSNewLine()
 *      ...
 *      OutStd( "Hello World!" + s_cNewLine )
 *      ...
 *  $TESTS$
 *      
 *      valtype( HB_OSNewLine() ) == "C"
 *      LEN( HB_OSNewLine() ) == 1
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This is an add-on Operating System Tool function.
 *  $PLATFORMS$
 *      Under HB_OS_UNIX_COMPATIBLE operating system the return value is the
 *      Line-Feed (0x0a) character CHR(10), with other operating systems
 *      (like DOS) the return value is the Carriage-Return plus Line-Feed
 *      (0x0d 0x0a) characters CHR(13)+CHR(10).
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      OS(),OUTSTD(),OUTERR()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      hb_ColorIndex()
 *  $CATEGORY$
 *      GT
 *  $ONELINER$
 *      Extract one color from a full Clipper colorspec string.
 *  $SYNTAX$
 *      hb_ColorIndex( ,  )
 *  $ARGUMENTS$
 *       is a Clipper color list
 *
 *       is the position of the color item to be extracted, the
 *      first position is the zero.
 *  $RETURNS$
 *      The selected color string, or if anything goes wrong, an empty
 *      string.
 *  $DESCRIPTION$
 *      Clipper has a color spec string, which has more than one
 *      color in it, separated with commas. This function is able to extract
 *      a given item from this list. You may use the manifest constants
 *      defined in color.ch to extract common Clipper colors.
 *  $EXAMPLES$
 *      ? hb_ColorIndex( "W/N, N/W", CLR_ENHANCED ) // "N/W"
 *  $TESTS$
 *      see the regression test suit for comprehensive tests.
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Was not part of CA-Cl*pper.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ColorSelect()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DEVOUTPICT()
 *  $CATEGORY$
 *      Terminal
 *  $ONELINER$
 *      Displays a value to a device using a picture template
 *  $SYNTAX$
 *      DEVOUTPICT( , , [] ) --> NIL
 *  $ARGUMENTS$
 *       is any valid expression.
 *
 *       is any picture transformation that TRANSFORM() can use.
 *
 *       is an optional string that specifies a screen color to
 *      use in place of the default color when the output goes to the screen.
 *  $RETURNS$
 *      NIL
 *  $DESCRIPTION$
 *      Outputs any expression using a picture transformation instead of
 *      using the default transformation for the type of expression.
 *  $EXAMPLES$
 *      // Output a negative dollar amount using debit notation.
 *      DEVOUTPICT( -1.25, "@D$ 99,999.99 )
 *  $TESTS$
 *      
 *      @ 3,1 SAY -1.25 PICTURE "@D$ 99,999.99"
 *      will display "$(     1.25)" starting on row four, column two of the
 *      current device (without the double quotation marks, of course).
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      DEVOUTPICT() is mostly CA-Cl*pper compliant. Any differences are due
 *      to enhancements in the Harbour TRANSFORM() over CA-Cl*pper.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      DEVOUT(),TRANSFORM()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __INPUT()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Stops application
 *  $SYNTAX$
 *      __INPUT(  ) --> 
 *  $ARGUMENTS$
 *       is any valid expression.
 *  $RETURNS$
 *      Macroed 
 *  $DESCRIPTION$
 *      This function waits for a console input and returns macroed
 *      expression entered.
 *  $STATUS$
 *      S
 *  $COMPLIANCE$
 *      __INPUT() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      __WAIT(),__ACCEPT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *     __TextSave()
 *  $CATEGORY$
 *     Internal
 *  $ONELINER$
 *     Redirect console output to printer or file and save old settings
 *  $SYNTAX$
 *      __TextSave(  ) --> NIL
 *  $ARGUMENTS$
 *       is either "PRINTER" (note the uppercase) in which console
 *      output is SET to PRINTER, or a name of a text file with a default
 *      ".txt" extension, that is used to redirect console output.
 *  $RETURNS$
 *      __TextSave() always return NIL.
 *  $DESCRIPTION$
 *      __TextSave() is used in the preprocessing of the TEXT TO command to
 *      redirect the console output while saving old settings that can be
 *      restored later by __TextRestore().
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __TextSave() is an Undocumented CA-Cl*pper function
 *  $PLATFORMS$
 *      ALL
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      SET(),SET ALTERNATE,SET PRINTER,TEXT,__TextRestore()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __TextRestore()
 *  $CATEGORY$
 *      Internal
 *  $ONELINER$
 *      Restore console output settings as saved by __TextSave()
 *  $SYNTAX$
 *      __TextRestore() --> NIL
 *  $ARGUMENTS$
 *      none.
 *  $RETURNS$
 *      __TextRestore() always return NIL.
 *  $DESCRIPTION$
 *      __TextRestore() is used in the preprocessing of the TEXT TO command
 *      to restore console output settings that were previously saved by
 *      __TextSave().
 *  $STATUS$
 *       R
 *  $COMPLIANCE$
 *      __TextRestore() is an Undocumented CA-Cl*pper function
 *  $PLATFORMS$
 *       All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      SET(),SET ALTERNATE,SET PRINTER,TEXT,__TextSave()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __WAIT()
 *  $CATEGORY$
 *      Events
 *  $ONELINER$
 *      Stops the application until a key is pressed.
 *  $SYNTAX$
 *      __WAIT(  ) --> 
 *  $ARGUMENTS$
 *       is a string.
 *  $RETURNS$
 *      Pressed key.
 *  $DESCRIPTION$
 *      This function stops the application until a key is pressed. The key
 *      must be in the range 32..255. Control keys are not processed.
 *  $EXAMPLES$
 *      // Wait for a key stroke
 *      __Wait( "Press a key to continue" )
 *  $TESTS$
 *      
 *      do while cKey != "Q"
 *        cKey := __Wait( "Press 'Q' to continue" )
 *      end do
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __WAIT() is fully CA-Cl*pper compliant.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      __ACCEPT(),__INPUT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      OUTSTD()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Write a list of values to the standard output device
 *  $SYNTAX$
 *      OUTSTD(  ) --> NIL
 *  $ARGUMENTS$
 *       is a list of expressions to display. Expressions are any
 *      mixture of Harbour data types.
 *  $RETURNS$
 *      OUTSTD() always returns NIL.
 *  $DESCRIPTION$
 *      OUTSTD() write one or more values into the standard output device.
 *      Character and Memo values are printed as is, Dates are printed
 *      according to the SET DATE FORMAT, Numeric values are converted to
 *      strings, Logical values are printed as .T. or .F., NIL are printed
 *      as NIL, values of any other kind are printed as empty string. There
 *      is one space separating each two values. Note that Numeric value can
 *      take varying length when converted into string depending on its
 *      source (see STR() for detail).
 *
 *      OUTSTD() is similar to QQOUT() with the different that QQOUT() send
 *      its output to the Harbour console stream, which can or can not be
 *      redirected according with the screen driver, and OUTSTD() send its
 *      output to the standard output device (STDOUT) and can be redirected.
 *  $EXAMPLES$
 *      OUTSTD( "Hello" )            // Result: Hello
 *
 *      OUTSTD( 1, .T., NIL, "A" )
 *      OUTSTD( "B" )                // Result:          1 .T. NIL AB
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      OUTSTD() works exactly as in CA-Cl*pper
 *  $PLATFORMS$
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ?,??,DEVOUT(),DEVOUTPICT(),DISPOUT(),DISPOUTAT(),OUTERR(),QOUT(),QQOUT(),STR()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      OUTERR()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Write a list of values to the standard error device
 *  $SYNTAX$
 *      OUTERR(  ) --> NIL
 *  $ARGUMENTS$
 *       is a list of expressions to display. Expressions are any
 *      mixture of Harbour data types.
 *  $RETURNS$
 *      OUTERR() always returns NIL.
 *  $DESCRIPTION$
 *      OUTERR() write one or more values into the standard error device.
 *      Character and Memo values are printed as is, Dates are printed
 *      according to the SET DATE FORMAT, Numeric values are converted to
 *      strings, Logical values are printed as .T. or .F., NIL are printed
 *      as NIL, values of any other kind are printed as empty string. There
 *      is one space separating each two values. Note that Numeric value can
 *      take varying length when converted into string depending on its
 *      source (see STR() for detail).
 *
 *      There is an undocumented CA-Cl*pper command line switch //STDERR
 *      which can set the file handle to write output from OUTERR(). If not
 *      specified the default STDERR is used, //STDERR or //STDERR:0 set
 *      OUTERR() to output to the same file handle as OUTSTD(), //STDERR:n
 *      set output to file handle n. Like other undocumented features this
 *      switch is available only if source/rtl/console.c was compiled with
 *      the HB_C52_UNDOC flag.
 *  $EXAMPLES$
 *      // write error log information
 *      OUTERR( DATE(), TIME(), "Core meltdown detected" )
 *  $TESTS$
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      OUTERR() works exactly as in CA-Cl*pper
 *  $PLATFORMS$
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ?,??,DEVOUT(),DEVOUTPICT(),DISPOUT(),DISPOUTAT(),OUTSTD(),QOUT(),QQOUT(),STR()
 *  $END$
 */

/*  $DOC$
 *  $COMMANDNAME$
 *      EJECT
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Issue an command to advance the printer to the top of the form
 *  $SYNTAX$
 *      EJECT
 *  $ARGUMENTS$
 *      None
 *  $DESCRIPTION$
 *      This command issue an form-feed command to the printer. If the printer
 *      is not properly hooked up to the computer,an error will not be
 *      generated and the command will be ignored.
 *
 *      Once completed,the values of PROW() and PCOL(),the row and column
 *      indicators to the printer,will be set to 0. Their values,however,may
 *      be manipulated before or after ussuing an EJECT by using the DEVPOS()
 *      function.
 *
 *      On compile time this command is translated into __EJECT() function.
 *  $EXAMPLES$
 *      Use Clientes New
 *      Set Device to Printer
 *      CurPos:=0
 *      While !Eof()
 *      ? Clientes->nome,Clientes->endereco
 *      Curpos++
 *      if Curpos >59
 *          Curpos:=0
 *          Eject
 *      Endif
 *      Enddo
 *      Set Device to Screen
 *      Use
 *  $TESTS$
 *      See examples
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This command is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $SEEALSO$
 *      DEVPOS(),SET PRINTER,PROW(),PCOL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      COL()
 *  $CATEGORY$
 *      GT
 *  $ONELINER$
 *      Returns the current screen column position
 *  $SYNTAX$
 *      COL()  --> nPosition
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *        Current column position
 *  $DESCRIPTION$
 *      This function returns the current cursor column position. The value
 *      for this function can range between 0 and MAXCOL().
 *  $EXAMPLES$
 *      ? Col()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This Functions is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ROW(),MAXROW(),MAXCOL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      ROW()
 *  $CATEGORY$
 *      GT
 *  $ONELINER$
 *      Returns the current screen row position
 *  $SYNTAX$
 *      ROW()  --> nPosition
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *        Current screen row position
 *  $DESCRIPTION$
 *      This function returns the current cursor row location. The value
 *      for this function can range between 0 and MAXCOL().
 *  $EXAMPLES$
 *      ? Row()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This Functions is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      COL(),MAXROW(),MAXCOL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MAXCOL()
 *  $CATEGORY$
 *      GT
 *  $ONELINER$
 *      Returns the maximun number of columns in the current video mode
 *  $SYNTAX$
 *      MAXCOL()  --> nPosition
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *        The maximun number of columns possible in current video
 *      mode
 *  $DESCRIPTION$
 *      This function returns the current cursor column position. The value
 *      for this function can range between 0 and MAXCOL().
 *  $EXAMPLES$
 *      ? MAXCol()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This Functions is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      It works in all platform with some remarks:Under Linux and OS/2 the
 *      number of columns avaliable depends of the current Terminal screen
 *      size. Under Win32, the return value of MAXCOL() function is only
 *      affected if called after an SETMODE() function
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      ROW(),MAXROW(),COL()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MAXROW()
 *  $CATEGORY$
 *      GT
 *  $ONELINER$
 *      Returns the current screen row position
 *  $SYNTAX$
 *      MAXROW()  --> nPosition
 *  $ARGUMENTS$
 *      None.
 *  $RETURNS$
 *        The maximun number of rows possible in current video
 *      mode
 *  $DESCRIPTION$
 *      This function returns the current cursor row location. The value
 *      for this function can range between 0 and MAXCOL().
 *  $EXAMPLES$
 *      ? MAXROW()
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This Functions is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      It works in all platform with some remarks:Under Linux and OS/2 the
 *      number of columns avaliable depends of the current Terminal screen
 *      size. Under Win32, the return value of MAXROW() function is only
 *      affected if called after an SETMODE() function
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      COL(),ROW(),MAXCOL()
 *  $END$
 */
c:\harbour\doc\en\tgetlist.txt
/*
 * $Id: tgetlist.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: READVAR()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      READVAR()
 *  $CATEGORY$
 *      Data input and output
 *  $ONELINER$
 *      Return variable name of current GET or MENU
 *  $SYNTAX$
 *      READVAR( [] ) --> cOldVarName
 *  $ARGUMENTS$
 *       is a new variable name to set.   
 *  $RETURNS$
 *      READVAR() return the old variable name. If no variable previously
 *      was set, READVAR() return "".   
 *  $DESCRIPTION$
 *      READVAR() is set inside a READ or MENU TO command to hold the
 *      uppercase name of the GET / MENU TO variable, and re-set back to old
 *      value when those commands finished. You should not normally set a
 *      variable name but rather use it to retrieve the name of a GET
 *      variable when executing a VALID or WHEN clause, or during SET KEY
 *      execution and you are inside a READ or MENU TO.   
 *  $EXAMPLES$
 *      // display a menu, press F1 to view the MENU TO variable name
 *      CLS
 *      @ 1, 10 PROMPT "blood sucking insect that infect beds   "
 *      @ 2, 10 PROMPT "germ; virus infection                   "
 *      @ 3, 10 PROMPT "defect; snag; (source of) malfunctioning"
 *      @ 4, 10 PROMPT "small hidden microphone                 "
 *      @ 6, 10 SAY "(Press F1 for a hint)"
 *      SET KEY 28 TO ShowVar
 *      MENU TO What_Is_Bug
 *
 *      PROCEDURE ShowVar
 *      ALERT( READVAR() )        // WHAT_IS_BUG in red ALERT() box
 *      
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      READVAR() works exactly like CA-Cl*pper's READKEY(), note however,
 *      that the  parameter is not documented and used internally
 *      by CA-Cl*pper.   
 *  $PLATFORMS$
 *      All   
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      @...GET,@...PROMPT,MENU TO,READ,SET KEY,__AtPrompt(),__MenuTo()
 *  $END$
 */
c:\harbour\doc\en\tlabel.txt
/*
 * $Id: tlabel.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Luiz Rafael Culik 
 *    Documentation
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      LABEL FORM
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Displays labels to the screen or an alternate device
 *  $SYNTAX$
 *      LABEL FORM  [TO PRINTER] [TO FILE ] []
 *                 [WHILE  ] [FOR  ] [SAMPLE] [NOCONSOLE]
 *  $ARGUMENTS$
 *           Name of label file   
 *
 *                Name of an alternate file   
 *
 *               Expression of a scoping condition   
 *
 *               WHILE condition   
 *
 *                 FOR condition   
 *  $DESCRIPTION$
 *      This command allows labels to be printed based on the format
 *      outlined in LBL file specified as . By default, output
 *      will go to the screen however this output may be rerouted with
 *      either the TO PRINTER or the TO FILE clause.   
 *
 *      If the TO FILE clause is specified, the name of the ASCII text file
 *      containing the generated labels will be .   
 *
 *      If no file extension is specified a .txt extension is added.
 *       is the scope condition for this command. Valid scopes
 *      include NEXT  (number of records to be displayed, where 
 *      is the number of records), RECORD  (a specific record to be
 *      printed), REST (all records starting from the current record
 *      position,and ALL (all records). The default is ALL.   
 *
 *      Both logical expression may work ill conjunction with one another
 *      where  is the logical expression for the FOR condition (for
 *      records to be displayed whitin a given value range) and  for
 *      the WHILE condition (for records to be displayed until they fail to
 *      meet the condition).   
 *
 *      If the SAMPLE clause is specified, test labels will be generated. 
 *
 *      If the NOCONSOLE clause is specified,the console will be turned off
 *      while this command is being executed.   
 *
 *      This command follows the search criteria outlined in the SET PATH TO
 *      command. The path may be specified, along, with (the drive letter,
 *      in    
 *  $EXAMPLES$
 *      FUNCTION MAIN()
 *      USE Test New
 *      LABEL FORM EE
 *      USE
 *      RETURN NIL
 *
 *
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This command is CA-Cl*pper compliant.   
 *  $PLATFORMS$
 *      ALL   
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      REPORT FORM
 *  $END$
 */
c:\harbour\doc\en\treport.txt
/*
 * $Id: treport.txt 9193 2008-08-19 15:07:28Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Luiz Rafael Culik 
 *    Documentation
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      REPORT FORM
 *  $CATEGORY$
 *      Command
 *  $ONELINER$
 *      Display a report
 *  $SYNTAX$
 *      REPORT FORM  [TO PRINTER] [TO FILE ] []
 *                  [WHILE  ] [FOR  ]
 *                  [PLAIN |HEADING ] [NOEJECT] [SUMMARY]
 *                  [NOCONSOLE]
 *  $ARGUMENTS$
 *       Name of report file
 *
 *             Name of alternate file
 *
 *            Scope.
 *
 *            Logical expression of WHILE condition .
 *
 *              Logical expression of FOR condition.
 *
 *          Report heading
 *  $RETURNS$
 *      NIL
 *  $DESCRIPTION$
 *      This command prints out the report named , which is a
 *      standard FRM file. The file extension is not required because .frm
 *      will be assumed. The SET PATH TO and SET DEFAULT TO commands affect
 *      the search for the file ; unless a drive and path are
 *      specified in , REPORT will search the path specified in
 *      the SET PATH command if it cannot find the report form in the
 *      current directory.
 *
 *      The output of the report will be offset based on the setting of the
 *      SET MARGIN TO value.
 *
 *      By default, output will go to the console; however, it may be
 *      controlled via either the TO PRINTER or TO FILE clause. If the
 *      output is to go to the file, the name of the alternate file is
 *      specified in . Unless specified in , the default file
 *      extension will be TXT.
 *
 *       is the scope for this command. Valid scopes include
 *      NEXT  (where  is the number of records), RECORD 
 *      (a specific record to be displayed), REST (all records from the
 *      current record position), and ALL (all records). The default is ALL.
 *
 *      Both logical expressions may work in conjuntion with one another,
 *      where  is the logical expression for the FOR condition (for
 *      records to be displayed within a given range) and  for the
 *      WHILE condition (for records to be displayed until the condition
 *      fails).
 *
 *      If the PLAIN clause is specified, date and page numbers are
 *      suppressed. In addition, there is no  automatic page breaking, and
 *      the report title and column headings appear only once at the top of
 *      the form.
 *
 *      If the HEADING clause is used,  is displayed on the first
 *      title of each report page. The value of  is evaluated only
 *      once before executing the report; varying the values of 
 *      is not allowed. The PLAIN clause will take precedence over the
 *      HEADING clause if both are included.
 *
 *      If the NOEJECT clause is used, the initial page eject on the report
 *      will not be issued when the output clause TO PRINTER is specified.
 *      Otherwise, this clause has no effect.
 *
 *      If the SUMMARY Clause is specified, the report will contain only
 *      groups, subgroups, and grand total information. The detailed title
 *      item information will be ignored.
 *
 *      If the NOCONSOLE clause is specified,output to the console will be
 *      turned off while this command is being executed.
 *  $EXAMPLES$
 *      FUNCTION() MAIN
 *      USE Test New
 *      Report FORM EE
 *      USE
 *      RETURN NIL
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This Command is CA-Cl*pper compliant.
 *  $PLATFORMS$
 *      ALL
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      LABEL FORM
 *  $END$
 */
c:\harbour\doc\en\var.txt
/*
 * $Id: var.txt 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 1999 Ryszard Glab 
 *    Documentation for: __MVPUBLIC(), __MVPRIVATE(), __MVXRELEASE(),
 *                       __MVRELEASE(), __MVSCOPE(), __MVCLEAR(),
 *                       __MVDBGINFO(), __MVGET(), __MVPUT(), MEMVARBLOCK(),
 *                       TYPE()
 *
 * Copyright 1999 Chen Kedem 
 *    Documentation for: FIELDBLOCK(), FIELDWBLOCK()
 *
 * Copyright 2001 Chen Kedem 
 *    Documentation for: __MVEXIST()
 *
 * Copyright 2002 Walter Negro 
 *    Documentation for: HB_ISBYREF()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVPUBLIC()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      This function creates a PUBLIC variable
 *  $SYNTAX$
 *      __MVPUBLIC(  )
 *  $ARGUMENTS$
 *       = either a string that contains the variable's name or
 *      an one-dimensional array of strings with variable names
 *      No skeleton are allowed here.
 *  $RETURNS$
 *      Nothing
 *  $DESCRIPTION$
 *      This function can be called either by the harbour compiler or by user.
 *      The compiler always passes the item of IT_SYMBOL type that stores the
 *      name of variable.
 *      If a variable with the same name exists already then the new
 *      variable is not created - the previous value remains unchanged.
 *      If it is first variable with this name then the  variable is
 *      initialized with .T. value.
 *  $EXAMPLES$
 *      None Avaliable
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVPRIVATE()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      This function creates a PRIVATE variable
 *  $SYNTAX$
 *      __MVPRIVATE(  )
 *  $ARGUMENTS$
 *       = either a string that contains the variable's name or
 *      an one-dimensional array of strings with variable names
 *      No skeleton are allowed here.
 *  $RETURNS$
 *      Nothing
 *  $DESCRIPTION$
 *      This function can be called either by the harbour compiler or by user.
 *      The compiler always passes the item of IT_SYMBOL type that stores the
 *      name of variable.
 *      If a variable with the same name exists already then the value of old
 *      variable is hidden until the new variable is  released. The new variable
 *      is always initialized to NIL value.
 *  $EXAMPLES$
 *      None Avaliable
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $FILES$
 *      Library is vm
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVXRELEASE()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      This function releases value stored in PRIVATE or PUBLIC variable
 *  $SYNTAX$
 *      __MVXRELEASE(  )
 *  $ARGUMENTS$
 *       = either a string that contains the variable's name or
 *      an one-dimensional array of strings with variable names
 *      No skeleton are allowed here.
 *  $RETURNS$
 *      Nothing
 *  $DESCRIPTION$
 *      This function releases values stored in memory variable. It shouldn't
 *      be called directly, rather it should be placed into RELEASE command.
 *      If the released variable is a PRIVATE variable then previously hidden
 *      variable with the same name becomes visible after exit from the
 *      procedure where released variable was created. If you access
 *      the released variable in the same function/procedure where it
 *      was created the the NIL value is returned. You can however assign
 *      a new value to released variable without any side effects.
 *
 *      It releases variable even if this variable was created in different
 *      procedure
 *  $EXAMPLES$
 *
 *      PROCEDURE MAIN()
 *      PRIVATE mPrivate
 *
 *        mPrivate :="PRIVATE from MAIN()"
 *        ? mPrivate     //PRIVATE from MAIN()
 *        Test()
 *        ? mPrivate     //PRIVATE from MAIN()
 *
 *      RETURN
 *
 *      PROCEDURE Test()
 *      PRIVATE mPrivate
 *
 *        mPrivate :="PRIVATE from Test()"
 *        ? mPrivate           //PRIVATE from TEST()
 *        RELEASE mPrivate
 *        ? mPrivate           //NIL
 *        mPrivate :="Again in Test()"
 *
 *      RETURN
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $FILES$
 *      Library is vm
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVRELEASE()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      This function releases PRIVATE variables
 *  $SYNTAX$
 *      __MVRELEASE( ,  )
 *  $ARGUMENTS$
 *       = string that contains the wildcard mask for variables' names
 *      that will be released. Supported wildcards: '*' and '?'
 *       = logical value that specifies if variables
 *      that match passed skeleton should be either included in deletion
 *      (if .T.) or excluded from deletion (if .F.)
 *  $RETURNS$
 *    Nothing
 *  $DESCRIPTION$
 *      This function releases values stored in memory variables. It shouldn't
 *      be called directly, it should be placed into RELEASE ALL command.
 *      If the released variable is a PRIVATE variable then previously hidden
 *      variable with the same name becomes visible after exit from the
 *      procedure where released variable was created. If you access
 *      the released variable in the same function/procedure where it
 *      was created the the NIL value is returned. You can however assign
 *      a new value to released variable without any side effects.
 *      PUBLIC variables are not changed by this function.
 *  $EXAMPLES$
 *      None Avaliable
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $FILES$
 *      Library is vm
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVSCOPE()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      If variable exists then returns its scope.
 *  $SYNTAX$
 *      __MVSCOPE(  )
 *  $ARGUMENTS$
 *       = a string with a variable name to check
 *  $RETURNS$
 *      The symbolic values are defined in include/hbmemvar.ch
 *      HB_MV_NOT_FOUND     =variable is not declared (not found in symbol table)
 *      HB_MV_UNKNOWN       =if variable doesn't exist (but found in symbol table)
 *      HB_MV_ERROR         =if information cannot be obtained (memory error
 *      or argument error)
 *      HB_MV_PUBLIC         =for public variables
 *      HB_MV_PRIVATE_GLOBAL =for private variables declared outside of current
 *      function/procedure
 *      HB_MV_PRIVATE_LOCAL  =for private variables declared in current
 *      function/procedure
 *  $EXAMPLES$
 *
 *      PROCEDURE MAIN()
 *      PUBLIC mPublic
 *      PRIVATE mPrivateGlobal
 *
 *      CallProc()
 *      ? __mvScope( "mPrivateLocal" )      //HB_MV_UNKNOWN
 *
 *      RETURN
 *
 *      PROCEDURE CallProc()
 *      PRIVATE mPrivateLocal
 *
 *      ? __mvScope( "mPublic" )            //HB_MV_PUBLIC
 *      ? __mvScope( "mPrivateGlobal" )     //HB_MV_PRIVATE_GLOBAL
 *      ? __mvScope( "mPrivateLocal" )      //HB_MV_PRIVATE_LOCAL
 *      ? __mvScope( "mFindMe" )            //HB_MV_NOT_FOUND
 *
 *      IF( __mvScope( "mPublic" ) > HB_MV_ERROR )
 *         ? "Variable exists"
 *      ELSE
 *         ? "Variable not created yet"
 *      ENDIF
 *
 *      RETURN
 *
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour Extension
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      include/hbmemvar.ch
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVCLEAR()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      This function releases all PRIVATE and PUBLIC variables
 *  $SYNTAX$
 *      __MVCLEAR()
 *  $ARGUMENTS$
 *      None
 *  $RETURNS$
 *      Nothing
 *  $DESCRIPTION$
 *      This function releases all PRIVATE and PUBLIC variables.
 *      It is used to implement CLEAR MEMORY statement.
 *      The memory occupied by all visible variables are released - any
 *      attempt to access the variable will result in a runtime error.
 *      You have to reuse PRIVATE or PUBLIC statement to create again
 *      the variable that was cleared by this function.
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      __MVPUBLIC()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVDBGINFO()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      This function returns the information about the variables for debugger
 *  $SYNTAX$
 *      __MVDBGINFO(  [,  [, @] ] )
 *  $ARGUMENTS$
 *       = the scope of variables for which an information is asked
 *           Supported values (defined in hbmemvar.ch)
 *           HB_MV_PUBLIC
 *           HB_MV_PRIVATE (or any other value)
 *       = the position of asked variable on the list of variables
 *      with specified scope - it should start from position 1
 *       = the value is filled with a variable name if passed by
 *      reference and  is specified
 *  $RETURNS$
 *      The return value depends on the number of arguments passed
 *  $DESCRIPTION$
 *      This function retrieves the information about memvar variables.
 *      It returns either the number of variables with given scope (when the
 *      first argument is passed only) or a value of variable identified by its
 *      position in the variables' list (when second argument is passed).
 *      It also returns the name of a variable if optional third argument
 *      is passed by reference.
 *
 *      If requested variable doesn't exist (requested position is
 *      greater then the number of defined variables) then NIL value is
 *      returned and variable name is set to "?"
 *
 *      The dynamic symbols table is used to find a PUBLIC variable then
 *      the PUBLIC variables are always sorted alphabetically. The PRIVATE
 *      variables are sorted in the creation order.
 *
 *      Note:
 *      Due to dynamic nature of memvar variables there is no guarantee that
 *      successive calls to retrieve the value of  PUBLIC variable will
 *      return the value of the same variable.
 *  $EXAMPLES$
 *
 *      #include 
 *
 *      LOCAL nCount, i, xValue, cName
 *
 *      nCount =_mvDBGINFO( HB_MV_PUBLIC )
 *      FOR i:=1 TO nCount
 *          xValue =__mvDBGINFO( HB_MV_PUBLIC, i, @cName )
 *          ? i, cName, xValue
 *      NEXT
 *   
 *  $TESTS$
 *      #include 
 *      PROCEDURE MAIN()
 *
 *      ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
 *      ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
 *
 *      PUBLIC cPublic:='cPublic in MAIN'
 *
 *      ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
 *      ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
 *
 *      PRIVATE cPrivate:='cPrivate in MAIN'
 *
 *      ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
 *      ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
 *
 *      CountMemvars()
 *
 *      ? 'Back in Main'
 *      ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
 *      ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
 *
 *
 *      RETURN
 *
 *      PROCEDURE CountMemvars()
 *      LOCAL i, nCnt, xVal, cName
 *      PUBLIC ccPublic:='ccPublic'
 *      PRIVATE ccPrivate:='ccPrivate'
 *
 *      ? 'In CountMemvars'
 *      ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
 *      ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
 *
 *      PRIVATE cPublic:='cPublic'
 *
 *      ? 'PUBLIC=', __mvDBGINFO( HB_MV_PUBLIC )
 *      ? 'PRIVATE=', __mvDBGINFO( HB_MV_PRIVATE )
 *
 *      nCnt =__mvDBGINFO( HB_MV_PRIVATE ) +1
 *      FOR i:=1 TO nCnt
 *        xVal =__mvDBGINFO( HB_MV_PRIVATE, i, @cName )
 *        ? i, '=', cName, xVal
 *      NEXT
 *
 *      nCnt =__mvDBGINFO( HB_MV_PUBLIC ) +1
 *      FOR i:=1 TO nCnt
 *        xVal =__mvDBGINFO( HB_MV_PUBLIC, i, @cName )
 *        ? i, '=', cName, xVal
 *      NEXT
 *
 *      RETURN
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *     This function should be called from the debugger only.
 *  $FILES$
 *      Library is vm
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVEXIST()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      Determine if a given name is a PUBLIC or PRIVATE memory variable
 *  $SYNTAX$
 *      __MVEXIST(  )  --> 
 *  $ARGUMENTS$
 *       - string that specifies the name of variable to check
 *  $RETURNS$
 *      __MVEXIST() return TRUE (.T.) if a MEMVAR named  exist.
 *  $DESCRIPTION$
 *      This function determine if a PUBLIC or PRIVATE variable with the
 *      name  exist or not.
 *  $EXAMPLES$
 *      LOCAL   TheLocal
 *      STATIC  TheStatic
 *      PUBLIC  ThePublic
 *      PRIVATE ThePrivate
 *      ? __MVEXIST( "NotExist"   )        // .F.
 *      ? __MVEXIST( "TheLocal"   )        // .F.
 *      ? __MVEXIST( "TheStatic"  )        // .F.
 *      ? __MVEXIST( "ThePublic"  )        // .T.
 *      ? __MVEXIST( "ThePrivate" )        // .T.
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $SEEALSO$
 *      MEMVAR, PRIVATE, PUBLIC
 *  $FILES$
 *      Library is vm
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVGET()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      This function returns value of memory variable
 *  $SYNTAX$
 *      __MVGET(  )  --> 
 *  $ARGUMENTS$
 *       - string that specifies the name of variable
 *  $RETURNS$
 *       The value of variable
 *  $DESCRIPTION$
 *      This function returns the value of PRIVATE or PUBLIC variable if
 *      this variable exists otherwise it generates a runtime error.
 *      The variable is specified by its name passed as the function parameter.
 *  $EXAMPLES$
 *      FUNCTION MEMVARBLOCK( cMemvar )
 *      RETURN {|x| IIF( PCOUNT()==0, __MVGET( cMemvar ),;
 *      __MVPUT( cMemvar, x ) ) }
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $SEEALSO$
 *      __MVPUT()
 *  $FILES$
 *      Library is vm
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __MVPUT()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      This function set the value of memory variable
 *  $SYNTAX$
 *      __MVGET(  [, ] )  --> 
 *  $ARGUMENTS$
 *       - string that specifies the name of variable
 *         - a value of any type that will be set - if it is not
 *      specified then NIL is assumed
 *  $RETURNS$
 *       A value assigned to the given variable.
 *  $DESCRIPTION$
 *      This function sets the value of PRIVATE or PUBLIC variable if
 *      this variable exists otherwise it generates a runtime error.
 *      The variable is specified by its name passed as the function
 *      parameter.
 *      If a value is not specified then the NIL is assumed
 *  $EXAMPLES$
 *      FUNCTION MEMVARBLOCK( cMemvar )
 *      RETURN {|x| IIF( PCOUNT()==0, __MVGET( cMemvar ),;
 *      __MVPUT( cMemvar, x ) ) }
 *   
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is a Harbour extension
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *    __MVPUT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      MEMVARBLOCK()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      Returns a codeblock that sets/gets a value of memvar variable
 *  $SYNTAX$
 *      MEMVARBLOCK(  ) --> 
 *  $ARGUMENTS$
 *       - a string that contains the name of variable
 *  $RETURNS$
 *       a codeblock that sets/get the value of variable
 *  $DESCRIPTION$
 *      This function returns a codeblock that sets/gets the value of
 *      PRIVATE or PUBLIC variable. When this codeblock is evaluated
 *      without any parameters passed then it returns the current value
 *      of given variable. If the second parameter is passed for
 *      the codeblock evaluation then its value is used to set the new
 *      value of given variable - the passed value is also returned
 *      as a value of the codeblock evaluation.
 *  $EXAMPLES$
 *      PROCEDURE MAIN()
 *      LOCAL cbSetGet
 *      PUBLIC xPublic
 *
 *      cbSetGet = MEMVARBLOCK( "xPublic" )
 *      EVAL( cbSetGet, "new value" )
 *      ? "Value of xPublic variable", EVAL( cbSetGet )
 *
 *      RETURN
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compatible
 *  $SEEALSO$
 *      __MVGET(),__MVPUT()
 *  $FILES$
 *      Library is rtl
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FIELDBLOCK()
 *  $CATEGORY$
 *      Code Block
 *  $ONELINER$
 *      Return a code block that sets/gets a value for a given field
 *  $SYNTAX$
 *      FIELDBLOCK(  ) --> bFieldBlock
 *  $ARGUMENTS$
 *       is a string that contain the field name.
 *  $RETURNS$
 *      FIELDBLOCK() return a code block that when evaluate could retrieve
 *      field value or assigning a new value to the field. If 
 *      is not specified or from type other than character, FIELDBLOCK()
 *      return NIL.
 *  $DESCRIPTION$
 *      FIELDBLOCK() return a code block that sets/gets the value of field.
 *      When this code block is evaluated without any parameters passed then
 *      it returns the current value of the given field. If the code block
 *      is evaluated with a parameter, than its value is used to set a new
 *      value to the field, this value is also return by the block. If the
 *      block is evaluate and there is no field with the name 
 *      in the current work area, the code block return NIL.
 *
 *      Note that FIELDBLOCK() works on the current work area, if you need
 *      a specific work area code block use FIELDWBLOCK() instead.
 *  $EXAMPLES$
 *      // open a file named Test that have a field named "name"
 *      LOCAL bField
 *      bFiled := FIELDBLOCK( "name" )
 *      USE Test
 *      ? 'Original value of field "name" :', EVAL( bField )
 *      EVAL( bField, "Mr X new name" )
 *      ? 'New value for the field "name" :', EVAL( bField )
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      If the block is evaluate and there is no field with the name
 *       in the current work area, the code block return NIL.
 *
 *      CA-Cl*pper would raise BASE/1003 error if the field does not exist.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      EVAL(),FIELDWBLOCK(),MEMVARBLOCK()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      FIELDWBLOCK()
 *  $CATEGORY$
 *      Code Block
 *  $ONELINER$
 *      Return a sets/gets code block for field in a given work area
 *  $SYNTAX$
 *      FIELDWBLOCK( ,  ) --> bFieldBlock
 *  $ARGUMENTS$
 *       is a string that contain the field name.
 *
 *       is the work area number in which  exist.
 *  $RETURNS$
 *      FIELDWBLOCK() return a code block that when evaluate could retrieve
 *      field value or assigning a new value for a field in a given work
 *      area. If  is not specified or from type other than
 *      character, or if  is not specified or is not numeric
 *      FIELDWBLOCK() return NIL.
 *  $DESCRIPTION$
 *      FIELDWBLOCK() return a code block that sets/gets the value of field
 *      from a given work area. When this code block is evaluated without
 *      any parameters passed then it returns the current value of the given
 *      field. If the code block is evaluated with a parameter, than its
 *      value is used to set a new value to the field, this value is also
 *      return by the block. If the block is evaluate and there is no field
 *      with the name  in work area number , the code
 *      block return NIL.
 *  $EXAMPLES$
 *      LOCAL bField
 *      // this block work on the field "name" that exist on work area 2
 *      bFiled := FIELDBLOCK( "name", 2 )
 *      // open a file named One in work area 1
 *      // that have a field named "name"
 *      SELECT 1
 *      USE One
 *      // open a file named Two in work area 2
 *      // it also have a field named "name"
 *      SELECT 2
 *      USE Two
 *      SELECT 1
 *      ? "Original names: ", One->name, Two->name
 *      ? "Name value for file Two :", EVAL( bField )
 *      EVAL( bField, "Two has new name" )
 *      ? "and now: ", One->name, Two->name
 *  
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      If the block is evaluate and there is no field with the name
 *       in the given work area, the code block return NIL.
 *
 *      CA-Cl*pper would raise BASE/1003 error if the field does not exist.
 *  $FILES$
 *      Library is rtl
 *  $SEEALSO$
 *      EVAL(),FIELDBLOCK(),MEMVARBLOCK()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      TYPE()
 *  $CATEGORY$
 *      Misc
 *  $ONELINER$
 *      Retrieves the type of an expression
 *  $SYNTAX$
 *      TYPE(  ) --> 
 *  $ARGUMENTS$
 *       must be a character expression.
 *  $RETURNS$
 *       a string indicating the type of the passed expression.
 *
 *      
 *           Meaning
 *
 *        "A"          Array
 *        "B"          Block
 *        "C"          Character (string)
 *        "D"          Date
 *        "L"          Logical
 *        "M"          Memo
 *        "N"          Numeric
 *        "O"          Object
 *        "P"          Pointer
 *        "S"          Symbol
 *        "U"          NIL, local or static variable, or not linked-in function
 *        "UE"         syntax error in the expression or invalid arguments
 *        "UI"         function with non-reserved name was requested
 *      
* $DESCRIPTION$ * This function returns a string which represents the data type * of the argument. The argument can be any valid Harbour expression. * If there is a syntax error in passed expression then "UE" is returned. * If there is a call for any non-reserved Harbour function then "UI" * is returned (in other words there is no call for passed UDF function * during a data type determination - this is CA-Cl*pper compatible * behavior). Additionally if requested user defined function is not * linked into executable then "U" is returned. * * The data type of expression is checked by invoking a macro compiler * and by evaluation of generated code (if there is no syntax errors). * This causes that TYPE() cannot determine a type of local or static * variables - only symbols visible at runtime can be checked. * * Notice the subtle difference between TYPE and VALTYPE functions. * VALTYPE() function doesn't call a macro compiler - it simply checks * the type of passed argument of any type. TYPE() requires a string * argument with a valid Harbour expression - the data type of this * expression is returned. * $EXAMPLES$ * ? TYPE( "{ 1, 2 }" ) //prints "A" * ? TYPE( "IIF(.T., SUBSTR('TYPE',2,1), .F.)" ) //prints "C" * ? TYPE( "AT( 'OK', MyUDF())>0" ) //prints "UI" * ? TYPE( "{ 1, 2 }[ 5 ]" ) //prints "UE" * * //-------------------------------------------------------- * * LOCAL c * PRIVATE a:="A", b:="B" * ? TYPE( "a + b + c" ) //prints: "U" ('C' variable is a local one) * * //-------------------------------------------------------- * * LOCAL cFilter := SPACE( 60 ) * ACCEPT "Enter filter expression:" TO cFilter * IF( TYPE( cFilter ) $ "CDLMN" ) ) * // this is a valid expression * SET FILTER TO &cFilter * ENDIF * * * $STATUS$ * R * $COMPLIANCE$ * - Incompatibility with CA-Cl*pper: * In the following code: * * PRIVATE lCond := 0 * ? TYPE( "IIF( lCond, 'true', MyUDF() )" ) * * CA-Cl*pper will print "UE" - in Harbour the output will be "UI" * * - If "UI" is returned then the syntax of the expression is * correct. However invalid arguments can be passed to * function/procedure that will cause runtime errors during * evaluation of expression. * - Harbour supports two new types (Pointer and Symbol) which does * not exists in CA-Cl*pper. * $FILES$ * Library is rtl * $SEEALSO$ * VALTYPE() * $END$ */ /* $DOC$ * $FUNCNAME$ * VALTYPE() * $CATEGORY$ * Misc * $ONELINER$ * Retrieves the data type of an expression * $SYNTAX$ * VALTYPE( ) --> * $ARGUMENTS$ * is any valid expression. * $RETURNS$ * a character indicating the type of the passed expression. * * * Meaning * * "A" Array * "B" Block * "C" Character (string) * "D" Date * "L" Logical * "M" Memo * "N" Numeric * "O" Object * "P" Pointer * "S" Symbol * "U" NIL *
* $DESCRIPTION$ * This function returns one character which represents the data type * of the argument. * $EXAMPLES$ * See Test * * $TESTS$ * function Test() * ? ValType( Array( 1 ) ) // "A" * ? ValType( {|| 1 + 1 } ) // "B" * ? ValType( "HARBOUR" ) // "C" * ? ValType( Date() ) // "D" * ? ValType( .T. ) // "L" * ? ValType( 1 ) // "N" * ? ValType( TBrowse() ) // "O" * ? ValType( hb_idleadd() ) // "P" Harbour extension * ? ValType( @QOut() ) // "S" Harbour extension * ? ValType( NIL ) // "U" * return nil * * $STATUS$ * R * $COMPLIANCE$ * VALTYPE() is CA-Cl*pper compliant, with the addition of the new * Harbour types: Pointer and Symbol. * $FILES$ * Library is rtl * $SEEALSO$ * TYPE() * $END$ */ /* $DOC$ * $FUNCNAME$ * HB_ISBYREF() * $CATEGORY$ * Misc * $ONELINER$ * Inform if the variable is passed by reference. * $SYNTAX$ * HB_ISBYREF( @ ) --> * $ARGUMENTS$ * @ is the variable to test passed by reference. * $RETURNS$ * a logical value indicating if the variable is passed * by reference to actual function or procedure. * $DESCRIPTION$ * This function return a logical value indicating if the variable * is passed by reference to actual function or procedure. * ATTENTION: The variable to test must be passed by reference. * If the variable is not passed by reference, the function return NIL. * This function is based on the form that Harbour manages to the * variables for reference. When a variable is passed by reference, * what receives the function or procedure is, a pointer to the * previous variable, be this the container variable of the data or * a pointer to another variable. The function observes if the * variable passed points to a common variable or to a variable * passed by reference. * $EXAMPLES$ * See Test * * $TESTS$ * function Main() * local cVar := "Test local" * private nVar := 0 * * Test( @cVar, @nVar, cVar, nVar ) * return nil * * procedure Test( Arg1, Arg2, Arg3, Arg4 ) * ? hb_isbyref( @Arg1 ) // .T. * ? hb_isbyref( @Arg2 ) // .T. * ? hb_isbyref( @Arg3 ) // .F. * ? hb_isbyref( @Arg4 ) // .F. * return * * $STATUS$ * S * $COMPLIANCE$ * HB_ISBYREF() is an extention of Harbour * $FILES$ * Library is rtl * $SEEALSO$ * VALTYPE() * $END$ */

Page url: http://www.yourdomain.com/help/index.html?en.htm