heitml 1 Compatibility
heitml 2.1 includes the non-object-oriented heitml 1.x libraries for compatibility. This chapter contains the library documentation and a lot of demonstration/example programs.
If you prefer programming heitml in a non-object-oriented way, these libraries and demos might still be interesting to you.
Incompatibilities of the heitml language
In heitml 1, a define without formal parameters accepted any possible actual
parameters. In heitml 2, it does not accept any parameters. To accept any
possible actual parameters, the '...' syntax can be used. To fall back
to the heitml 1 behavior, set the
In heitml 1.23, the undocumented directory() function returned an empty tuple on a non-existing directory. In heitml 2, it returns the null value to distinguish between a non-existing directory and an empty existing directory.
heitml 2 does shortcut evaluation of conditionals. Therefore, you should review heitml 1 programs that have side effects in conditionals.
In heitml 1, the null value behaved neutral in expressions (e.g. null+1000 evaluated to 1000). heitml 2 returns an error for expressions operating on null.
In heitml 1, comparing two values with operators == or != resulted in type errors, if operand types were incompatible. heitml 2 returns false (see Language Reference).
In heitml 1, the configuration option
In heitml 1, you were able to pass undefined operands as well as function calls to the default() function. With heitml 2, you should assign the result of each function call to a variable first and pass this variable to the default() function.
© 1996-2023 H.E.I. All Rights Reserved.