diff --git a/harbour/ChangeLog b/harbour/ChangeLog index fb7eecedfb..ec4562e781 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,18 @@ 2002-12-01 23:12 UTC+0100 Foo Bar */ +2002-06-06 09:23 UTC+0300 Chen Kedem + * doc/dirstruc.txt + + Add notes for the btree directory + + * doc/gmake.txt + * doc/transfrm.txt + * doc/es/dbstrux.txt + * doc/es/harbext.txt + * doc/es/idle.txt + * doc/es/tracing.txt + ! Replace embedded TABs with SPACEs + 2002-06-05 20:52 UTC-0800 Ron Pinkas * make_b32.bat - Commented SET BISON_SIMPLE line as it causes incompatibility with current version of Bison. diff --git a/harbour/doc/dirstruc.txt b/harbour/doc/dirstruc.txt index 6f0f6c1291..7810e16954 100644 --- a/harbour/doc/dirstruc.txt +++ b/harbour/doc/dirstruc.txt @@ -46,6 +46,12 @@ in order to remove empty directories) | | | | | +---test - Test programs. | | +| +---btree - BTree library. +| | | +| | +---doc - HB_BTree C and Harbour API documentation. +| | | +| | +---test - HB_BTree api test programs. +| | | +---delphi - Integration with Borland Delphi. | | | | | +---hbdll - Accessing Harbour DLL from Delphi. diff --git a/harbour/doc/es/dbstrux.txt b/harbour/doc/es/dbstrux.txt index 7d558db368..a52fcb7650 100644 --- a/harbour/doc/es/dbstrux.txt +++ b/harbour/doc/es/dbstrux.txt @@ -12,7 +12,7 @@ * CREATE FROM, __FLEDIT(), __dbStructFilter() * * Copyright 2000 Alejandro de Gárate - * Documentación en Español de: + * Documentación en Español de: * __dbCopyStruct(), COPY STRUCTURE, __dbCopyXStruct(), * COPY STRUCTURE EXTENDED, __dbCreate(), CREATE, * CREATE FROM, __FLEDIT(), __dbStructFilter() @@ -35,32 +35,32 @@ * es el nombre de una nueva base de datos a crear. * (.dbf) es la extensión por defecto si ninguna es especificada. * - * es un array donde cada elemento es un nombre de + * es un array donde cada elemento es un nombre de * campo. * Los nombres pueden ser especificados en mayúsculas ó minúsculas. * $RETURNS$ * __dbCopyStruct() siempre retorna NIL. * $DESCRIPTION$ - * La función __dbCopyStruct() crea una nueva base de datos vacía, - * con una estructura que esta basada en la base de datos actualmente - * abierta en este área de trabajo. Si esta vacía, - * el archivo recientemente creado podría tener la misma estructura - * que la base de datos actualmente abierta. De otro modo el nuevo - * archivo podría contener sólo campos que coincidan exactamente + * La función __dbCopyStruct() crea una nueva base de datos vacía, + * con una estructura que esta basada en la base de datos actualmente + * abierta en este área de trabajo. Si esta vacía, + * el archivo recientemente creado podría tener la misma estructura + * que la base de datos actualmente abierta. De otro modo el nuevo + * archivo podría contener sólo campos que coincidan exactamente * con . * - * __dbCopyStruct() puede ser usada para crear un subconjunto de - * la base de datos actualmente abierta, basada en una lista dada + * __dbCopyStruct() puede ser usada para crear un subconjunto de + * la base de datos actualmente abierta, basada en una lista dada * de campos. * - * El comando COPY STRUCTURE es pre-procesado en la función + * El comando COPY STRUCTURE es pre-procesado en la función * __dbCopyStruct() durante el tiempo de compilación. * $EXAMPLES$ * // Crea un nuevo archivo que contiene la misma estructura. * USE TEST * __dbCopyStruct( "MyCopy.DBF" ) * - * // Crea un nuevo archivo que contiene parte de la estructura + * // Crea un nuevo archivo que contiene parte de la estructura * // original * LOCAL aLista * USE TEST @@ -69,10 +69,10 @@ * $STATUS$ * R * $COMPLIANCE$ - * __dbCopyStruct() trabaja exactamente como la función de CA-Clipper, + * __dbCopyStruct() trabaja exactamente como la función de CA-Clipper, * __dbCopyStruct(). * $PLATFORMS$ - * Todas + * Todas * $FILES$ * La librería es rdd * $SEEALSO$ @@ -91,26 +91,26 @@ * $SYNTAX$ * COPY STRUCTURE TO [FIELDS ] * $ARGUMENTS$ - * TO es el nombre del nuevo archivo de - * base de datos a crear. (.dbf) es la extensión por defecto si + * TO es el nombre del nuevo archivo de + * base de datos a crear. (.dbf) es la extensión por defecto si * ninguna es dada. * - * Esta puede ser especificada como un literal de nombre de archivo + * Esta puede ser especificada como un literal de nombre de archivo * ó como una expresión de caracteres encerrada entre paréntesis. * - * FIELDS es una lista opcional de nombres de - * campos a copiar desde la base de datos actualmente abierta en - * el orden especificado, por defecto son todos los campos. + * FIELDS es una lista opcional de nombres de + * campos a copiar desde la base de datos actualmente abierta en + * el orden especificado, por defecto son todos los campos. * Los nombres pueden ser especificados en mayúsculas ó minúsculas. * $DESCRIPTION$ - * COPY STRUCTURE crea una nueva base de datos vacía con una estructura - * que esta basada en la base de datos actualmente abierta en este + * COPY STRUCTURE crea una nueva base de datos vacía con una estructura + * que esta basada en la base de datos actualmente abierta en este * área de trabajo. * * COPY STRUCTURE puede ser usada para crear un subconjunto de la base * de datos actualmente abierta, basada en una lista dada de campos. * - * El comando COPY STRUCTURE es pre-procesado en la función + * El comando COPY STRUCTURE es pre-procesado en la función * __dbCopyStruct() durante el tiempo de compilación. * $EXAMPLES$ * // Crea un nuevo archivo que contiene la misma estructura. @@ -123,9 +123,9 @@ * $STATUS$ * R * $COMPLIANCE$ - * COPY STRUCTURE trabaja exactamente como en CA-Clipper + * COPY STRUCTURE trabaja exactamente como en CA-Clipper * $PLATFORMS$ - * Todas + * Todas * $SEEALSO$ * COPY STRUCTURE EXTENDED,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate(),__dbStructFilter() * $END$ @@ -145,12 +145,12 @@ * es el nombre del archivo de definición de destino * a crear, (*.dbf) es la extensión por defecto si ninguna es dada. * $RETURNS$ - * __dbCopyXStruct() retorna (.F.) si ninguna base de datos está en - * uso en el área actual de trabajo, (.T.) si el proceso fué exitoso, - * ó un error en tiempo de ejecución si la operación de creación del + * __dbCopyXStruct() retorna (.F.) si ninguna base de datos está en + * uso en el área actual de trabajo, (.T.) si el proceso fué exitoso, + * ó un error en tiempo de ejecución si la operación de creación del * archivo ha fallado. * $DESCRIPTION$ - * La función __dbCopyXStruct() crea una nueva base de datos llamada + * La función __dbCopyXStruct() crea una nueva base de datos llamada * con una estructura predefinida (también llamado * "archivo de estructura extendida"): * @@ -163,13 +163,13 @@ * FIELD_DEC N 3 0 * * - * Cada registro en el nuevo archivo contiene información acerca de - * un campo en el archivo original. CREATE FROM podría ser usado para + * Cada registro en el nuevo archivo contiene información acerca de + * un campo en el archivo original. CREATE FROM podría ser usado para * crear la base de datos desde el archivo de estructura extendida. * - * Por razones prehistóricas de compatibilidad, los campos de + * Por razones prehistóricas de compatibilidad, los campos de * caracteres mayores de 255 caracteres son tratados en una forma - * especial al escribir parte de la longitud en el campo FIELD_DEC + * especial al escribir parte de la longitud en el campo FIELD_DEC * de acuerdo a la siguiente fórmula (Esto es hecho internamente): * * @@ -186,25 +186,25 @@ * FIELD->FIELD_LEN ) * * - * El comando COPY STRUCTURE EXTENDED es pre-procesado en la función + * El comando COPY STRUCTURE EXTENDED es pre-procesado en la función * __dbCopyXStruct() durante el tiempo de compilación. * $EXAMPLES$ - * // Abre la base de datos, y copia su estructura a un nuevo archivo. + * // Abre la base de datos, y copia su estructura a un nuevo archivo. * USE Test * __dbCopyXStruct( "TestEstr" ) * * // Abre el nuevo archivo y lista todos sus registros - * USE TestEstr + * USE TestEstr * LIST * * $TESTS$ * $STATUS$ * R * $COMPLIANCE$ - * __dbCopyXStruct() trabaja exactamente como la función de CA-Clipper, + * __dbCopyXStruct() trabaja exactamente como la función de CA-Clipper, * __dbCopyXStruct(). * $PLATFORMS$ - * Todas + * Todas * $FILES$ * La librería es rdd * $SEEALSO$ @@ -224,13 +224,13 @@ * COPY STRUCTURE EXTENDED TO * $ARGUMENTS$ * TO es el nombre del nuevo archivo de base - * de datos a crear, (.dbf) es la extensión por defecto si ninguna - * es dada. - * Esta puede ser especificada como un literal de nombre de archivo + * de datos a crear, (.dbf) es la extensión por defecto si ninguna + * es dada. + * Esta puede ser especificada como un literal de nombre de archivo * ó como una expresión de caracteres encerrada entre paréntesis. * $DESCRIPTION$ - * COPY STRUCTURE EXTENDED crea una nueva base de datos llamada - * con una estructura predefinida (también llamada + * COPY STRUCTURE EXTENDED crea una nueva base de datos llamada + * con una estructura predefinida (también llamada * "archivo de estructura extendida"): * * @@ -245,12 +245,12 @@ * * * Cada registro en el nuevo archivo contiene información acerca de - * un campo en el archivo original. CREATE FROM podría ser usado para + * un campo en el archivo original. CREATE FROM podría ser usado para * crear la base de datos desde el "archivo de estructura extendida". * - * Por razones prehistóricas de compatibilidad, los campos de - * caracteres mayores de 255 caracteres son tratados en una forma - * especial al escribir parte de la longitud en el campo FIELD_DEC + * Por razones prehistóricas de compatibilidad, los campos de + * caracteres mayores de 255 caracteres son tratados en una forma + * especial al escribir parte de la longitud en el campo FIELD_DEC * de acuerdo a la siguiente fórmula (Esto es hecho internamente): * * @@ -267,16 +267,16 @@ * FIELD->FIELD_LEN ) * * - * El comando COPY STRUCTURE EXTENDED es pre-procesado en la función + * El comando COPY STRUCTURE EXTENDED es pre-procesado en la función * __dbCopyXStruct() durante el tiempo de compilación. * $EXAMPLES$ - * // Abre la base de datos, y copia su estructura a un nuevo archivo. + * // Abre la base de datos, y copia su estructura a un nuevo archivo. * USE Test * __dbCopyXStruct( "TestEstr" ) * * // Abre el nuevo archivo y lista todos sus registros - * USE TestEstr + * USE TestEstr * LIST * * $STATUS$ @@ -284,7 +284,7 @@ * $COMPLIANCE$ * COPY STRUCTURE EXTENDED trabaja exactamente como en CA-Clipper. * $PLATFORMS$ - * Todas + * Todas * $SEEALSO$ * COPY STRUCTURE,CREATE,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate() * $END$ @@ -299,47 +299,47 @@ * $ONELINER$ * Crea una estructura extendida ó usa una para crear otro archivo * $SYNTAX$ - * __dbCreate( , [], [], + * __dbCreate( , [], [], * [], [] ) --> lUsado * $ARGUMENTS$ - * es el nombre del archivo destino a crear y luego - * abrir, (.dbf) es la extensión por defecto si ninguna es + * es el nombre del archivo destino a crear y luego + * abrir, (.dbf) es la extensión por defecto si ninguna es * especificada. * - * es el nombre de una estructura extendida opcional - * desde la cual el archivo destino va a ser + * es el nombre de una estructura extendida opcional + * desde la cual el archivo destino va a ser * construido. - * Si es omitida, un nuevo archivo de estructura extendida vacía con - * el nombre es creado y abierto, en el área de + * Si es omitida, un nuevo archivo de estructura extendida vacía con + * el nombre es creado y abierto, en el área de * trabajo actual. * - * es el nombre del RDD para crear el archivo destino, + * es el nombre del RDD para crear el archivo destino, * Si es omitido, es usado el RDD por defecto. * - * es una expresión lógica opcional, (.T.) abre el nombre - * del archivo de destino en la próxima área - * disponible sin uso y hace de esta el área actual. (.F.) abre el - * archivo de destino en el área de trabajo actual. - * El valor por defecto es (.F.). El valor de es ignorado si + * es una expresión lógica opcional, (.T.) abre el nombre + * del archivo de destino en la próxima área + * disponible sin uso y hace de esta el área actual. (.F.) abre el + * archivo de destino en el área de trabajo actual. + * El valor por defecto es (.F.). El valor de es ignorado si * no es especificado. * - * es un alias opcional para usar el archivo de destino con - * el comando USE. Si no es especificado, alias esta basado en el + * es un alias opcional para usar el archivo de destino con + * el comando USE. Si no es especificado, alias esta basado en el * nombre . * $RETURNS$ - * __dbCreate() retorna (.T.) si hay una base de datos usada en el - * área actual de trabajo (esta podría ser la nueva area de trabajo + * __dbCreate() retorna (.T.) si hay una base de datos usada en el + * área actual de trabajo (esta podría ser la nueva area de trabajo * elegida), ó (.F.) si no hay ninguna base de datos usada. - * Note que si hubo éxito debería ser devuelto (.F.), pero si hay - * alguna falla probablemente se termine con un error en tiempo de - * ejecución y no con un valor de (.F.) + * Note que si hubo éxito debería ser devuelto (.F.), pero si hay + * alguna falla probablemente se termine con un error en tiempo de + * ejecución y no con un valor de (.F.) * $DESCRIPTION$ - * La función __dbCreate() funciona en dos modos dependiendo del valor + * La función __dbCreate() funciona en dos modos dependiendo del valor * de : * * 1) Si está vacío o no está especificado, un - * nuevo archivo de estructura extendida vacía, con el nombre - * es creado y luego abierto, en el área actual de + * nuevo archivo de estructura extendida vacía, con el nombre + * es creado y luego abierto, en el área actual de * trabajo ( es ignorado). * El nuevo archivo tiene la siguiente estructura: * @@ -359,14 +359,14 @@ * asume como un archivo de estructura extendida donde cada registro * contiene al menos los siguientes campos (en cualquier orden): * FIELD_NAME, FIELD_TYPE, FIELD_LEN y FIELD_DEC. Cualquier otro campo - * es ignorado. Con esta información el archivo es + * es ignorado. Con esta información el archivo es * creado y abierto en el nuevo area de trabajo (de acuerdo a ) * si esta es una nueva área de trabajo, esta se vuelve la actual. * - * Por razones prehistóricas de compatibilidad, los campos de - * caracteres del archivo de estructura extendida los cuales sean - * mayores de 255 caracteres deberían ser tratados en una forma - * especial al escribir parte de la longitud en el campo FIELD_DEC + * Por razones prehistóricas de compatibilidad, los campos de + * caracteres del archivo de estructura extendida los cuales sean + * mayores de 255 caracteres deberían ser tratados en una forma + * especial al escribir parte de la longitud en el campo FIELD_DEC * de acuerdo a la siguiente fórmula: * * @@ -374,12 +374,12 @@ * FIELD->FIELD_LEN := ( nLength % 256 ) * * - * El comando CREATE FROM es pre-procesado en la función + * El comando CREATE FROM es pre-procesado en la función * __dbCopyStruct() durante el tiempo de compilación. * $EXAMPLES$ - * // Crea un nuevo archivo de estructura extendida, agrega algunos - * // registros y luego crea un nueva base de datos desde este + * // Crea un nuevo archivo de estructura extendida, agrega algunos + * // registros y luego crea un nueva base de datos desde este * // archivo (CREATE FROM) * * __dbCreate( "molde" ) @@ -405,7 +405,7 @@ * $COMPLIANCE$ * __dbCreate() trabaja exactamente como en CA-Clipper. * $PLATFORMS$ - * Todas + * Todas * $FILES$ * La librería es rdd * $SEEALSO$ @@ -424,19 +424,19 @@ * $SYNTAX$ * CREATE [VIA ] [ALIAS ] * $ARGUMENTS$ - * es el nombre del archivo de de destino a crear + * es el nombre del archivo de de destino a crear * y abrir, (*.dbf) es la extensión por defecto si ninguna es dada. - * Este puede ser especificada un literal de nombre de archivo ó + * Este puede ser especificada un literal de nombre de archivo ó * como una expresion de caracteres encerrada entre paréntesis. * * VIA es el nombre del RDD con el cual se va - * a crear el archivo de destino. Si es omitido, el RDD por defecto - * es usado. - * Este puede ser especificado como un literal de nombre de archivo + * a crear el archivo de destino. Si es omitido, el RDD por defecto + * es usado. + * Este puede ser especificado como un literal de nombre de archivo * ó como una expresión de caracteres encerrada entre paréntesis. * - * es un alias opcional para usar el archivo de destino con - * el comando USE. Si no es especificado, alias esta basado en el + * es un alias opcional para usar el archivo de destino con + * el comando USE. Si no es especificado, alias esta basado en el * nombre . * $DESCRIPTION$ * El comando CREATE, crea un nuevo archivo de estructura extendida @@ -455,7 +455,7 @@ * El comando CREATE es pre-procesado en la función __dbCopyStruct() * durante el tiempo de compilación y usa este modo. * $EXAMPLES$ - * // Crea un nuevo archivo de estructura extendida, agrega algunos + * // Crea un nuevo archivo de estructura extendida, agrega algunos * // registros y luego crea un nueva base de datos desde este archivo * // (CREATE FROM) * @@ -480,9 +480,9 @@ * $STATUS$ * R * $COMPLIANCE$ - * CREATE trabaja exactamente como en CA-Clipper. + * CREATE trabaja exactamente como en CA-Clipper. * $PLATFORMS$ - * Todas + * Todas * $SEEALSO$ * COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE FROM,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate() * $END$ @@ -497,47 +497,47 @@ * $ONELINER$ * Crea una base de datos desde un archivo de estructura extendida * $SYNTAX$ - * CREATE FROM [VIA ] + * CREATE FROM [VIA ] * [NEW] [ALIAS ] * $ARGUMENTS$ - * es el nombre del archivo de de destino a crear + * es el nombre del archivo de de destino a crear * y abrir, (*.dbf) es la extensión por defecto si ninguna es dada. - * Este puede ser especificada un literal de nombre de archivo ó + * Este puede ser especificada un literal de nombre de archivo ó * como una expresión de caracteres encerrada entre paréntesis. * * FROM es el nombre del archivo de estructura * extendida desde la cual el archivo de destino va a ser construido. - * Este puede ser especificado como un literal de nombre de archivo + * Este puede ser especificado como un literal de nombre de archivo * ó como una expresión de caracteres encerrada entre paréntesis. * * VIA es el nombre del RDD con el cual se va - * a crear el archivo de destino. Si es omitido, el RDD por defecto - * es usado. - * Este puede ser especificado como un literal de nombre de archivo + * a crear el archivo de destino. Si es omitido, el RDD por defecto + * es usado. + * Este puede ser especificado como un literal de nombre de archivo * ó como una expresión de caracteres encerrada entre paréntesis. * * NEW abre el nombre del archivo de destino en * la próxima área disponible sin uso y hace de ésta el área actual. - * Si es omitido, abre el archivo de destino en el área de trabajo - * actual. + * Si es omitido, abre el archivo de destino en el área de trabajo + * actual. * * ALIAS es el alias opcional del archivo de destino * para usar con el comando USE. Si ninguno es especificado el alias * esta basado en el nombre . * $DESCRIPTION$ * El comando CREATE FROM abre un archivo de estructura extendida - * donde cada registro contiene al menos los - * siguientes campos (en cualquier orden): + * donde cada registro contiene al menos los + * siguientes campos (en cualquier orden): * FIELD_NAME, FIELD_TYPE, FIELD_LEN y FIELD_DEC. Cualquier otro campo - * es ignorado. Con esta información el archivo es - * creado y abierto en el nuevo area de trabajo (de acuerdo a la + * es ignorado. Con esta información el archivo es + * creado y abierto en el nuevo area de trabajo (de acuerdo a la * cláusula NEW) si ésta es una nueva área de trabajo, esta se vuelve * la actual. * - * Por razones prehistóricas de compatibilidad, los campos de - * caracteres del archivo de estructura extendida los cuales sean - * mayores de 255 caracteres deberían ser tratados en una forma - * especial al escribir parte de la longitud en el campo FIELD_DEC + * Por razones prehistóricas de compatibilidad, los campos de + * caracteres del archivo de estructura extendida los cuales sean + * mayores de 255 caracteres deberían ser tratados en una forma + * especial al escribir parte de la longitud en el campo FIELD_DEC * de acuerdo a la siguiente fórmula: * * @@ -554,7 +554,7 @@ * $COMPLIANCE$ * CREATE FROM trabaja exactamente como en CA-Clipper. * $PLATFORMS$ - * Todas + * Todas * $SEEALSO$ * COPY STRUCTURE,COPY STRUCTURE EXTENDED,CREATE,DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__dbCopyXStruct(),__dbCreate() * $END$ @@ -571,9 +571,9 @@ * $SYNTAX$ * __FLEDIT( , [] ) --> aEstructuraFiltrada * $ARGUMENTS$ - * es un array multidimensional con la estructura de los - * campos de la base de datos, la cual es usualmente la salida de - * DBSTRUCT(), donde cada elemento del array tiene la siguiente + * es un array multidimensional con la estructura de los + * campos de la base de datos, la cual es usualmente la salida de + * DBSTRUCT(), donde cada elemento del array tiene la siguiente * estructura: * *
@@ -585,22 +585,22 @@ * 4 nDecimales DBS_DEC *
* - * es un array donde cada elemento es un nombre de - * campo. Los nombres pueden ser especificados en mayúsculas o en + * es un array donde cada elemento es un nombre de + * campo. Los nombres pueden ser especificados en mayúsculas o en * minúsculas. * $RETURNS$ - * __FLEDIT() retorna un nuevo array multidimensional donde cada - * elemento esta en la misma estructura que el original , - * pero el array es construido de acuerdo a la lista de campos en + * __FLEDIT() retorna un nuevo array multidimensional donde cada + * elemento esta en la misma estructura que el original , + * pero el array es construido de acuerdo a la lista de campos en * . * Si esta vacío, __FLEDIT() retorna una referencia al * array original . * $DESCRIPTION$ - * __FLEDIT() puede ser usado para crear un subconjunto de la + * __FLEDIT() puede ser usado para crear un subconjunto de la * estructura de la base de datos, basada en una lista de campos dadas. * - * Note que los nombres de campos en DEBEN ser - * especificados en mayúsculas de lo contrario podría no encontrarse + * Note que los nombres de campos en DEBEN ser + * especificados en mayúsculas de lo contrario podría no encontrarse * coincidencia. * * SET EXACT no tiene efecto en el valor retornado. @@ -638,16 +638,16 @@ * $STATUS$ * R * $COMPLIANCE$ - * CA-Clipper tiene una función interna no documentada llamada - * __FLEDIT(), en Harbour nosotros la llamamos __dbStructFilter(). - * El nuevo nombre da una mejor descripción de qué es lo que la función - * hace. En Harbour __FLEDIT(), simplemente llama a __dbStructFilter() + * CA-Clipper tiene una función interna no documentada llamada + * __FLEDIT(), en Harbour nosotros la llamamos __dbStructFilter(). + * El nuevo nombre da una mejor descripción de qué es lo que la función + * hace. En Harbour __FLEDIT(), simplemente llama a __dbStructFilter() * y por tanto la segunda es la función recomendada. * - * Esta función es sólo visible si ../source/rdd/dbstrux.prg fué + * Esta función es sólo visible si ../source/rdd/dbstrux.prg fué * compilado con la bandera HB_C52_UNDOC. * $PLATFORMS$ - * Todas + * Todas * $FILES$ * El archivo de cabecera es dbstruct.ch * La librería es rdd @@ -665,12 +665,12 @@ * $ONELINER$ * Filtra un array con estructura de base de datos. * $SYNTAX$ - * __dbStructFilter( , [] ) + * __dbStructFilter( , [] ) * --> aEstructuraFiltrada * $ARGUMENTS$ - * es un array multidimensional con la estructura de - * los campos de la base de datos, la cual es usualmente la salida - * de DBSTRUCT(), donde cada elemento del array tiene la siguiente + * es un array multidimensional con la estructura de + * los campos de la base de datos, la cual es usualmente la salida + * de DBSTRUCT(), donde cada elemento del array tiene la siguiente * estructura: * * @@ -682,22 +682,22 @@ * 4 nDecimales DBS_DEC *
* - * es un array donde cada elemento es un nombre de + * es un array donde cada elemento es un nombre de * campo. * Los nombres pueden ser especificados en mayúsculas o en minúsculas. * $RETURNS$ - * __dbStructFilter() retorna un nuevo array multidimensional donde - * cada elemento esta en la misma estructura que el original + * __dbStructFilter() retorna un nuevo array multidimensional donde + * cada elemento esta en la misma estructura que el original * , pero el array es construido de acuerdo a la lista de - * campos en el array . Si esta vacío, - * __dbStructFilter() retorna una referencia al array original + * campos en el array . Si esta vacío, + * __dbStructFilter() retorna una referencia al array original * . * $DESCRIPTION$ - * __dbStructFilter() puede ser usado para crear un subconjunto de la + * __dbStructFilter() puede ser usado para crear un subconjunto de la * estructura de la base de datos, basada en una lista de campos dadas. * - * Note que los nombres de campos en DEBEN ser - * especificados en mayúsculas de lo contrario podría no encontrarse + * Note que los nombres de campos en DEBEN ser + * especificados en mayúsculas de lo contrario podría no encontrarse * coincidencia. * * SET EXACT no tiene efecto en el valor retornado. @@ -732,12 +732,12 @@ * $STATUS$ * R * $COMPLIANCE$ - * __dbStructFilter() es una extensión de Harbour. CA-Clipper tiene - * una función interna no documentada llamada __FLEDIT(), que hace lo - * mismo. El nuevo nombre da una mejor descripción de que es lo que - * la función hace. + * __dbStructFilter() es una extensión de Harbour. CA-Clipper tiene + * una función interna no documentada llamada __FLEDIT(), que hace lo + * mismo. El nuevo nombre da una mejor descripción de que es lo que + * la función hace. * $PLATFORMS$ - * Todas + * Todas * $FILES$ * El archivo de cabecera es dbstruct.ch * La librería es rdd @@ -745,4 +745,3 @@ * DBCREATE(),DBSTRUCT(),__dbCopyStruct(),__FLEDIT()* * $END$ */ - diff --git a/harbour/doc/es/harbext.txt b/harbour/doc/es/harbext.txt index 3977200058..1e339d2cf3 100644 --- a/harbour/doc/es/harbext.txt +++ b/harbour/doc/es/harbext.txt @@ -7,7 +7,7 @@ * www - http://www.harbour-project.org * * Copyright 2002 Alejandro de Gárate - * Traducción al Español de harbext.txt + * Traducción al Español de harbext.txt * * Vea doc/license.txt por los términos de la licencia. * @@ -15,11 +15,11 @@ /* $DOC$ * $FUNCNAME$ - * Extensiones a Harbour + * Extensiones a Harbour * $CATEGORY$ * Documentación * $ONELINER$ - * Extensiones a Harbour + * Extensiones a Harbour * $DESCRIPTION$ *Extensiones al lenguaje: *--------------------------- @@ -29,64 +29,64 @@ * Clipper solamente permite la creación de objetos desde unas pocas * clases estándar. * - * En Harbour, Ud. puede crear sus propias Clases completas con + * En Harbour, Ud. puede crear sus propias Clases completas con * Métodos, Variables de Instancia, Variables de Clase y Herencia. - * Aplicaciones enteras pueden ser designadas y codificadas en un + * Aplicaciones enteras pueden ser designadas y codificadas en un * enfoque Orientado a Objetos. - * - * + * + * ** @() * * Retorna el puntero (la dirección) a la función. * - * El valor retornado no es útil a nivel de la programación de la - * aplicación pero es usado a bajo nivel para implementar el código - * Orientado a Objeto (Internamente, el método de una Clase es una - * función estática, no hay un símbolo para ella, entonces esta es - * accedida mediante su dirección). - * + * El valor retornado no es útil a nivel de la programación de la + * aplicación pero es usado a bajo nivel para implementar el código + * Orientado a Objeto (Internamente, el método de una Clase es una + * función estática, no hay un símbolo para ella, entonces esta es + * accedida mediante su dirección). + * * ** Clase TGetList * * Soporte Orientado a Objetos para el manejo de GetList. - * + * * ** ProcName() soporte para el nombre de Métodos de las Clases. * * Los Métodos de Clases pueden ser recuperados de la pila de llamada. * - * + * ** Memory() tiene nuevos valores de retorno. * - * Vea hbmemory.ch - * + * Vea hbmemory.ch + * * ** TRANSFORM() --> Agregado de nueva función para el formateo de cadenas: * * @0 Hace el pad con ceros una cadena numérica. - * + * * ** STOD() --> dDate * - * Nueva función que convierte una cadena en el formato yyyymmdd a - * valor de fecha (date). - * + * Nueva función que convierte una cadena en el formato yyyymmdd a + * valor de fecha (date). + * * ** Declaración STRONG TYPE Opcional en tiempo de compilación (y advertencias - * en tiempo de compilación de TYPE MISMATCH) + * en tiempo de compilación de TYPE MISMATCH) * - * Example: LOCAL/STATIC Variable AS ... + * Example: LOCAL/STATIC Variable AS ... * * ** El depurador de Harbour provee de nuevas clases interesantes: * - * - La Clase TDbWindow podría ser la fundación de una ventana de + * - La Clase TDbWindow podría ser la fundación de una ventana de * visualización multiplatforma. * * - La Clase TForm * - * - La Clase TDbMenu implementa ambos menúes desplegables y - * (pulldown & popup) + * - La Clase TDbMenu implementa ambos menúes desplegables y + * (pulldown & popup) * * *Funcionalidad mejorada de la RTL: @@ -94,21 +94,20 @@ * *- DIRECTORY( , , ) * - * El tercer parámetro es un parámetro de Harbour (opcional) e indica que - * en aquellas plataformas que soportan nombres largos de archivo, Ud. + * El tercer parámetro es un parámetro de Harbour (opcional) e indica que + * en aquellas plataformas que soportan nombres largos de archivo, Ud. * solicita lo que podría considerarse el equivalente al nombre 8.3 - * Podría afectar ADIR() y DIR si ellas fueron modificadas para tomar - * ventaja de esto. Esta retornará nombres largos si el sistena operativo + * Podría afectar ADIR() y DIR si ellas fueron modificadas para tomar + * ventaja de esto. Esta retornará nombres largos si el sistena operativo * lo soporta. * * *- HB_DISKSPACE( , ) * - * El segundo parámetro es un parámetro de Harbour (opcional) e indica + * El segundo parámetro es un parámetro de Harbour (opcional) e indica * el tipo de información del disco que esta siendo requerida. * vea en ../doc/es/diskspac.txt para mayor información. * * $END$ */ - diff --git a/harbour/doc/es/idle.txt b/harbour/doc/es/idle.txt index 230f650eff..19c228ebb1 100644 --- a/harbour/doc/es/idle.txt +++ b/harbour/doc/es/idle.txt @@ -7,12 +7,12 @@ * www - http://www.harbour-project.org * * Copyright 2000 Brian Hays - * Documentación en Inglés de: + * Documentación en Inglés de: * Readme for Idle state, HB_IDLEADD(), HB_IDLEDEL() * HB_IDLESTATE(), hb_idleState() * * Copyright 2000 Alejandro de Gárate - * Documentación en Español de: + * Documentación en Español de: * Leame para Estado Inactivo, HB_IDLEADD(), HB_IDLEDEL() * HB_IDLESTATE(), hb_idleState() * @@ -32,14 +32,14 @@ * El estado de espera ó inactivo es el estado de la máquina virtual de * Harbour cuando esta espera por una acción del usuario a través del * teclado ó el mouse. El estado inactivo ocurre actualmente durante - * las llamadas a INKEY(). Todas las funciones que no usen la función - * INKEY() pueden señalizar el estado inactivo con una llamada a la - * función Harbour HB_IDLESTATE() ó hb_idleState() a nivel de lenguaje + * las llamadas a INKEY(). Todas las funciones que no usen la función + * INKEY() pueden señalizar el estado inactivo con una llamada a la + * función Harbour HB_IDLESTATE() ó hb_idleState() a nivel de lenguaje * C. * - * Durante los estado de espera, la máquina virtual llama al recolector + * Durante los estado de espera, la máquina virtual llama al recolector * de memoria y este puede llamar a acciones definidas por el usuario - * (tareas en segundo plano ó background). Este también libera porciones + * (tareas en segundo plano ó background). Este también libera porciones * del tiempo de la CPU para algunas plataformas deficientes que no son * lo suficientemente inteligentes (Windows NT). * @@ -47,10 +47,10 @@ * HB_IDLEADD() y HB_IDLEDEL(). * * Para llamar directamente a acciones en segundo plano vea la función: - * HB_IDLESTATE(). + * HB_IDLESTATE(). * * Para indicar el estado inactivo desde código en lenguaje C vea la - * hb_idleState() en la API, + * hb_idleState() en la API, * $SEEALSO$ * HB_IDLEADD(),HB_IDLEDEL() * $END$ @@ -67,11 +67,11 @@ * $SYNTAX$ * HB_IDLEADD( ) --> nHandle * $ARGUMENTS$ - * es un bloque de código que será ejecutado durante los - * estados de espera, No hay argumentos pasados a este bloque de código - * durante la evaluación. + * es un bloque de código que será ejecutado durante los + * estados de espera, No hay argumentos pasados a este bloque de código + * durante la evaluación. * $RETURNS$ - * El manejador (un valor entero) que identifica la tarea. + * El manejador (un valor entero) que identifica la tarea. * Este manejador puede ser usado para eliminar la tarea. * $DESCRIPTION$ * HB_IDLEADD() agrega el pasado bloque de código a las lista de tareas @@ -110,11 +110,11 @@ * Retorna igual a NIL si un manejador no válido es pasado * $DESCRIPTION$ * La función HB_IDLEDEL() remueve la acción asociada con el identi- - * ficador pasado desde la lista de tareas en segundo plano. - * El identificador debería ser el valor retornado por la llamada - * previa a la función HB_IDLEADD(). + * ficador pasado desde la lista de tareas en segundo plano. + * El identificador debería ser el valor retornado por la llamada + * previa a la función HB_IDLEADD(). * Si la tarea especificada está definida, entonces el codeblock es - * retornado, de otro modo el valor NIL es retornado. + * retornado, de otro modo el valor NIL es retornado. * $EXAMPLES$ * nTarea := HB_IDLEADD( {|| SayTime()} ) * INKEY(10) @@ -122,7 +122,7 @@ * $STATUS$ * R * $COMPLIANCE$ - * Extensión de Harbour + * Extensión de Harbour * $PLATFORMS$ * Todas * $FILES$ @@ -147,11 +147,11 @@ * $RETURNS$ * NIL * $DESCRIPTION$ - * La función HB_IDLESTATE() solicita la recolección de memoria sin - * uso y ejecuta una única tarea definida por el bloque de código - * pasado con la función HB_IDLEADD(). Cada llamada a esta función - * evalúa una tarea diferente en el orden de la creación de tareas. - * No hay argumentos pasados durante la evaluación del bloque de + * La función HB_IDLESTATE() solicita la recolección de memoria sin + * uso y ejecuta una única tarea definida por el bloque de código + * pasado con la función HB_IDLEADD(). Cada llamada a esta función + * evalúa una tarea diferente en el orden de la creación de tareas. + * No hay argumentos pasados durante la evaluación del bloque de * código. * Esta función puede ser llamada con seguridad, aún si no hay tareas * definidas en segundo plano. @@ -196,13 +196,13 @@ * Nada. * $DESCRIPTION$ * La función hb_idleState() es una función en lenguaje C que solicita - * la recolección de memoria sin uso y ejecuta una sola tarea en - * segundo plano, definida por el bloque de código pasado con la - * función HB_IDLEADD(). Esta también libera porciones de tiempo de - * CPU para aquellas plataformas que lo requieran. + * la recolección de memoria sin uso y ejecuta una sola tarea en + * segundo plano, definida por el bloque de código pasado con la + * función HB_IDLEADD(). Esta también libera porciones de tiempo de + * CPU para aquellas plataformas que lo requieran. * - * Cada llamda a esta función evalúa una tarea diferente en el orden - * de la creación de tareas. No hay argumentos pasados durante la + * Cada llamda a esta función evalúa una tarea diferente en el orden + * de la creación de tareas. No hay argumentos pasados durante la * evaluación del bloque de código. * * Esta función puede ser llamada con seguridad, aún si no hay tareas diff --git a/harbour/doc/es/tracing.txt b/harbour/doc/es/tracing.txt index 0f52891709..dccc12d591 100644 --- a/harbour/doc/es/tracing.txt +++ b/harbour/doc/es/tracing.txt @@ -15,8 +15,8 @@ * Vea doc/license.txt por los términos de la licencia. * */ - - + + INTRODUCCION AL SEGUIMIENTO DE LA EJECUCIÓN (rastrear) ====================================================== @@ -26,20 +26,20 @@ Este archivo explica como habilitar el seguimiento en Harbour. SEGUIMIENTO =========== -Harbour implementa el seguimiento al agregar llamadas a la siguiente +Harbour implementa el seguimiento al agregar llamadas a la siguiente macro en código C: HB_TRACE(level, ("parametros estilo printf", arg1, arg2)); -El nivel epecificado por la llamada a HB_TRACE afecta a Harbour en +El nivel epecificado por la llamada a HB_TRACE afecta a Harbour en dos formas: tiempo de compilación y tiempo de ejecución. TIEMPO DE COMPILACION ===================== -En tiempo de compilación, la macro chequea cuando la constante del -preprocesador HB_TR_LEVEL es establecida a alguno de los siguientes +En tiempo de compilación, la macro chequea cuando la constante del +preprocesador HB_TR_LEVEL es establecida a alguno de los siguientes valores: #define HB_TR_ALWAYS 0 @@ -50,20 +50,20 @@ valores: #define HB_TR_DEBUG 5 Si no es establecida a alguna de estas, la macro es seteada al valor -HB_TR_DEFAULT, la cual está actualmente establecida (en hbtrace.h) a +HB_TR_DEFAULT, la cual está actualmente establecida (en hbtrace.h) a HB_TR_WARNING. -Cuando el usuario explícitamente establece HB_TR_LEVEL ó este es -establecido por el compilador, sus efectos son como sigue: cualquier -llamada en el código con un nivel mayor que HB_TR_LEVEL son borradas -del código; estas llamadas simplemente desaparecen, y no hay efecto en +Cuando el usuario explícitamente establece HB_TR_LEVEL ó este es +establecido por el compilador, sus efectos son como sigue: cualquier +llamada en el código con un nivel mayor que HB_TR_LEVEL son borradas +del código; estas llamadas simplemente desaparecen, y no hay efecto en la perfomance del código después de eso. TIEMPO DE EJECUCIÓN =================== -En tiempo de ejecución, el usuario puede establecer la variable de +En tiempo de ejecución, el usuario puede establecer la variable de entorno HB_TR_LEVEL a una de: HB_TR_ALWAYS @@ -73,8 +73,8 @@ entorno HB_TR_LEVEL a una de: HB_TR_INFO HB_TR_DEBUG -con el siguiente efecto: cualquiera de las llamadas a HB_TRACE que -fueron dejadas por el compilador y que tenga un nivel inferior ó igual +con el siguiente efecto: cualquiera de las llamadas a HB_TRACE que +fueron dejadas por el compilador y que tenga un nivel inferior ó igual a HB_TR_LEVEL imprimirá sus argumentos a la salida stderr (pantalla). @@ -82,71 +82,71 @@ EJEMPLOS ======== HB_TR_LEVEL HB_TR_LEVEL Descripción -compilación ejecución +compilación ejecución ---------------------------------------------------------------------- -HB_TR_INFO HB_TR_ERROR Todas las llamadas con niveles HB_DEBUG - son eliminadas del código, así ellas no - tienen efecto en la perfomance; solamente - llamadas con niveles de HB_TR_ERROR, +HB_TR_INFO HB_TR_ERROR Todas las llamadas con niveles HB_DEBUG + son eliminadas del código, así ellas no + tienen efecto en la perfomance; solamente + llamadas con niveles de HB_TR_ERROR, HB_TR_FATAL y HB_TR_ALWAYS son impresas. HB_TR_WARNING HB_TR_INFO Todas las llamadaa con niveles HB_INFO y - HB_DEBUG son eliminadas del código, así - ellas no tienen efecto en la perfomance; - solamente llamadas con niveles de - HB_TR_ERROR, HB_TR_FATAL y HB_TR_ALWAYS - son impresas. Note como estableciendo - HB_TR_INFO en tiempo de ejecución no - tiene ningún efecto, porque el código fué + HB_DEBUG son eliminadas del código, así + ellas no tienen efecto en la perfomance; + solamente llamadas con niveles de + HB_TR_ERROR, HB_TR_FATAL y HB_TR_ALWAYS + son impresas. Note como estableciendo + HB_TR_INFO en tiempo de ejecución no + tiene ningún efecto, porque el código fué compilado con un menor nivel de rastreo. -Por ejemplo, Yo compilo Harbour en WinNT con gcc (MINGW32), así +Por ejemplo, Yo compilo Harbour en WinNT con gcc (MINGW32), así usualmente establezco la variable de entorno C_USR a algo así: export C_USR="-DHARBOUR_USE_WIN_GTAPI -DHB_TR_LEVEL=HB_TR_INFO" -y me aseguro que tengo todo el seguimiento para los niveles INFO, -WARNING, ERROR, FATAL y ALWAYS. Si obtengo demasiada información, +y me aseguro que tengo todo el seguimiento para los niveles INFO, +WARNING, ERROR, FATAL y ALWAYS. Si obtengo demasiada información, en tiempo de ejecución, yo puedo cambiar la variable de entorno a: export HB_TR_LEVEL=HB_TR_WARNING -y mantener alejado todo el seguimiento del nivel INFO. En este caso -todas las llamadas a la función de seguimiento para el nivel INFO +y mantener alejado todo el seguimiento del nivel INFO. En este caso +todas las llamadas a la función de seguimiento para el nivel INFO serán hechas de todas formas, así que habrá un pérdida de perfomance. USO === -Cuando Harbour es compilado / ejecutado con algún nivel de seguimiento -y, entonces usado para compilar una aplicación regular de Harbour, la +Cuando Harbour es compilado / ejecutado con algún nivel de seguimiento +y, entonces usado para compilar una aplicación regular de Harbour, la aplicación producirá MONTONES de información a la salida stderr. -Si Ud. está usando un sensible shell de comando (como ser bash) Ud. +Si Ud. está usando un sensible shell de comando (como ser bash) Ud. puede redirigir la salida stderr a un archivo como en: - + mi_aplic >rastro.txt REDIRECCION =========== -La salida generada mientras se efectúa el seguimiento, va a stderr por -defecto. Ud. puede controlar esto en tiempo de ejecución al establecer -la variable de entorno HB_TR_OUTPUT al nombre del archivo donde Ud. -podría querer que la salida de seguimiento sea dirigida. Si hay algún -problema abriendo el archivo para escritura, la salida se revierte a +La salida generada mientras se efectúa el seguimiento, va a stderr por +defecto. Ud. puede controlar esto en tiempo de ejecución al establecer +la variable de entorno HB_TR_OUTPUT al nombre del archivo donde Ud. +podría querer que la salida de seguimiento sea dirigida. Si hay algún +problema abriendo el archivo para escritura, la salida se revierte a stderr. RASTREANDO EL PREPROCESADOR Y EL COMPILADOR =========================================== -Usualmente, Ud, no deseará habilitar el seguimiento en el preprocesador -y en el compilador; de otra menera Ud. verá la salida de seguimiento -mientras compila a Harbour mismo. Si Ud. REALMENTE quiere habilitar el -seguimiento en el pre-procesador y/o el compilador, Ud. debe definir -en adición a como se describe arriba, la siguiente variable, y entonces +Usualmente, Ud, no deseará habilitar el seguimiento en el preprocesador +y en el compilador; de otra menera Ud. verá la salida de seguimiento +mientras compila a Harbour mismo. Si Ud. REALMENTE quiere habilitar el +seguimiento en el pre-procesador y/o el compilador, Ud. debe definir +en adición a como se describe arriba, la siguiente variable, y entonces recompilar el preprocesador / compilador: HB_TRACE_UTILS @@ -157,18 +157,18 @@ El valor no tiene ninguna importancia. SEGUIMIENTO Y EJECUCION ======================= -Es también posible habilitar y deshabilitar el seguimiento en tiempo -de ejecución y averiguar y establecer el nivel de seguimiento. Desde +Es también posible habilitar y deshabilitar el seguimiento en tiempo +de ejecución y averiguar y establecer el nivel de seguimiento. Desde código C: -* Para averiguar el estado actual de seguimiento, y opcionalmente - cambiar el estado actual a un valor dado (el cual debería estar - en el rango [0,1], de otra manera, el estado actual permanece sin +* Para averiguar el estado actual de seguimiento, y opcionalmente + cambiar el estado actual a un valor dado (el cual debería estar + en el rango [0,1], de otra manera, el estado actual permanece sin cambios): hb_tracestate( estado ); - Por lo tanto, para sólo averiguar el estado actual, Ud. puede llamar + Por lo tanto, para sólo averiguar el estado actual, Ud. puede llamar en forma segura: estado_actual = hb_tracestate(-1); @@ -184,31 +184,22 @@ c hb_tracestate(1); -* Para averiguar el nivel actual de seguimiento, y opcionalemente - cambiar el nivel actual a un valor dado (cual debería estar en el - rango [0,5], de otra manera, el estado actual permanece sin cambios): +* Para averiguar el nivel actual de seguimiento, y opcionalemente + cambiar el nivel actual a un valor dado (cual debería estar en el + rango [0,5], de otra manera, el estado actual permanece sin cambios): hb_tracelevel( nivel ); - Por lo tanto, para sólo averiguar el nivel actual, Ud. puede llamar + Por lo tanto, para sólo averiguar el nivel actual, Ud. puede llamar en forma segura: nivel_actual = hb_tracelevel(-1); - - Hay funciones para ser llamadas desde código Clipper: (en realidad desde Harbour) current_state := HB_TRACESTATE( [new_state] ) current_level := HB_TRACELEVEL( [new_level] ) - - - - - - - diff --git a/harbour/doc/gmake.txt b/harbour/doc/gmake.txt index c074203fa3..2ab3670f56 100644 --- a/harbour/doc/gmake.txt +++ b/harbour/doc/gmake.txt @@ -192,9 +192,9 @@ For GCC on Linux: In which case you'll also need to export HB_SCREEN_LIB with the name of the appropriate screen library, if it doesn't match the default value in config/linux/gcc.cf. - 2) If you want to take advantage of compiler cache programs - (such as http://ccaache.samba.org), you may set environment - variable HB_CCACHE with the value containing the name of program. + 2) If you want to take advantage of compiler cache programs + (such as http://ccaache.samba.org), you may set environment + variable HB_CCACHE with the value containing the name of program. For GCC on OS/2 for VIO mode: Note: You must point C_INCLUDE_PATH to the EMX include directory and @@ -240,8 +240,8 @@ For Watcom C/C++ 10.x (default Makefile creates DOS4G extender executables) Note: It is possible that you will have to increase the space reserved for DOS environment variables in order to successfuly run make utility (Add for example: - SHELL=C:\COMMAND.COM C:\ E=2048 /P - to your CONFIG.SYS ) + SHELL=C:\COMMAND.COM C:\ E=2048 /P + to your CONFIG.SYS ) If you issue a "make install", it will try to install your header, executable and library files into directories given by @@ -293,4 +293,3 @@ pass parameters to the program. For example, 'build readfile harbour.ini' will rebuild the readfile.prg program and run it with 'harbour.ini' as a command line parameter. - diff --git a/harbour/doc/transfrm.txt b/harbour/doc/transfrm.txt index 33d9847a86..12c73b9967 100644 --- a/harbour/doc/transfrm.txt +++ b/harbour/doc/transfrm.txt @@ -65,11 +65,11 @@ Uses SET CENTURY The following functions mean something : @E Use British date format - /* QUESTION : - Clipper appears to reverse the MM and DD parts of the - date, regardless of SET DATE FORMAT, because if the - date format is British, using @E displays the date in - American. Harbour always treats @E as British. - - So is Harbour's behaviour a bug fix or a bug? - */ + /* QUESTION : + Clipper appears to reverse the MM and DD parts of the + date, regardless of SET DATE FORMAT, because if the + date format is British, using @E displays the date in + American. Harbour always treats @E as British. + + So is Harbour's behaviour a bug fix or a bug? + */