PPWIZARD Manual
Change History
Please note that my version numbers are of the format "YY.DDD" where "YY" represents the year and "DDD" is the day of the year (1-366). While this format does not let you know of the magnitude of any changes (my change history shows this) it does make it simple to know the "age" of a release.
- Version "Next Release"
- You tell me, feedback please!
Have you ever looked at a product and said
"Wouldn't it be nice if ...", well get on your backside
and send an email, make it so!
- Your idea here :-).
- 01.002
- Added a Wise Installer OLE automation
example which allows you to generate MSI (Windows Installer) packages
via a simple "user friendly" script.
VbScript (no knowledge of this language is required) is generated
which is then executed from the command line or make files to
generate the MSI (and WSI) files.
- Fixed bug in /ConsoleFile switch and improved
logic a bit.
- Changed FindFileInPath() routine to allow you
to specify directory trees to be searched.
- The "FILEINFO.H" header was changed so that not only can you
specify a path but you can also specify a search path
(as per FindFileInPath()).
This should not effect any existing use of the header.
- Changed the FindFile() routine to always search
relative to current directory first
(while slightly less flexible, this makes it more efficient).
- New "expand all macro parameters as rexx code"
facility.
- New "Expand Macro Name"
facility.
- Changed GetEnv() routine to log use when
debug is on.
This makes it easier to understand ppwizard's use of environment
variables as well as your own.
- Fixed minor bug in handling of
"$$" macro commands.
- Added "rexx stem" like example to
"Macros With Optional Parameters".
- Better trap output is written to console/error files.
- More tweeking of Windows install package.
- 2K.352
- Fixed problem with all right click options for both Windows
and OS/2 GUI shells (oops).
- No longer pauses or asks questions during Windows setup.
I will make configurable later but for now if you don't like
the way it installs you will need to download the zip package.
- 2K.351
- New windows installer used which removes all known 95/98/ME install
issues, does a self check for corruption and has an uninstaller.
Not only that but the download is smaller!
- If PPWIZARD had been previously installed OS2SETUP would not
install correctly.
- Modified /Exec & /Validate
routines.
- 2K.350
- Reoganised how ppwizard is packaged (process and contents).
There is now an OS/2 specific download which enables use from
WPS in a similar manner to the way it currently works in
windows explorer (right click on files etc).
- You can now have extension based project files, turn off or modify
project filenames with /@Extn switch.
- The FindFile() routine is now used to search
for project files.
- The "#NextId" command now uses base 36 numbers
to minimise prefix length.
- Default quote debug characters
are now empty strings.
- Extra command type on _filespec() routine.
- New <?CmdLineTotal> variable.
- New <?PpwizardPgm> variable.
- New /Validate switch.
- Tweeked /Sleep switch and processing a bit.
- While you have many choices of how to handle PHP markup with
ppwizard, I have made it much more PHP friendly by ignoring
any "<?" or "<?php" sequences which are either at
the end of a line or followed by a space.
- Major reorganisation of command line processing code.
- Version 2K.344
- Command line switches can now use either ':' or '=' to
specify a parameter.
- New /IncludePath switch.
- New /HideCmd switch would allow you to hide
ppwizard commands or macro references if required (for example
from a html editor or browser).
- Updated GenerateFileName() routine to be
more forgiving in case of user errors.
- New FindFileInPath() routine.
The "_SysSearchPath()" routine is now
simply a stub to this more powerful call.
- New /DebugChars switch to allow you to modify
some of debugs 'marker' characters.
- Minor change to "#NextId" inner workings, now
adds underscore to end of any user supplied mask (for safety).
- Note that there is now a new "SSI.IH" extension which helps
you have mixed ppwizard / SSI commands during migration from
SSI.
- You may need to modify your source, see following issues:
- FindFile() modified.
In the unlikely event you rely on the
changes made to this routine in the 2K.331
release you should double check the doco.
- Version 2K.337
- BeOS should now work.
As the shell is unix based, the operating system looks like
unix to ppwizard.
- The OL_DOC.DH header can now
create ".CHM" (windows compiled help files).
It builds the project, contents and index files required by the free
Microsoft compiler.
No doco, need to look in header.
I can provide an example if required.
Tell me if you don't like things as hardcode but note lots of stuff
is already configurable.
- PPWIZARD documentation now also available in CHM format.
Please let me know if you notice anything wrong...
- New /OnOk and /OnError switches
make it possible to completely work in a GUI environment.
- New /Exec routine to allow you to run a
command as ppwizard processes the command line.
- New /DropFiles allows you to reset input masks.
- Install for windows should now work for NT.
For NT/2000 the unpacker also automatically starts the
install (I've just about given up on the DOS based versions
95/98).
Major changes all round to how ppwizard installs.
- The "#require" command now takes a maximum
version number if this is required.
- If head tags need inserting for generator tag this is now in
lower case (so OK in XHTML).
- Fixed bug in handling of project files (says list file does
not exist).
- Version 2K.331
- PPWIZARD now looks for a default project file called
"ppwizard.ppw" in the current directory or the ppwizard directory.
If found this is processed via the existing
/List mechanism.
- PPWIZARD now allows
much simpler specification of options
via project files, for example use "@debug" to use the "debug.ppw"
configuration.
Very handy if you don't like using the command prompt and
very handy if you do!
- PPWIZARD install for windows now also registers ".PRJ" files.
- Enhanced the FindFile() routine.
Had to work around regina bug (reported) please let me know of
any issues.
- Version 2k.327
- Worked out why Windows 95 install of filetypes etc would
not work, now require users to download a free Microsoft
download (from my site).
Also at least with regina version 2.0 it can/does mistake WIN98
as WIN95, this would in the past have meant that it did not
completely install either, it should now.
- Fixed an OS/2 (native rexx only) bug in the
GetImageHeightWidth() routine.
It could not cache values for files that began with some
characters (bug introduced v2K.156).
- New CRC-32 routine of UpdateCrc32().
- New switch of /DebugCols.
- Version 2k.325
- To make ppwizard easier to use by people who would rather not
use the command prompt (as well as those who do) I have created
new switches of
/ConsoleFile and /ErrorFile.
The default is that an error file will be generated in the
current directory on error.
Updated ppwizard install for windows to generate PPWIZARD error
and console files in the "out" directory.
- New $$Rx' transformation
for macro replacement (better than "$$SQx2").
- New /DependsOnWarnings switch.
Warnings are considered abnormal items which should not exist
so the default is that dependancy files are not generated for
files that generate them.
Also found that certain errors could occur after a dependancy
file was built, this bug is now fixed.
- The GetImageHeightWidth() routine did not
understand the ".jpeg" extension (only ".jpg").
- Version 2k.316
- New "<?/>" code to allow HTML you generate
to use the information set by the /XSLASH switch.
- New command of "#NextId".
This command is handy when generating code such as rexx where you
wish the ensure that global variable names won't clash at runtime.
- New version of regina (v2.0) is packaged with the windows download,
this corrects a major memory leak when rexx stems are used.
It also appears to perform better.
I am currently recommending the use of this version.
- Version 2k.313
- New RandomString() routine which could help
if you wish to create random variable names etc.
- Have made the slash on the end of the default ppwizard
generator meta tag optional (off by default).
New /XSLASH switch to control.
- Version 2k.278
- I have just found out that the "W32SETUP" does not work at all
under WIN95/WIN98.
I have modified the install process and installed WIN98SE on my
machine and this is what I used for testing.
I use WIN2000 for testing and development.
PLEASE LET ME KNOW OF ANY PROBLEMS.
- Updated start of
PPWIZARD Command Line
documentation.
- Version 2k.268
- Minor adjustment to "#require" command to make
it case insensitive.
- Fixed bugs (which could generate an extra space or separator string)
and clarified documentation for the
"#OneLine" command when used to define a macro.
My head hurts after this one...
- You may need to modify your source, see following issues:
- If you use the #OneLine command to
define macros then you may need to make changes.
- Version 2k.266
- Fixed problem with #transform block
commands.
They did not work correctly when the output from macros
(which generated multi-line output)
was transformed (multiple lines got passed).
- You can now use FindFile() to look
for a file in exactly the same way as PPWIZARD does.
- Modified T2H #import.
By default a dot is now valid before the '@' in an email
address. Can now specify delimiters for email addresses.
- Version 2K.240
- New #define? command which
is a shorthand for conditional definition.
The doco for MacroSet() has also been
updated for this change.
- Version 2K.232
- New routine of GetAmPmTimeFromHhMmSs().
- Added more debug stuff.
Improved error message when temp environment variables are
invalid.
- Version 2K.195
- New page at http://www.labyrinth.net.au/~dbareis/ppwusers.htm, this page lists
some of the sites built with PPWIZARD.
Follow instructions to add your page.
- The multi line import
now handles line continuation allowing you to format long fields
better.
- Decided to make the ReplaceCurlyHexCodes()
routine available for use.
- Fixed minor bug in BreakAt(), this
did not like to break at spaces.
Doco for function was slightly corrupted.
- Should now produce better output when ppwizard detects an
error while processing the command line.
- Improved the documentation for
ppwizard's command line as
I noticed it was lacking a bit of detail...
- Version 2K.183
- The #DependsOn command can now be used to ensure
that particular files are always remade.
- New Tabs2Spaces() routine.
- You can now tell ppwizard to expand tabs to the
correct number of spaces (fixed tab size).
- Since regina's rexx tracing is hopeless I have decided to make
the default trace level 'OFF' (from 'INTERMEDIATES').
- If debug is on, now show all known variables on start/exit of
execution of #DefineRexx block.
- When a trap occurs executing some long rexx code (particularly
under regina) the displayed rexx is displayed better.
- Under regina default format for /DebugTime
is "elapsed" for versions 2.0 onwards (as time bug is fixed).
- You may need to modify your source, see following issues:
- The /Tabs switch no longer exists.
Use the /Option switch to specify the
correct tabs setting.
Note that this change means that you can now vary how tabs
are processed in the middle of builds.
- Version 2K.156
- Fixed "$trace message" rexx debugging, while it would work
when debug was on, it would cause a trap if debug was off.
You should be allowed to keep the debug code in when debug
is off.
- The GetImageHeightWidth() routine now
caches information by default (to speed up processing).
Much better example added.
- New #intercept block command.
- New mechanism which allows you to define your own
#Commands.
- Added regina "2.0" to list of supported regina versions.
- Windows installer now does not add editor for all file types
by default.
When debug option is used then debug output now displayed in
chosen editor.
- You may need to modify your source, see following issues:
- The GetImageHeightWidth() routine
now returns quotes around the values by default as this
will be required for XHTML etc.
- Version 2K.140
- Oops forgot to include "W32UTIL.DLL". Also doco was moved at
last minute and so was not kicked off.
- Updated install program to ask some install questions.
- Version 2K.137
- First version created under Windows.
Sorry no more IPF doco unless someone has an IPF compiler that
runs under windows.
- Windows users can now run "W32SETUP.CMD" to install both regina
and ppwizard.
Simply unzip into destination directory and run "W32SETUP.CMD".
Icons and right click options appear on ".IT/.IH/.X/.XH" extensions.
The directory is added to PATH and ".REX" to PATHEXT.
Let me know of any improvements.
- Under regina _SysFileTree() (and therefore
also ppwizard) now handles spaces in directory names.
- The default extension for generated rexx output is now ".rex"
except for OS/2 where it remains ".cmd".
- The <?NewLine?>" code could fail under
regina due to a bug in regina (at least in 0.08H and 2.0 beta).
I have reported and worked around this bug.
- Modified error messages from
GetImageHeightWidth() to provide more
detail on corrupted image files.
- Updated debug output when debug forced on due to "file
find" problems (to give more direction to users).
- The footer graphic was missing in the offline html documentation.
- Version 2K.098
- The Warnings option can now allow you
to "promote" warnings into a fatal errors.
- "PPWCURL.CMD" now called "CHECKURL.CMD" and has been
"unbundled" from PPWIZARD.
- Updated OL_DOC.DH to be
more XHTML friendly. Added "/P" macro.
- Now passes through any strings that look like
"<?xml ...?>"
- The default HTML generator tag is now more XML/XHTML friendly.
- You may need to modify your source, see following issues:
- The "Warnings2Ignore" option renamed to
"Warnings".
I won't change this again, I promise!
- Version 2K.086
- Created new "#option" command of
Warnings2Ignore.
- Fixed recently reported bug to do with "FIX" type
#import failing (undefined variable trap).
- Updated PPWCURL.CMD so that on 301/302
type server responses where a relative "new location" is
supplied then it is converted to an absolute address.
Also found that some "stupid" sites tell you about a move
to the same address (this is now treated as OK)!
New "/Exclude" switch allows you to specify files that do
not contain URL lists.
New "/OkResponses" which allows you to specify one or more
server return codes that you would like to treat as OK.
New "/HttpUserAgent" switch to allow you to simulate
specific browsers if you wish.
- You may need to modify your source, see following issues:
- The "/WarningsIgnore" switch no
longer exists.
Use the "/Option" switch with the
"Warnings2Ignore" subcommand to
achieve the same result.
- Version 2K.068
- The "{$path}" file spec for generated files was not
working correctly (others fine), faulty since the
"2K.050" release.
- Fix minor debug indent bug.
- When making directory tree don't try to make "." and ".." dirs!
- Version 2K.054
- Regina (at least 0.08G/0.08H) has an argument passing bug (bug
reported, sent small testcase to Mark Hessling).
Made a code change which will probably prevent regina from
causing sundry errors (garbage in rexx variables or
running out of memory).
- The version of regina in PPWW32.ZIP was a very old 0.08E, updated
to 0.08H (the latest).
- Dump variables if "/HOOK" script
indicates an error.
- Version 2K.050
- More FTPLIKE.IH header changes.
- Added new GetImageHeightWidth() example
that obtains height and width information in an alternate format.
- Updated OL_DOC.DH to fix
minor "LinkTo" tag bug.
- PPWIZARD now goes into a "cripple" mode if a file can't be
located but an individual file which seems to exist was specified,
this will hopefully cover unix variants. This is intended to get
someone going until the problem is reported and fixed.
- New /HOOK type which can be used to obtain
a list of files.
- Removed the /ScanSubDir switch as it is no longer
required, simply preceed all filemasks with '+' to obtain the same
effect.
- PPWIZARD now detects FREEBSD and varies the way files are found.
- You may need to modify your source, see following issues:
- Modified the way /Hook hooks are called.
The main change is that most parameters are now passed
to the hook as parameters and not environment variables.
- Version 2K.040
- Now check nesting of #output commands.
- The "/WarningsOk" command line switch caused ppwizard to fail
if warnings were generated under regina, this switch has now
been replaced with a new "/WarningsRc" switch.
- PPWIZARD Macros in command line of the
#MacroSpace command are now handled.
- Added new import example.
- More FTPLIKE.IH header changes.
The default output is now much prettier, for an
example of a very much customised use then have a look at my
WPS bookmarks (currently about 100 categories/folders worth at
http://www.labyrinth.net.au/~dbareis/bookmark.htm).
- Fixed a trap that occured once ppwizard has reported that it
has detected an infinite loop in macro replacements.
- Updated OL_DOC.DH so that
user can make IDs case sensitive (and therefore also causes mixed
case in generated html files).
- The "BIN2PPW.CMD" program updated to produce cleaner output
now that ppwizard can work around regina's tight line restrictions.
- Version 2K.034
- New <?NewLine?>" code which generates
a newline only if it appears in the middle of a line.
- New <?LessThan> &
<?QuestionMark> definitions.
- On fatal error add operating system & rexx information.
- New RexxVarDefined() validation routine.
- Updated FTPLIKE.IH header.
Many improvements such as capability of naming individual html
pages and determining look and feel of directory sub trees
(background etc).
- Added debugging of use of environment variables.
- Fixed trap that could occur if you incorrectly used
#OutputHold blocks.
- Version 2K.020
- Modified GetImageHeightWidth() so that it
now handles "PNG" formatted files, fixed up some error messages.
- The /List switch now allows you to handle
switches are well as filemasks.
- Improved error message when ppwizard detects an output file is
already opened.
- Changed default redirection method under linux, now have a
new /RedirMethod switch.
This is mainly intended for unix where the method of file
redirection can change with different shells.
- Additional debug info.
- Added test for shell execution failure...
For operating systems where regina supplies 2 executables
("rexx[.exe]" & "regina[.exe]") I highly recommend the use
of "rexx[.exe]".
- Version 2K.003
- The #undef command now replaces any macros in
it's parameters.
- PPWIZARD under regina could potentially hang on certain
operations such as #import when generating a temporary
filename, this would have been rare but still perfectly possible.
- It was possible (if input file caching was used) for a
Dependancy check to fail to
detect that a file was changed if that file was modified in the
middle of a ppwizard run.
- On Unix systems should no longer create "nul" files when
making directories!
Older Entries Than Those Above
If you need to see older entries then please have a look at
my older change history page.
PPWIZARD Manual

Tuesday January 02 2001 at 7:37am