/*
 * $Id: hvm.txt 9312 2008-09-05 00:08:34Z vszakats $
 */

/*
 * Las siguientes partes son derechos adquiridos de sus autores individuales.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Alejandro de Grate <alex_degarate@hotmail.com>
 * Documentacin en Espaol de:
 *      PROCNAME(), PROCLINE(), PROCFILE(), HB_PVALUE(), PCOUNT()
 *      __QUIT(), CLIPINIT(), __SetHelpK(), BREAK(), DO(), __DBGVMVARLGET()
 *
 * Copyright 1999 Jose Lanin <dezac@corevia.com>
 * Documentacin en Ingls de: PROCLINE(),PROCFILE(),PROCNAME()
 *
 * Copyright 1999 Eddie Ruina
 * Documentacin en Ingls de: __DBGVMVARLGET()
 *
 * Copyright 1999 Chen Kedem <niki@actcom.co.il>
 * Documentacin en Ingls de: CLIPINIT(), __SETHELPK()
 *
 * Copyright 1999 Ryszard Glab <rglab@imid.med.pl>
 * Documentacin en Ingls de: DO()
 *
 * Vea doc/license.txt por los trminos de la licencia.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      PROCNAME()
 *  $CATEGORY$
 *      Miscelanea
 *  $ONELINER$
 *      Obtiene el nombre de la funcin actual en la pila
 *  $SYNTAX$
 *      PROCNAME( <nLevel> ) --> <cProcName>
 *  $ARGUMENTS$
 *      <nLevel>    es el nivel de la funcin requerida
 *  $RETURNS$
 *      <cProcName> El nombre de la funcin que esta siendo ejecutada
 *  $DESCRIPTION$
 *      Esta funcin mira al tope de la pila y obtiene el nombre de la
 *      funcin actual ejecutada si no se pasaron argumentos. De otra
 *      manera esta retorna el nombre de la funcin  procedimiento en el
 *      nivel <nLevel>.
 *  $EXAMPLES$
 *      Ver Test
 *      </fixed>
 *  $TESTS$
 *      Este test mostrar las funciones y procedimientos en la pila
 *      antes de ejecutarlas.
 *
 *      FUNCTION Test()
 *         LOCAL n := 1
 *         while !Empty( ProcName( n ) )
 *            ? ProcName( n++ )
 *         end do
 *      RETURN NIL
 *      </fixed>
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      PROCNAME() es totalmente compatible con CA-Cl*pper.
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera asociada es vm
 *  $SEEALSO$
 *      PROCLINE(),PROCFILE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      PROCLINE()
 *  $CATEGORY$
 *      Miscelanea
 *  $ONELINER$
 *      Obtiene el nmero de lnea de la funcin actual en la pila
 *  $SYNTAX$
 *      PROCLINE( <nLevel> ) --> <nLinea>
 *  $ARGUMENTS$
 *      <nLevel> es el nivel de funcin requerida
 *  $RETURNS$
 *      <nLinea> el nmero de lnea de la funcin que esta siendo ejecutada
 *  $DESCRIPTION$
 *      Esta funcin mira al tope de la pila y obtiene el nmero de lnea
 *      de la funcin actual ejecutada si no se pasaron argumentos. De otra
 *      manera esta retorna el nmero de lnea de la funcin  procedimiento
 *      en el nivel <nLevel>.
 *  $EXAMPLES$
 *      Ver Test
 *      </fixed>
 *  $TESTS$
 *      FUNCTION Test()
 *         ? ProcLine( 0 )
 *         ? ProcName( 2 )
 *      RETURN NIL
 *      </fixed>
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      PROCLINE() es totalmente compatible con CA-Cl*pper.
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera asociada es vm
 *  $SEEALSO$
 *      PROCNAME(),PROCFILE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      PROCFILE()
 *  $CATEGORY$
 *      Miscelanea
 *  $ONELINER$
 *      Esta funcin siempre retorna una cadena vaca.
 *  $SYNTAX$
 *      PROCFILE( <xExp> ) --> <cEmptyString>
 *  $ARGUMENTS$
 *      <xExp> es cualquier tipo vlido
 *  $RETURNS$
 *      Retorna la cadena vaca <cEmptyString>.
 *  $DESCRIPTION$
 *      Esta funcin es agregada a la RTL por total compatibilidad.
 *      Esta siempre retorna una cadena vaca.
 *  $EXAMPLES$
 *      ? ProcFile()
 *      </fixed>
 *  $TESTS$
 *      FUNCTION Test()
 *         ? ProcFile()
 *         ? ProcFile( NIL )
 *         ? ProcFile( 2 )
 *      RETURN NIL
 *      </fixed>
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      PROCFILE() es totalmente compatible con CA-Cl*pper.
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera asociada es vm
 *  $SEEALSO$
 *      PROCNAME(),PROCLINE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      HB_PVALUE()
 *  $CATEGORY$
 *      Chequeo Parametros
 *  $ONELINER$
 *      Obtiene el valor de un argumento.
 *  $SYNTAX$
 *      HB_PVALUE( <nArg> ) --> <xExp>
 *  $ARGUMENTS$
 *      Un nmero que indica el argumento a chequear.
 *  $RETURNS$
 *      <xExp> Retorna el valor almacenado en el argumento.
 *  $DESCRIPTION$
 *      Esta funcin es til para chequear el valor almacenado en un
 *      argumento.
 *  $EXAMPLES$
 *      Ver Test
 *      </fixed>
 *  $TESTS$
 *      FUNCTION Test( nValue, cString )
 *         IF PCount() == 2
 *            ? hb_PValue( 1 ), nValue
 *            ? hb_PValue( 2 ), cString
 *         ENDIF
 *      RETURN NIL
 *      </fixed>
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      HB_PVALUE() es una nueva funcin y por tanto no es compatible con
 *      CA-Cl*pper.
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera asociada es vm
 *  $SEEALSO$
 *      PCOUNT()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      PCOUNT()
 *  $CATEGORY$
 *      Chequeo Parametros
 *  $ONELINER$
 *      Obtiene el nmero de argumentos pasados a la funcin.
 *  $SYNTAX$
 *      PCOUNT() --> <nArgs>
 *  $ARGUMENTS$
 *      Ninguno.
 *  $RETURNS$
 *      <nArgs>  Un nmero que indica la cantidad de parmetros pasados a
 *               la funcin  procedimiento,
 *  $DESCRIPTION$
 *      Esta funcin es til para chequear si una funcin  procedimiento a
 *      recibido el nmero de argumentos necesario.
 *  $EXAMPLES$
 *      Ver Test
 *      </fixed>
 *  $TESTS$
 *      FUNCTION Test( xExp )
 *         IF PCount() == 0
 *            ? "Esta funcin necesita un parmetro"
 *         ELSE
 *            ? xExp
 *         ENDIF
 *      RETURN NIL
 *      </fixed>
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      PCOUNT() es totalmente compatible con CA-Cl*pper.
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera asociada es vm
 *  $SEEALSO$
 *      HB_PVALUE()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __QUIT()
 *  $CATEGORY$
 *      Eventos
 *  $ONELINER$
 *      Termina una aplicacin.
 *  $SYNTAX$
 *      __QUIT() --> NIL
 *  $ARGUMENTS$
 *      Ninguno
 *  $RETURNS$
 *      NIL
 *  $DESCRIPTION$
 *      Esta funcin termina la aplicacin actual y retorna al sistema.
 *  $EXAMPLES$
 *      Ver Test
 *      </fixed>
 *  $TESTS$
 *      FUNCTION EndApp( lYesNo )
 *         IF lYesNo
 *            __Quit()
 *         ENDIF
 *      RETURN NIL
 *      </fixed>
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __QUIT() es totalmente compatible con CA-Cl*pper.
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera asociada es vm
 *  $SEEALSO$
 *      QUIT
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      CLIPINIT()
 *  $CATEGORY$
 *      Internal
 *  $ONELINER$
 *      Initializa varios subsistemas de Harbour
 *  $SYNTAX$
 *      CLIPINIT() --> NIL
 *  $ARGUMENTS$
 *      Ninguno
 *  $RETURNS$
 *      CLIPINIT() siempre devuelve NIL.
 *  $DESCRIPTION$
 *      CLIPINIT() es uno de los INIT PROCEDURE predefinidos y es ejecutado
 *      cuando el programa arranca. Este declara un array MEMVAR PUBLIC vaco
 *      llamado GetList que va a ser usado por el sistema Get.
 *      Este activa el manejador de error por defecto, y (al menos por el
 *      momento) llama a la funcin que establece la tecla de Ayuda por
 *      defecto (F1).
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Se dice que CLIPINIT() no debera llamar a la funcin que establece
 *      la tecla de Ayuda por defecto (F1) dado que CA-Cl*pper lo hace en
 *      otro lugar.
 *  $PLATFORMS$
 *      Todas.
 *  $SEEALSO$
 *       INIT PROCEDURE
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __SetHelpK()
 *  $CATEGORY$
 *      Internal
 *  $ONELINER$
 *      Establece a <F1> como la tecla de Ayuda por defecto
 *  $SYNTAX$
 *      __SetHelpK() --> NIL
 *  $ARGUMENTS$
 *      Ninguno
 *  $RETURNS$
 *      __SetHelpK() siempre devuelve NIL
 *  $DESCRIPTION$
 *      Establece que al pulsar la tecla <F1>, se ejecute una funcin llamada
 *      HELP si tal funcin es enlazada dentro del programa.
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      __SetHelpK() trabaja exactamente como la funcin de CA-Cl*pper
 *      llamada __SetHelpK()
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera asociada es vm
 *  $SEEALSO$
 *      __XHelp(),SET KEY,SETKEY()
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      BREAK()
 *  $CATEGORY$
 *      Error recovery
 *  $ONELINER$
 *      Sale de un bloque BEGIN SEQUENCE
 *  $SYNTAX$
 *      BREAK( <xExp> ) --> NIL
 *  $ARGUMENTS$
 *      <xExp>  es cualquier expresin vlida. Esta es requerida siempre
 *              Si Ud. no desea pasarle ningn argumento, slo use NIL.
 *  $RETURNS$
 *      NIL
 *  $DESCRIPTION$
 *      Esta funcin le pasa el control a la sentencia RECOVER en un bloque
 *      BEGIN SEQUENCE.
 *  $EXAMPLES$
 *      Break( NIL )
 *      </fixed>
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      BREAK() es totalmente compatible con CA-Cl*pper.
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera asociada es vm
 *  $SEEALSO$
 *      BEGIN SEQUENCE
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      DO()
 *  $CATEGORY$
 *      Utility
 *  $ONELINER$
 *      Llama a un procedimiento  a una funcin
 *  $SYNTAX$
 *      DO( <xFuncProc> [, <xArguments...>] )
 *  $ARGUMENTS$
 *      <xFuncProc>   es tanto una cadena con un nombre de funcin 
 *                    procedimiento a ser llamado,  un codeblock a evaluar.
 *      <xArguments>  argumentos pasados a la funcin  procedimiento
 *                    llamado  a un codeblock.
 *  $RETURNS$
 *      A value that was returned from called function.
 *  $DESCRIPTION$
 *      Esta funcin puede ser llamada  bien por el compilador Harbour 
 *      por el usuario.
 *      El compilador siempre siempre pasa el item de tipo IT_SYMBOL que
 *      almacena el nombre del procedimiento especificado en la sentencia
 *      DO <proc> WITH .
 *      Si el procedimiento/funcin no existe, entonces un error de tiempo
 *      de ejecucin es generado.
 *      Esta funcin puede ser usada como reemplazo del operador macro.
 *      Esta es tambin usada internamente para implementar:
 *         DO <proc> WITH <args...>
 *      En este caso <xFuncProc> es del tipo HB_SYMB.
 *  $EXAMPLES$
 *      cbCode ={|x| MyFunc( x )}
 *      DO( cbCode, 1 )
 *
 *      cFunction := "MyFunc"
 *      xRetVal :=DO( cFunction, 2 )
 *
 *      Old style (slower):
 *      DO &cFunction WITH 3
 *      </fixed>
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera es rtl
 *  $SEEALSO$
 *
 *  $END$
 */

/*  $DOC$
 *  $FUNCNAME$
 *      __DBGVMVARLGET()
 *  $CATEGORY$
 *      Variable Management
 *  $ONELINER$
 *      Obtiene una variable LOCAL de un nivel de procedimiento
 *  $SYNTAX$
 *      __DBGVMVARLGET( <nProcLevel>, <nLocal> )
 *  $ARGUMENTS$
 *      <nProcLevel> Es el nivel de procedimiento, el mismo que el usado
 *                   en PROCNAME() y PROCLINE(), desde el cual una variable
 *                   local va a ser obtenida.
 *      <nLocal>     Es la posicin  ndice de la variable local a recuperar
 *  $RETURNS$
 *      El contenido de la variable local especificada.
 *  $DESCRIPTION$
 *      Esta funcin es usada desde el depurador.
 *  $PLATFORMS$
 *      Todas.
 *  $FILES$
 *      La librera asociada es vm
 *  $SEEALSO$
 *      PROCNAME()
 *  $END$
 */


