See changelog 20000216 06:00

This commit is contained in:
Luiz Rafael Culik
2000-02-16 08:19:13 +00:00
parent 7ce7c25eec
commit ce93277ce4
12 changed files with 459 additions and 162 deletions

View File

@@ -1545,22 +1545,19 @@ HARBOUR HB_AFIELDS( void )
* $RETURNS$
* <cWorkArea> Name of alias
* $DESCRIPTION$
* This function returns the alias of the work area
* indicated by <nWorkArea>. If <nWorkArea> 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 <nWorkArea>
* If <nWorkArea> 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() --> <cWorkArea>
* $ARGUMENTS$
@@ -1728,9 +1725,8 @@ HARBOUR HB_DBEVAL( void )
* $RETURNS$
* <cWorkArea> 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() --> <lEnd>
* $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(<nField>) --> ValueField
* $ARGUMENTS$
* <nField> is the ordinal position of the field in the record
* structure for the current work area.
* <nField> Is the numeric field position
* $RETURNS$
* FIELDGET() returns the value of the specified field. If <nField> 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 <nField>th location
* in the selected or designed work area.If the value in <nField> 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(<cFieldName>) --> nFieldPos
* $ARGUMENTS$
* <cFieldName> is the name of a field in the current or specified work
* area.
* <cFieldName> 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 <cField>
* in the current or aliased work areaIf there isn't field under the name
* of <cField> 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$

View File

@@ -79,5 +79,5 @@ FUNCTION __dbOpenSDF() ; RETURN NIL
FUNCTION __dbTrans() ; RETURN NIL
FUNCTION __dbTransRec() ; RETURN NIL
FUNCTION __TypeFile() ; RETURN NIL

View File

@@ -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([<nMode>] --> <cReturn>
* VERSION([<nMode>] --> <cReturn>
* $ARGUMENTS$
* [<nMode>] Optional Parameter that toggle to the display
* of the C compiler version that HARBOUR was Build. Default is 0
* [<nMode>] Optional Parameter that toggle to the display
* of the C compiler version that HARBOUR was Build. Default is 0
*
* [<nMode>] Returns
* [<nMode>] Returns
* 0 Harbour Version
* 1 Harbour Version+C compiler Version
* $RETURNS$
* <cReturn> String contining the Harbour Version or the
* Harbour Version+C compiler Version when the <nMode> parameter is defined
* <cReturn> String contining the Harbour Version or the
* Harbour Version+C compiler Version when the <nMode> 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 <nMode> parameter is set to 1
* $PLATFORMS$
*

View File

@@ -393,21 +393,19 @@ HARBOUR HB_SETCANCEL( void )
/* $DOC$
* $FUNCNAME$
* __SETCENTURY()
*
* __SETCENTURY()
* $CATEGORY$
* Environment
* Environment
* $ONELINER$
* Set the Current Century
* $SYNTAX$
* __SETCENTURY([<lFlag> | <cOnOff> ] ) --> lPreviousValue
* __SETCENTURY([<lFlag> | <cOnOff> ] ) --> lPreviousValue
* $ARGUMENTS$
* optional <lFlag> or <cOnOff> (not case sensitive)
* optional <lFlag> or <cOnOff> (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<nSet> [, <xNewSetting> [, <xOption> ] ] ) --> xPreviousSetting
* Set<nSet> [, <xNewSetting> [, <xOption> ] ] ) --> xPreviousSetting
* $ARGUMENTS$
* <nSet> <xNewSetting> <xOption>
* _SET_ALTERNATE <lFlag> | <cOnOff>
@@ -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$
*/

View File

@@ -723,7 +723,8 @@ HARBOUR HB_PADC( void )
* the first string <cSearch>. 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 <cString> to the left. If the function is unable to find any
* occurence of <cSearch> in <cString>,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$

View File

@@ -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 <cLabelName> [TO PRINTER] [TO FILE <cFile>] [<cScope>]
* [WHILE <bWhile> ] [FOR <bFor> ] [SAMPLE] [NOCONSOLE]
* $ARGUMENTS$
* <cLabelName> Name of label file
* <cFile> Name of an alternate I lie
* <cScope> Expression of a scoping condition
* <bWhile> WHILE condition
* <bFor> FOR condition
* $RETURNS$
*
* $DESCRIPTION$
* This command allows labels to be printed based on the format outlined in
* .LBL file specified as <cLabelName>. 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 <cFile>.
* If no file extension is specified a .TXT extension is added.
* <cScope> is the scope condition for this command. Valid scopes include
* NEXT <expN> (number of records to be displayed, where <expN> is the number
* of records), RECORD <expN> (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
* <bFor> is the logical expression for the FOR condition (for records to
* be displayed whitin a given value range) and <bWhile> 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
* <cLabelName>
* $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$
*/

View File

@@ -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 <cReportName> [TO PRINTER] [TO FILE <cFile>] [<cScope>]
* [WHILE <bWhile> ] [FOR <bFor> ] [PLAIN |HEADING <cHeading]
* [NOEJECT] [SUMMARY] [NOCONSOLE]
* $ARGUMENTS$
* <cReportName> Name of report file
* <cFile> Name of alternate file
* <cScope> Scope
* <bWhile> Logical expression of WHILE condition
* <bFor> Logical expression of FOR condition
* <cHeading> Report heading
* $RETURNS$
* NIL
* $DESCRIPTION$
* This command prints out the report named <cReportName>, 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
* <cReportName>; unless a drive and path are specified in <cReportName>, 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 <cFile>. Unless specified in
* <cFile>, the default file extension will be .TXT .
* <cScope> is the scope for this command. Valid scopes include NEXT <expN> (where
* <expN> is tile number of records), RECORD <expN> (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 <bFor>
* is the logical expression for the FOR condition (for records to be displayed
* within a given range) and <bWhile> 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, <cHeading> is displayed on the first title
* of each report page. The value of <cHeading> is evaluated only once before
* executing the report; varying the values of <cHeading> 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$
*/

View File

@@ -0,0 +1,204 @@
/*
* $Id:
*/
/*
* Harbour Project source code:
* __Typefile() function
*
* Copyright 2000 Luiz Rafael Culik <Culik@sl.conex.net>
* 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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