2003-01-11  Christian Hammond <chipx86@gnupdate.org>
 
 	* addressbook/libebook/e-contact.[ch]: Changed the IM account field
 	types from LIST_FIELD to MULTI_LIST_FIELD, as discussed with Chris
 	Toshok. Added convenience fields for WORK and HOME entries for each
 	IM account list. Add support for setting LIST_FIELD types.
 
2004-01-09  Jeffrey Stedfast  <fejj@ximian.com>

	* tests/ebook/test-date.c (main): Don't let control reach the end
	of a non-void function

	* backends/ldap/e-book-backend-ldap.c (find_book_view): Don't let
	control reach the end of a non-void function

	* libebook/e-contact.c (cert_getter): Don't let control reach the
	end of a non-void function

	* tests/ebook/test-string.c: Same as below.

	* tests/ebook/test-photo.c: #include <string.h> for strlen and
	memcmp.
	(main): Don't let control reach the end of a non-void function

2004-01-09  Ross Burton  <ross@burtonini.com>

	* libebook/e-book-async.h:
	* libebook/e-book-async.c:
	Change the API of e_book_async_get_book_view and
	e_book_async_get_contacts to match e-book.h.

2004-01-08  Ross Burton  <ross@burtonini.com>

	* libebook/e-contact.c:
	* libebook/e-contact.h:
	Add a video conferencing URL field.

2004-01-07  JP Rosevear <jpr@ximian.com>

	* libedata-book/Makefile.am: remove DISABLE_DEPRECATED flags

	* libebook/Makefile.am: ditto
	
2004-01-06  Chris Toshok  <toshok@ximian.com>

	* backends/file/e-book-backend-file.c
	(e_book_backend_file_load_source): use e_util_mkdir_hier here
	instead of mkdir.
	(do_create): add the db_error to the spew.
	(e_book_backend_file_load_source): don't use mkdir here, use
	e_util_mkdir_hier.

2004-01-05  Christian Neumair  <chris@gnome-de.org>

	* libebook/e-book.c: Generalize some strings.

2003-12-29  Chris Toshok  <toshok@ximian.com>

	* tests/ebook/test-undefinedfield.c: new test - make sure we
	return NULL for undefined/unimplemented fields.

	* tests/ebook/Makefile.am (noinst_PROGRAMS): add
	test-undefinedfield.

2003-12-29  Chris Toshok  <toshok@ximian.com>

	* libebook/e-contact.c (e_contact_get_property): reset the GValue
	if there's a problem getting it (will force it to NULL).

2003-12-29  Chris Toshok  <toshok@ximian.com>

	* libebook/e-contact.c (e_contact_get): initialize value to NULL
	so that if the field is unknown (meaning we haven't gotten around
	to implementing it yet, like the category list stuff), we don't
	return an invalid pointer.

2003-12-19  Chris Toshok  <toshok@ximian.com>

	* libebook/e-vcard.h: add lots more #defines, some EVC_X ones for
	attribute TYPE's, as well as the vcard specified "KEY" attribute.

	* libedata-book/e-book-backend.c (e_book_backend_remove_client):
	reorder some code so we hold the lock up until we're done with
	backend->priv->clients.

	* backends/ldap/e-book-backend-ldap.c (prop_info): add an entry
	for E_CONTACT_X509_CERT, and map it to the userCertificate ldap
	attribute.  not sure if this is strictly correct... the
	inetOrgPerson schema mentions using userSMIMECertificate (which
	contains the full certificate chain in pkcs#7 form) in favor of
	userCertificate for S/MIME applications.

	* libebook/e-contact.h: add the CERT field types, the EContactCert
	struct type, and prototypes for e_contact_cert_get_type and
	e_contact_cert_free.

	* libebook/e-contact.c (field_info): add E_CONTACT_X509_CERT
	(cert_getter, cert_setter): new functions, implement
	getting/setting of certs.
	(e_contact_cert_free): new function.
	(e_contact_cert_copy): same.
	(e_contact_cert_get_type): same.

2003-12-17  Chris Toshok  <toshok@ximian.com>

	* libebook/e-book-async.c (_get_book_view_response_dtor): if
	there's a crash in the wombat and we're left with an invalid
	EBook, resp->book_view will be NULL here.  don't unref it.

2003-12-16  Hans Petter Jansson  <hpj@ximian.com>

	* libebook/e-book.c (fetch_corba_book): Ref and keep the loaded
	ESource around. Unref old source if present.
	(e_book_get_source): Implement.
	(e_book_init): Init source pointer.
	(e_book_dispose): Unref source, if any.

2003-12-15  Hans Petter Jansson  <hpj@ximian.com>

	* libebook/e-contact.c (adr_getter): Initialize the address_format
	field. Absence of this was causing crashes.
	(e_contact_set_property): For synthetic attr_type fields, add a
	case for struct/get_set alongside strings. This makes addresses work.
	(e_contact_get_property): For multi_elem strings, count the matching
	attributes instead of trying to get a list from the first attribute
	encountered (which is what list_elem does). This makes e-mail
	addresses work.

2003-12-10  Hans Petter Jansson  <hpj@ximian.com>

	* backends/ldap/e-book-backend-ldap.c
	(e_book_backend_ldap_load_source): Get attributes from source, not URI.

2003-12-09  Chris Toshok  <toshok@ximian.com>

	* backends/file/e-book-backend-file.c (select_changes): change to
	return gboolean and take the filename, not the struct dirent *.
	(e_book_backend_file_remove): switch from using scandir to
	g_dir_*.

2003-12-07  JP Rosevear  <jpr@ximian.com>

	* libedata-book/e-data-book-factory.c: version the OAFIID

	* libebook/e-book.c (activate_factories_for_uri): update repo id
	
2003-12-07  JP Rosevear  <jpr@ximian.com>

	* libebook/e-book.c (activate_factories_for_uri): use the
	versioned repo id

2003-12-05  Chris Toshok  <toshok@ximian.com>

	* libebook/e-contact.c (e_contact_get_const): make this only work
	for strings, since really that's all it works for now.

2003-12-05  Hans Petter Jansson  <hpj@ximian.com>

	* libebook/e-contact.c (e_contact_get_property): Return boxed type
	for struct.
	(e_contact_name_from_string): Never pass NULL to
	e_name_western_parse ().

2003-12-04  Chris Toshok  <toshok@ximian.com>

	* tests/ebook/test-ebook.c (print_email): print out the
	NAME_OR_ORG of the contact too.

	* libebook/e-contact.h (EContactField): add NAME_OR_ORG.

	* libebook/e-contact.c (field_info): add NAME_OR_ORG.
	(e_contact_get_property): handle NAME_OR_ORG.

2003-12-01  Hans Petter Jansson  <hpj@ximian.com>

	* libebook/e-book.c (e_book_unload_uri): When clearing the cached
	capabilities, also clear the cap_queried flag.

2003-12-01  Hans Petter Jansson  <hpj@ximian.com>

	* libebook/e-book.c (fetch_corba_book): If the book failed to load,
	set load_state to E_BOOK_URI_NOT_LOADED, so _unload () won't crash.

2003-12-01  Hans Petter Jansson  <hpj@ximian.com>

	* libebook/e-book-async.c (_load_uri_response_handler)
	(_load_uri_response_dtor)
	(_load_uri_handler)
	(_load_uri_dtor)
	(_default_book_response_handler)
	(_default_book_response_dtor): Pass source instead of URI, and
	s/uri/source/.
	(e_book_async_load_source): Implement.
	(e_book_async_load_uri): Create a source and pass that to worker.

2003-11-28  Chris Toshok  <toshok@ximian.com>

	* tests/ebook/Makefile.am (test_ebook_view_LDADD): new variable.
	(noinst_PROGRAMS): add test-ebook-view

	* tests/ebook/test-ebook-view.c: new test for ebook view's.

2003-11-26  Hans Petter Jansson  <hpj@ximian.com>

	* backends/file/e-book-backend-file.c (e_book_backend_file_load_uri):
	Rename to e_book_backend_file_load_source () and take an ESource
	instead of an URI.
	(e_book_backend_file_dispose): Don't free URI anymore.
	(e_book_backend_file_class_init): load_uri -> load_source.
	(e_book_backend_file_init): Don't init URI anymore.

	* backends/ldap/e-book-backend-ldap.c (e_book_backend_ldap_load_uri):
	Rename to e_book_backend_ldap_load_uri () and take an ESource instead
	of an URI.
	(e_book_backend_ldap_dispose): Don't free URI anymore.
	(e_book_backend_ldap_class_init): load_uri -> load_source.

	* backends/vcf/e-book-backend-vcf.c (e_book_backend_vcf_load_uri):
	Rename to e_book_backend_vcf_load_source () and take an ESource
	instead of an URI.
	(e_book_backend_vcf_dispose): Don't free URI anymore.
	(e_book_backend_vcf_class_init): load_uri -> load_source.
	(e_book_backend_vcf_init): Don't init URI anymore.

	* idl/Evolution-DataServer-Addressbook.idl (getBook): In parameter
	"uri" renamed to "source". Takes standalone source XML.

	* libebook/e-book.c (fetch_corba_book): Implement, taking ESource.
	(e_book_load_source): Implement.
	(e_book_load_uri): Create a source based on the URI and use
	e_book_load_source () to load that.

	* libedata-book/e-book-backend.c (e_book_backend_load_uri): Renamed
	to e_book_backend_load_source () and takes ESource instead of URI.
	(e_book_backend_get_uri): Renamed to e_book_backend_get_source ()
	and returns ESource instead of URI.
	(e_book_backend_open): Use e_book_backend_load_source ().
	(e_book_backend_init): Don't init URI anymore.
	(e_book_backend_dispose): Don't free URI anymore.

	* libedata-book/e-data-book-factory.c (backend_last_client_gone_cb):
	Get URI from backend's ESource.
	(impl_GNOME_Evolution_Addressbook_BookFactory_getBook): Take
	standalone source XML, construct an ESource, and fetch a backend
	with that.

	* libedata-book/e-data-book.c (e_data_book_get_uri): Renamed to
	e_data_book_get_source () and return ESource.
	(e_data_book_construct): Take ESource instead of URI.
	(e_data_book_new): Take ESource instead of URI.
	(e_data_book_dispose): Don't free URI. Instead, unref ESource.

2003-11-25  Chris Toshok  <toshok@ximian.com>

	* tests/ebook/test-self.c: new file/test, print out the current
	self contact.

	* tests/ebook/test-ebook.c (print_email): fix the email printing.

	* libebook/e-vcard.c (parse): if the vcard doesn't begin with a
	"begin" attribute, we still want to add the attribute to the
	vcard.

	* libebook/e-contact.c (field_info): add GETSET_FIELD for fields
	that don't have a structured type associated with them (such as
	FN) but that need getter/setter methods for some reason.  add a
	GType getter function to STRUCT_FIELD, and fill in the getter
	(e_contact_class_init): use boxed types for STRUCT fields.
	(adr_setter): implement.
	(e_contact_set_property): use g_value_get_boxed for STRUCT types.
	(e_contact_get_property): implement GETSET getter.
	(e_contact_name_get_type): implement.
	(e_contact_date_copy): same.
	(e_contact_date_get_type): same.
	(e_contact_date_new): same.
	(e_contact_photo_copy): same.
	(e_contact_photo_get_type): same.
	(e_contact_address_copy): same.
	(e_contact_address_get_type): same.

	* libebook/e-contact.h: add prototypes for
	e_contact_{date,name,photo,address}_get_type.

	* libebook/e-book-types.h: add E_BOOK_ERROR_NO_SELF_CONTACT.

	* libebook/e-book.c (e_book_get_self): implement.
	(e_book_set_self): same.
	(e_book_is_self): same.
	(e_book_get_default_addressbook): add more to the comment telling
	how this *really* should be implemented.
	(e_book_get_addressbooks): implement.

	* libebook/e-book.h: add prototype for e_book_is_self, change
	e_book_set_self to take an EContact instead of just the uid.
	Also, unifdef the prototype for e_book_get_addressbooks.

2003-11-23  Chris Toshok  <toshok@ximian.com>

	* backends/file/e-book-backend-file.c
	(e_book_backend_file_load_uri): remove the db3 version checks, and
	add the extra transaction arg to db->open.

	* backends/file/Makefile.am (INCLUDES): use the embedded db4.

2003-11-22  Chris Toshok  <toshok@ximian.com>

	* backends/ldap/e-book-backend-ldap.c (contact_list_handler,
	contact_list_dtor, e_book_backend_ldap_get_contact_list):
	implement get_contact_list for the ldap backend.
	(category_populate): un-ifdef this.
	(category_ber): same.
	(category_compare): same.
	(e_book_backend_ldap_class_init): fill in
	EBookBackendClass::get_contact_list.

2003-11-11  Chris Toshok  <toshok@ximian.com>

	* tests/vcard/dump-vcard.c (main): convert the vcard to a string
	and print it out as well.  also fix the evcard leak.

	* tests/vcard/README: add blurb about 10.vcf.

	* tests/vcard/Makefile.am (EXTRA_DIST): add 10.vcf

	* tests/vcard/10.vcf: new quotted attribute parameter value test.

	* tests/vcard/[1-9].vcf: add these back in.

2003-11-10  JP Rosevear <jpr@ximian.com>

	* libebook/e-book-listener.c: remove construct method, it did
	nothing and should use construct time args in future if needed

2003-11-10  Dan Winship  <danw@ximian.com>

	* libebook/e-contact.c (e_contact_date_equal): New utility
	function to compare two (possibly NULL) EContactDates

	* backends/ldap/e-book-backend-ldap.c (anniversary_compare,
	birthday_compare): Use it

	* libedata-book/e-book-backend-summary.c
	(e_book_backend_summary_check_contact): New utility function to
	check if an id is in the summary (without doing any additional
	work beyond that).

2003-11-10  Dan Winship  <danw@ximian.com>

	* libedata-book/e-book-backend.h:
	s/E_TYPE_BACKEND/E_TYPE_BOOK_BACKEND/
	s/E_IS_BACKEND/E_IS_BOOK_BACKEND/

	* libedata-book/e-book-backend-sync.h: Likewise
	* backends/file/e-book-backend-file.h: Likewise
	* backends/vcf/e-book-backend-vcf.h: Likewise
	* backends/ldap/e-book-backend-ldap.h: Likewise

	* libedata-book/e-book-backend.c: Update for that. Also simplify
	some redundant g_return_if_fail tests and reindent a bunch of
	lines that were indented wrong after the pas->e_book renaming.

	* libedata-book/e-book-backend-sync.c: Likewise
	* backends/file/e-book-backend-file.c: Likewise
	* backends/vcf/e-book-backend-vcf.c: Likewise
	* backends/ldap/e-book-backend-ldap.c: Likewise

2003-11-08  Chris Toshok  <toshok@ximian.com>

	* libebook/e-vcard.c (skip_until): implement.
	(read_attribute_params): implement quoted parameter values, in our
	trademark overly accepting way.  it'll accept "hi" as well as
	"hi"and"bye" as parameter values (with the values being "hi" and
	"hiandbye" respectively).
	(e_vcard_to_string_vcard_30): hardcode VERSION:3.0 here, since
	we're outputing a version 3.0 card.  also, ignore any VERSION
	attributes that may be in the vcard we parsed in.  lastly, search
	parameter values for whitespace before outputting them, and wrap
	them in quotes if they have any.

	* libebook/e-book-async.c (e_book_async_add_contact): use
	e_contact_duplicate here so if the caller modifies the contact
	after calling us we use the original copy.
	(e_book_async_commit_contact): same.

2003-11-07  Dan Winship  <danw@ximian.com>

	* libebook/e-address-western.c: 
	* libebook/e-name-western.c: Move these here.

	* libebook/e-contact.c: Update e-name-western include

	* libebook/Makefile.am (libebook_la_SOURCES): Add
	e-address-western.c and e-name-western.c.
	(libebookinclude_HEADERS): and their headers
	(libebook_la_LDFLAGS): Remove -no-undefined

	* libedata-book/Makefile.am (libedata_book_la_LDFLAGS): Likewise

2003-11-06  Dan Winship  <danw@ximian.com>

	* backends/ldap/e-book-backend-ldap.c: Remove the word "process"
	from method names, which hasn't really made sense since 1.2.

	* backends/vcf/e-book-backend-vcf.c: Likewise

2003-11-06    <jpr@ximian.com>

	* libebook/Makefile.am: don't add libename

2003-11-06  JP Rosevear <jpr@ximian.com>

	* libebook/e-book.c: replace e_mutex stuff with gthread stuff

2003-11-06  JP Rosevear <jpr@ximian.com>

	* Makefile.am: build new subdirs

	* backends/*: build the file, vcf and ldap backends here

	* libedata-cal/Makefile.am: no longer build them here	
	
2003-11-05  JP Rosevear <jpr@ximian.com>

	* rename libedatabook to libedata-book
	
2003-11-05  JP Rosevear  <jpr@ximian.com>

	* libebook/Makefile.am: use privincludedir

	* libedatabook/Makefile.am: ditto

	* libedatabook/libedatabook-1.0.pc.in: use privincludedir; remove
	gal

	* libebook/libebook-1.0.pc.in: ditto

2003-11-05  Rodrigo Moya <rodrigo@ximian.com>

	* libedatabook/e-book-backend-sexp.c:
	* libedatabook/e-book-backend-summary.c:
	* libedatabook/e-book-backend-vcf.c:
	* libedatabook/e-book-backend-file.c: removed GAL dependency.

2003-11-04  JP Rosvear <jpr@ximian.com>

	* libedatabook/e-data-book-factory.c: use properly name spaced
	default id

	* libebook/e-book.c: kill unneccesary define

2003-11-04  JP Rosevear <jpr@ximian.com>

	* libedatabook/e-data-book-factory.c: remove corbe header include

	* libedatabook/e-data-book.h: include corba header correctly

	* libedatabook/e-data-book-view.h: ditto

	* libedatabook/e-data-book-factory.h: ditto

	* libedatabook/e-book-backend.h: ditto

	* libedatabook/e-book-backend-sync.h: ditto

	* libedatabook/Makefile.am: reflect idl name change

	* libebook/e-book-view.c: remove corba header include

	* libebook/e-book.c: ditto
	
	* libebook/e-book.h: include corba header correctly

	* libebook/e-book-view.h: ditto

	* libebook/e-book-view-listener.h: ditto

	* libebook/e-book-listener.h: ditto

	* idl/Makefile.am (idl_DATA): rename idl to
	Evolution-DataServer-Addressbook.idl

	* libebook/Makefile.am: reflect idl name change

