home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
ftplike.zip
/
ftplike.ih
Wrap
Text File
|
1999-11-25
|
30KB
|
590 lines
;----------------------------------------------------------------------------
; MODULE NAME: FTPLIKE.IH
;
; $Author: Dennis_Bareis $
; $Revision: 1.8 $
; $Date: 25 Nov 1999 17:57:06 $
; $Logfile: E:/DB/PVCS.IT/OS2/PPWIZARD/FTPLIKE.IHV $
;
; DESCRIPTION: This allows you to create FTP like pages without
; having to do a lot of work. Simply add the file
; to a directory will get it onto the correct HTML
; page.
;
; It would be wise to generate pages into their own
; directory on the off chance that this header file
; picks a name for a directories file which matches
; one of yours!
;
; Note that most of the code below is tricky only
; because I made it generic (ie very configurable),
; a specific implementation would be much smaller
; and much much easier to write as well!
;
; The whole look and feel of the generated data may
; be modified.
;
; It would be simple to have your normal look and feel
; items such as headers, footers backgrounds etc
; integrated into the generated output.
;
; Description file support (.diz) is available for both
; files and directories. The directory DIZ file should
; reside in the directory its describing. Note that the
; file can (and probably should) contain normal HTML
; formatting tags - by default anyway. If you have a
; file called "stuff.zip" this header will look for
; "stuff.zip.diz" and "stuff.diz".
;
; You should not modify the value of any definition
; that begins with an "_", you can modify virtually
; anything else.
;
; Note that dependancy checking does not make sense
; in this type of situation as files can appear simply
; by matching the wildcard. For this reason I do not
; bother with using the "#dependsOn INPUT" command for
; each file I process.
;
;
; NOT COMPLETE
; ~~~~~~~~~~~~
; I don't really like the way file date, time and size
; are displayed, if you have any better ideas please
; let me know.
;
;
; SUPPORTED OPERATING SYSTEMS
; ~~~~~~~~~~~~~~~~~~~~~~~~~~~
; It is intended that all operating systems that PPWIZARD
; supports can also use this header, if you find that
; it does not work then please send me the output when
; you have used the "/debug" command line switch. Please
; also include a directory listing of the directory(s) you
; are processing.
;
;
; EXAMPLE - LINUX
; ~~~~~~~~~~~~~~~
; #define FTPLIKE_FOLLOW_SUBDIRECTORIES
; #define FTPLIKE_USE_LONG_FILENAMES
; #define FTPLIKE_DIRECTORY /home/dennis/
; #define FTPLIKE_DIRECTORY_WEB http://ftp
; #include "ftplike.ih"
;
;
; EXAMPLE - OS/2, WINDOWS
; ~~~~~~~~~~~~~~~~~~~~~~~
; #define FTPLIKE_FOLLOW_SUBDIRECTORIES
; #define FTPLIKE_USE_LONG_FILENAMES ;;Remove this definition for 8.3 names
; #define FTPLIKE_DIRECTORY C:\TMP\ASM_MAC
; #define FTPLIKE_DIRECTORY_WEB file:///C|TMP/ASM_MAC ;;Local testing
; #include "FTPLIKE.IH"
;
;
; HELP WANTED
; ~~~~~~~~~~~
; I use "find" under linux, is there a expression that
; I can pass to "-name" to display all files/directories?
;
;----------------------------------------------------------------------------
;--- First time through? ----------------------------------------------------
#ifndef _FTPLIKE_INITIALIZED
;--- Define the version number of this header file -----------------------
#define+ VERSION_FTPLIKE_IH 99.325
#require 99.325
;--- Check prerequisites -------------------------------------------------
#ifndef FTPLIKE_DIRECTORY
#error ^You must define the "FTPLIKE_DIRECTORY" value (local directory)!^
#endif
#ifndef FTPLIKE_DIRECTORY_WEB
#error ^You must define the "FTPLIKE_DIRECTORY_WEB" value (web location)!^
#endif
;--- Include macro push/pop support --------------------------------------
#ifndef VERSION_PUSHPOPM_H
#include "PushPopM.H"
#endif
;--- Use same date time on all generated pages ---------------------------
#ifndef FTPLIKE_DATETIME
#evaluate FTPLIKE_DATETIME @date('WeekDay') || ' ' || date('Month') || ' ' || substr(date('Sorted'), 7, 2) || ' ' || left(date('Sorted'), 4) || ' at ' || time('Civil')@
#endif
;--- Total numbers accross FTP pages -------------------------------------
#RexxVar FtpTotalDirCnt = 0 ;;Number of directories
#RexxVar FtpTotalFileCnt = 0 ;;Number of files
;--- Remember the output level where it all began! -----------------------
#Rexxvar FtpStartLevel = <?OutputLevel>
;--- Work out what filemasks users wants ---------------------------------
#ifndef FTPLIKE_FILE_MASKS
;--- Default is to process all files -----------------------------
#if ['<?OpSys>' = 'UNIX']
#define FTPLIKE_FILE_MASKS
#else
#define FTPLIKE_FILE_MASKS *.*
#endif
#endif
#ifndef FTPLIKE_DIR_MASKS
;--- Default is to process all directories -----------------------
#if ['<?OpSys>' = 'UNIX']
#define FTPLIKE_DIR_MASKS
#else
#define FTPLIKE_DIR_MASKS *.*
#endif
#endif
;--- Do best we can for input dependancies -------------------------------
#ifdef FTPLIKE_FOLLOW_SUBDIRECTORIES
#DependsOn INPUT ^*FILES=+<$FTPLIKE_DIRECTORY><?DirSlash><$FTPLIKE_DIR_MASKS>^
#elseif
#DependsOn INPUT ^*FILES=<$FTPLIKE_DIRECTORY><?DirSlash><$FTPLIKE_DIR_MASKS>^
#endif
;--- Allow user to easily support frames etc -----------------------------
#ifndef FTPLIKE_LINK2DIR
#define FTPLIKE_LINK2DIR <A HREF="{$URL}">
#endif
#ifndef FTPLIKE_LINK2FILE
#define FTPLIKE_LINK2FILE <A HREF="{$URL}"> ;;Probably would not want to override this
#endif
;--- Prepare for generating HTML page names ------------------------------
#ifdef FTPLIKE_FOLLOW_SUBDIRECTORIES
;--- Prepare for generating html page names (unique names!) ------
#evaluate '' ^call GetIdPrepare 'FTPLIKE', 'Y'^
;--- Don't generate filename same as current "base" file! --------
#evaluate '' ^call SetId 'FTPLIKE', '', EnsureFileHasCorrectCase(_filespec('W', _filespec('Name', '<?OutputFile>')))^
#endif
;--- Now work out the output directory -----------------------------------
#evaluate+ 'FtpGenDir' ^_filespec('location', '<?OutputFile>')^
;--- Work out the full name of this header file --------------------------
#RexxVar FtpLikeFile = '<?InputComponent>'
;--- Relative web directory ----------------------------------------------
#define _FTPLIKE_DIRECTORY_WEB_RELATIVE
;--- Work out what user wants to call the "root" dir ---------------------
#ifndef FTPLIKE_DISPLAY_DIR
#define FTPLIKE_DISPLAY_DIR /
#endif
;--- Work out extension to use -------------------------------------------
#ifndef FTPLIKE_HTML_EXTN
#define FTPLIKE_HTML_EXTN htm
#endif
;--- User want specific prefix for generated filenames -------------------
#ifndef FTPLIKE_NEWHTML_PREFIX
#ifdef FTPLIKE_USE_LONG_FILENAMES
#define FTPLIKE_NEWHTML_PREFIX FtpLike_
#elseif
#define FTPLIKE_NEWHTML_PREFIX ;;No prefix
#endif
#endif
;--- Define Simple HEADERS & FOOTERS -------------------------------------
#ifndef FTPLIKE_HEADER
#define FTPLIKE_HEADER <CENTER><H1>{$Title}</H1></CENTER>
#endif
#ifndef FTPLIKE_FOOTER
#define FTPLIKE_FOOTER \
<HR> %\
<CENTER> %\
<FONT SIZE=-1> %\
<$FTPLIKE_DATETIME> %\
</FONT> %\
</CENTER> %\
</BODY></HTML>
#endif
;--- Define START OF HTML page -------------------------------------------
#ifndef FTPLIKE_EXTRA_HEAD_TAGS
#define FTPLIKE_EXTRA_HEAD_TAGS
#endif
#ifndef FTPLIKE_BODY_TAG
#define FTPLIKE_BODY_TAG <BODY>
#endif
#ifndef FTPLIKE_START_HTML_PAGE
#define FTPLIKE_START_HTML_PAGE \
<!-- Real Directory "<$FTPLIKE_DIRECTORY>" --> %\
<HTML> %\
<HEAD> %\
<META NAME="GENERATOR" CONTENT="FTPLIKE.IH <$VERSION_FTPLIKE_IH> macros for PPWIZARD <?Version>, free tool by <?PpwizardAuthor> (<?PpwizardHomePage>)"> %\
<TITLE><$FTPLIKE_DISPLAY_DIR></TITLE> %\
<$FTPLIKE_EXTRA_HEAD_TAGS> -\
</HEAD> %\
<$FTPLIKE_BODY_TAG> %\
<$FTPLIKE_HEADER Title=^<$FTPLIKE_DISPLAY_DIR>^> %\
<?NewLine>
#endif
;--- Define some stubs (you can add comments like "no directories found" etc) ---
#ifndef FTPLIKE_START_PAGE_AFTER_TITLE
#define FTPLIKE_START_PAGE_AFTER_TITLE <$FTPLIKE_DIR_DIZ_HANDLER>
#endif
#ifndef FTPLIKE_BETWEEN_DIRS_AND_FILES
#define FTPLIKE_BETWEEN_DIRS_AND_FILES
#endif
#ifndef FTPLIKE_END_PAGE_ABOVE_FOOTER
#define FTPLIKE_END_PAGE_ABOVE_FOOTER
#endif
;--- Define START OF files -----------------------------------------------
#ifndef FTPLIKE_BEFORE_ALL_FILES
#define FTPLIKE_BEFORE_ALL_FILES \
<CENTER> %\
<TABLE BORDER=5 CELLPADDING=10>
#endif
#ifndef FTPLIKE_BEFORE_ALL_DIRS
#define FTPLIKE_BEFORE_ALL_DIRS \
<CENTER> %\
<TABLE BORDER=0 CELLPADDING=0>
#endif
;--- How to handle a directory's name ------------------------------------
#ifndef FTPLIKE_GENERATE_HTML_FOR_DIR_TREE
#define FTPLIKE_GENERATE_HTML_FOR_DIR_TREE \
#evaluate+ '' "FtpOutput = _filespec('name', FtpDir)" -\
-\
;--- Work out HTML base name ------------ -\
#ifdef FTPLIKE_USE_LONG_FILENAMES -\
#evaluate+ "FtpDirId" ^EnsureFileHasCorrectCase( GetId('FTPLIKE', '2_', '<$FTPLIKE_NEWHTML_PREFIX><$_FTPLIKE_DIRECTORY_WEB_RELATIVE $$SQx2>/' || FtpOutput) )^ -\
#elseif -\
#evaluate+ "FtpDirId" ^EnsureFileHasCorrectCase( GetId('FTPLIKE', 'MAXCHARS', '<$FTPLIKE_NEWHTML_PREFIX>' || FtpOutput) )^ -\
#endif -\
-\
;--- Start HTML page for new dir --- -\
#output "<$FtpDirId>.<$FTPLIKE_HTML_EXTN>" -\
;--- "PUSH" some values --- -\
<$MacroPush Macro='FTPLIKE_DIRECTORY'> -\
<$MacroPush Macro='FTPLIKE_DIRECTORY_WEB'> -\
<$MacroPush Macro='FTPLIKE_DISPLAY_DIR'> -\
<$MacroPush Macro='_FTPLIKE_DIRECTORY_WEB_RELATIVE'> -\
<$MacroPush Macro='FtpDirId'> -\
#RexxVar PUSH FtpOutput FtpDir -\
-\
;--- Create HTML contents --- -\
#option PUSH DefineMacroReplace=ON -\
#define+ FTPLIKE_DIRECTORY <$FTPLIKE_DIRECTORY><?DirSlash><??FtpOutput> -\
#evaluate+ FTPLIKE_DISPLAY_DIR ^ReplaceString('<$FTPLIKE_DISPLAY_DIR $$SQx2>/' || FtpOutput, '//', '/')^ -\
#define+ FTPLIKE_DIRECTORY_WEB <$FTPLIKE_DIRECTORY_WEB>/<??FtpOutput> -\
#define+ _FTPLIKE_DIRECTORY_WEB_RELATIVE <$_FTPLIKE_DIRECTORY_WEB_RELATIVE>/<??FtpOutput> -\
#option POP -\
#include "ftplike.ih" -\
-\
;--- "POP" some values --- -\
#RexxVar POP FtpOutput FtpDir -\
<$MacroPop Macro='FtpDirId'> -\
<$MacroPop Macro='_FTPLIKE_DIRECTORY_WEB_RELATIVE'> -\
<$MacroPop Macro='FTPLIKE_DISPLAY_DIR'> -\
<$MacroPop Macro='FTPLIKE_DIRECTORY_WEB'> -\
<$MacroPop Macro='FTPLIKE_DIRECTORY'> -\
#output
#endif
;--- How to handle (display) directory details ---------------------------
#ifndef FTPLIKE_DIR_HANDLER
#define FTPLIKE_DIR_HANDLER \
<TR> -\
<TD> -\
;--- Link to HTML page we will create --- -\
<$FTPLIKE_LINK2DIR Url="<$FtpDirId>.<$FTPLIKE_HTML_EXTN>"> -\
<??FtpOutput> ;;Just output short name -\
</A> -\
</TD> -\
<TD> -\
<TABLE BORDER=0 CELLPADDING=5> -\
<TR> -\
<TD ALIGN=LEFT><??FtpSubdirTotalDirCnt> dirs</TD> -\
<TD ALIGN=RIGHT><??FtpSubdirTotalFileCnt> files</TD> -\
</TR> -\
</TABLE> -\
</TD> -\
</TR>
#endif
;--- How to handle a file's name -----------------------------------------
#ifndef FTPLIKE_FILE_HANDLER
#define FTPLIKE_FILE_HANDLER \
#evaluate '' ^FtpOutput = _filespec('name', FtpFile)^ -\
#evaluate '' ^eURL = UrlEncode('<$FTPLIKE_DIRECTORY_WEB>/' || FtpOutput, 'TO%', ' ')^ -\
<TR> ;;Start New File row %\
<TD ALIGN=RIGHT> ;;Start filename cell %\
<$FTPLIKE_LINK2FILE Url="<??eURL>"> -\
<??FtpOutput> ;;Just output short name -\
</A> %\
</TD> ;;End cell
#endif
;--- How to handle a file's details --------------------------------------
#ifndef FTPLIKE_FILE_DETAILS_HANDLER
#define FTPLIKE_FILE_DETAILS_HANDLER \
#evaluate '' ^<$FTPLIKE_FILE_ATTRIBUTE_HANDLER_REXX>^ -\
<TD ALIGN=LEFT> ;;Start file details cell %\
<??FtpDay> <??FtpMon> <??FtpYear> \
<??FtpHour>:<??FtpMinute>:<??FtpSecond>, \
<?Space> \
<??FtpSize> bytes %\
<$FTPLIKE_FILE_DIZ_HANDLER> -\
</TD> ;;End cell %\
</TR> ;;End this File row
#endif
;--- Define END OF files -------------------------------------------------
#ifndef FTPLIKE_AFTER_ALL_FILES
#define FTPLIKE_AFTER_ALL_FILES </TABLE></CENTER>
#endif
#ifndef FTPLIKE_AFTER_ALL_DIRS
#define FTPLIKE_AFTER_ALL_DIRS </TABLE></CENTER><P>
#endif
;--- Define ATTRIBUTE Handler (date, time, size etc) ---------------------
#ifndef FTPLIKE_FILE_ATTRIBUTE_HANDLER_REXX
#define FTPLIKE_FILE_ATTRIBUTE_HANDLER_REXX \
FtpTimeStamp = GetFileTimeStamp(FtpFile); -\
FtpSize = stream(FtpFile, 'c', 'query size'); -\
FtpSize = AddCommasToDecimalNumber(FtpSize); -\
parse var FtpTimeStamp FtpYear +4 FtpMonth +2 FtpDay +2 FtpHour +2 FtpMinute +2 FtpSecond; -\
FtpMon = substr('JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC', ((FtpMonth-1)*4)+1, 3);
#endif
;--- Process this directory? (no filter by default) ----------------------
#ifndef FTPLIKE_DO_THIS_DIR
#define FTPLIKE_DO_THIS_DIR ;;Generate for all directories
#endif
;--- Process this file? (by default no ".diz" files!) --------------------
#ifndef FTPLIKE_DO_THIS_FILE
#define FTPLIKE_DO_THIS_FILE_REXX \
if translate(right(FtpFile, 4)) = '.diz' then; -\
FtpDoThisFile = 'N'; ;;Description file!
#define FTPLIKE_DO_THIS_FILE \
#evaluate '' ^<$FTPLIKE_DO_THIS_FILE_REXX>^
#endif
;--- Define "DIZ" handler ------------------------------------------------
#ifndef FTPLIKE_FILE_DIZ_HANDLER
#define FTPLIKE_FILE_DIZ_HANDLER_REXX \
FtpDizFile = stream(FtpFile || '.diz', 'c', 'query exists'); -\
if FtpDizFile = '' then; -\
do; -\
;--- Try changing extension to ".diz" --- -\
FtpPos = lastpos('.', FtpFile); -\
if FtpPos <> 0 then; -\
FtpDizFile = stream(left(FtpFile,FtpPos) || 'DIZ', 'c', 'query exists'); -\
end; -\
if FtpDizFile = '' then; -\
FtpDiz = ''; -\
else; -\
do; -\
FtpDiz = charin(FtpDizFile, 1, 99999); -\
call DieIfIoErrorOccurred FtpDizFile; -\
CloseRc = stream(FtpDizFile, 'c', 'close'); -\
<$FTPLIKE_DIZ_TRANSLATION_REXX> -\
FtpDiz = {$Prefix=^''^} || FtpDiz || {$Suffix=^''^}; -\
end;
#define FTPLIKE_FILE_DIZ_HANDLER \
#evaluate '' ^<$FTPLIKE_FILE_DIZ_HANDLER_REXX PREFIX=~'<HR>'~>^ -\
<??FtpDiz>
#endif
#ifndef FTPLIKE_DIR_DIZ_HANDLER
#define FTPLIKE_DIR_DIZ_HANDLER \
#evaluate '' ^FtpFile = '<$FTPLIKE_DIRECTORY $$SQx2><?DirSlash>' || _filespec('name', '<$FTPLIKE_DIRECTORY $$SQx2>')^ -\
#evaluate '' ^<$FTPLIKE_FILE_DIZ_HANDLER_REXX SUFFIX=~'<HR>'~>^ -\
<??FtpDiz>
#endif
;--- Define "DIZ" translations -------------------------------------------
#ifndef FTPLIKE_DIZ_TRANSLATION_REXX
#define FTPLIKE_DIZ_TRANSLATION_REXX \
FtpDiz = ReplaceString(FtpDiz, '1A'x, ''); ;;EOF char
;;;;;; FtpDiz = ReplaceString(FtpDiz, '0D0A0D0A'x, '0D0A'x || '<P>');
#endif
;--- Define how files are SORTED -----------------------------------------
#ifndef FTPLIKE_FILE_SORT
#ifndef FTPLIKE_FILE_SORT_REXX
#define FTPLIKE_FILE_SORT_REXX \
call SortArray '{$ArrayName}'
#endif
#define FTPLIKE_FILE_SORT \
#evaluate '' ^<$FTPLIKE_FILE_SORT_REXX ArrayName=~{$ArrayName}~>^
#endif
#ifndef FTPLIKE_DIRECTORY_SORT
#define FTPLIKE_DIRECTORY_SORT <$FTPLIKE_FILE_SORT ArrayName=~{$ArrayName}~> ;;Same as file sort by default
#endif
;--- Make sure not done again (when a directory being processed etc) -----
#define _FTPLIKE_INITIALIZED
#endif
;--- Simple processing message ----------------------------------------------
#evaluate '' ^ShortOutName = _filespec('Name', '<?OutputFile>')^
#info ^Generating <??ShortOutName> <= <$FTPLIKE_DIRECTORY>^
;--- Initialization for this FTP page ---------------------------------------
#RexxVar FtpDirCnt = 0 ;;Number of directories on this html page
#RexxVar FtpFileCnt = 0 ;;Number of files on this html page
;--- Generate start of HTML -------------------------------------------------
#if <?OutputLevel> <> FtpStartLevel | defined('FTPLIKE_NO_HEADER_FOOTER_ON_1ST_PAGE') = 'N'
<$FTPLIKE_START_HTML_PAGE>
#endif
<$FTPLIKE_START_PAGE_AFTER_TITLE>
;--- Process directories? (need to be careful as we include ourself) --------
#ifdef FTPLIKE_FOLLOW_SUBDIRECTORIES
;--- Get list of directories ----------------------------------------
#evaluate '' ^call _SysFileTree '<$FTPLIKE_DIRECTORY $$SQx2><?DirSlash><$FTPLIKE_DIR_MASKS>', 'FtpArray<?OutputLevel>', 'DO'^
;--- Any directories to display? ------------------------------------
#if [FtpArray<?OutputLevel>.0 <> 0]
;--- Sort the list (if thats what user wants) --------------------
<$FTPLIKE_DIRECTORY_SORT ArrayName="FtpArray<?OutputLevel>">
;--- Process DIRECTORIES -----------------------------------------
#RexxVar FtpIndex<?OutputLevel> = 1
#{
;--- Finished? -----------------------------------------------
#if [FtpIndex<?OutputLevel> > FtpArray<?OutputLevel>.0]
#break
#endif
;--- Get name of this directory ------------------------------
#RexxVar FtpDir = FtpArray<?OutputLevel>.FtpIndex<?OutputLevel>
;--- Generate the files --------------------------------------
#RexxVar FtpDoThisDir = 'Y'
<$FTPLIKE_DO_THIS_DIR> ;;User want this dir to be seen?
#if [FtpDoThisDir = 'Y']
;--- User does want this dir to be seen ------------------
#RexxVar FtpDirCnt + 1
#if [FtpDirCnt = 1]
;--- Start DIRECTORY output --------------------------
<$FTPLIKE_BEFORE_ALL_DIRS>
#endif
;--- Save some variables ---------------------------------
#RexxVar PUSH FtpDirCnt FtpFileCnt FtpTotalDirCnt FtpTotalFileCnt
;--- Reset totals ----------------------------------------
#RexxVar FtpTotalDirCnt = 0
#RexxVar FtpTotalFileCnt = 0
;--- Process all subdirectories (generating HTML as we go)
<$FTPLIKE_GENERATE_HTML_FOR_DIR_TREE>
;--- Remember subdirectory counts ------------------------
#RexxVar FtpSubdirTotalFileCnt = FtpTotalFileCnt
#RexxVar FtpSubdirTotalDirCnt = FtpTotalDirCnt
;--- Display directory details on this page --------------
<$FTPLIKE_DIR_HANDLER>
;--- Restore other variables -----------------------------
#RexxVar POP FtpDirCnt FtpFileCnt FtpTotalDirCnt FtpTotalFileCnt
;--- Add to totals ---------------------------------------
#RexxVar FtpTotalFileCnt + FtpSubdirTotalFileCnt
#RexxVar FtpTotalDirCnt + FtpSubdirTotalDirCnt
#endif
;--- Prepare for next file -----------------------------------
#RexxVar FtpIndex<?OutputLevel> + 1
#}
;--- Generate end DIRECTORY stuff --------------------------------
#if [FtpDirCnt <> 0]
<$FTPLIKE_AFTER_ALL_DIRS>
#endif
#endif
;--- Hook for displaying stuff --------------------------------------
<$FTPLIKE_BETWEEN_DIRS_AND_FILES>
#endif
;--- Get list of files ------------------------------------------------------
#evaluate '' ^call _SysFileTree '<$FTPLIKE_DIRECTORY $$SQx2><?DirSlash><$FTPLIKE_FILE_MASKS>', 'FtpArray', 'FO'^
;--- Any files in this directory? -------------------------------------------
#if [FtpArray.0 <> 0]
;--- Sort the list (if thats what user wants) ----------------------------
<$FTPLIKE_FILE_SORT ArrayName="FtpArray">
;--- Process files -------------------------------------------------------
#RexxVar FtpIndex = 1
#{
;--- Finished? -------------------------------------------------------
#if [FtpIndex > FtpArray.0]
#break
#endif
;--- Get Filename ----------------------------------------------------
#RexxVar FtpFile = FtpArray.FtpIndex
;--- Generate the files ----------------------------------------------
#RexxVar FtpDoThisFile = 'Y'
<$FTPLIKE_DO_THIS_FILE> ;;User want this file to be seen?
#if [FtpDoThisFile = 'Y']
;--- User does want this file to be seen -------------------------
#RexxVar FtpFileCnt + 1
#if [FtpFileCnt = 1]
;--- Start FILE output ---------------------------------------
<$FTPLIKE_BEFORE_ALL_FILES>
#endif
;--- Output details for this file --------------------------------
<$FTPLIKE_FILE_HANDLER>
<$FTPLIKE_FILE_DETAILS_HANDLER>
#endif
;--- Prepare for next file -------------------------------------------
#RexxVar FtpIndex + 1
#}
;--- Generate end FILES stuff --------------------------------------------
#if [FtpFileCnt <> 0]
<$FTPLIKE_AFTER_ALL_FILES>
#endif
#endif
;--- Generate END of HTML ---------------------------------------------------
<$FTPLIKE_END_PAGE_ABOVE_FOOTER>
#if <?OutputLevel> <> FtpStartLevel | defined('FTPLIKE_NO_HEADER_FOOTER_ON_1ST_PAGE') = 'N'
;--- User has not set up their own alternative -----------------------
<$FTPLIKE_FOOTER> ;;Footer ends body and html
#endif
;--- Update totals ----------------------------------------------------------
#RexxVar FtpTotalFileCnt + FtpFileCnt
#RexxVar FtpTotalDirCnt + FtpDirCnt
;--- Output summary ---------------------------------------------------------
#if [<?OutputLevel> = FtpStartLevel]
#ifndef FTPLIKE_FOLLOW_SUBDIRECTORIES
#info ^FTPLIKE processed <??FtpTotalFileCnt> file(s)^
#elseif
#info ^FTPLIKE processed <??FtpTotalFileCnt> file(s) in <??FtpTotalDirCnt> directories^
#endif
#endif