1.3 - Monday 02 July 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Documentation updates.


1.3beta2 - Thursday 31 May 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #10766: ezcConsoleQuestionDialogTypeValidator with TYPE_FLOAT
  does not accept numbers like 4E3.
- Fixed issue #10767: Class ezcConsoleQuestionDialogRegexValidator described
  in the design document is missing.
- Fixed issue #10782: ConsoleTools: Argument mandatoryness applies always. If
  help option is set, arguments are not checked anymore and old argument
  checking is used, if arguments are disallowed (to assure this is checked
  correctly).
- Fixed issue #10864: ezcConsoleTable calculates wrong column length for
  content including line breaks.
- Fixed issue #10873: ezcConsoleArgument default value not working.
- Fixed issue #10874: ezcConsoleArgument default value not contained in
  generated help text.


1.3beta1 - Monday 07 May 2007
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #9857: Multi-option and default value. Arrays are now allowed in
  default value, if multiple-option is set to true.
- Fixed issue #9902: Problems on Windows.
- Fixed issue #10594: ezcConsole*Options throw incorrect exceptions.
- Fixed issue #10595: ezcConsole*Options perform improper string checks.
- Fixed issue #10596: ezcConsoleTable* classes do not perform proper property
  checks.
- Fixed issue #10604: ezcConsoleInput exception not thrown on invalid option
  string.
- Fixed issue #10608: ezcConsoleInput->registerAlias( ) does not work.
- Fixed issue #10617: ezcConsoleInput->process() bails out incorrectly on
  option exclusion.
- Fixed issue #10619: ezcConsoleOutput __set() broken.
- Fixed issue #10620: ezcConsoleProgressMonitor->__set() issues warning.
- Fixed issue #10624: ezcConsoleStatusbar set access to property $options
  broken.
- Fixed issue #10625: ezcConsoleStatusbar isset access to property $options
  broken.
- Fixed issue #10626: ezcConsoleStatusbar does not trigger warning on invalid
  status.
- Fixed issue #10710: ezcConsoleTable reports fatal error on example
  $table[][0]->content = "foo".
- Implemented issue #8461: Argument help text. A completely new argument
  handling was invented.
- Implemented issue #8471: Disable borders for ezcConsoleTable. Borders can be
  disabled by setting the line and corner properties to null.
- Implemented issue #9216: ezcConsoleInput::getOptionValues I want long names.
  ezcConsoleInput->getOptionsValues() can now be configured to index the
  returning array with option long names.


1.2 - Monday 18 December 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #9493: Convert < and > in exception messages to ' and ' for
  Cache, ConsoleTools, ImageAnalysis, ImageConversion, PersistentObject,
  PersistentObjectDatabaseSchemaTiein.


1.2beta2 - Monday 20 November 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed issue #8466: Properties are not documented in ezcConsoleTable,
  ezcConsoleStatusbar, etc.
- Fixed issue #9241: Progressbar does not work correctly on Mac OS X.


1.2beta1 - Tuesday 24 October 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Added the 'target' property to the ezcConsoleOutputFormat struct. This
  allows you to print to a different output target (e.g. stderr).


1.1.3 - Monday 09 October 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #9046: An argument should not be treated as an invalid option
  value for an option that doesn't take any value.
- Fixed bug #9052: An exception was thrown because of an invalid property in
  ezcConsoleOption.


1.1.2 - Monday 28 August 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #8738: Unexpected behaviour with options->colPadding.
- Fixed bug #8478: ezcConsoleOutput format (foreground) color 'black' not
  available. (The fore-/background colors black and gray are now the same and
  available for fore- and background).
- PHP 5.2 compatibility.


1.1.1 - Monday 07 August 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #8525: ConsoleInput::getHelpTable() exits with a fatal error.
- Fixed bug #8645: Default values not set correctly in ezcConsoleInput.


1.1 - Monday 12 June 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #8460: ConsoleOption is a class and should have properties instead
  of public variables.
- Fixed bug #8472: Update documentation for ezcConsoleTableOptions.


1.1rc1 - Monday 29 May 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Implemented feature request #7792: Possibility to omit the short options.
- Refactored to use the new ezcBaseOptions class.


1.1beta2 - Tuesday 09 May 2006 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed bug #8173: ezcConsoleInput::getHelpText() does return empty synopsis.


1.1beta1 - Wednesday 19 April 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Added getHelpTable() and getHelpText() methods to ezcConsoleInput for more
  convenient help output generation.
- Added ezcConsoleOption::$isHelpOption flag to indicate, that an option is to
  request help. If this flag is set and the option is submitted by the user,
  rule checking (dependencies/exclusions/madatoryness) is disabled.
- Added ezcConsoleInput::helpOptionSet() method which returns if an option
  that was defined to be a help option was submitted.
- Added the class ezcConsoleProgressMonitor that is capable of printing status
  information and percentage progress to the console.


1.0.1 - Monday 06 March 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed unreported bug: ezcConsoleOutput::toPos() has a typo in a parameter.
- Fixed unreported bug: ezcConsoleOption::__construct() still threw old
  exception style. Now throws correct ezcConsoleInvalidOptionNameException on
  an invalid option name.
- Fixed bug #7897: Access to 'step' property does not work through overloading
  in ezcConsoleProgressbar.
- Fixed bug #7923: ezcConsoleInput::getSynopsis() does not work when
  supplying parameters to show.

ezcConsoleProgressbar
---------------------

- Added support for a non-integer maximum.
- Added an optional parameter to the advance() method that advances the
  progress bar with a different step size than 1.
- Added formatting options for %max% and %act%.



1.0 - Monday 30 January 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Fixed unreported bug: ezcConsoleTableOptions struct caried deprecated
  options and missed 2 in its constructor.
- Fixed unreported bug: Option values not properly checked for ezcConsoleTable,
  ezcConsoleOutput.
- Fixed unreported bug: ezcConsoleProgressbarOptions disallowed option
  read access.
- Fixed unreported bug: ezcConsoleTable "colWrap" option not recognized
  correctly.
- Fixed unreported bug: ezcConsoleTable "defaultFormat" and
  "defaultBorderFormat" not recognized.
- Fixed notice in ezcConsoleOptionExclusionViolationException.


1.0rc1 - Monday 16 January 2006
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Added redrawFrequency option to ezcConsoleProgressbar to allow less redraws
  than advance() is called. This allows the progress measuring of huge numbers
  without redrawing the bar each time advance() is called.
- Added setOptions() method to ezcConsoleOutput, ezcConsoleTable,
  ezcConsoleProgressbar and ezcConsoleStatusbar.

- Changed exception behavior. All errors will now throw a different exception
  class.
- Changed default progressbar size to 78 characters (standard console width).
- Changed submission of options to ezcConsoleOutput, ezcConsoleTable,
  ezcConsoleProgressbar and ezcConsoleStatusbar to be an array.
- Changed value "step" to be an option in ezcConsoleProgressbar with default
  value = 1 (was a setting before).
- Changed "successChar" and "failureChar" to be options in
  ezcConsoleStatusbar (were properties before).
- Changed getSuccesses() to getSuccessCount() and getFailures() to
  getFailureCount() in ezcConsoleStatusbar.

- Fixed unreported bug regarding rounding problems when calculating different
  measures.


1.0beta2 - Friday 23 December 2005
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Added convenience method ezcConsoleOutput::outputLine(). 
  This one adds a line break after outputting the desired text and works also
  without any text to print a blank line (similar to Pascals writeln()).
- Added option filter parameter to ezcConsoleParameter::getHelp().
  This allows you to filter which parameters the information will return
  information about.
- Added a new class ezcConsoleOption. 
  This represents a single option. Before this was named parameter and an array was
  used to structure option properties.
  Therefore changed / removed the following methods in ezcConsoleParameter
  (now ezcConsoleInput):

  * getParamDef() -> Deprecated & removed, since getOption() now returns the 
    complete option object, including settings and value.
  * getDefaults() -> Deprecated & removed, since getOption() now returns the
    complete option object including the default.

- Added new setting "mandatory" to ezcConsoleOption.
  This indicates that an option should always have submitted. Normally all
  options are optional.
- Added method getSynopsis().
  This generates a synopsis string for the program autonmatically.
- Added cell, row and table based format and alignment settings to
  ezcConsoleTable.  This allows you to let rows and cells inherit their format
  and alignment settings. Rows inherit the format, align and (new)
  borderFormat value that were set globally, but only if they have no explicit
  value set.  Cells inherit their row's format and alignment settings if they
  are not explicitly set.
- Added <borderFormat> property to rows.
  This allows a more flexible way to specify the format that a border of a row
  should have, instead of just saying: "this is a headline row".
- Added new alignment constant ALIGN_DEFAULT to ezcConsoleTable.
  This is the default alignment used in ezcConsoleTable objects (cell, row) to 
  indicate, that the alignment setting should be inherited from the parent.

- Refactored the whole package to fit into the unified layout and provide a
  much more convenient API.
- Renamed the class ezcConsoleParameter to ezcConsoleInput.
  Reflects it's purpose much better and avoids conflicts with the acronym
  "option", which is now used in ezcConsoleOption.
  Renamed the cooperating types and methods:

  * ezcConsoleParameter::registerParam() to ezcConsoleInput::registerOption().
  * ezcConsoleParameter::unregisterParam() 
    to ezcConsoleInput::unregisterOption().
  * ezcConsoleParameter::getParam() to ezcConsoleInput::getOption().
  * ezcConsoleParameter::getParams() to ezcConsoleInput::getOptions().

- Changed to the use of structs instead of complex array structures: 

  * ezcConsoleOptionRule (replaces old handling of dependencies and exclusions
    between options - former parameters).
  * ezcConsoleOutputFormat (to define format options).
  * ezcConsoleOutputOptions (stores the options for ezcConsoleOutput).
  * ezcConsoleProgressbarOptions (stores the options for
    ezcConsoleProgressbar).
  * ezcConsoleTableOptions (stores the options for ezcConsoleTable).

- Changed to the use of "extended structs" where it made sense to avoid
  complex arrays:

  * ezcConsoleOutputFormats (iteration and on-the-fly creation of format
    definitions in ezcConsoleOutput through
    $out->formats->{formatname}->{formatoption} = ...;)

- Changed handling of parameter names in ezcConsoleInput. 
  Short and long parameters are now also handled without their prefixes ("-"
  for short names and "--" for long names) everywhere.
- Changed to use overloading property access - __get(),__set(),__isset().
  To unify access to object properties and in different other places, which
  are explicitly mentioned above (see e.g. ezcConsoleTable) where possible.
- Changed handling of default values for ezcConsoleOption.
  Default values are now set if the parameter is not submitted at all. If an
  option that expects a value is submitted without, this results in an
  exception.
- Changed "colAlign" option to "defaultAlign".
- Changed handling of table structure to classes ezcConsoleTableRow and
  ezcConsoleTableCell.  These allow a convenient way to create and customize
  console based tables: 
  
  * $table[0][]; // creates a new cell 
  * $table[2][]->format = 'important'; // creates a new cell and set's it's
    format to 'important',
  * $table[2]->align = ezcConsoleTable::ALIGN_CENTER; // sets the default
    align

- Removed $cols setting from ezcConsoleTable.
  The table now knows on its own how many columns it has, when it is
  rendered.
- Renamed ezcConsoleParameter to ezcConsoleInput.
- Renamed methods (consistency):

  * ezcConsoleOutput::styleText() to ezcConsoleOutput::formatText().
  * ezcConsoleInput::fromString() to ezcConsoleInput::registerOptionString().
  * ezcConsoleInput::getValues() to ezcConsoleInput::getOptionsValues().

- Fixed bug with argument handling and non-value parameters in
  ezcConsoleInput.  It was not possible to sumit the name of a parameter as an
  argument after the argument seperator "-- ".
- Fixed bug with submitting multiple parameters of the same name without
  value.


1.0beta1 - Friday 25 November 2005
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Initial release of this package.
