diff --git a/harbour/doc/en/array.txt b/harbour/doc/en/array.txt index 7d1edfabd6..4ff162720c 100644 --- a/harbour/doc/en/array.txt +++ b/harbour/doc/en/array.txt @@ -21,7 +21,7 @@ * $FUNCNAME$ * ARRAY() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Create an uninitialized array of specified length * $SYNTAX$ @@ -63,7 +63,7 @@ * $FUNCNAME$ * AADD() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Dynamically add an element to an array * $SYNTAX$ @@ -101,7 +101,7 @@ * $FUNCNAME$ * ASIZE() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Adjust the size of an array * $SYNTAX$ @@ -140,7 +140,7 @@ * $FUNCNAME$ * ATAIL() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Returns the rightmost element of an array * $SYNTAX$ @@ -171,7 +171,7 @@ * $FUNCNAME$ * AINS() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Insert a NIL value at an array subscript position. * $SYNTAX$ @@ -211,7 +211,7 @@ * $FUNCNAME$ * ADEL() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Delete an element form an array. * $SYNTAX$ @@ -250,7 +250,7 @@ * $FUNCNAME$ * AFILL() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Fill an array with a specified value * $SYNTAX$ @@ -296,7 +296,7 @@ * $FUNCNAME$ * ASCAN() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Scan array elements for a specified condition * $SYNTAX$ @@ -349,7 +349,7 @@ * $FUNCNAME$ * AEVAL() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Evaluated the subscript element of an array * $SYNTAX$ @@ -394,7 +394,7 @@ * $FUNCNAME$ * ACOPY() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Copy elements from one array to another * $SYNTAX$ @@ -457,7 +457,7 @@ * $FUNCNAME$ * ACLONE() * $CATEGORY$ - * ARRAY + * Array * $ONELINER$ * Duplicate a multidimensional array * $SYNTAX$ diff --git a/harbour/doc/en/browse.txt b/harbour/doc/en/browse.txt index 39095da5f2..108403c8e6 100644 --- a/harbour/doc/en/browse.txt +++ b/harbour/doc/en/browse.txt @@ -105,8 +105,8 @@ * database record. * Following are active keys that handled by DBEDIT(): - * --------------------------------------------------- - + * --------------------------------------------------- + * * * Key Meaning * @@ -134,14 +134,15 @@ * 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 * @@ -151,12 +152,13 @@ * 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. - + * DBEDIT() what to do next. + * * User function return codes: - * --------------------------- - + * --------------------------- + * * * Dbedit.ch Value Meaning * @@ -164,6 +166,7 @@ * 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. diff --git a/harbour/doc/en/command.txt b/harbour/doc/en/command.txt index 3c4c79d782..6d00eaae49 100644 --- a/harbour/doc/en/command.txt +++ b/harbour/doc/en/command.txt @@ -26,7 +26,7 @@ * Name of the class to define. By tradition, Harbour * classes start with "T" to avoid collisions with user- * created classes. - + * * The Parent class to use for inheritance * $DESCRIPTION$ * CLASS creates a class from which you can create objects. @@ -83,13 +83,24 @@ * Define a DATA instance variable for the objects of a class * $SYNTAX$ * DATA [,] [ AS ] [ INIT ] + * [ EXPORTED] [PROTECTED] [HIDDEN] [ READONLY] * $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 + * Optional initial value when creating a new object + * + * EXPORTED This clause tell that this data is visible in where + * was defined and all subclasses. + * + * PROTECTED This clause tell that the data is visible only where is + * defined + * + * HIDDEN This clause say that the data is only visible on the + * class that was defined,and is not inherit by the + * subclasses. * $DESCRIPTION$ * DATA elements can also be thought of as the "properties" of an * object. They can be of any data type, including codeblock. @@ -122,7 +133,6 @@ * METHOD New() // Constructor * * ENDCLASS - * $STATUS$ * R * $COMPLIANCE$ diff --git a/harbour/doc/en/lang.txt b/harbour/doc/en/lang.txt index 114517f386..4614305aba 100644 --- a/harbour/doc/en/lang.txt +++ b/harbour/doc/en/lang.txt @@ -37,6 +37,7 @@ * EN English 437 * FR French 850 * GL Galician 850 + * DE German 850 * HE862 Hebrew 862 * HEWIN Hebrew 1255 * HU852 Hungarian 852 diff --git a/harbour/doc/en/nation.txt b/harbour/doc/en/nation.txt index f2cd8d2ff8..fed1946862 100644 --- a/harbour/doc/en/nation.txt +++ b/harbour/doc/en/nation.txt @@ -19,7 +19,7 @@ * $FUNCNAME$ * ISAFFIRM() * $CATEGORY$ - * NATION + * Nation * $ONELINER$ * Checks if passed char is an affirmation char * $SYNTAX$ @@ -53,7 +53,7 @@ * $FUNCNAME$ * ISNEGATIVE() * $CATEGORY$ - * NATION + * Nation * $ONELINER$ * Checks if passed char is a negation char. * $SYNTAX$ @@ -87,7 +87,7 @@ * $FUNCNAME$ * NATIONMSG() * $CATEGORY$ - * NATION + * Nation * $ONELINER$ * Returns international strings messages. * $SYNTAX$ diff --git a/harbour/doc/en/readme.txt b/harbour/doc/en/readme.txt index f656d3977c..331f92f1e1 100644 --- a/harbour/doc/en/readme.txt +++ b/harbour/doc/en/readme.txt @@ -15,7 +15,7 @@ * * ************************************************************************ * * This file contains information on obtaining, installing, and using * - * * Harbour. Please read it *completely* before asking for help. * + * * Harbour. Please read it *completely* before asking for help. * * ************************************************************************ * Harbour is a free implementation of an xBase language compiler. It is diff --git a/harbour/doc/en/string.txt b/harbour/doc/en/string.txt index 006c853558..5a3007e0fd 100644 --- a/harbour/doc/en/string.txt +++ b/harbour/doc/en/string.txt @@ -34,6 +34,9 @@ * RTRIM() Documentation * SPACE() Documentation * REPLICATE() Documentation + * VAL() Documentation + * TRANSFORM() Documentation + * STRTRAN() Documentation * See doc/license.txt for licensing terms. * */ @@ -472,7 +475,7 @@ * $FILES$ * Library is rtl * $SEEALSO$ - * STRZERO() + * STRZERO(),TRANSFORM(),VAL() * $END$ */ @@ -1274,3 +1277,182 @@ * 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-Clipper 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 + * ? StrTran("Harbour Power The Future of xBase"," "," ",,2) // Harbour Power The future of xBase + * $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$ + * An 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$ + */ diff --git a/harbour/doc/genhtm.lnk b/harbour/doc/genhtm.lnk index 76319796ed..e264d106ae 100644 --- a/harbour/doc/genhtm.lnk +++ b/harbour/doc/genhtm.lnk @@ -1,6 +1,6 @@ -!name: Harbour Version 0.34 (c) reference Guide -!credits: Harbour Version 0.34 (c) http://www.harbour-project.org - 06/04/2000 build By Luiz Rafael Culik +!name: Harbour Version %HB_VERSION% (c) reference Guide +!credits: Harbour Version %HB_VERSION% (c) http://www.harbour-project.org + %HB_BLDDATE% build By Luiz Rafael Culik Functions Documented by: Chen Kedem, Luiz Rafael Culik,Brian Hays diff --git a/harbour/doc/genhtm.rsp b/harbour/doc/genhtm.rsp index 4b0916ba28..c9462df0a9 100644 --- a/harbour/doc/genhtm.rsp +++ b/harbour/doc/genhtm.rsp @@ -36,3 +36,6 @@ en\gnulice.txt en\compiler.txt en\lang.txt en\setmode.txt +en\eval.txt +en\sayget.txt +en\strotype.txt diff --git a/harbour/doc/whatsnew.txt b/harbour/doc/whatsnew.txt index ef1c2457d9..a1511e7d95 100644 --- a/harbour/doc/whatsnew.txt +++ b/harbour/doc/whatsnew.txt @@ -11,7 +11,7 @@ Version 0.34 Build 34 (2000-06-02) - MEMOEDIT support started - CONTRIBs better separated from core Harbour (TOOLS moved there) - Simplified and enhanced base for multiplatform coding -- Language API (link/compile time language module selection) +- Language API (link/compile time language modul selection) - Several small optimizations, enhancements and fixes (compiler, macro, GT, inkey, make and build systems, more strict compiler warnings) - Compiler pcode size optimizations (new compact pcode versions added and diff --git a/harbour/utils/hbdoc/genchm.prg b/harbour/utils/hbdoc/genchm.prg index 5ab7264f67..5c84bad1ff 100644 --- a/harbour/utils/hbdoc/genchm.prg +++ b/harbour/utils/hbdoc/genchm.prg @@ -1206,7 +1206,7 @@ FUNCTION ProcChmTable( cBuffer, nNum ) cBuffer := STRTRAN( cBuffer, ">", ">" ) cItem := SUBSTR( cBuffer, 1, AT( SPACE( 3 ), cBuffer ) - 1 ) - cBuffer := ALLTRIM( STRTRAN( cBuffer, cItem, "" ) ) + cBuffer := ALLTRIM( STRTRAN( cBuffer, cItem, "" ),,1 ) IF nNum == 2 cItem2 := SUBSTR( cBuffer, 1 ) ELSE diff --git a/harbour/utils/hbdoc/genhtm.prg b/harbour/utils/hbdoc/genhtm.prg index 47f021b340..d4a7d6fb2f 100644 --- a/harbour/utils/hbdoc/genhtm.prg +++ b/harbour/utils/hbdoc/genhtm.prg @@ -1208,7 +1208,7 @@ FUNCTION ProchtmTable( cBuffer, nNum ) cBuffer := STRTRAN( cBuffer, ">", ">" ) cItem := SUBSTR( cBuffer, 1, AT( SPACE( 3 ), cBuffer ) - 1 ) - cBuffer := ALLTRIM( STRTRAN( cBuffer, cItem, "" ) ) + cBuffer := ALLTRIM( STRTRAN( cBuffer, cItem, "" ,,1) ) IF nNum == 2 cItem2 := SUBSTR( cBuffer, 1 ) ELSE diff --git a/harbour/utils/hbdoc/genng.prg b/harbour/utils/hbdoc/genng.prg index 53206e9b2a..e1b542690c 100644 --- a/harbour/utils/hbdoc/genng.prg +++ b/harbour/utils/hbdoc/genng.prg @@ -1009,7 +1009,7 @@ FUNCTION GenNgTable( oNgi ) nPos := maxelem( asitable ) nPos1 := ASCAN( aLenssItem, { | x | x == nPos } ) - oNgi:WritePar( "" ) +/* oNgi:WritePar( "" )*/ // nMax2:=checkcar(aTable,1)+1 nMax2 := alensfitem[ 1 ] nPos := maxelem( afitable ) @@ -1112,7 +1112,7 @@ FUNCTION GenNgTable( oNgi ) ENDIF ENDIF - oNgi:WritePar( "" ) +/* oNgi:WritePar( "" )*/ afiTable := {} asitable := {} atitable := {} @@ -1157,7 +1157,7 @@ FUNCTION ProcNgTable( cBuffer, nNum ) /* If !empty(cBuffer) cItem := SUBSTR( cBuffer, 1, AT( SPACE( 3 ), cBuffer ) - 1 ) - cBuffer := ALLTRIM( STRTRAN( cBuffer, cItem, "" ) ) + cBuffer := ALLTRIM( STRTRAN( cBuffer, cItem, "" ,,1) ) else citem:='' endif diff --git a/harbour/utils/hbdoc/genos2.prg b/harbour/utils/hbdoc/genos2.prg index 7ffd441b5e..759662f37c 100644 --- a/harbour/utils/hbdoc/genos2.prg +++ b/harbour/utils/hbdoc/genos2.prg @@ -888,7 +888,7 @@ FUNCTION ProcOs2Table( cBuffer , nNum ) cBuffer := STRTRAN( cBuffer, ">", ">." ) cItem := SUBSTR( cBuffer, 1, AT( SPACE( 3 ), cBuffer ) - 1 ) - cBuffer := ALLTRIM( STRTRAN( cBuffer, cItem, "" ) ) + cBuffer := ALLTRIM( STRTRAN( cBuffer, cItem, "" ,,1) ) IF nNum == 2 cItem2 := SUBSTR( cBuffer, 1 ) ELSE diff --git a/harbour/utils/hbdoc/html.prg b/harbour/utils/hbdoc/html.prg index 9b65fff704..dd3d6f4929 100644 --- a/harbour/utils/hbdoc/html.prg +++ b/harbour/utils/hbdoc/html.prg @@ -156,6 +156,7 @@ METHOD WriteLink( cLink, cName ) CLASS THTML IF cName != Nil cLink := cName ENDIF + cTemp := STRTRAN( cTemp, "@...", "" ) cTemp := STRTRAN( cTemp, " ", "" ) FWRITE( Self:nHandle, "
  • " + cLink + "
  • " + CRLF ) @@ -274,6 +275,7 @@ METHOD WriteChmLink( cLink, cName ) CLASS THTML IF cName != Nil cLink := cName ENDIF + cTemp := STRTRAN( cTemp, "@...", "" ) cTemp := STRTRAN( cTemp, " ", "" ) FWRITE( Self:nHandle, "" + cLink + "
    " + CRLF ) Return Self diff --git a/harbour/utils/hbdoc/os2.prg b/harbour/utils/hbdoc/os2.prg index fe1b8a4dd2..d32f2ace1b 100644 --- a/harbour/utils/hbdoc/os2.prg +++ b/harbour/utils/hbdoc/os2.prg @@ -250,6 +250,7 @@ METHOD WriteTitle( cTopic, cTitle ,cCategory) CLASS TOs2 LOCAL nPos LOCAL cWrite LOCAL nItem + Local lHead:=.F. LOCAL nrItem,nIItem LOCAL cRefCateg LOCAL cIndCateg @@ -266,12 +267,16 @@ METHOD WriteTitle( cTopic, cTitle ,cCategory) CLASS TOs2 If Self:ScanInd(cIndCateg)==0 niItem := ASCAN( Self:aIndRef, { | a | upper(a) == upper(cIndCateg )} ) FWRITE( Self:nHandle, ':h1 ' + ::aIndRef[niItem] + "."+ UPPER( cCategory ) + CRLF) + lHead := .T. ELSE // Just in case that nItem>0 so the Link is already referenced niItem := ASCAN( Self:aIndRef, { | a | upper(a) == upper(cIndCateg) } ) ENDIF - IF niItem>0 - FWRITE( Self:nHandle, ':h2 '+ 'id=' + ::aIndRef[niItem] +' res=' + ALLTRIM( STR( nItem ) ) + '.' + cTopic + CRLF ) - Endif + IF niItem>0 .AND. lHead + FWRITE( Self:nHandle, ':h2 '+ ' res=' + ALLTRIM( STR( nItem ) ) + '.' + cTopic + CRLF ) + elseIF niItem>0 .AND. !lHead + FWRITE( Self:nHandle, ':h2 id='+ ::aIndRef[niItem] + ' res=' + ALLTRIM( STR( nItem ) ) + '.' + cTopic + CRLF ) + Endif + lHead:=.F. If Self:ScanRef(cRefCateg)==0 nrItem := ASCAN( Self:aHeadRef, { | a | upper(a) == upper(cRefCateg )} ) FWRITE( Self:nHandle, ':i1 id=' + ::aHeadRef[nrItem] + "."+ UPPER( cCategory ) + CRLF)