[packages/libopensync-plugin-palm] - up to 0.36, patched for libopensync 0.39

qboosh qboosh at pld-linux.org
Fri Sep 12 22:04:19 CEST 2025


commit 99d74de7cb124987a2695cab320e64a57d877ec9
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Fri Sep 12 22:07:13 2025 +0200

    - up to 0.36, patched for libopensync 0.39

 libopensync-plugin-palm-libopensync0.39.patch | 572 ++++++++++++++++++++++++++
 libopensync-plugin-palm.spec                  |  40 +-
 2 files changed, 594 insertions(+), 18 deletions(-)
---
diff --git a/libopensync-plugin-palm.spec b/libopensync-plugin-palm.spec
index 9f4cf34..aa525ec 100644
--- a/libopensync-plugin-palm.spec
+++ b/libopensync-plugin-palm.spec
@@ -1,18 +1,25 @@
 Summary:	OpenSync Plugin for palm
 Summary(pl.UTF-8):	Wtyczka palm do OpenSync
 Name:		libopensync-plugin-palm
-Version:	0.22
+Version:	0.36
 Release:	1
 License:	LGPL v2.1+
 Group:		Libraries
-Source0:	http://www.opensync.org/attachment/wiki/download/%{name}-%{version}.tar.bz2?format=raw
-# Source0-md5:	0c85fe8439856d7b38b3d10e183acf8f
-URL:		http://www.opensync.org/
+# originally http://www.opensync.org/attachment/wiki/download/%{name}-%{version}.tar.bz2?format=raw
+# restored from http://ftp.iij.ad.jp/pub/linux/momonga/5/Everything/SOURCES/libopensync-plugin-palm-0.36.tar.bz2
+Source0:	%{name}-%{version}.tar.bz2
+# Source0-md5:	ee05ffadee75094d78a15e2704f5e64f
+Patch0:		%{name}-libopensync0.39.patch
+# dead domain
+#URL:		http://www.opensync.org/
+BuildRequires:	cmake
 BuildRequires:	glib2-devel >= 2.0
-BuildRequires:	libopensync-devel >= %{version}
+BuildRequires:	libopensync-devel >= 1:0.39
 BuildRequires:	libxml2-devel >= 2.0
 BuildRequires:	pilot-link-devel >= 0.11.8
 BuildRequires:	pkgconfig
+BuildRequires:	rpmbuild(macros) >= 1.605
+Requires:	libopensync >= 1:0.39
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -25,30 +32,27 @@ pilot-link libpisock.
 
 %prep
 %setup -q
+%patch -P0 -p1
 
 %build
-%configure
+install -d build
+cd build
+%cmake ..
+
 %{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
-%{__make} install \
+%{__make} -C build install \
 	DESTDIR=$RPM_BUILD_ROOT
 
-rm -f $RPM_BUILD_ROOT%{_libdir}/opensync/{plugins,formats}/*.la
-# no -devel yet
-rm -rf $RPM_BUILD_ROOT/usr/include/opensync-1.0
-
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc AUTHORS ChangeLog README
-%attr(755,root,root) %{_libdir}/opensync/plugins/palm_sync.so
-%attr(755,root,root) %{_libdir}/opensync/formats/palm.so
-%{_datadir}/opensync/defaults/palm-sync
-
-# devel
-#%{_includedir}/opensync-1.0/opensync/palm_*.h
+%doc AUTHORS README
+%attr(755,root,root) %{_libdir}/libopensync1/formats/palm-format.so
+%attr(755,root,root) %{_libdir}/libopensync1/plugins/palm-sync.so
+%{_datadir}/libopensync1/defaults/palm-sync
diff --git a/libopensync-plugin-palm-libopensync0.39.patch b/libopensync-plugin-palm-libopensync0.39.patch
new file mode 100644
index 0000000..7e9d8f7
--- /dev/null
+++ b/libopensync-plugin-palm-libopensync0.39.patch
@@ -0,0 +1,572 @@
+--- libopensync-plugin-palm-0.36/cmake/modules/FindOpenSync.cmake.orig	2008-01-26 18:03:11.000000000 +0100
++++ libopensync-plugin-palm-0.36/cmake/modules/FindOpenSync.cmake	2025-09-11 21:07:15.098511395 +0200
+@@ -13,7 +13,7 @@
+ #  For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+ #
+ 
+-# Take care about opensync-1.0.pc settings
++# Take care about libopensync.pc settings
+ INCLUDE( FindPkgConfig )
+ 
+ IF ( OpenSync_FIND_REQUIRED )
+@@ -23,15 +23,15 @@ ELSE( OpenSync_FIND_REQUIRED )
+ ENDIF ( OpenSync_FIND_REQUIRED )
+ 
+ IF ( OPENSYNC_MIN_VERSION )
+-	PKG_SEARCH_MODULE( OPENSYNC ${_pkgconfig_REQUIRED} opensync-1.0>=${OPENSYNC_MIN_VERSION} )
++	PKG_SEARCH_MODULE( OPENSYNC ${_pkgconfig_REQUIRED} libopensync>=${OPENSYNC_MIN_VERSION} )
+ ELSE ( OPENSYNC_MIN_VERSION )
+-	PKG_SEARCH_MODULE( OPENSYNC ${_pkgconfig_REQUIRED} opensync-1.0 )
++	PKG_SEARCH_MODULE( OPENSYNC ${_pkgconfig_REQUIRED} libopensync )
+ ENDIF ( OPENSYNC_MIN_VERSION )
+ 
+ FIND_PROGRAM( PKGCONFIG_EXECUTABLE NAMES pkg-config )
+ 
+ IF ( PKGCONFIG_EXECUTABLE )
+-	EXEC_PROGRAM( ${PKGCONFIG_EXECUTABLE} ARGS opensync-1.0 --variable=datadir OUTPUT_VARIABLE _opensync_data_DIR )
++	EXEC_PROGRAM( ${PKGCONFIG_EXECUTABLE} ARGS libopensync --variable=datadir OUTPUT_VARIABLE _opensync_data_DIR )
+ 	STRING( REGEX REPLACE "[\r\n]" " " _opensync_data_DIR "${_opensync_data_DIR}"  )
+ ENDIF ( PKGCONFIG_EXECUTABLE )
+ 
+@@ -47,7 +47,7 @@ ENDIF ( OPENSYNC_CMAKE_MODULES )
+ # Look for OpenSync include dir and libraries without pkg-config 
+ IF( NOT OPENSYNC_FOUND AND NOT PKG_CONFIG_FOUND )
+ 	# Fallback if pkg-config doesn't exist
+-	FIND_PATH( OPENSYNC_INCLUDE_DIRS opensync/opensync.h PATH_SUFFIXES opensync-1.0
++	FIND_PATH( OPENSYNC_INCLUDE_DIRS opensync/opensync.h PATH_SUFFIXES libopensync1
+ 			PATHS
+ 			/opt/local/include/
+ 			/sw/include/
+--- libopensync-plugin-palm-0.36/src/palm_sync.h.orig	2008-01-26 18:03:11.000000000 +0100
++++ libopensync-plugin-palm-0.36/src/palm_sync.h	2025-09-12 21:45:22.831382038 +0200
+@@ -121,8 +121,8 @@ osync_bool psyncDBAdd(PSyncDatabase *db,
+ osync_bool psyncDBDelete(PSyncDatabase *db, int id, OSyncError **error);
+ PSyncEntry *psyncDBGetEntryByID(PSyncDatabase *db, unsigned long id, OSyncError **error);
+ 		
+-void psyncConnect(void *data, OSyncPluginInfo *info, OSyncContext *ctx);
+-void psyncDisconnect(void *data, OSyncPluginInfo *info, OSyncContext *ctx);
+-void psyncSyncDone(void *data, OSyncPluginInfo *info, OSyncContext *ctx);
++void psyncConnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data);
++void psyncDisconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data);
++void psyncSyncDone(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data);
+ 
+ #endif //_PALM_SYNC_H
+--- libopensync-plugin-palm-0.36/src/palm_sync.c.orig	2008-01-26 18:03:11.000000000 +0100
++++ libopensync-plugin-palm-0.36/src/palm_sync.c	2025-09-12 21:45:13.021435183 +0200
+@@ -20,11 +20,11 @@
+ 
+ #include "palm_sync.h"
+ #include "palm_format.h"
++#include "palm_contact.h"
+ 
+ #include <opensync/opensync-data.h>
+ #include <opensync/opensync-format.h>
+ #include <opensync/opensync-plugin.h>
+-#include <opensync/opensync-context.h>
+ 
+ #define CATCOUNT 16
+ 
+@@ -556,11 +556,9 @@ static void psyncThreadStart(PSyncEnv *e
+ 	osync_trace(TRACE_EXIT, "%s", __func__);
+ }
+ 
+-static osync_bool psyncSettingsParse(PSyncEnv *env, const char *config, OSyncError **error)
++static osync_bool psyncSettingsParse(PSyncEnv *env, OSyncPluginConfig *config, OSyncError **error)
+ {
+-	osync_trace(TRACE_ENTRY, "%s(%p, %s, %p)", __func__, env, config ? config : "nil", error);
+-	xmlDoc *doc = NULL;
+-	xmlNode *cur = NULL;
++	osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, env, config, error);
+ 
+ 	//set defaults
+ 	env->sockaddr = g_strdup("/dev/pilot");
+@@ -573,55 +571,33 @@ static osync_bool psyncSettingsParse(PSy
+ 	env->mismatch = 1;
+ 	env->popup = 0;
+ 
+-	doc = xmlParseMemory(config, strlen(config));
+-
+-	if (!doc) {
+-		osync_error_set(error, OSYNC_ERROR_GENERIC, "Unable to parse settings");
+-		goto error;
+-	}
+-
+-	cur = xmlDocGetRootElement(doc);
+-
+-	if (!cur) {
+-		osync_error_set(error, OSYNC_ERROR_GENERIC, "Unable to get root element of the settings");
+-		goto error_free_doc;
+-	}
+-
+-	if (xmlStrcmp(cur->name, (xmlChar*)"config")) {
+-		osync_error_set(error, OSYNC_ERROR_GENERIC, "Config valid is not valid");
+-		goto error_free_doc;
+-	}
+-
+-	cur = cur->xmlChildrenNode;
+-
+-	while (cur != NULL) {
+-		char *str = (char *)xmlNodeGetContent(cur);
+-		if (str) {
+-			if (!xmlStrcmp(cur->name, (const xmlChar *)"sockaddr")) {
+-				g_free(env->sockaddr);
+-				env->sockaddr = g_strdup(str);
+-			} else if (!xmlStrcmp(cur->name, (const xmlChar *)"username")) {
+-				g_free(env->username);
+-				env->username = g_strdup(str);
+-			} else if (!xmlStrcmp(cur->name, (const xmlChar *)"codepage")) {
+-				g_free(env->codepage);
+-				env->codepage = g_strdup(str);
+-			} else if (!xmlStrcmp(cur->name, (const xmlChar *)"timeout")) {
+-				env->timeout = atoi(str);
+-			} else if (!xmlStrcmp(cur->name, (const xmlChar *)"type")) {
+-				env->conntype = atoi(str);
+-			} else if (!xmlStrcmp(cur->name, (const xmlChar *)"speed")) {
+-				env->speed = atoi(str);
+-			} else if (!xmlStrcmp(cur->name, (const xmlChar *)"id")) {
+-				env->id = atoi(str);
+-			} else if (!xmlStrcmp(cur->name, (const xmlChar *)"popup")) {
+-				env->popup = atoi(str);
+-			} else if (!xmlStrcmp(cur->name, (const xmlChar *)"mismatch")) {
+-				env->mismatch = atoi(str);
+-			}
+-			xmlFree(str);
++	OSyncList *optslist = osync_plugin_config_get_advancedoptions(config);
++	for (; optslist; optslist = optslist->next) {
++		OSyncPluginAdvancedOption *option = optslist->data;
++		const char *name = osync_plugin_advancedoption_get_name(option);
++		const char *value = osync_plugin_advancedoption_get_value(option);
++		if (!strcmp(name, "sockaddr")) {
++			g_free(env->sockaddr);
++			env->sockaddr = g_strdup(value);
++		} else if (!strcmp(name, "username")) {
++			g_free(env->username);
++			env->username = g_strdup(value);
++		} else if (!strcmp(name, "codepage")) {
++			g_free(env->codepage);
++			env->codepage = g_strdup(value);
++		} else if (!strcmp(name, "timeout")) {
++			env->timeout = atoi(value);
++		} else if (!strcmp(name, "type")) {
++			env->conntype = atoi(value);
++		} else if (!strcmp(name, "speed")) {
++			env->speed = atoi(value);
++		} else if (!strcmp(name, "id")) {
++			env->id = atoi(value);
++		} else if (!strcmp(name, "popup")) {
++			env->popup = atoi(value);
++		} else if (!strcmp(name, "mismatch")) {
++			env->mismatch = atoi(value);
+ 		}
+-		cur = cur->next;
+ 	}
+ 
+ 	if (env->conntype == PILOT_DEVICE_NETWORK) {
+@@ -630,15 +606,8 @@ static osync_bool psyncSettingsParse(PSy
+ 		env->sockaddr = "net:any";
+ 	}
+ 
+-	xmlFreeDoc(doc);
+ 	osync_trace(TRACE_EXIT, "%s", __func__);
+ 	return TRUE;
+-	
+-error_free_doc:
+-		xmlFreeDoc(doc);
+-error:
+-	osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(error) ? osync_error_print(error) : "nil");
+-	return FALSE;
+ }
+ 
+ unsigned long psyncUidGetID(const char *uid, OSyncError **error)
+@@ -655,7 +624,7 @@ unsigned long psyncUidGetID(const char *
+ 	return id;
+ }
+ 
+-void psyncConnect(void *data, OSyncPluginInfo *info, OSyncContext *ctx)
++void psyncConnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data)
+ {
+ 	OSyncError *error = NULL;
+ 	
+@@ -726,7 +695,7 @@ error:
+ 	osync_trace(TRACE_EXIT_ERROR, "%s: %s", __func__, osync_error_print(&error) ? osync_error_print(&error) : "nil");
+ }
+ 
+-void psyncSyncDone(void *data, OSyncPluginInfo *info, OSyncContext *ctx)
++void psyncSyncDone(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data, info, ctx);
+ 	PSyncEnv *env = (PSyncEnv *)data;
+@@ -748,7 +717,7 @@ void psyncSyncDone(void *data, OSyncPlug
+ 	osync_trace(TRACE_EXIT, "%s", __func__);
+ }
+ 
+-void psyncDisconnect(void *data, OSyncPluginInfo *info, OSyncContext *ctx)
++void psyncDisconnect(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data, info, ctx);
+ 	PSyncEnv *env = (PSyncEnv *)data;
+@@ -833,7 +802,7 @@ static void psyncFinalize(void *data)
+ 	osync_trace(TRACE_EXIT, "%s", __func__);
+ }
+ 
+-static osync_bool psyncDiscover(void *data, OSyncPluginInfo *info, OSyncError **error)
++static osync_bool psyncDiscover(OSyncPluginInfo *info, void *data, OSyncError **error)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data, info, error);
+ 	PSyncEnv *env = (PSyncEnv *)data;
+@@ -847,6 +816,7 @@ static osync_bool psyncDiscover(void *da
+ osync_bool get_sync_info(OSyncPluginEnv *env, OSyncError **error)
+ {
+ 	OSyncPlugin *plugin = osync_plugin_new(error);
++
+ 	if (!plugin)
+ 		goto error;
+ 	
+@@ -858,7 +828,7 @@ osync_bool get_sync_info(OSyncPluginEnv
+ 	osync_plugin_set_finalize(plugin, psyncFinalize);
+ 	osync_plugin_set_discover(plugin, psyncDiscover);
+ 	
+-	osync_plugin_env_register_plugin(env, plugin);
++	osync_plugin_env_register_plugin(env, plugin, error);
+ 	osync_plugin_unref(plugin);
+ 	
+ 	return TRUE;
+--- libopensync-plugin-palm-0.36/src/palm_contact.c.orig	2008-01-26 18:03:11.000000000 +0100
++++ libopensync-plugin-palm-0.36/src/palm_contact.c	2025-09-12 21:41:10.469415866 +0200
+@@ -24,7 +24,6 @@
+ #include <opensync/opensync-data.h>
+ #include <opensync/opensync-format.h>
+ #include <opensync/opensync-plugin.h>
+-#include <opensync/opensync-context.h>
+ 
+ static OSyncChange *psyncContactCreate(PSyncEnv *env, PSyncEntry *entry, OSyncError **error)
+ {
+@@ -86,7 +85,7 @@ error:
+ 	return NULL;
+ }
+ 
+-static void psyncContactGetChanges(void *data, OSyncPluginInfo *info, OSyncContext *ctx)
++static void psyncContactGetChanges(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, osync_bool slow_sync, void *data)
+ {
+ 	OSyncError *error = NULL;
+ 	PSyncEnv *env = (PSyncEnv *)data;
+@@ -94,7 +93,6 @@ static void psyncContactGetChanges(void
+ 	PSyncEntry *entry = NULL;
+ 	
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data, info, ctx);
+-	OSyncObjTypeSink *sink = osync_plugin_info_get_sink(info);
+ 	
+ 	osync_trace(TRACE_INTERNAL, "Opening conduit");
+ 	dlp_OpenConduit(env->socket);
+@@ -102,7 +100,7 @@ static void psyncContactGetChanges(void
+ 	if (!(db = psyncDBOpen(env, "AddressDB", &error)))
+ 		goto error;
+ 	
+-	if (osync_objtype_sink_get_slowsync(sink) == TRUE) {
++	if (slow_sync) {
+ 		osync_trace(TRACE_INTERNAL, "slow sync");
+ 		
+ 		int n;
+@@ -169,7 +167,7 @@ error:
+ 		} else {*/
+ 
+ 
+-static void psyncContactCommit(void *data, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *change)
++static void psyncContactCommit(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, OSyncChange *change, void *data)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p)", __func__, data, info, ctx, change);
+ 	PSyncEnv *env = (PSyncEnv *)data;
+@@ -292,7 +290,7 @@ error:
+ 	osync_error_unref(&error);
+ }
+ 
+-static void psyncContactSyncDone(void *data, OSyncPluginInfo *info, OSyncContext *ctx)
++static void psyncContactSyncDone(OSyncObjTypeSink *sink, OSyncPluginInfo *info, OSyncContext *ctx, void *data)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %p, %p)", __func__, data, info, ctx);
+ 	PSyncEnv *env = (PSyncEnv *)data;
+@@ -327,19 +325,15 @@ osync_bool psyncContactInitialize(PSyncE
+ 	if (!env->contact_sink)
+ 		return FALSE;
+ 	
+-	osync_objtype_sink_add_objformat(env->contact_sink, "palm-contact");
+-	
+-	OSyncObjTypeSinkFunctions functions;
+-	memset(&functions, 0, sizeof(functions));
+-	functions.connect= psyncConnect;
+-	functions.disconnect= psyncDisconnect;
+-	functions.get_changes = psyncContactGetChanges;
+-	functions.commit = psyncContactCommit;
+-	functions.sync_done = psyncContactSyncDone;
++	osync_objtype_sink_set_userdata(env->contact_sink, env);
++	osync_objtype_sink_set_connect_func(env->contact_sink, psyncConnect);
++	osync_objtype_sink_set_disconnect_func(env->contact_sink, psyncDisconnect);
++	osync_objtype_sink_set_get_changes_func(env->contact_sink, psyncContactGetChanges);
++	osync_objtype_sink_set_commit_func(env->contact_sink, psyncContactCommit);
++	osync_objtype_sink_set_sync_done_func(env->contact_sink, psyncContactSyncDone);
+ 	
+ 	/* We pass the OSyncFileDir object to the sink, so we dont have to look it up
+ 	 * again once the functions are called */
+-	osync_objtype_sink_set_functions(env->contact_sink, functions, NULL);
+ 	osync_plugin_info_add_objtype(info, env->contact_sink);
+ 	
+ 	return TRUE;
+--- libopensync-plugin-palm-0.36/src/palm_format.c.orig	2008-01-26 18:03:11.000000000 +0100
++++ libopensync-plugin-palm-0.36/src/palm_format.c	2025-09-12 22:02:35.075789889 +0200
+@@ -23,8 +23,9 @@
+ 
+ #include <opensync/opensync-time.h>
+ #include <opensync/opensync-format.h>
+-#include <opensync/opensync-merger.h>
++#include <opensync/opensync-capabilities.h>
+ #include <opensync/opensync-serializer.h>
++#include <opensync/opensync-xmlformat.h>
+ 
+ static char *conv_enc_palm_to_xml(const char *text) {
+ 	char *ret;
+@@ -1420,31 +1421,31 @@ static osync_bool _palmcontact_address(O
+ 
+ 	//Street
+ 	if (tmp_address) {
+-		osync_xmlfield_set_key_value(xmlfield, "Street", tmp_address);
++		osync_xmlfield_set_key_value(xmlfield, "Street", tmp_address, error);
+ 		g_free(tmp_address);
+ 	}
+ 
+ 	//City
+ 	if (tmp_city) {
+-		osync_xmlfield_set_key_value(xmlfield, "City", tmp_city);
++		osync_xmlfield_set_key_value(xmlfield, "City", tmp_city, error);
+ 		g_free(tmp_city);
+ 	}
+ 	
+ 	//Region
+ 	if (tmp_state) {
+-		osync_xmlfield_set_key_value(xmlfield, "Region", tmp_state);
++		osync_xmlfield_set_key_value(xmlfield, "Region", tmp_state, error);
+ 		g_free(tmp_state);
+ 	}
+ 	
+ 	//Code
+ 	if (tmp_zip) {
+-		osync_xmlfield_set_key_value(xmlfield, "PostalCode", tmp_zip);
++		osync_xmlfield_set_key_value(xmlfield, "PostalCode", tmp_zip, error);
+ 		g_free(tmp_zip);
+ 	}
+ 	
+ 	//Country
+ 	if (tmp_country) {
+-		osync_xmlfield_set_key_value(xmlfield, "Country", tmp_country);
++		osync_xmlfield_set_key_value(xmlfield, "Country", tmp_country, error);
+ 		g_free(tmp_country);
+ 	}
+ 
+@@ -1465,13 +1466,13 @@ static osync_bool _palmcontact_name(OSyn
+ 
+ 	//First Name
+ 	if (tmp_first) {
+-		osync_xmlfield_set_key_value(xmlfield, "FirstName", tmp_first);
++		osync_xmlfield_set_key_value(xmlfield, "FirstName", tmp_first, error);
+ 		g_free(tmp_first);
+ 	}
+ 
+ 	//Last Name
+ 	if (tmp_last) {
+-		osync_xmlfield_set_key_value(xmlfield, "LastName", tmp_last);
++		osync_xmlfield_set_key_value(xmlfield, "LastName", tmp_last, error);
+ 		g_free(tmp_last);
+ 	}
+ 
+@@ -1490,7 +1491,7 @@ static osync_bool _palmcontact_organizat
+ 	if (!xmlfield)
+ 		return FALSE;
+ 
+-	osync_xmlfield_set_key_value(xmlfield, "Name", tmp);
++	osync_xmlfield_set_key_value(xmlfield, "Name", tmp, error);
+ 	g_free(tmp);
+ 
+ 	return TRUE;
+@@ -1518,7 +1519,7 @@ static osync_bool _palmcontact_telephone
+ 		if (!xmlfield)
+ 			return FALSE;
+ 		
+-		osync_xmlfield_set_key_value(xmlfield, "Content", tmp);
++		osync_xmlfield_set_key_value(xmlfield, "Content", tmp, error);
+ 		g_free(tmp);
+ 		
+ 		switch (entry->address.phoneLabel[i - 3]) {
+@@ -1570,7 +1571,7 @@ static osync_bool _palmcontact_title(OSy
+ 	if (!xmlfield)
+ 		return FALSE;
+ 
+-	osync_xmlfield_set_key_value(xmlfield, "Content", tmp);
++	osync_xmlfield_set_key_value(xmlfield, "Content", tmp, error);
+ 	g_free(tmp);
+ 
+ 	return TRUE;
+@@ -1589,7 +1590,7 @@ static osync_bool _palmcontact_note(OSyn
+ 	if (!xmlfield)
+ 		return FALSE;
+ 
+-	osync_xmlfield_set_key_value(xmlfield, "Content", tmp);
++	osync_xmlfield_set_key_value(xmlfield, "Content", tmp, error);
+ 	g_free(tmp);
+ 
+ 	return TRUE;
+@@ -1609,14 +1610,14 @@ static osync_bool _palmcontact_categorie
+ 			return FALSE;
+ 
+ 		char *tmp = conv_enc_palm_to_xml((char *) c->data);
+-		osync_xmlfield_set_key_value(xmlfield, "Category", tmp);
++		osync_xmlfield_set_key_value(xmlfield, "Category", tmp, error);
+ 		g_free(tmp);
+ 	}
+ 
+ 	return TRUE;
+ }
+ 
+-static osync_bool conv_palm_contact_to_xml(char *input, unsigned int inpsize, char **output, unsigned int *outpsize, osync_bool *free_input, const char *config, OSyncError **error)
++static osync_bool conv_palm_contact_to_xml(char *input, unsigned int inpsize, char **output, unsigned int *outpsize, osync_bool *free_input, const char *config, void *userdata, OSyncError **error)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %i, %p, %p, %p, %s, %p)", __func__, input, inpsize, output, outpsize, free_input, config ? config : "nil", error);
+ 
+@@ -1672,14 +1673,16 @@ static osync_bool conv_palm_contact_to_x
+ 
+         unsigned int size;
+         char *str;
+-        osync_xmlformat_assemble(xmlformat, &str, &size);
++        osync_xmlformat_assemble(xmlformat, &str, &size, error);
+         osync_trace(TRACE_SENSITIVE, "Output XMLFormat is:\n%s", str);
+         g_free(str);
+ 
++	/* replacement?
+         if (osync_xmlformat_validate(xmlformat) == FALSE)
+                 osync_trace(TRACE_INTERNAL, "XMLFORMAT CONTACT: Not valid!");
+         else
+                 osync_trace(TRACE_INTERNAL, "XMLFORMAT CONTACT: VAILD");
++	 */
+ 
+ 
+ 	osync_trace(TRACE_EXIT, "%s", __func__);
+@@ -1764,14 +1767,14 @@ static void _xmlfield_category(PSyncCont
+ 	}
+ }
+ 
+-static osync_bool conv_xml_to_palm_contact(char *input, unsigned int inpsize, char **output, unsigned int *outpsize, osync_bool *free_input, const char *config, OSyncError **error)
++static osync_bool conv_xml_to_palm_contact(char *input, unsigned int inpsize, char **output, unsigned int *outpsize, osync_bool *free_input, const char *config, void *userdata, OSyncError **error)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %i, %p, %p, %p, %s, %p)", __func__, input, inpsize, output, outpsize, free_input, config ? config : "nil", error);
+ 
+ 	OSyncXMLFormat *xmlformat = (OSyncXMLFormat *)input;
+ 	unsigned int size;
+ 	char *str;
+-	osync_xmlformat_assemble(xmlformat, &str, &size);
++	osync_xmlformat_assemble(xmlformat, &str, &size, error);
+ 	osync_trace(TRACE_SENSITIVE, "Input XMLFormat is:\n%s", str);
+ 	g_free(str);
+ 
+@@ -1856,7 +1859,7 @@ error:
+ 	return FALSE;
+ }
+ 
+-static void destroy_palm_contact(char *input, unsigned int inpsize)
++static osync_bool destroy_palm_contact(char *input, unsigned int inpsize, void *userdata, OSyncError **error)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %i)", __func__, input, inpsize);
+ 	PSyncContactEntry *entry = (PSyncContactEntry *)input;
+@@ -1880,56 +1883,57 @@ static void destroy_palm_contact(char *i
+ 	g_free(entry);
+ 	
+ 	osync_trace(TRACE_EXIT, "%s", __func__);
++	return TRUE;
+ }
+ 
+-static osync_bool marshal_palm_contact(const char *input, unsigned int inpsize, OSyncMessage *message, OSyncError **error)
++static osync_bool marshal_palm_contact(const char *input, unsigned int inpsize, OSyncMarshal *message, void *userdata, OSyncError **error)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %i, %p, %p)", __func__, input, inpsize, message, error);
+ 	g_assert(inpsize == sizeof(PSyncContactEntry));
+ 	
+ 	PSyncContactEntry *contact = (PSyncContactEntry*)input;
+ 	
+-	osync_message_write_buffer(message, &(contact), sizeof(PSyncContactEntry));
+-	osync_message_write_string(message, contact->codepage);
++	osync_marshal_write_buffer(message, &(contact), sizeof(PSyncContactEntry), error);
++	osync_marshal_write_string(message, contact->codepage, error);
+ 	
+ 	int i = 0;
+ 	for (i = 0; i < 19; i++) {
+-		osync_message_write_string(message, contact->address.entry[i]);
++		osync_marshal_write_string(message, contact->address.entry[i], error);
+ 	}
+ 
+-	osync_message_write_int(message, g_list_length(contact->categories));
++	osync_marshal_write_int(message, g_list_length(contact->categories), error);
+ 	GList *c = NULL;
+ 	for (c = contact->categories; c; c = c->next) {
+-		osync_message_write_string(message, (char *)c->data);
++		osync_marshal_write_string(message, (char *)c->data, error);
+ 	}
+ 
+ 	osync_trace(TRACE_EXIT, "%s", __func__);
+ 	return TRUE;	
+ }
+ 
+-static osync_bool demarshal_palm_contact(OSyncMessage *message, char **output, unsigned int *outpsize, OSyncError **error)
++static osync_bool demarshal_palm_contact(OSyncMarshal *message, char **output, unsigned int *outpsize, void *userdata, OSyncError **error)
+ {
+ 	osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p)", __func__, message, output, outpsize, error);
+ 	
+ 	void *buffer = NULL;
+ 	int size = 0;
+-	osync_message_read_buffer(message, &(buffer), &size);
++	osync_marshal_read_buffer(message, &(buffer), &size, error);
+ 	PSyncContactEntry *contact = buffer;
+-	osync_message_read_string(message, &(contact->codepage));
++	osync_marshal_read_string(message, &(contact->codepage), error);
+ 	
+ 	int i = 0;
+ 	for (i = 0; i < 19; i++) {
+-		osync_message_read_string(message, &(contact->address.entry[i]));
++		osync_marshal_read_string(message, &(contact->address.entry[i]), error);
+ 		osync_trace(TRACE_INTERNAL, "#%i message: %s", i, contact->address.entry[i]);
+ 	}
+ 	
+ 	int num = 0;
+-	osync_message_read_int(message, &num);
++	osync_marshal_read_int(message, &num, error);
+ 	
+ 	char *category = NULL;
+ 	contact->categories = NULL;
+ 	for (i = 0; i < num; i++) {
+-		osync_message_read_string(message, &category);
++		osync_marshal_read_string(message, &category, error);
+ 		contact->categories = g_list_append(contact->categories, category);
+ 	}
+ 			
+@@ -2255,7 +2259,7 @@ osync_bool get_format_info(OSyncFormatEn
+ 	osync_objformat_set_marshal_func(format, marshal_palm_contact);
+ 	osync_objformat_set_demarshal_func(format, demarshal_palm_contact);
+ 	
+-	osync_format_env_register_objformat(env, format);
++	osync_format_env_register_objformat(env, format, error);
+ 	osync_objformat_unref(format);
+ 	return TRUE;
+ }
+@@ -2278,14 +2282,14 @@ osync_bool get_conversion_info(OSyncForm
+ 	if (!conv)
+ 		return FALSE;
+ 	
+-	osync_format_env_register_converter(env, conv);
++	osync_format_env_register_converter(env, conv, error);
+ 	osync_converter_unref(conv);
+ 	
+ 	conv = osync_converter_new(OSYNC_CONVERTER_CONV, xmlContact, palmContact, conv_xml_to_palm_contact, error);
+ 	if (!conv)
+ 		return FALSE;
+ 	
+-	osync_format_env_register_converter(env, conv);
++	osync_format_env_register_converter(env, conv, error);
+ 	osync_converter_unref(conv);
+ 	return TRUE;
+ }
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libopensync-plugin-palm.git/commitdiff/99d74de7cb124987a2695cab320e64a57d877ec9



More information about the pld-cvs-commit mailing list