CHANGES to LPU
==============

Version 0.9-24, started 18.08.2000:

  This is a beta release version. Only small bug fixes will be done
  here, if required. Further development will continue in 0.9-25.
  It is the first official release with an English documentation.

 + German and English manuals are up to date as of 21.08.2000.


Version 0.9-23, started 11.06.2000:

 +  corrected an error in the processing of command line arguments
    (@parfile)

 +  better support for datatype 'float'

 +  new command line option '-h' for help

 +  new 'stdin mode', if no source files are given on the command line.
    If no arguments are given at all, a dummy option '--' is required

 +  new dot commands:

      .cr
      .home
      .hskip WIDTH
      .vskip HEIGHT

 +  added experimental support for EPS files

      .eps insert FILENAME { OPTION }
      .eps open   FILENAME
      .eps resize XSIZE, YSIZE
      .eps rescale XSCALE, YSCALE
      .eps show   [@(XPOS,YPOS)] { OPTION }
      .eps close

 +  new system functions

      $gendate
      $eps{xsize} $eps{ysize}
      $odd(num_expr)
      $float(num_expr)

 +  updated the documentation

 +  first version of an English manual created (Uff! :-)

 +  signal SIGINT (as emitted by ^C) forces LPU into single step mode.
    This way, an endless loop can be inspected via the debugger.

 +  new dot command '.watch [watchlist]' and debugger command
      'w[watchlist]' define a list of 'watch expressions'; they will
      be printed in trace and debug modes after the current line.

 +  new option '.frame' for command '.window'.
      this implied changes on some internal function prototypes.

 +  new option '.full' for command '.eps insert' scales the eps figure
    to fill the complete current window.

 +  new option '.scale(xs, ys)' for command '.eps insert' scales the
    eps figure by the factors given.

 +  shell wrapper 'lpu.sh' to executes lpu files automatically
    (incomplete and undocumented)


Version 0.9-22, started 24.05.2000:

  This is a beta release version. Only small bug fixes will be done
  here, if required. Further development will continue in 0.9-23.


Version 0.9-21, started 04.01.2000:

 +  corrected error in '.requires'

 +  options '.dashed' and '.dotted' added to '.gline' and '.gbox'

 +  underline text items with '.uprint'

 +  new system functions:

      $fontheight
      $baseline
      $formcnt
      $formid(FNR)
      $lblcnt(FNR)
      $lblid(FNR, LNR)
      $lblxcnt(FNR, LNR)
      $lblycnt(FNR, LNR)
      $dots(UNIT_EXPR)

 +  corrected error in .form for subsequent invocations

 +  font description now contains information about bounding box
    and baseline

 +  new command '.noeject'
    exactly as '.eject' but stays on the current page

 +  new internal expression type 'unit_expr': it consists of a T_NUM-
    or T_FLT-expr, optionally followed by a unit-id. The result will
    always be of type T_NUM and contain the number of DOTs.
    Can be used everywhere, where a UNIT is expected; in all other
    expressions, '$dots(UNIT_EXPR)' may be used for that purpose.

 +  error in '( expr )' corrected.

 +  corrected an error in 'error()' and 'warning()', related to the
    context of the error location.

 +  documentation updated, a html version can be viewed 'online'.

 +  corrected error in '.hline': didn't reset the default pen

 +  corrected behavior of '.eject' on an empty current page

 +  corrected context error in '.var' 

 +  added logical (&&, ||) and binary (&, |) operators to expressions

 +  corrected error in comment lines with ';' not in 1st column


Version 0.9-20, started 21.06.1999:

 +  added option -jN, skip over the first N labels on the page

 +  some minor bug fixes

 +  replaced 'gets' by 'fgets(stdin)'

 +  added command '.requires VERSION'
    this implied a change in the internal representation of the
    version string


Version 0.9-19, started 12.07.1998:

 +  some error messages became more verbose

 +  support for underlining of strings (work in progress)

 +  fixed a bug with clipping ('newpath' inserted)

 +  fixed a bug in $isstr and $isnum

 +  added option '-b' for batchmode

 +  added function '$batchmode' for testing the actual mode

 +  added option '@optfile' ...

 +  documentation converted to sgml.


Version 0.9-18, started 13.06.1998:

  only some minor corrections


Version 0.9-17, started 28.05.1998:

 +  lines, which start with a '#' are considered to be a comment,
    unless they are immediately followed by a valid identifier.
    In that case, a preprocessor command is expected.

 +  the prototypes of devapi functions that are related to font handling
    have been modified. This was done in preparation of the support of
    proportional fonts.

 +  proportional fonts! (but without kerning yet)
    as a result, the %PsFont command in the DEV file has been modified,
    and a new command %AfmPath was added

 +  parameters may now be passed to procedures

 +  added some new functions:

      $strtok()
      $ltrim()
      $rtrim()
      $trim()
      $parcnt
      $param()
      $version
      $str()

 +  added options '.center', '.left' and '.right' to command '.hline'

 +  changed syntax of the ink definition

 +  added option '.ink' to commands '.gline', '.gbox' and '.gcircle' 


Version 0.9-16, started 14.05.1998:

 +  added command line option -p<parfile>
    this selects an alternate parameter file

 +  added command line option -s<symbol>[=<value>]
    this declares the global variable 'symbol' of type STRING,
    and optionally assigns the string 'value' to it

 +  added function $isvar(VAR)
    checks, if a variable of the given name exists

 +  added function $isnum(VAR)
    checks, if a variable of the given name exists, and is of type NUMBER

 +  added function $isstr(VAR)
    checks, if a variable of the given name exists, and is of type STRING

 +  added (already documented ;-) function $dbfld(dbnum, fldnum)
    returns the field with number 'fldnum' of the current record of
    database 'dbnum'.

 +  added 'assign', 'evaluate' and 'quit' to the internal debugger,
    and solved an internal problem with the context.

 +  corrected behavior of the backslash in the output stream

 +  updated documentation

