Changes Log for the Tcladdressbook extension
============================================

The main home page for the Tcladdressbook project is at 
<http://tcladdressbook.sourceforge.net/>.

This is an Open Source project. The source code for this extension can be 
found on the SourceForge site at: <http://sourceforge.net/projects/tcladdressbook>

Tcladdressbook binary releases are available at
<http://sourceforge.net/project/showfiles.php?group_id=96169> or on my web 
page at <http://perso.orange.fr/bdesgraupes/tcl.html>

The code is under Subversion control. You can retrieve the latest stage of 
development using any Subversion client. See instructions at:
<http://sourceforge.net/svn/?group_id=96169>

You can also browse the cvs repository online at
<http://tcladdressbook.svn.sourceforge.net/viewvc/tcladdressbook/> 

Please e-mail about any problems you might encounter: 
<bdesgraupes@users.sourceforge.net> 

This changes log is in reverse chronological order (from bottom to top).



================================================================================
= 1.2.4				 		              last update: 
================================================================================
¥ added more sanity checks
¥ 
================================================================================
= 1.2.3				 		              last update: 2009-05-13 18:30:48
================================================================================
¥ internal modifications for construction of Tcl object representing 
a record.
================================================================================
= 1.2.2				 		              last update: 2009-03-09 13:54:17
================================================================================
¥ fixed an issue where [addressbook set] would install an empty value
when applied to a multidictionary value (like Address).
¥ fixed a crash when parsing a wrongly formatted multidictionary value.
¥ allowed the [addressbook label] command to operate on group records.
It was previously limited to person records.
¥ the [addressbook getme] command now raises an error if no record is
defined as "Me" record, rather than returning an empty string.
¥ added suffix matching in the [addressbook search] command. It is
represented by a "=$" operator. Previously only prefix matching
(represented by the "^=" operator) was available.
¥ added "!>" operator in the [addressbook search] command to specify
that a field does not contain some substring.
¥ not applicable operators used in the [addressbook search] command
(like ^= and =$ for numeric values, <, <= and !< for string values) now
raise an error rather than returning an empty result.
¥ all the property types are now implemented (Array, Data, Date,
Dictionary, Integer, Real, String, MultiArray, MultiData, MultiDate,
MultiDictionary, MultiInteger, MultiReal, MultiString). Previous versions
only implemented a subset.
¥ added a complete tests suite.

================================================================================
= 1.2.1				 		              last update: 2007/11/06 13:15:29
================================================================================
¥ Improvements to TEA buildsystem, update to TEA 3.6. 
¥ Fix warnings from gcc.

================================================================================
= 1.2				 		              last update: 2007-09-14 11:00:14
================================================================================
¥ Changes for compatibility with gcc 4.0.1. Fixed all the warnings.
¥ Rebuilt for compatibility with Tcl 8.5.

================================================================================
= 1.1.5b1			 		              last update: 2005-08-09 17:38:31
================================================================================
¥ Modifications for TEA support.
¥ Minor syntax modifications for CW9.
¥ 

================================================================================
= 1.1.4 released	 		              last update: 2005-06-06 15:13:59
================================================================================
¥ Fixed refcounts issue introduced in the multidictionary values by the recent 
  changes in 1.1.3.
¥ removed unnecessary direct link to Tcl.framework from TclAddressBook.pbproj

================================================================================
= 1.1.3 released	 		                  last update: 2005-04-04 06:57:17
================================================================================
¥ Linking against the stub library to fix the problem of previous version not
  working with newer versions of Tcl. 
¥ Internally, now using public function Tcl_ListObjIndex() instead of private
  TclLindexList().
¥ Added a devel number to the version number string.

================================================================================
= 1.1.2 released	 		                  last update: 2004-08-25 16:16:25
================================================================================
¥ The [Import] command also copies the image when importing a VCard.
¥ Fixed a bug where [parents] applied to a person's record reported only 
  the IDs of the parent groups even when the -ids option was not specified. 

================================================================================
= 1.1.1 released	 		                  last update: 2004-08-07 20:52:56
================================================================================
¥ Fixed potential memory leak when getting Date values (Bug #1002508).
¥ More error checking.

================================================================================
= 1.1 released 		                         last update: 2004-08-02 10:26:01
================================================================================
¥ Tests passed. Release of 1.1 version.

================================================================================
= 1.1b5 		                             last update: 2004-08-01 17:18:15
================================================================================
¥ Command [addressbook identifier primary] can now set value.
¥ New command [addressbook label] to get/set the label of an item in 
  a multi-value list property.

================================================================================
= 1.1b4 		                             last update: 2004-08-01 07:58:05
================================================================================
¥ Added a new [addressbook identifier index] command to return the 
  index corresponding to a particular identifier in a multi-value list.
¥ Extended the [addressbook identifier primary] command to set, and 
  not only get, the primary identifier for a multi-value list. 
  Note: it does not seem to work as expected, so it is temporarily
  disabled.
¥ Extended the [add] and [remove] commands to accept any number of 
  arguments in order to add or remove several items at a time.

================================================================================
= 1.1b3 		                             last update: 2004-07-30 23:15:35
================================================================================
¥ Extended the [addressbook identifier] command with subcommands to 
  manage distribution lists. New subcommands are: count, get, 
  primary, and set.

================================================================================
= 1.1b2 		                             last update: 2004-07-29 22:07:10
================================================================================
¥ Added a new [addressbook setme] command to set the record that 
  represents the logged-in user.

================================================================================
= 1.1b1 		                             last update: 2004-07-29 12:18:05
================================================================================
¥ Added an [addressbook add] and an [addressbook remove] command to add 
  or remove an item (person or group) to or from a group.
¥ Modified the [addressbook delete] command: it does not have the 
  -ingroup  optional argument anymore (this functionality is replaced 
  by [addressbook remove]).
¥ Modified the [addressbook property remove] command: the third 
  argument can now also be a record ID so that the property is removed 
  only for this record. If the third argument is -persons or -groups, the 
  return value is now the number of properties successfully removed.
¥ Added a new [addressbook identifier] command to get/set the distribution
  identifier of a personÕs multi-value list property in a group.
¥ The [addressbook getme] command now accepts an optional -id argument to return 
  the unique ID of the "Me" record.

================================================================================
= 1.0b1 released                             last update: 2004-01-27 21:50:42
================================================================================
¥ Added a "Contribs" directory to the project on SourceForge for code 
  contributions (Tcl scripts making use of the Tcladdressbook extension...).
¥ Completed documentation and example files. Html and Pdf files.
¥ Added Unix man page.
¥ First public beta release.

================================================================================
= 1.0d12                                    last update: 2003-12-28 07:54:58
================================================================================
¥ The [search] command now handles labelled and keyed values. One can specify 
  an empty label or key to search over all possible labels or keys respectively.
¥ New [property type] command returning the type of a particular property.

================================================================================
= 1.0d11                                    last update: 2003-12-20 18:16:31
================================================================================
¥ Added a Home Page file for the project.
¥ Fixed the encoding issues: it now correctly handles high bit chars and 
  accented letters. Uses UTF8 internally.

================================================================================
= 1.0d10                                    last update: 2003-12-14 18:16:31
================================================================================
¥ Fixes crashing bug when [set] is called with a multidictionary value.

================================================================================
= 1.0d9                                    last update: 2003-12-13 17:55:12
================================================================================
¥ Command [remove] renamed to [delete].
¥ Commands return localized labels rather than their raw internal values 
  (eliminating the ugly _$!<Home>!$_ etc.).
¥ Labelled values are formatted as lists suitable for TclX keyed lists commands.
¥ [getme] and [record] now return their result in a simple variable rather 
  than an array variable. The value of the variable is formatted as a keyed list 
  which can easily be manipulated by the keylget and keylset commands defined 
  in the TclX extension.

================================================================================
= 1.0d8                                    last update: 2003-12-11 07:42:21
================================================================================
¥ New command [search]. Works only for simple values.
¥ Command [count] now accepts an -ingroup option.
¥ Command [value] renamed to [set].

================================================================================
= 1.0d7                                    last update: 2003-12-09 17:31:04
================================================================================
¥ New [import] and [export] commands to transmit data in vCard format.
¥ New [image] command to get/set the image of a person's record.
¥ Renamed commands: [add] is now [create]. [properties] is now [property names], 
  while [property add] and [property remove] replace [add property] and 
  [remove property], and [remove record] returned to [remove].

================================================================================
= 1.0d6                                    last update: 2003-12-06 07:10:21
================================================================================
¥ [add] command now has an -ingroup optional argument.
¥ Added -ingroup optional argument to the [persons] and [groups] commands.
¥ Removed [subgroups] command: use the [groups] command with option -ingroup instead.
¥ Internal changes to avoid calling ABCopyRecordTypeFromUniqueId() 
  undefined in Jaguar. The extension should work now on Jaguar.
¥ Replaced TclAB_TypeFromUID() by TclAB_TypeFromRecord() to streamline the 
  code and eliminate redundancies.
¥ New [add property] command to add user defined properties to person or 
  group records. Changed [add -persons] to [add persons]. Ditto for groups.
¥ New [remove property] command to remove user defined properties for person or 
  group records. Changed [remove] to [remove record].

================================================================================
= 1.0d5                                    last update: 2003-12-04 09:28:13
================================================================================
¥ [parents] command now working with person records.
¥ new [value] command used to get or set a particular property.
¥ new [add] command used to create a new group or person.
¥ returns correct date values (UTC) which can be passed to [clock format].

================================================================================
= 1.0d4                                    last update: 2003-11-30 14:53:23
================================================================================
¥ Added [subgroups] command with -ids optional argument.
¥ Added [parents] command with -ids optional argument.
¥ Unused vars cleanup.

================================================================================
= 1.0d3                                    last update: 2003-11-29 18:54:24
================================================================================
¥ Completed array of returned values for [getme] command.
¥ Modified command [persons] to report list of two items sublists 
  (ID+lastname). Reports IDs only with flag -ids.
¥ Added command [record].
¥ Added command [type].
¥ Added -ids option to command [group].
¥ Added [remove] command with -fromgroup optional argument.

================================================================================
= 1.0d2                                    last update: 2003-11-28 10:01:34
================================================================================
¥ Added command [changed].
¥ Started documentation in aida file. Conversions to text and html.
¥ Added command [properties] listing the property names for groups or 
persons.

================================================================================
= 1.0d1                                    last update: 2003-11-26 12:46:45
================================================================================
¥ Installed first definitions for commands [count], [getme], [groups], 
[persons] and [save].

