/* $DOC$
   $AUTHOR$
      Copyright 1999 Jose Lalin <dezac@corevia.com>
   $TEMPLATE$
      Function
   $NAME$
      ProcName()
   $CATEGORY$
      API
   $SUBCATEGORY$
      Application
   $ONELINER$
      Gets the name of the current function on the stack
   $SYNTAX$
      ProcName( <nLevel> ) --> cProcName
   $ARGUMENTS$
      <nLevel> is the function level required.
   $RETURNS$
      <cProcName> 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 <nLevel>.
   $EXAMPLES$
      // This test will show the functions and procedures in stack.
      // before executing it.
      LOCAL n := 1
      DO WHILE ! Empty( ProcName( n ) )
         ? ProcName( n++ )
      ENDDO
   $STATUS$
      R
   $COMPLIANCE$
      C
   $FILES$
      Library is core
   $SEEALSO$
      ProcLine(), ProcFile()
   $END$
 */

/* $DOC$
   $AUTHOR$
      Copyright 1999 Jose Lanin <dezac@corevia.com>
   $TEMPLATE$
      Function
   $NAME$
      ProcLine()
   $CATEGORY$
      API
   $SUBCATEGORY$
      Application
   $ONELINER$
      Gets the line number of the current function on the stack.
   $SYNTAX$
      ProcLine( <nLevel> ) --> nLine
   $ARGUMENTS$
      <nLevel> is the function level required.
   $RETURNS$
      <nLine> 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 <nLevel>.
   $EXAMPLES$
      ? ProcLine( 0 )
      ? ProcName( 2 )
   $STATUS$
      R
   $COMPLIANCE$
      C
   $FILES$
      Library is core
   $SEEALSO$
      ProcName(), ProcFile()
   $END$
 */

/* $DOC$
   $AUTHOR$
      Copyright 1999 Jose Lanin <dezac@corevia.com>
   $TEMPLATE$
      Function
   $NAME$
      ProcFile()
   $CATEGORY$
      API
   $SUBCATEGORY$
      Application
   $ONELINER$
      This function always returns an empty string.
   $SYNTAX$
      ProcFile( <xExp> ) --> cEmptyString
   $ARGUMENTS$
      <xExp> is any valid type.
   $RETURNS$
      <cEmptyString> Return an empty string
   $DESCRIPTION$
      This function is added to the RTL for full compatibility. It
      always returns an empty string.
   $EXAMPLES$
      ? ProcFile()
      ? ProcFile( NIL )
      ? ProcFile( 2 )
   $STATUS$
      R
   $COMPLIANCE$
      C
   $FILES$
      Library is core
   $SEEALSO$
      ProcName(), ProcLine()
   $END$
 */
