2013-03-17 21:46 UTC+0100 Viktor Szakats (harbour syenar.net)
* README.txt
+ added wikipedia article link
* extras/hbdoc/genhtml.prg
* extras/hbdoc/genxml.prg
* extras/hbdoc/hbdoc.hbp
* extras/hbdoc/hbdoc.prg
* extras/hbdoc/tmplates.prg
+ can now be run as script
! fixed to not chop off left columns of examples and tests
* synced banner function with utils
* use strings instead of ASCII values to represent them
! fixed source directory reference
! close some unclosed HTML tags
* doc/en/menu.txt
* cleanup
* doc/en/file.txt
* doc/en/hbflock.txt
* doc/en/memo.txt
* doc/en/string.txt
* deleted faulty 64K limit information
* extras/httpsrv/cgifunc.prg
* extras/httpsrv/uhttpd.hbp
* extras/httpsrv/uhttpd.ini
* extras/httpsrv/uhttpd.prg
* instead of HRBMAIN() start whatever is the first public
function in external script modules
+ uhttpd can now be run as script
* minor cleanups
+ extras/httpsrv/logs/empty
+ added empty directory to avoid error on startup of uhttpd
This commit is contained in:
@@ -116,14 +116,18 @@ METHOD NewFile() CLASS GenerateHTML
|
||||
|
||||
::Append( ::cTitle /* + iif( Empty( ::cDescription ), "", " - " + ::cDescription ) */, "title" )
|
||||
::OpenTag( "meta", "http-equiv", "content-type", "content", "text/html; charset=UTF-8" )
|
||||
::CloseTag( "meta" )
|
||||
::OpenTag( "meta", "name", "generator", "content", "Harbour examples/hbdoc" )
|
||||
::CloseTag( "meta" )
|
||||
::OpenTag( "meta", "name", "keywords", "content", "Harbour project, Clipper, xBase, database, Free Software, GNU, compiler, cross platform, 32-bit, FiveWin" )
|
||||
::CloseTag( "meta" )
|
||||
|
||||
IF ::lCreateStyleDocument
|
||||
::lCreateStyleDocument := .F.
|
||||
::RecreateStyleDocument( STYLEFILE )
|
||||
ENDIF
|
||||
::OpenTag( "link", "rel", "stylesheet", "type", "text/css", "href", STYLEFILE )
|
||||
::CloseTag( "link" )
|
||||
|
||||
::CloseTag( "head" )
|
||||
::OpenTag( "body" )
|
||||
@@ -231,7 +235,7 @@ METHOD PROCEDURE WriteEntry( cField, oEntry, lPreformatted, nIndent ) CLASS Gene
|
||||
::OpenTag( "pre", iif( cTagClass != NIL, "class", ), cTagClass )
|
||||
DO WHILE Len( cEntry ) > 0
|
||||
IF Lower( cField ) + "|" $ "examples|tests|"
|
||||
::Append( SubStr( Parse( @cEntry, hb_eol() ), 7 ), "" )
|
||||
::Append( SubStr( Parse( @cEntry, hb_eol() ), 5 ), "" )
|
||||
ELSE
|
||||
::Append( Indent( Parse( @cEntry, hb_eol() ), 0, , .T. ), "" )
|
||||
ENDIF
|
||||
@@ -300,7 +304,7 @@ METHOD Append( cText, cFormat ) CLASS GenerateHTML
|
||||
|
||||
aFormat := p_aConversionList
|
||||
FOR idx := 1 TO Len( aFormat ) STEP 2
|
||||
cResult := StrTran( cResult, Chr( aFormat[ idx ] ), "&" + aFormat[ idx + 1 ] + ";" )
|
||||
cResult := StrTran( cResult, aFormat[ idx ], "&" + aFormat[ idx + 1 ] + ";" )
|
||||
NEXT
|
||||
|
||||
aFormat := hb_ATokens( cFormat, "," )
|
||||
|
||||
@@ -154,7 +154,7 @@ METHOD PROCEDURE WriteEntry( cCaption, cEntry, lPreformatted ) CLASS GenerateXML
|
||||
IF ! Empty( cEntry )
|
||||
cResult := iif( hb_eol() $ cEntry, hb_eol() + cEntry, cEntry )
|
||||
FOR idx := 1 TO Len( p_aConversionList ) STEP 2
|
||||
cResult := StrTran( cResult, Chr( p_aConversionList[ idx ] ), "&" + p_aConversionList[ idx + 1 ] + ";" )
|
||||
cResult := StrTran( cResult, p_aConversionList[ idx ], "&" + p_aConversionList[ idx + 1 ] + ";" )
|
||||
NEXT
|
||||
cEntry := cResult
|
||||
|
||||
|
||||
@@ -9,13 +9,6 @@
|
||||
-gtcgi
|
||||
|
||||
hbdoc.prg
|
||||
tmplates.prg
|
||||
|
||||
genbase.prg
|
||||
|
||||
gentxt.prg
|
||||
genhtml.prg
|
||||
genxml.prg
|
||||
|
||||
# NOTE: hbdoc doesn't work from other locations than
|
||||
# the current one, so we don't install it yet.
|
||||
|
||||
@@ -94,6 +94,7 @@ done - validate sources against these templates
|
||||
|
||||
#include "directry.ch"
|
||||
#include "fileio.ch"
|
||||
#include "hbver.ch"
|
||||
|
||||
#include "hbdoc.ch"
|
||||
|
||||
@@ -216,7 +217,7 @@ PROCEDURE Main( ... )
|
||||
{;
|
||||
p_hsSwitches[ "basedir" ] + "doc", ;
|
||||
p_hsSwitches[ "basedir" ] + "doc" + hb_ps() + "en", ;
|
||||
iif( p_hsSwitches[ "source" ], p_hsSwitches[ "basedir" ] + "source", NIL ), ;
|
||||
iif( p_hsSwitches[ "source" ], p_hsSwitches[ "basedir" ] + "src", NIL ), ;
|
||||
iif( p_hsSwitches[ "contribs" ], p_hsSwitches[ "basedir" ] + "contrib", NIL ), ;
|
||||
}, ;
|
||||
{| c | iif( ! Empty( c ), ProcessFolder( c, @aContent ), ) } )
|
||||
@@ -420,26 +421,18 @@ STATIC PROCEDURE ProcessFolder( cFolder, aContent ) // this is a recursive proce
|
||||
|
||||
STATIC FUNCTION ProcessFile( cFile, aContent )
|
||||
|
||||
LOCAL aHandle := { 0, 0 } // file handle and position
|
||||
LOCAL aHandle := { F_ERROR, 0 } // file handle and position
|
||||
LOCAL cSectionName
|
||||
LOCAL cVersion
|
||||
LOCAL o
|
||||
LOCAL nOldContentLen := Len( aContent )
|
||||
|
||||
IF ( aHandle[ 1 ] := FOpen( cFile ) ) == F_ERROR
|
||||
OutErr( "error: could not open " + cFile + ", " + hb_ntos( Abs( aHandle[ 1 ] ) ) + hb_eol() )
|
||||
OutErr( "error: could not open " + cFile + ", " + hb_ntos( aHandle[ 1 ] ) + hb_eol() )
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
|
||||
IF ! FReadLn( @aHandle, "" ) // assume first line is ID comment prefix
|
||||
// ~ FClose( aHandle[ 1 ] )
|
||||
// ~ RETURN .F.
|
||||
ENDIF
|
||||
|
||||
IF ! FReadLn( @aHandle, @cVersion ) // assume second line is ID
|
||||
// ~ FClose( aHandle[ 1 ] )
|
||||
// ~ RETURN .F.
|
||||
ENDIF
|
||||
cVersion := ""
|
||||
|
||||
o := Entry():New( "Template" )
|
||||
|
||||
@@ -647,8 +640,8 @@ STATIC FUNCTION FReadSection( aHandle, cSectionName, cSection, o )
|
||||
DO WHILE ( nPosition := FSeek( aHandle[ 1 ], 0, FS_RELATIVE ) ), FReadLn( @aHandle, @cBuffer )
|
||||
// TOFIX: this assumes that every line starts with " *"
|
||||
cBuffer := RTrim( SubStr( cBuffer, 3 ) )
|
||||
IF Left( LTrim( cBuffer ), 1 ) == p_hsSwitches[ "DELIMITER" ] ;
|
||||
.AND. Right( cBuffer, 1 ) == p_hsSwitches[ "DELIMITER" ]
|
||||
IF Left( LTrim( cBuffer ), 1 ) == p_hsSwitches[ "DELIMITER" ] .AND. ;
|
||||
Right( cBuffer, 1 ) == p_hsSwitches[ "DELIMITER" ]
|
||||
FSeek( aHandle[ 1 ], nPosition, FS_SET )
|
||||
aHandle[ 2 ]-- // decrement the line number when rewinding the file
|
||||
EXIT
|
||||
@@ -709,7 +702,7 @@ STATIC FUNCTION FReadSection( aHandle, cSectionName, cSection, o )
|
||||
|
||||
STATIC PROCEDURE FileEval( acFile, bBlock, nMaxLine )
|
||||
|
||||
LOCAL aHandle := { 0, 0 }
|
||||
LOCAL aHandle := { F_ERROR, 0 }
|
||||
LOCAL cBuffer
|
||||
LOCAL lCloseFile := .F.
|
||||
LOCAL xResult
|
||||
@@ -912,7 +905,12 @@ PROCEDURE ShowSubHelp( xLine, nMode, nIndent, n )
|
||||
RETURN
|
||||
|
||||
STATIC FUNCTION HBRawVersion()
|
||||
RETURN StrTran( Version(), "Harbour " )
|
||||
RETURN hb_StrFormat( "%d.%d.%d%s (r%d)", ;
|
||||
hb_Version( HB_VERSION_MAJOR ), ;
|
||||
hb_Version( HB_VERSION_MINOR ), ;
|
||||
hb_Version( HB_VERSION_RELEASE ), ;
|
||||
hb_Version( HB_VERSION_STATUS ), ;
|
||||
hb_Version( HB_VERSION_REVISION ) )
|
||||
|
||||
PROCEDURE ShowHelp( cExtraMessage, aArgs )
|
||||
|
||||
@@ -1153,3 +1151,9 @@ FUNCTION Filename( cFile, cFormat, nLength )
|
||||
ENDIF
|
||||
|
||||
RETURN cResult
|
||||
|
||||
SET PROCEDURE TO "tmplates.prg"
|
||||
SET PROCEDURE TO "genbase.prg"
|
||||
SET PROCEDURE TO "gentxt.prg"
|
||||
SET PROCEDURE TO "genhtml.prg"
|
||||
SET PROCEDURE TO "genxml.prg"
|
||||
|
||||
@@ -316,7 +316,6 @@ PROCEDURE init_Templates()
|
||||
PUBLIC p_aPlatforms := { ;
|
||||
{ "", "" }, ;
|
||||
{ "All", "This is available on all platforms" }, ;
|
||||
{ "All(64K)", "This is available on all platforms though some platforms have a string length limit of 64KB" }, ;
|
||||
{ "All(GT)", "This part of the GT API and supported only by some platforms." }, ;
|
||||
{ "All(LFN)", "This is available on all platforms." + hb_eol() + ;
|
||||
"If long file names are available Harbour will use/display the first 15 characters " +;
|
||||
@@ -325,15 +324,15 @@ PROCEDURE init_Templates()
|
||||
{ "OS2(GT)", "Under OS/2 the number of columns avaliable depends of the current Terminal screen size." }, ;
|
||||
{ "Win(GT)", "Under Windows, the return value of MaxRow() function is only affected if called after an SetMode() function" }, ;
|
||||
{ "BSD", "This is available on the BSD platform" }, ;
|
||||
{ "DARWIN", "This is available on the DARWIN platform" }, ;
|
||||
{ "DARWIN", "This is available on the Darwin platform" }, ;
|
||||
{ "DOS", "This is available on the MS-DOS platform" }, ;
|
||||
{ "HPUX", "This is available on the HPUX platform" }, ;
|
||||
{ "LINUX", "This is available on the LINUX platform" }, ;
|
||||
{ "LINUX", "This is available on the Linux platform" }, ;
|
||||
{ "OS2", "This is available on the OS/2 platform" }, ;
|
||||
{ "SUNOS", "This is available on the SUNOS platform" }, ;
|
||||
{ "SUNOS", "This is available on the SunOS platform" }, ;
|
||||
{ "Unix", "This is available on the Unix platform(s)" }, ;
|
||||
{ "Win", "This is available on the MS-Windows platform(s)" }, ;
|
||||
{ "WinCE", "This is available on the MS-Windows-CE platform" } ;
|
||||
{ "Win", "This is available on the Windows platform(s)" }, ;
|
||||
{ "WinCE", "This is available on the Windows CE platform" } ;
|
||||
}
|
||||
|
||||
PUBLIC p_aStatus := { ;
|
||||
@@ -344,10 +343,10 @@ PROCEDURE init_Templates()
|
||||
}
|
||||
|
||||
PUBLIC p_aConversionList := { ;
|
||||
38, "amp", ;
|
||||
34, "quot", ;
|
||||
60, "lt", ;
|
||||
62, "gt" ;
|
||||
"&", "amp", ;
|
||||
'"', "quot", ;
|
||||
"<", "lt", ;
|
||||
">", "gt" ;
|
||||
}
|
||||
|
||||
RETURN
|
||||
|
||||
@@ -451,17 +451,6 @@ FUNCTION uhttpd_AddSecondsToTime( cTime, nSecsToAdd, nDaysAdded )
|
||||
|
||||
RETURN cNewTime
|
||||
|
||||
FUNCTION uhttpd_TimeDiffAsSeconds( dDateStart, dDateEnd, cTimeStart, cTimeEnd )
|
||||
|
||||
LOCAL aRetVal
|
||||
|
||||
__defaultNIL( @dDateEnd, Date() )
|
||||
__defaultNIL( @cTimeEnd, Time() )
|
||||
|
||||
aRetVal := ft_Elapsed( dDateStart, dDateEnd, cTimeStart, cTimeEnd )
|
||||
|
||||
RETURN aRetVal[ 4, 2 ]
|
||||
|
||||
FUNCTION uhttpd_OutputString( cString, aTranslate, lProtected )
|
||||
|
||||
LOCAL cHtml
|
||||
|
||||
0
extras/httpsrv/logs/empty
Normal file
0
extras/httpsrv/logs/empty
Normal file
@@ -3,10 +3,9 @@
|
||||
|
||||
-mt -gui
|
||||
|
||||
-gtwvt
|
||||
|
||||
uhttpd.prg
|
||||
cgifunc.prg
|
||||
cookie.prg
|
||||
session.prg
|
||||
|
||||
hbwin.hbc
|
||||
hbnf.hbc
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#document_root = $(APP_DIR)\home
|
||||
|
||||
# --- display folder content
|
||||
#show_indexes = .f.
|
||||
#show_indexes = .F.
|
||||
|
||||
# --- default index files
|
||||
#DirectoryIndex = index.html index.htm
|
||||
@@ -70,4 +70,3 @@ start_num = 10
|
||||
#/images = $(APP_DIR)/images
|
||||
|
||||
# end
|
||||
|
||||
|
||||
@@ -58,7 +58,6 @@
|
||||
*
|
||||
* More description to come.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -75,6 +74,10 @@
|
||||
|
||||
*/
|
||||
|
||||
#require "hbnf"
|
||||
#require "hbwin"
|
||||
#require "hbgd"
|
||||
|
||||
// remove comment to activate hb_ToOutDebug()
|
||||
// #define DEBUG_ACTIVE
|
||||
|
||||
@@ -95,19 +98,19 @@ REQUEST __HB_EXTERN__
|
||||
REQUEST GDChart
|
||||
REQUEST GDImage
|
||||
REQUEST GDImageChar
|
||||
# define APP_GD_SUPPORT "_GD"
|
||||
# stdout "Lib GD support enabled"
|
||||
#define APP_GD_SUPPORT "_GD"
|
||||
#stdout "Lib GD support enabled"
|
||||
#else
|
||||
# define APP_GD_SUPPORT ""
|
||||
# stdout "Lib GD support disabled"
|
||||
#define APP_GD_SUPPORT ""
|
||||
#stdout "Lib GD support disabled"
|
||||
#endif
|
||||
|
||||
#ifdef FIXED_THREADS
|
||||
# define APP_DT_SUPPORT "_FIXED_THREADS"
|
||||
# stdout "Fixed # of threads"
|
||||
#define APP_DT_SUPPORT "_FIXED_THREADS"
|
||||
#stdout "Fixed # of threads"
|
||||
#else
|
||||
# define APP_DT_SUPPORT ""
|
||||
# stdout "Dynamic # of threads"
|
||||
#define APP_DT_SUPPORT ""
|
||||
#stdout "Dynamic # of threads"
|
||||
#endif
|
||||
|
||||
#define APP_NAME "uhttpd"
|
||||
@@ -138,20 +141,8 @@ REQUEST GDImageChar
|
||||
|
||||
#define CR_LF ( Chr( 13 ) + Chr( 10 ) )
|
||||
|
||||
#ifdef __PLATFORM__WINDOWS
|
||||
REQUEST HB_GT_WVT_DEFAULT
|
||||
REQUEST HB_GT_WIN
|
||||
REQUEST HB_GT_NUL
|
||||
#else
|
||||
REQUEST HB_GT_TRM_DEFAULT
|
||||
REQUEST HB_GT_NUL
|
||||
#endif
|
||||
|
||||
#define THREAD_GT hb_gtVersion()
|
||||
|
||||
// dynamic call for HRB support
|
||||
DYNAMIC HRBMAIN
|
||||
|
||||
STATIC s_lQuitRequest := .F.
|
||||
|
||||
STATIC s_hmtxQueue, s_hmtxServiceThreads, s_hmtxRunningThreads, s_hmtxLog, s_hmtxConsole, s_hmtxBusy
|
||||
@@ -214,6 +205,12 @@ PROCEDURE Main( ... )
|
||||
LOCAL nConsoleRows, nConsoleCols
|
||||
LOCAL nCmdConsoleRows, nCmdConsoleCols
|
||||
|
||||
#if defined( __HBSCRIPT__HBSHELL )
|
||||
#if defined( __PLATFORM__WINDOWS )
|
||||
hbshell_gtSelect( "GTWVT" )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
IF ! hb_mtvm()
|
||||
? "I need multhread support. Please, recompile me!"
|
||||
WAIT
|
||||
@@ -231,7 +228,7 @@ PROCEDURE Main( ... )
|
||||
|
||||
// defaults not changeble via ini file
|
||||
lStop := .F.
|
||||
cConfig := EXE_Path() + hb_ps() + APP_NAME + ".ini"
|
||||
cConfig := hb_DirBase() + APP_NAME + ".ini"
|
||||
lConsole := .T.
|
||||
nStartServiceThreads := START_SERVICE_THREADS
|
||||
|
||||
@@ -400,6 +397,9 @@ PROCEDURE Main( ... )
|
||||
ENDIF
|
||||
|
||||
IF HB_ISSTRING( cApplicationRoot )
|
||||
IF Empty( cApplicationRoot )
|
||||
cApplicationRoot := "." + hb_ps()
|
||||
ENDIF
|
||||
cI := cApplicationRoot
|
||||
IF hb_DirExists( cI )
|
||||
IF Right( cI, 1 ) == "/" .AND. Len( cI ) > 2 .AND. !( SubStr( cI, Len( cI ) - 2, 1 ) == ":" )
|
||||
@@ -2179,7 +2179,7 @@ STATIC PROCEDURE Help()
|
||||
? "-c | --config Configuration file (default: " + APP_NAME + ".ini)"
|
||||
? " It is possibile to define file path"
|
||||
? "-a | --approot Application root directory (default: <curdir>)"
|
||||
? "-d | --docroot Document root directory (default: <curdir>\home)"
|
||||
? "-d | --docroot Document root directory (default: <curdir>/home)"
|
||||
? "-i | --indexes Allow directory view (default: no)"
|
||||
? "-s | --stop Stop webserver"
|
||||
? "-ts | --start-threads Define starting threads (default: " + hb_ntos( START_RUNNING_THREADS ) + ")"
|
||||
@@ -2206,19 +2206,6 @@ STATIC PROCEDURE SysSettings()
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC FUNCTION Exe_Path()
|
||||
|
||||
LOCAL cPath := hb_argv( 0 )
|
||||
LOCAL nPos := RAt( hb_ps(), cPath )
|
||||
|
||||
IF nPos == 0
|
||||
cPath := ""
|
||||
ELSE
|
||||
cPath := SubStr( cPath, 1, nPos - 1 )
|
||||
ENDIF
|
||||
|
||||
RETURN cPath
|
||||
|
||||
STATIC PROCEDURE Progress( /*@*/ nProgress )
|
||||
|
||||
LOCAL cString := "["
|
||||
@@ -2286,19 +2273,19 @@ STATIC FUNCTION ParseIni( cConfig )
|
||||
// Define here what attributes we can have in ini config file and their defaults
|
||||
// Please add all keys in uppercase. hDefaults is Case Insensitive
|
||||
hDefault := { ;
|
||||
"MAIN" => { "PORT" => LISTEN_PORT , ;
|
||||
"APPLICATION_ROOT" => EXE_Path() , ;
|
||||
"DOCUMENT_ROOT" => EXE_Path() + hb_ps() + "home", ;
|
||||
"SHOW_INDEXES" => .F. , ;
|
||||
"SCRIPTALIASMIXEDCASE" => .T. , ;
|
||||
"SESSIONPATH" => EXE_Path() + hb_ps() + "sessions" , ;
|
||||
"DIRECTORYINDEX" => DIRECTORYINDEX_ARRAY , ;
|
||||
"CONSOLE-ROWS" => MaxRow() + 1 , ;
|
||||
"MAIN" => { "PORT" => LISTEN_PORT , ;
|
||||
"APPLICATION_ROOT" => hb_DirBase() , ;
|
||||
"DOCUMENT_ROOT" => hb_DirBase() + "home" , ;
|
||||
"SHOW_INDEXES" => .F. , ;
|
||||
"SCRIPTALIASMIXEDCASE" => .T. , ;
|
||||
"SESSIONPATH" => hb_DirBase() + "sessions" , ;
|
||||
"DIRECTORYINDEX" => DIRECTORYINDEX_ARRAY , ;
|
||||
"CONSOLE-ROWS" => MaxRow() + 1 , ;
|
||||
"CONSOLE-COLS" => MaxCol() + 1 }, ;
|
||||
"LOGFILES" => { "ACCESS" => FILE_ACCESS_LOG , ;
|
||||
"LOGFILES" => { "ACCESS" => FILE_ACCESS_LOG , ;
|
||||
"ERROR" => FILE_ERROR_LOG }, ;
|
||||
"THREADS" => { "MAX_WAIT" => THREAD_MAX_WAIT , ;
|
||||
"START_NUM" => START_RUNNING_THREADS , ;
|
||||
"THREADS" => { "MAX_WAIT" => THREAD_MAX_WAIT , ;
|
||||
"START_NUM" => START_RUNNING_THREADS , ;
|
||||
"MAX_NUM" => MAX_RUNNING_THREADS }, ;
|
||||
"SCRIPTALIASES" => { => } , ;
|
||||
"ALIASES" => { => } }
|
||||
@@ -2365,7 +2352,7 @@ STATIC FUNCTION ParseIni( cConfig )
|
||||
CASE cKey == "DOCUMENT_ROOT"
|
||||
IF ! Empty( cVal )
|
||||
// After will change APP_DIR macro with application dir
|
||||
// xVal := StrTran( cVal, "$(APP_DIR)", Exe_Path() )
|
||||
// xVal := StrTran( cVal, "$(APP_DIR)", hb_DirBase() )
|
||||
xVal := cVal
|
||||
ENDIF
|
||||
CASE cKey == "SCRIPTALIASMIXEDCASE"
|
||||
@@ -2373,7 +2360,7 @@ STATIC FUNCTION ParseIni( cConfig )
|
||||
CASE cKey == "SESSIONPATH"
|
||||
IF ! Empty( cVal )
|
||||
// Change APP_DIR macro with current exe path
|
||||
// xVal := StrTran( cVal, "$(APP_DIR)", Exe_Path() )
|
||||
// xVal := StrTran( cVal, "$(APP_DIR)", hb_DirBase() )
|
||||
xVal := cVal
|
||||
ENDIF
|
||||
CASE cKey == "DIRECTORYINDEX"
|
||||
@@ -2567,7 +2554,7 @@ STATIC FUNCTION uhttpd_DefError( oError )
|
||||
cCallstack + cNewLine + ;
|
||||
Replicate( "*", 70 ) + cNewLine
|
||||
|
||||
uhttpd_WriteToLogFile( cString, Exe_Path() + "\error.log" )
|
||||
uhttpd_WriteToLogFile( cString, hb_DirBase() + "error.log" )
|
||||
|
||||
ErrorLevel( 1 )
|
||||
QUIT
|
||||
@@ -2727,7 +2714,7 @@ STATIC FUNCTION Handler_HrbScript( cFileName )
|
||||
// Change dir to document root
|
||||
DirChange( s_cDocumentRoot )
|
||||
|
||||
xResult := HRBMAIN()
|
||||
xResult := hb_hrbDo( pHRB )
|
||||
|
||||
#ifdef DEBUG_ACTIVE
|
||||
hb_ToOutDebug( "Handler_HrbScript(): cFileName = %s,\n\rcCurPath = %s,\n\rs_cDocumentRoot = %s,\n\rpHRB = %s,\n\rxResult = %s\n\r", ;
|
||||
@@ -2883,3 +2870,7 @@ STATIC FUNCTION HB_HASHI()
|
||||
hb_HCaseMatch( h, .F. )
|
||||
|
||||
RETURN h
|
||||
|
||||
SET PROCEDURE TO "cgifunc.prg"
|
||||
SET PROCEDURE TO "cookie.prg"
|
||||
SET PROCEDURE TO "session.prg"
|
||||
|
||||
Reference in New Issue
Block a user