Welcome
 Revisions
 Downloads »
 FAQ
 Tutorials »
 Reference »

Hitop Revision History

Version 0.38 (2005-01-25)
  • Maintenance release to allow compilation of PostgreSQL plugin in recent Linux distributions.
Version 0.37 (2003-11-26)
  • Maintenance release to allow hitop to compile on V3.3 of gcc.
  • New function PLURAL(num) in the English plugin to pluralize a noun if passed a value other than 1, or otherwise leave it as it is.
  • Minor bugfixes.
Version 0.36 (2002-12-30)
  • Maintenance release to allow hitop to compile on V3 of gcc.
  • Maths evaluation now correctly deals with numbers in exponential form, and no longer underflows its evaluation stack for malformed expressions.
  • The COLOR plugin has new functions BRIGHTENABS, DARKENABS and SATURATEABS. The ROTATE function now correctly deals with negative colourwheel rotations that pass 0°. The DISTANCE function gives better estimates of colour similarity.
  • The SMS procedure in NOTIFY has been removed.
Version 0.35 (2001-06-10)
  • <@COMMENT>...</@COMMENT> has been introduced. It can be wrapped around text, markup, and crucially around hitop markup. The markup inside does not have to be structurally correct. The whole section is removed from the final output.
  • @ELSEIF has been added. It can be used as many times as you wish straight after an @IF (but before the @ELSE if there is one), and takes exactly the same parameters as @IF.
  • @FILE now takes a FORMAT of one of HITOP, SAFE and VERBATIM. HITOP is the default, and works as a traditional @FILE. SAFE reads in the stream, folding spaces, etc. but doesn't process the stream. It's useful where you want to include HTML that others are controlling. VERBATIM reads and outputs the file as it is, including spaces and linebreaks, except it will swallow a final carriage return.
  • @FOR is a pure, traditional for loop. It's always been possible with @FOREACH, but it was never obvious. @FOR takes an ENTRY for the procedure to be called, FROM and TO contain the extremes of the for loop, with an optional STEP. The direction of the count will be automatic.
  • @FOREACH now takes a PREFIX which allows to you foreach over a range of variables - by name. It's probably most useful as "FORM_" for working over the variables passed to a hitoplive file.
  • @GET, @IF and @SET now take EXPR (for expression) for use instead of a VALUE. In the case of @IF, if the expression evaluates to zero, it's false. This will get more useful when we beef up the evaluator.
  • @HITOP now has a CONTENTTYPE so you can specify what kind of document hitoplive is to return. This gets far more useful when we have XML support finished.
  • @SET can take an SRC in place of a VALUE to set the variable to the contents of the file. All characters are left intact, except a final carriage return will be swallowed.
Version 0.34 (2001-02-04)
  • Tabs now correctly expand (to a single space) on input.
  • You can now safely embed < and > inside quoted strings on input and on output.
  • Hitop does much more internal tokenization and caching throughout. This makes it faster and smaller.
  • Migration to supporting XML has begun. None of the changes are user-acessible yet.
  • @FOREACH didn't like multicharacter separators. Fixed.
  • Hitop can now find IMGs that have SRCs that contain URL encoded characters
  • Output now doesn't break quoted strings in elements over multiple lines. This stop Netscape mucking up split button text and ALT strings.
  • The ROMAN() core string function to convert an integer into its roman numeral representation has been added.
  • The RANDOM() core string function has been added.
  • Hitoplive now obliterates passwords from error messages in database connections etc.
  • Hitoplive now outputs its warnings and execution time at the end of its output in a comment.
  • Hitoplive now correctly handles missing files by giving a 404 error rather than a 500.
  • The attributes ASSIGN and DISCARD have been introduced to @QUERY to make queries that don't return multiple results more straightforward.
  • Four new plugins (deutsch, english, francais, italiano) have been introduced to provide localized full and short month and day names.
  • The color plugin has a new SMARTSAFE() function which provides a better-than-usual websafe colour. It won't turn a subtle pink into a bright yellow, for example.
  • The color plugin now correctly crops out of range RGB values.
  • The notification plugin has been released.
Version 0.33 (2000-10-22)
  • A PostgreSQL engine has been added
  • Cookie support has been added to hitoplive using the @SETCOOKIE command
  • IMG will now fill in the size for PNG images thanks to code contributed by Andrew Stribblehill
  • Items passed back through FORM_ variable now have their entities escaped in the standard way to prevent security problems that can occur if hitop pages don't validate data they are given. This is not a problem with hitop itself but can occur in all dynamic scripting environments if developers are unaware of exploitable features
  • The database engines now expect their query strings to have entities escaped, and will escape the entities in the results they pass to your formatting procedures
  • PERSISTENT scope has been removed, as in practice it was no use at all, and such things are better done with a database. The @LOAD command has therefore been removed
  • A few obscure inconsistencies between the original implementation of NAV and the current one have been fixed
  • There have been changes to improve the compatibility of the makefile
Version 0.32 (2000-04-26)
Finally, the rewrite and move to a new architecture is complete. The first thing that should strike you is the increase in speed - typically around four times the speed of 0.30. Secondly, there's hitoplive and plugins to deal with, but they'll be described in more detail when the new site arrives in the very near future. The following commands are new in 0.32: @LOAD (to retrieve variables from persistent store), @RAWHEADER (used by hitoplive to let you handle HTTP headers directly), @REQUIRES (to load plugins) and @UNSET (the opposite of @SET). The following commands have had their behaviour enhanced: @HITOP (addition of DEBUG and LIBS), @IF (new options for COMPARE) and @SET (two new scopes for you to with and DEFAULT). You can read more in the reference section.
Beta Version 0.31 (2000-03-06)
This is pretty much a rewrite of the existing hitop code. At this point - before we start talking about its new features - it's important that we check its compatibility with existing sites. If you have a hitop-driven website, it would be useful if you could give the new beta version a go. I promise you that the new features waiting in the wings make the migration a big step forward.
Version 0.30 (1999-12-04)
The reliance on libg++ has been removed. This has led to the reimplementation of string handling (using a wrapper class around STL's string class) and a replacement of the use of regexes. @DEBUG has been introduced to help you debug your output. Calls to the non-standard strptime() have been replaced. Variable handling has been improved. A long-standing problem with the capitalization of parameters in inline string expansions has been fixed. This version should compile and run on more platforms than ever before.
Version 0.29 (1999-06-23)
The rewrite of NAV had introduced a problem with submenus that opened out with a submenu as their first item. This has been corrected.
Version 0.28 (1999-06-22)
The command @HITOP has been introduced. This currently has no function, but is removed from source. Major parts of NAV have been rewritten as a new set of classes. This migration is ongoing. The formatting of parent items in OPEN formatted NAV bars has been corrected. The string function D2X has been introduced.
Version 0.27 (1999-06-10)
IF no longer accepts string processing commands in expressions without a VALUE. IMG no longer searches for files when a fully-qualified URL is given. NAV now passes TYPE and OPEN to ENTRY procedures. These two values supersede SELECT. ESCAPEURL now only escapes those characters it needs to. Various string processing commands did not function as documented with negative values and have now been corrected. The string processing function C2X has been added. More of these type of functions will follow.
Version 0.26 (1999-04-09)
The hexadecimal digits produced by the string function ESCAPEURL are now uppercase. Three new date-handling string function, DATETODAYNUM, DAYNUMTODATE and DAYOFWEEK, have been added.
Version 0.25 (1999-03-12)
The default FLAT format of NAV has had the trailing vertical bar removed from each level. The command line format has been changed slightly. Several string processing functions have been added to the variable handling. To support these, string literals for variable names are now permitted and @GET has an optional FORMAT parameter. @FOREACH now takes a SRC to use a database file.
Version 0.24 (1999-03-02)
NAV files may now contain absolute URLs - but will issue a warning about their use. IMGs will now report if the file cannot be interrogated for the WIDTH and HEIGHT. Fixed a bug in FLAT formatted NAV where the SELECT passed to ENTRY was incorrect. Added <@UNDEF>.
Version 0.23 (1999-02-23)
Errors and warnings now report the file and position of the problem in standard format.
Version 0.22 (1999-02-23)
Increase in speed thanks to a rewritten structure parser. Hitop now (pedantically) checks the basic structure of the resulting HTML document. Hitop now accepts all hitop markup with an @ prefix. It is expected that this will become recommended and eventually compulsory. A longstanding bug which permitted lone <ELSE>s was fixed with the reimplementation of the structure parser.
Version 0.21 (1999-02-22)
<NAV> now passes the parameters POSITION and TOTAL to ENTRY procedures. PREGROUP and POSTGROUP can now be used with all <NAV> styles.
Versions 0.13 to 0.20
Info to be added.
Version 0.12 (1998-02-21)
An obscure algorithm bug in <IF> handling was causing corruption on certain platforms but was being masked by the memory handling of others. <IF> should now work fine with empty <IF> and <ELSE> terms.
Version 0.11 (1998-02-17)
I broke the output of error messages in the previous version. Fixed.
Version 0.10 (1998-02-09)
Hitop now formats its HTML output sensibly. <PRE> is still not recommended. Some minor efficiency improvements.
Version 0.09 (1998-01-28)
Minor changes to the default formatting of <NAV>.
Version 0.08 (1998-01-23)
SRC, FROM and TO added to <NAV>.
Version 0.07 (1998-01-21)
The first appearance of <NAV>.
Version 0.06 (1998-01-19)
Including empty files caused spurious characters to appear. The problem has been fixed.
Version 0.05 (1997-12-08)
<DEF> with missing </DEF> caused a dereference of a null pointer (bug introduced in previous version). Whitespace folding was fundamentally flawed.
Version 0.04 (1997-12-06)
Predefined variables FILE, DATE, DATEYEAR, DATEMONTH, DATEDAY, TIME, TIMEHOUR, TIMEMINUTE and TIMESECOND introduced. Comparative <IF> statements introduced.
Version 0.03 (1997-11-29)
First public beta release.

Last updated 2005-01-25