| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
2001-03-29 Kjartan Maraas <kmaraas@gnome.org>
* *.*: Clean up #includes. Replace <gnome.h>, <bonobo.h> and
<gtk/gtk.h> with more finegrained headers where needed.
svn path=/trunk/; revision=9026
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-17 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-book.c (e_book_queue_op): Tag all queued ops.
(e_book_cancel_op): Added. Search for a pending op with a given
tag, and mark it as inactive.
(e_book_do_response_get_cursor): Don't execute callback if this
operations has been cancelled.
(e_book_do_response_get_view): Ditto.
(e_book_do_response_get_changes): Ditto.
(e_book_do_response_get_supported_fields): Ditto.
(e_book_get_supported_fields): Return an operation tag (that can
be used to cancel the operation) rather than just TRUE/FALSE.
Zero is always an invalid tag and is returned in the case of an
error, so this shouldn't break any code that looked at the return
value (unless it did so in a particularly stupid way, of course).
(e_book_get_cursor): Ditto.
(e_book_get_book_view): Ditto.
(e_book_get_changes): Ditto.
(e_book_cancel): Added. Cancel a pending operation. (Basically
a call to e_book_cancel_op with error checking, etc.)
* backend/ebook/e-book-types.h: Added E_BOOK_STATUS_CANCELLED.
svn path=/trunk/; revision=8790
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-17 Chris Toshok <toshok@ximian.com>
* backend/ebook/e-book-listener.c
(e_book_listener_queue_writable_status): new function.
(impl_BookListener_report_writable): new function.
(e_book_listener_get_epv): fill in epv->notifyWritable.
* backend/ebook/e-book-listener.h: add writable status entries.
* backend/ebook/e-book.c (e_book_do_writable_event): new function.
(e_book_check_listener_queue): add WritableStatusEvent to the
switch.
(e_book_class_init): register writable_status signal.
* backend/ebook/e-book.h: add writable_status signal.
* backend/idl/addressbook.idl: add notifyWritable method to
BookListener.
* gui/widgets/e-minicard.c (e_minicard_class_init): add "editable"
arg.
(e_minicard_init): init editable.
(e_minicard_set_arg): loop over the minicard fields setting their
"editable".
(e_minicard_get_arg): add editable.
(supported_fields_cb): use editable when creating the
contact_editor.
(add_field): set "editable" when creatin the e_minicard.
* gui/widgets/e-minicard.h (struct _EMinicard): add "editable".
* gui/widgets/e-minicard-view.c (e_minicard_view_class_init): add
editable arg.
(e_minicard_view_init): init editable.
(create_card): pass editable to e_minicard canvas item.
(e_minicard_view_set_arg): bit of a hack - loop over all the
canvas items setting their "editable."
(e_minicard_view_get_arg): add editable.
(supported_fields_cb): use editable when creating the contact
editor.
* gui/widgets/e-minicard-view.h (struct _EMinicardView): add
"editable."
* gui/widgets/e-minicard-view-widget.c
(e_minicard_view_widget_class_init): add "editable" field.
(e_minicard_view_widget_init): init editable to FALSE.
(e_minicard_view_widget_set_arg): save editable, and pass it along
the e-minicard-view.
(e_minicard_view_widget_realize): same.
(e_minicard_view_widget_get_arg): add editable.
* gui/widgets/e-minicard-view-widget.h (struct
_EMinicardViewWidget): add "editable" field.
* gui/widgets/e-minicard-label.h (struct _EMinicardLabel): add
"editable" field.
* gui/widgets/e-minicard-label.c (e_minicard_label_class_init):
add "editable" arg.
(e_minicard_label_set_arg): editable, set it on the e_text too.
(e_minicard_label_get_arg): editable.
(e_minicard_label_construct): set the "editable" field when we
create the e_text cavas item
* gui/widgets/e-addressbook-view.c (e_addressbook_view_init):
default editable to FALSE.
(book_writable_cb): new function, set our editable field and
gtk_object_set it on the active view.
(e_addressbook_view_set_arg): set the active view's editable when
we set the view's book, and connect the "writable_status" signal
to book_writable_cb.
(change_view_type): same.
(supported_fields_cb): use our "editable" when creating the
contact editor.
* gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add
editable field.
* gui/widgets/e-addressbook-model.c (e_addressbook_model_init):
change the default of editable to FALSE.
* backend/pas/pas-book.c (pas_book_report_writable): new function.
* backend/pas/pas-book.h: prototype for pas_book_report_writable.
* backend/pas/pas-backend-file.c (pas_backend_file_load_uri): if
we open the file O_RDWR (or create it) report it as writable. if
we can't open it as O_RDWR, try opening it read-only before we
attempt to create it.
* backend/pas/pas-backend-ldap.c
(pas_backend_ldap_process_authenticate_user): if we authenticate
successfully, grant write permissions (this is lacking but there's
really nothing we can do to determine the extent of the access
afforded a user.)
svn path=/trunk/; revision=8787
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-15 Jon Trowbridge <trow@ximian.com>
* gui/component/e-address-widget.c: Added addressbook querying and
"cardification" functions, which are turned off by default for now
because of addressbook bugs. Added a popup menu option to turn
queries on, so that others can enjoy the thrill of massive flaming
death.
* gui/component/addressbook-factory.c (main): Made warnings always
be fatal.
* backend/pas/pas-book-view.c: Added some debugging spew.
* backend/pas/pas-backend-file.c (pas_backend_file_search): Added
a little experimental code to try to make file searches scale
better. #if 0/#endif-ed out for now.
* contact-editor/e-contact-quick-add.c: #included e-book-util.h.
* backend/ebook/e-card.c (e_card_name_match_string): Added.
Looser name-matching function.
(e_card_email_match_string): Added. Loose e-mail matching.
* backend/ebook/e-book-view-listener.c
(e_book_view_listener_check_queue): Added code to cause us to
abort rather than get trapped in a 100%-CPU-consuming loop in
certain situations. Now we just need to figure out how to avoid
these situations altogether.
* backend/ebook/e-book-util.c: Added. Now contains the simple
query stuff and the open local addressbook functions.
* backend/ebook/e-book.c: Moved simple query stuff and open local
addressbook functions into e-book-util.c.
2001-03-15 Jon Trowbridge <trow@ximian.com>
* wombat.c (main): If we can't initialize a service on startup,
tell us which one before terminating.
svn path=/trunk/; revision=8754
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-11 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-book.c (e_book_simple_query): Added. A
simplified, cancellable query mechanism that lets you avoid
dealing with EBookView.
(e_book_simple_query_cancel): Added. Cancels a running query.
* backend/ebook/e-book-types.h: Add enum EBookSimpleQueryStatus.
svn path=/trunk/; revision=8627
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-06 Jon Trowbridge <trow@ximian.com>
* backend/ebook/e-book.c (e_book_load_local_address_book): Added.
Just encapsulates opening
file://~username/evolution/local/Contactes/addressbook.db, so that
path doesn't need to be hardwired in throughout the code.
svn path=/trunk/; revision=8570
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-02-21 Chris Toshok <toshok@ximian.com>
* backend/pas/pas-book.c (pas_book_queue_get_supported_fields):
new function.
(impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): track
change to idl.
(pas_book_respond_get_supported_fields): new function.
* backend/pas/pas-book.h: add GetSupportedFields to the
PASOperation enum. Also, add a stringlist field to the PASRequest
struct. lastly, add a prototype for
pas_book_respond_get_supported_fields.
* backend/pas/pas-backend.h: remove prototype for
pas_backend_get_supported_fields, and remove it from the vtable.
* backend/pas/pas-backend.c (pas_backend_get_supported_fields):
remove.
(pas_backend_class_init): no vtable entry for get_supported_fields
anymore.
* backend/pas/pas-backend-ldap.c
(pas_backend_ldap_process_get_supported_fields): new function.
(pas_backend_ldap_process_client_requests): add case for
GetSupportedFields.
(pas_backend_ldap_class_init): get_supported_fields isn't in
vtable anymore.
* backend/pas/pas-backend-file.c
(pas_backend_file_process_get_supported_fields): new function.
(pas_backend_file_process_client_requests): add case for
GetSupportedFields.
(pas_backend_file_class_init): get_supported_fields isn't in
vtable anymore.
* backend/idl/addressbook.idl: Book::getSupportedFields now
returns void and add BookListener::notifySupportedFields.
* backend/ebook/test-client.c (get_fields_cb): new function.
(auth_user_cb): track change to e_book_get_supported_fields.
* backend/ebook/e-book.c
(e_book_do_response_get_supported_fields): new function.
(e_book_check_listener_queue): add case
GetSupportedFieldsResponse.
(e_book_get_supported_fields): switch to async model.
* backend/ebook/e-book.h: switch e_book_get_supported_fields to an
async model.
* backend/ebook/e-book-listener.c
(e_book_listener_queue_get_supported_fields_response): new
function.
(impl_BookListener_response_get_supported_fields): new function.
(e_book_listener_get_epv): fill in epv's "notifySupportedFields"
* backend/ebook/e-book-listener.h: add an async response for
GetSupportedFields and add a stringlist member to the
EBookListenerResponse struct.
svn path=/trunk/; revision=8316
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-02-20 Chris Toshok <toshok@ximian.com>
* backend/ebook/e-book.c (e_book_get_supported_fields): new function.
* backend/ebook/e-book.h: add e-book interface to getting
supported fields.
* backend/ebook/test-client.c (auth_user_cb): shoe-horn in some
spew about supported fields.
svn path=/trunk/; revision=8303
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-01-04 Chris Toshok <toshok@helixcode.com>
* backend/ebook/e-book-listener.c
(e_book_listener_queue_authentication_response): new function.
(impl_BookListener_respond_authentication_result): new function.
(e_book_listener_get_epv): fill in
epv->notifyAuthenticationResult.
* backend/ebook/e-book-listener.h: add AuthenticationResponse to
EBookListenerOperation.
* backend/ebook/e-book.c (e_book_authenticate_user): new function.
* backend/ebook/e-book.h: add prototype for
e_book_authenticate_user.
* backend/idl/addressbook.idl (GNOME:Evolution:Addressbook:Book):
add authenticateUser method.
(GNOME:Evolution:Addressbook:BookListener): add
AuthenticationFailed and AuthenticationRequired to CallStatus.
also add notifyAuthenticationResult method.
* backend/pas/pas-backend-file.c
(pas_backend_file_process_authenticate_user): dummy
authenticate_user function that always succeeds.
(pas_backend_file_process_client_requests): respond to the
AuthenticateUser request.
* backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_query):
gtk_object_unref(sexp) => s_exp_unref(sexp).
(pas_backend_ldap_process_authenticate_user): fill in to use
ldap_simple_bind_s.
(pas_backend_ldap_process_client_requests): respond to the
AuthenticateUser request.
* backend/pas/pas-book.c (pas_book_queue_authenticate_user): new
function.
(impl_GNOME_Evolution_Addressbook_Book_authenticateUser): new
function.
(pas_book_respond_authenticate_user): new function.
(pas_book_get_epv): fill in epv->authenticateUser.
* backend/pas/pas-book.h: add AuthenticateUser operation type, and
add user/passwd to the PASRequest struct.
* gui/component/addressbook-storage.c
(addressbook_storage_get_source_by_uri): new function. should use
a hashtable, perhaps, but the lists will generally be small
anyway.
* gui/component/addressbook-storage.h: add prototype for
addressbook_storage_get_source_by_uri.
* gui/component/addressbook-config.c
(addressbook_source_dialog_set_source): fill in the binddn if the
auth page is shown.
* gui/component/addressbook.c (book_open_cb): shoe-horn
authentication in here. if the source was configured to use
authentication, authenticate the user after opening the ebook.
also, be paranoid and clear out the password after authenticating.
(book_auth_cb): callback for auth. set the "book" arg on the
view->view here.
(passwd_cb): set the view's passwd that'll be used in
book_open_cb.
(addressbook_view_free): g_free view->passwd.
svn path=/trunk/; revision=7265
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-10-31 JP Rosevear <jpr@helixcode.com>
* conduit/address-conduit.c (cursor_cb): Let the warning make sense
(compute_pid): remove
(local_record_from_ecard): Create local record from ecard - not finished
(local_record_from_uid): Obtain local_record from uid with the proper
e-book way
(set_status_cleared): Add empty callback
(add_archive_record): kill
(delete_archive_record): kill
(archive_record): Add empty callback
(conduit_get_gpilot_conduit): Update signal connects
* backend/pas/pas-backend-file.c (vcard_change_type): Function to determine
the type of change - not finished
(pas_backend_file_search_changes): Create a view and callback based on
how the cards have changed
(pas_backend_file_process_get_changes): Implement the get changes operation
for files
(pas_backend_file_process_client_requests): Add GetChanges method for
processing
* backend/pas/pas-book.c (pas_book_queue_get_changes): Add changes to
the list
(impl_Evolution_Book_get_changes): implement object method
(pas_book_get_epv): Add get changes to epv
(pas_book_respond_get_changes): Respond to the get changes operation
* backend/pas/pas-book.h: Add GetChanges PASOperation
* backend/idl/addressbook.idl: add get_changes and respond_get_changes
methods
* backend/ebook/e-book.c (e_book_get_changes): Client function
to a view of the changed objects
* backend/ebook/e-book.h: New prototype
2000-10-31 JP Rosevear <jpr@helixcode.com>
* conduits/todo/todo-conduit.h: Remove add/del/mod hashes and
add changed_hash.
* conduits/calendar/calendar-conduit.h: ditto
* conduits/todo/todo-conduit.c (next_changed_item): Utility function
to get the next "really" changed item (changed status can be cleared now)
(compute_status): Compute status based on changed_hash
(pre_sync): Fill changed_hash and counts adds/mods/dels
(set_status_cleared): New callback handler - avoid double syncing
(for_each_modified): Use next_changed_item to iterate
(add_archive_record): kill
(delete_archive_record): kill
(archive_record): New callback handler - mark/unmark archive status
(conduit_get_gpilot_conduit): Adjust signal connects
* conduits/calendar/calendar-conduit.c: ditto
svn path=/trunk/; revision=6297
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-09-22 Christopher James Lahey <clahey@helixcode.com>
* ui/Makefile.am: Added evolution-addressbook-ldap.xml.
* ui/evolution-addressbook-ldap.xml: New file. (A Variation on
evolution-addressbook.xml)
* ui/evolution-addressbook.xml: Added View All and Stop buttons.
From addressbook/ChangeLog:
2000-09-22 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/e-book.c, backend/ebook/e-book.h,
backend/idl/addressbook.idl, backend/pas/pas-backend-file.c,
backend/pas/pas-backend-ldap.c, backend/pas-backend.c,
backend/pas/pas-backend.h, backend/pas/pas-book.c,
backend/pas/pas-book.h: Added a function to query static
capabilities (capabilities that can be reported immediately) and
implemented them in the 2 servers.
* gui/component/addressbook.c: Added a View All button and a Stop
button. Sorted out the new directory server stuff a bit.
* gui/widgets/e-addressbook-model.c,
gui/widgets/e-addressbook-model.h: Cleaned up a bit. Added a stop
function. Check for capabilities before deciding whether to load
all cards when initially viewed.
* gui/widgets/e-addressbook-view.c,
gui/widgets/e-addressbook-view.h: Added stop and view all
functions.
* gui/widgets/e-minicard-view-widget.c,
gui/widgets/e-minicard-view-widget.h,
gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h:
Added a stop function. Check for capabilities before deciding
whether to load all cards when initially viewed.
svn path=/trunk/; revision=5547
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-05-23 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Switched printing and gui.
* backend/ebook/e-book-view-listener.h,
backend/ebook/e-book-view.h, backend/ebook/e-book.h,
backend/ebook/e-card-cursor.h, backend/ebook/e-card-list.h,
backend/ebook/e-card-simple.h, backend/ebook/e-card.h: Fixed the
#defines to work elsewhere in evolution.
* gui/component/Makefile.am: Added linking to libecontactprint.
* gui/component/addressbook.c: Added a menu item to print the
current query.
* printing/Makefile.am: Add linking to libebook and requirements.
Add installation of ecps files.
* printing/e-contact-print.c, printing/e-contact-print.h: Changed
this to use real data from an EBook.
* printing/test-print.c: Made this pass NULL, NULL to
e_contact_print_dialog_new so that it will compile.
svn path=/trunk/; revision=3188
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-04-18 Federico Mena Quintero <federico@helixcode.com>
* gui/minicard/Makefile.am (INCLUDES): Use "e-minicard" as the log
domain.
* gui/component/Makefile.am (INCLUDES): Use
"evolution-addressbook" as the log domain.
* backend/pas/Makefile.am: Build libpas.a, not a shared library.
Do not install any header files.
(INCLUDES): Remove spurious include paths.
* backend/pas/*.[ch]: Fix includes.
* backend/ebook/Makefile.am: Do not install the test programs.
Fixed some include weirdness.
* backend/ebook/*.[ch]: Fix includes.
* contact-editor/Makefile.am (INCLUDES): Set the log domain to
"contact-editor".
(INCLUDES): Fix.
* contact-editor/*.[ch]: Fix includes.
* gui/minicard/*.[ch]: Fix includes.
svn path=/trunk/; revision=2529
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-04-04 Christopher James Lahey <clahey@helixcode.com>
* addressbook/backend/ebook/e-book-view.c: Fixed an incorrect
function.
* addressbook/backend/ebook/e-book-view.h,
addressbook/backend/ebook/e-book.h: Fixed some incorrect function
pointer declarations.
* addressbook/backend/ebook/e-card-iterator.c,
addressbook/backend/ebook/e-card-iterator.h,
addressbook/backend/ebook/e-card-list-iterator.c,
addressbook/backend/ebook/e-card-list-iterator.h,
addressbook/backend/ebook/e-card-list.c,
addressbook/backend/ebook/e-card-list.h,
addressbook/backend/ebook/e-card.c,
addressbook/backend/ebook/e-card.h,
addressbook/backend/ebook/test-card.c: Built new iterator system
for getting fields with multiple entries.
* addressbook/backend/ebook/Makefile.am: Added new files
addressbook/backend/ebook/e-card-iterator.c,
addressbook/backend/ebook/e-card-iterator.h,
addressbook/backend/ebook/e-card-list-iterator.c,
addressbook/backend/ebook/e-card-list-iterator.h,
addressbook/backend/ebook/e-card-list.c, and
addressbook/backend/ebook/e-card-list.h.
svn path=/trunk/; revision=2286
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-04-03 Christopher James Lahey <clahey@helixcode.com>
* addressbook/backend/ebook/e-card-cursor.h,
addressbook/backend/ebook/e-card.c: A bit of clean up.
* addressbook/backend/ebook/e-book-types.h,
addressbook/backend/ebook/e-book-view-listener.c,
addressbook/backend/ebook/e-book-view-listener.h,
addressbook/backend/ebook/e-book-view.c,
addressbook/backend/ebook/e-book-view.h,
addressbook/backend/pas/pas-book-view.c,
addressbook/backend/pas/pas-book-view.h: New files for live views.
* addressbook/backend/ebook/Makefile.am,
addressbook/backend/ebook/e-book-listener.c,
addressbook/backend/ebook/e-book-listener.h,
addressbook/backend/ebook/e-book.c,
addressbook/backend/ebook/e-book.h,
addressbook/backend/ebook/test-client-list.c,
addressbook/backend/ebook/test-client.c,
addressbook/backend/pas/pas-backend-file.c,
addressbook/backend/pas/pas-book.c,
addressbook/backend/pas/pas-book.h,
addressbook/backend/idl/addressbook.idl: Added live views and
searching to the interface (neither is working yet.)
svn path=/trunk/; revision=2280
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-03-27 Christopher James Lahey <clahey@helixcode.com>
* addressbook/backend/ebook/test-card.c: Fixed some warnings.
* addressbook/backend/ebook/test-client.c: Added a section to test
cursors and returning an id when adding.
* addressbook/backend/ebook/e-card-pairs.h: Removed the address
pairs since they were added to e-card.c.
* addressbook/backend/ebook/e-card.c,
addressbook/backend/ebook/e-card.h: Made the set_id function take
a const char *.
* addressbook/backend/ebook/e-book-listener.c,
addressbook/backend/ebook/e-book-listener.h,
addressbook/backend/ebook/e-book.c,
addressbook/backend/ebook/e-book.h,
addressbook/backend/idl/addressbook.idl,
addressbook/backend/pas/pas-backend-file.c,
addressbook/backend/pas/pas-book.c,
addressbook/backend/pas/pas-book.h: Added a get_all_cards function
and made the response to the create_card function include the card
id.
* addressbook/backend/ebook/Makefile.am: Added e-card-cursor.c and
e-card-cursor.h.
* addressbook/backend/ebook/e-card-cursor.c,
addressbook/backend/ebook/e-card-cursor.h: New class for proxying
to an Evolution_CardCursor.
* addressbook/backend/pas/Makefile.am: Added pas-card-cursor.c and
pas-card-cursor.h.
* addressbook/backend/pas/pas-card-cursor.c,
addressbook/backend/pas/pas-card-cursor.h: New bonobo class for
making an Evolution_CardCursor server.
svn path=/trunk/; revision=2205
|
|
|
|
| |
svn path=/trunk/; revision=1626
|
|
svn path=/trunk/; revision=1584
|