diff --git a/harbour/source/rdd/dbcmd.c b/harbour/source/rdd/dbcmd.c index bd8c85f47e..bbf7fc77e2 100644 --- a/harbour/source/rdd/dbcmd.c +++ b/harbour/source/rdd/dbcmd.c @@ -1545,22 +1545,19 @@ HARBOUR HB_AFIELDS( void ) * $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.This function does not differ from the Clipper - * function DBF(), with is a strictly a compatibility function + * 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 + * USE Test + * select 0 + * qOut( IF(Alias()=="","No Name",Alias())) + * Test->(qOut(Alias()) + * qOut(Alias(1)) * - * select 0 - * qOut( IF(Alias()=="","No Name",Alias())) - * Test->(qOut(Alias()) - * qOut(Alias(1)) - * - * RETURN NIL + * RETURN NIL * $TESTS$ * $STATUS$ * R @@ -1720,7 +1717,7 @@ HARBOUR HB_DBEVAL( void ) * $CATEGORY$ * DATA BASE * $ONELINER$ - * Returns the alias name of a work area + * Alias name of a work area * $SYNTAX$ * Dbf() --> * $ARGUMENTS$ @@ -1728,9 +1725,8 @@ HARBOUR HB_DBEVAL( void ) * $RETURNS$ * Name of alias * $DESCRIPTION$ - * This function returns the same alias name of - * the currently selected work area. - * This function is the same as Alias() + * This function returns the same alias name ofthe currently selected work + * area. * $EXAMPLES$ * FUNCTION Main() * @@ -1746,7 +1742,7 @@ HARBOUR HB_DBEVAL( void ) * $STATUS$ * R * $COMPLIANCE$ - * ALIAS() is fully CA-Clipper compliant. + * DBF() is fully CA-Clipper compliant. * $SEEALSO$ * $END$ */ @@ -1789,12 +1785,11 @@ HARBOUR HB_DBF( void ) * $RETURNS$ * 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 + * 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 @@ -4297,55 +4292,32 @@ HARBOUR HB___DBZAP( void ) * $CATEGORY$ * Data Base * $ONELINER$ - * Return the deleted status of the current record + * Tests the record's deletion flag. * $SYNTAX$ * DELETED() --> lDeleted - * $ARGUMENTS$ - * + * $ARGUMENTS$ * $RETURNS$ - * DELETED() returns true (.T.) if the current record is marked for - * deletion; otherwise, it returns false (.F.). If there is no database - * file in USE in the current work area, DELETED() returns false (.F.). - * + * DELETED() return a logical true (.T.) or false (.F.). * $DESCRIPTION$ - * DELETED() is a database function that determines if the current record - * in the active work area is marked for deletion. Since each work area - * with an open database file can have a current record, each work area has - * its own DELETED() value. - * - * By default, DELETED() operates on the currently selected work area. It - * will operate on an unselected work area if you specify it as part of an - * aliased expression (see example below). - * - * In applications, DELETED() is generally used to query the deleted status - * as a part of record processing conditions, or to display the deleted - * status as a part of screens and reports. - * + * 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$ - * This example uses DELETED() in the current and in an - * unselected work area: - * - * USE Customer NEW - * - * USE Sales NEW - * ? DELETED() // Result: .F. - * DELETE - * ? DELETED() // Result: .T. - * ? Customer->(DELETED()) // Result: .F. - * - * This example uses DELETED() to display a record's deleted - * status in screens and reports: - * - * @ 1, 65 SAY IF(DELETED(), "Inactive", "Active") - * + * FUNCTION Main() + * USE Test New + * DBGOTO() + * DBDELETE() + * ? "Is Record Deleted",Test->(DELETED()) + * DBRECALL() + * USE + * RETURN NIL * $TESTS$ - * * $STATUS$ * R * $COMPLIANCE$ - * + * This function is CA-Clipper compliant * $SEEALSO$ - * + * DBDELETE() * $INCLUDE$ * * $END$ @@ -4366,7 +4338,7 @@ HARBOUR HB_DELETED( void ) * $CATEGORY$ * DATA BASE * $ONELINER$ - * Test for end-of-file condition + * Test for end-of-file condition. * $SYNTAX$ * EOF() --> * $ARGUMENTS$ @@ -4455,40 +4427,29 @@ HARBOUR HB_FCOUNT( void ) * $CATEGORY$ * Data Base * $ONELINER$ - * Obtains the value + * Obtains the value of a specified field * $SYNTAX$ * FIELDGET() --> ValueField * $ARGUMENTS$ - * is the ordinal position of the field in the record - * structure for the current work area. + * Is the numeric field position * $RETURNS$ - * FIELDGET() returns the value of the specified field. If does - * not correspond to the position of any field in the current database - * file, FIELDGET() returns NIL. + * FIELDGET() Any expression * $DESCRIPTION$ - * FIELDGET() is a database function that retrieves the value of a field - * using its position within the database file structure rather than its - * field name. Within generic database service functions this allows, - * among other things, the retrieval of field values without use of the - * macro operator. + * 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$ - * This example compares FIELDGET() to functionally equivalent - * code that uses the macro operator to retrieve the value of a field: - * - * LOCAL nField := 1, FName, FVal - * USE Customer NEW - * // - * // Using macro operator - * FName := FIELD( nField ) // Get field name - * FVal := &FName // Get field value - * // Using FIELDGET() - * FVal := FIELDGET( nField ) // Get field value + * FUNCTION Main() + * USE Test NEW + * ? Test->(FieldGet(1)) + * USE + * RETURN NIL * $TESTS$ - * * $STATUS$ * R * $COMPLIANCE$ - * + * This function is CA-Clipper Compliant. * $SEEALSO$ * FIELDPUT() * $INCLUDE$ @@ -4581,46 +4542,29 @@ HARBOUR HB_FIELDNAME( void ) * $CATEGORY$ * Data Base * $ONELINER$ - * Return the position of a field in a work area + * Return the ordinal position of a field. * $SYNTAX$ * FIELDPOS() --> nFieldPos * $ARGUMENTS$ - * is the name of a field in the current or specified work - * area. + * Name of a field. * $RETURNS$ - * FIELDPOS() returns the position of the specified field within the list - * of fields associated with the current or specified work area. If the - * current work area has no field with the specified name, FIELDPOS() - * returns zero. + * FIELDPOS() returns the ordinal position of the field. * $DESCRIPTION$ - * FIELDPOS() is a database function that is the inverse of the FIELDNAME() - * function. FIELDPOS() is most often used with the FIELDPUT() and - * FIELDGET() functions. - * - * FIELDPOS() return the names of fields in any unselected work area by - * referring to the function using an aliased expression. See the example - * below. + * 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$ - * This example demonstrates a typical specification of the - * FIELDPOS() function: - * - * USE Customer NEW - * ? FIELDPOS("Name") * * * * // Result: 1 - * ? FIELDGET(FIELDPOS("Name")) * * // Result: Kate - * - * This example uses FIELDPOS() to return the position of a - * specified field in a unselected work area: - * - * USE Customer NEW - * USE Invoices NEW - * ? Customer->(FIELDPOS("Name")) * // Result: 1 - * ? Customer->(FIELDGET(FIELDPOS("Name"))) // Result: Kate + * FUNCTION Main() + * USE Test NEW + * ? Test->(FIELDPOS("ID")) + * USE + * RETURN NIL * $TESTS$ - * * $STATUS$ * R * $COMPLIANCE$ - * + * This function is CA-Clipper compliant. * $SEEALSO$ * FIELDGET(),FIELDPUT() * $INCLUDE$ diff --git a/harbour/source/rtl/dummy.prg b/harbour/source/rtl/dummy.prg index 66d00bf8ed..76e1d3bf1e 100644 --- a/harbour/source/rtl/dummy.prg +++ b/harbour/source/rtl/dummy.prg @@ -79,5 +79,5 @@ FUNCTION __dbOpenSDF() ; RETURN NIL FUNCTION __dbTrans() ; RETURN NIL FUNCTION __dbTransRec() ; RETURN NIL -FUNCTION __TypeFile() ; RETURN NIL + diff --git a/harbour/source/rtl/environ.c b/harbour/source/rtl/environ.c index b962e2b151..c683a958b1 100644 --- a/harbour/source/rtl/environ.c +++ b/harbour/source/rtl/environ.c @@ -526,26 +526,27 @@ char * hb_version( USHORT uiMode ) /* $DOC$ * $FUNCNAME$ - * VERSION() + * VERSION() * $CATEGORY$ - * Environment + * Environment * $ONELINER$ - * Returns the HARBOUR Version or the Harbour/Compiler Version + * Returns the HARBOUR Version or the Harbour/Compiler Version * $SYNTAX$ - * VERSION([] --> + * VERSION([] --> * $ARGUMENTS$ - * [] Optional Parameter that toggle to the display - * of the C compiler version that HARBOUR was Build. Default is 0 + * [] Optional Parameter that toggle to the display + * of the C compiler version that HARBOUR was Build. Default is 0 * - * [] Returns + * [] Returns * 0 Harbour Version * 1 Harbour Version+C compiler Version * $RETURNS$ - * String contining the Harbour Version or the - * Harbour Version+C compiler Version when the parameter is defined + * String contining the Harbour Version or the + * Harbour Version+C compiler Version when the parameter is + * defined. * $DESCRIPTION$ - * This function returns the HARBOUR Version or the Harbour Version+C compiler Version - * used to create the Harbour runtime library + * This function returns the HARBOUR Version or the Harbour Version+C + * compiler Version used to create the Harbour runtime library * $EXAMPLES$ * ? QOUT(VERSION()) * ? OOUT(VERSION(1)) @@ -554,9 +555,9 @@ char * hb_version( USHORT uiMode ) * $STATUS$ * S * $COMPLIANCE$ - * This function isn't compatible with CA CLIPPER. - * CA Clipper only returns the Version of the Clipper Compiler - * Harbour returns the Harbour Version or the Harbour Version+C compiler Version + * This function isn't compatible with CA CLIPPER. + * CA Clipper only returns the Version of the Clipper Compiler + * Harbour returns the Harbour Version or the Harbour Version+C compiler Version * when the parameter is set to 1 * $PLATFORMS$ * diff --git a/harbour/source/rtl/set.c b/harbour/source/rtl/set.c index dc91ecb190..b4e2a9abe6 100644 --- a/harbour/source/rtl/set.c +++ b/harbour/source/rtl/set.c @@ -393,21 +393,19 @@ HARBOUR HB_SETCANCEL( void ) /* $DOC$ * $FUNCNAME$ - * __SETCENTURY() - * + * __SETCENTURY() * $CATEGORY$ - * Environment + * Environment * $ONELINER$ * Set the Current Century - * $SYNTAX$ - * __SETCENTURY([ | ] ) --> lPreviousValue + * __SETCENTURY([ | ] ) --> lPreviousValue * $ARGUMENTS$ - * optional or (not case sensitive) + * 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 + * Either the current or previous century setting as a logical value * $END$ */ @@ -496,13 +494,13 @@ HARBOUR HB___SETCENTURY( void ) /* $DOC$ * $FUNCNAME$ - * SET() + * SET() * $CATEGORY$ - * Environment + * Environment * $ONELINER$ * Changes or evaluated enviromental settings * $SYNTAX$ - * Set [, [, ] ] ) --> xPreviousSetting + * Set [, [, ] ] ) --> xPreviousSetting * $ARGUMENTS$ * * _SET_ALTERNATE | @@ -749,7 +747,7 @@ HARBOUR HB___SETCENTURY( void ) * to the last. When disabled, which is the default, there * is a hard stop at the first and last positions. * $RETURNS$ - * The current or previous setting + * The current or previous setting * $END$ */ diff --git a/harbour/source/rtl/strings.c b/harbour/source/rtl/strings.c index 6f5d500589..23c0d09ac1 100644 --- a/harbour/source/rtl/strings.c +++ b/harbour/source/rtl/strings.c @@ -723,7 +723,8 @@ HARBOUR HB_PADC( void ) * the first string . If the substring is not contained within * the second expression,the function will return 0. * $EXAMPLES$ - * QOUT( "at( 'cde', 'abcdefgfedcba' ) = '" + at( 'cde', 'abcsefgfedcba' ) + "'" ) + * QOUT( "at( 'cde', 'abcdefgfedcba' ) = '" +; + * at( 'cde', 'abcsefgfedcba' ) + "'" ) * $TESTS$ * $STATUS$ * R @@ -781,7 +782,8 @@ HARBOUR HB_AT( void ) * of to the left. If the function is unable to find any * occurence of in ,the value of the function will be 0. * $EXAMPLES$ - * QOUT( "rat( 'cde', 'abcdefgfedcba' ) = '" + rat( 'cde', 'abcsefgfedcba' ) + "'" ) + * QOUT( "rat( 'cde', 'abcdefgfedcba' ) = '" +; + * rat( 'cde', 'abcsefgfedcba' ) + "'" ) * $TESTS$ * * $STATUS$ @@ -1044,8 +1046,8 @@ HARBOUR HB_RIGHT( void ) * R * $COMPLIANCE$ * This functions is CA CLIPPER compatible with the execption that - * CA CLIPPER will generate an error if the passed string is >65519 bytes and - * Harbour depends of plataform. + * CA CLIPPER will generate an error if the passed string is >65519 bytes + * and Harbour depends of plataform. * $PLATFORMS$ * * $FILES$ diff --git a/harbour/source/rtl/tlabel.prg b/harbour/source/rtl/tlabel.prg index 1194261095..2136ca776e 100644 --- a/harbour/source/rtl/tlabel.prg +++ b/harbour/source/rtl/tlabel.prg @@ -456,3 +456,63 @@ STATIC FUNCTION ListAsArray( cList, cDelimiter ) RETURN aList // Return the array +/* $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 I lie + * Expression of a scoping condition + * WHILE condition + * FOR condition + * $RETURNS$ + * + * $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 + * $TESTS$ + * $STATUS$ + * R + * $COMPLIANCE$ + * This command is CA-Clipper compliant. + * $PLATFORMS$ + * $FILES$ + * $SEEALSO$ + * REPORT FORM + * $END$ + */ diff --git a/harbour/source/rtl/treport.prg b/harbour/source/rtl/treport.prg index 8bd8e3ddcc..736268767f 100644 --- a/harbour/source/rtl/treport.prg +++ b/harbour/source/rtl/treport.prg @@ -1284,3 +1284,80 @@ FUNCTION __ReportForm( cFRMName, lPrinter, cAltFile, lNoConsole, bFor, ; RETURN TReportForm():New(cFrmName,lPrinter,cAltFile,lNoConsole,bFor,bWhile,nNext,nRecord,; lRest,lPlain,cHeading,lBEject,lSummary) +/* $DOC$ + * $FUNCNAME$ + * REPORT FORM + * $CATEGORY$ + * Command + * $ONELINER$ + * Display a report + * $SYNTAX$ + * REPORT FORM [TO PRINTER] [TO FILE ] [] + * [WHILE ] [FOR ] [PLAIN |HEADING 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 tile 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 + * $TESTS$ + * $STATUS$ + * R + * $COMPLIANCE$ + * This Command is CA-Clipper compliant. + * $PLATFORMS$ + * ALL + * $FILES$ + * $SEEALSO$ + * LABEL FORM + * $END$ + */ diff --git a/harbour/source/rtl/typefile.prg b/harbour/source/rtl/typefile.prg new file mode 100644 index 0000000000..d412c8d5b6 --- /dev/null +++ b/harbour/source/rtl/typefile.prg @@ -0,0 +1,204 @@ +/* + * $Id: + */ + +/* + * Harbour Project source code: + * __Typefile() function + * + * Copyright 2000 Luiz Rafael Culik + * www - http://www.harbour-project.org + * + * 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 + * 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/). + * + */ + +#include 'common.ch' +#include 'error.ch' + +STATIC theHandle +#ifdef TEST +function main +type alpha.lnk +type x.lnk +return nil +#endif + +FUNCTION __TYPEFILE(cFile,lPrint) +LOCAL lEof := .F. +LOCAL cBuffer := "" +LOCAL Err +LOCAL nHandle +DEFAULT lPrint to .F. + +IF lPrint + SET DEVICE TO PRINTER + SET PRINTER ON + SET CONSOLE OFF +ENDIF + +IF cFile == NIL + err := ErrorNew() + err:severity := ES_ERROR + err:genCode := EG_OPEN + err:subSystem := "BASE" + err:SubCode := 2009 + err:Description := "Argument error: __TYPEFILE" + Eval(ErrorBlock(), err) +ENDIF + +nReadHandle := FT_FUSE(cFile) + +IF nReadHandle <0 + err := ErrorNew() + err:severity := ES_ERROR + err:genCode := EG_OPEN + err:subSystem := "BASE" + err:SubCode := 2011 + err:Description := "Open Error: " + cFile + err:OsCode := 2 + Eval(ErrorBlock(), err) +ENDIF +DO WHILE !lEof + cBuffer := TRIM(ReadLN( @lEof )) + ? cBuffer +ENDDO + +FT_FUSE() +IF lPrint + SET DEVICE TO SCREEN + SET PRINTER TO + SET CONSOLE ON +ENDIF + +RETURN NIL + +#define xReadBuffer 4096 + /**** +* FT_FUSE(cFile,nMode) ---> nHandle +* Open a File +*/ + +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +*+ STATIC FUNCTION ft_fuse() +*+ +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +STATIC FUNCTION ft_fuse( cFile, nMode ) + + IF nMode == nil + nMode := 2 + ENDIF + IF cFile == Nil + theHandle:close() + ENDIF + IF cFile <> Nil + IF nMode <> 0 + theHandle := TFileRead():new( cFile ):open( nMode ) + ELSE + theHandle := TFileRead():new( cFile ):open() + ENDIF + ENDIF +RETURN theHandle:nHan + +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +*+ STATIC FUNCTION ft_FEOF() +*+ +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +STATIC FUNCTION ft_FEOF() + + LOCAL lRETURN := theHandle:lEOF + +RETURN lRETURN + +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +*+ STATIC FUNCTION FReadLn() +*+ +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +STATIC FUNCTION FReadLn( nH, cLine ) + + // cline:= thehandle:readline() + // ENDIF + IF theHandle:MoreToRead() + cLine := theHandle:ReadLine() + ELSE + FSEEK( theHandle:nHan, 0, 0 ) + theHandle:lEOF := .f. + + cLine := theHandle:ReadLine() + ENDIF +RETURN cLine + +STATIC FUNCTION ReadLN( leof ) + + LOCAL cBuffer := "" + + cBuffer := FT_FREADLN() + FT_FSKIP( 1 ) + lEof := FT_FEOF() + +RETURN cBuffer +// End of ReadLN + +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +*+ STATIC FUNCTION FT_FReadLn() +*+ +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +STATIC FUNCTION FT_FReadLn() + + LOCAL cBuffer := '' + + cBuffer := FReadLn( theHandle:nHan, @cBuffer ) + +RETURN cBuffer + +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +*+ STATIC FUNCTION FT_FGotop() +*+ +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +STATIC FUNCTION FT_FGotop() + + FSEEK( theHandle:nHan, 0, 0 ) + +RETURN NIL + +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +*+ STATIC FUNCTION ft_fskip() +*+ +*+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 +*+ +STATIC FUNCTION ft_fskip( ) + +RETURN nil + + diff --git a/harbour/utils/hbdoc/alpha.lnk b/harbour/utils/hbdoc/alpha.lnk index b34ee16e9f..959f6461f9 100644 --- a/harbour/utils/hbdoc/alpha.lnk +++ b/harbour/utils/hbdoc/alpha.lnk @@ -1,13 +1,15 @@ -!name: Harbour build 31 reference Guide +!name: Harbour build 31a reference Guide !credits: Harbour (c) http://www.harbour-project.org 2000/01/18 build By Luiz Rafael Culik Functions Documented by: Chen Kedem, Luiz Rafael Culik !menu: Reference -Functions A-M funcam.ngo -Functions N-_ funcn_.ngo -Command comm.ngo +Functions A-M funcam.ngo +Functions N-_ funcn_.ngo +Command comm.ngo !menu: Harbour -Readme overview.ngo -License license.ngo - +Compiler Options Compil~1.ngo +GNU License gnulic~1.ngo +GNU License P2 gnulic~2.ngo +License license.ngo +Readme overview.ngo diff --git a/harbour/utils/hbdoc/genng.prg b/harbour/utils/hbdoc/genng.prg index 514582ea66..9e0ca23b16 100644 --- a/harbour/utils/hbdoc/genng.prg +++ b/harbour/utils/hbdoc/genng.prg @@ -48,7 +48,7 @@ #define LINELINE 14 #define ERRORLINE 20 #define LONGLINE 78 -#define LONGONELINE 66 +#define LONGONELINE 78 #define CRLF HB_OSNewLine() // The delimiter #define DELIM "$" // keyword delimiter @@ -162,7 +162,7 @@ FUNCTION ProcessiNg() // Read a line - cBuffer := TRIM( SUBSTR( ReadLN( @lEof ), nCommentLen ) ) + cBuffer := STRTRAN(TRIM( SUBSTR( ReadLN( @lEof ), nCommentLen ) ),space(5),Space(2)) nLineCnt ++ IF nLineCnt % 10 = 0 @ LINELINE, 33 SAY STR( nLineCnt, 5, 0 ) @@ -175,8 +175,8 @@ FUNCTION ProcessiNg() + " at line" + STR( nLinecnt, 5, 0 ),,,, aDirList[ i, F_NAME ] ) ENDIF lDoc := .T. - cBuffer := TRIM( SUBSTR( ReadLN( @lEof ), ; - nCommentLen ) ) + cBuffer := strtran(TRIM( SUBSTR( ReadLN( @lEof ), ; + nCommentLen ) ),space(5),space(3)) nLineCnt ++ cCategory := cFuncName := cSeeAlso := "" nMode := D_IGNORE @@ -302,7 +302,8 @@ FUNCTION ProcessiNg() nMode := D_ONELINE // Now start writing out what we know - oNgi:WriteTitle( PAD( cFuncName, 21 ) + cOneLine, cFuncName ) + + oNgi:WriteTitle( PAD( cFuncName, LEN( cFuncName )+2 ) + cOneLine, cFuncName ) oNgi:WritePar( cOneLine ) oNgi:WritePar( cBar ) // 4) all other stuff @@ -644,7 +645,11 @@ FUNCTION ProcNgiInput() ASORT( acfiles ) FOR x := 1 TO LEN( acfiles ) cFile := acfiles[ x ] - IF LEFT( cFile, AT( '.', cFile ) - 1 ) <> "LICENSE" .AND. LEFT( cFile, AT( '.', cFile ) - 1 ) <> "OVERVIEW" + IF upper(LEFT( cFile, AT( '.', cFile ) - 1 )) <> "LICENSE"; + .AND. upper(LEFT( cFile, AT( '.', cFile ) - 1 )) <> "OVERVIEW" ; + .AND. upper(LEFT( cFile, AT( '.', cFile ) - 1 )) <> "COMPILEROPTIONS" ; + .AND. upper(LEFT( cFile, AT( '.', cFile ) - 1 )) <> "GNULICENSE" ; + .AND. upper(LEFT( cFile, AT( '.', cFile ) - 1 )) <> "GNULICENSEPART2" @ INFILELINE, 33 SAY PAD( cfile, 47 ) @@ -709,14 +714,14 @@ FUNCTION ProcNgiAlso2( cSeealso ) nPos := AT( "()", xAlso[ hPos ] ) IF nPos > 0 AADD( aAlso, "funcam.ngo:" + ALLTRIM( xAlso[ hPos ] ) + ' ' ) - ELSEIF nPos = 0 .AND. xAlso[ hPos ] <> "LICENSE" .AND. xAlso[ hPos ] <> "OVERVIEW" .AND. !EMPTY( xAlso[ hPos ] ) + ELSEIF nPos = 0 .AND. UPPER(xAlso[ hPos ]) <> "LICENSE" .AND. UPPER(xAlso[ hPos ]) <> "OVERVIEW" .AND. !EMPTY( xAlso[ hPos ] ) AADD( aAlso, "Comm.ngo:" + ALLTRIM( xAlso[ hPos ] ) + ' ' ) ENDIF ELSE nPos := AT( "()", xAlso[ hPos ] ) IF nPos > 0 AADD( aAlso, "funcn_.ngo:" + ALLTRIM( xAlso[ hPos ] ) + ' ' ) - ELSEIF nPos = 0 .AND. xAlso[ hPos ] <> "LICENSE" .AND. xAlso[ hPos ] <> "OVERVIEW" .AND. !EMPTY( xAlso[ hPos ] ) + ELSEIF nPos = 0 .AND. UPPER(xAlso[ hPos ]) <> "LICENSE" .AND. UPPER(xAlso[ hPos ]) <> "OVERVIEW" .AND. !EMPTY( xAlso[ hPos ] ) AADD( aAlso, "Comm.ngo:" + ALLTRIM( xAlso[ hPos ] ) + ' ' ) ENDIF ENDIF diff --git a/harbour/utils/hbdoc/hrb.rsp b/harbour/utils/hbdoc/hrb.rsp index 03f2862f9d..7affe60064 100644 --- a/harbour/utils/hbdoc/hrb.rsp +++ b/harbour/utils/hbdoc/hrb.rsp @@ -79,9 +79,11 @@ ..\..\source\rtl\text.prg ..\..\source\rtl\tget.prg ..\..\source\rtl\tgetlist.prg +..\..\source\rtl\tlabel.prg ..\..\source\rtl\tone.c ..\..\source\rtl\trace.c ..\..\source\rtl\transfrm.c +..\..\source\rtl\treport.prg ..\..\source\rtl\type.c ..\..\source\rtl\valtype.c ..\..\source\rtl\wait.prg diff --git a/harbour/utils/hbdoc/hrbtools.rsp b/harbour/utils/hbdoc/hrbtools.rsp index 8c3f4ef900..20b4b307b8 100644 --- a/harbour/utils/hbdoc/hrbtools.rsp +++ b/harbour/utils/hbdoc/hrbtools.rsp @@ -79,9 +79,11 @@ ..\..\source\rtl\text.prg ..\..\source\rtl\tget.prg ..\..\source\rtl\tgetlist.prg +..\..\source\rtl\tlabel.prg ..\..\source\rtl\tone.c ..\..\source\rtl\trace.c ..\..\source\rtl\transfrm.c +..\..\source\rtl\treport.prg ..\..\source\rtl\type.c ..\..\source\rtl\valtype.c ..\..\source\rtl\wait.prg