Hi!
There ware discussion in forum regarding local characters.
The problem is that synce-kde can not synchronize non-ASCII characters.
Another problem, not discussed in the forum, is that rapi do not display
correct filenames if they are non-ASCII.
I propose attached changes to solve these problems.
I worked with current Gentoo ~x86 (synce-kde 0.9.1) and not sure the patch is
applicable to current cvs.
Regards,
Andrey
diff -rc /var/tmp/portage/synce-kde-0.9.1/work/synce-kde-0.9.1/raki/rra.cpp /home/andrey/synce/my/synce-kde-0.9.1/raki/rra.cpp
*** /var/tmp/portage/synce-kde-0.9.1/work/synce-kde-0.9.1/raki/rra.cpp 2006-02-17 23:14:00.000000000 +0300
--- /home/andrey/synce/my/synce-kde-0.9.1/raki/rra.cpp 2006-10-12 17:25:44.000000000 +0400
***************
*** 320,333 ****
&data_size)) {
rraOk = false;
} else if (!rra_contact_to_vcard(object_id, data, data_size, &vcard,
! RRA_CONTACT_VERSION_3_0)) {
rraOk = false;
}
disconnect();
}
if (rraOk) {
! vCard = vcard;
}
if (data) {
--- 320,333 ----
&data_size)) {
rraOk = false;
} else if (!rra_contact_to_vcard(object_id, data, data_size, &vcard,
! RRA_CONTACT_VERSION_3_0 | RRA_CONTACT_UTF8)) {
rraOk = false;
}
disconnect();
}
if (rraOk) {
! vCard = QString::fromUtf8(vcard);
}
if (data) {
***************
*** 350,359 ****
rraOk = true;
if (connect()) {
! const char *vCardc = vCard.ascii();
if (!rra_contact_from_vcard(vCardc, NULL, &buffer, &buffer_size,
((object_id != 0) ? RRA_CONTACT_UPDATE :
! RRA_CONTACT_NEW) | RRA_CONTACT_ISO8859_1 |
RRA_CONTACT_VERSION_3_0)) {
rraOk = false;
} else if (!rra_syncmgr_put_single_object(rra, type_id, object_id,
--- 350,359 ----
rraOk = true;
if (connect()) {
! QCString vCardc = vCard.utf8();
if (!rra_contact_from_vcard(vCardc, NULL, &buffer, &buffer_size,
((object_id != 0) ? RRA_CONTACT_UPDATE :
! RRA_CONTACT_NEW) | RRA_CONTACT_UTF8 |
RRA_CONTACT_VERSION_3_0)) {
rraOk = false;
} else if (!rra_syncmgr_put_single_object(rra, type_id, object_id,
***************
*** 390,403 ****
&data_size)) {
rraOk = false;
} else if (!rra_appointment_to_vevent(object_id, data, data_size,
! &vevent, 0, NULL)) {
rraOk = false;
}
disconnect();
}
if (rraOk) {
! vEvent = vevent;
}
if (data) {
--- 390,403 ----
&data_size)) {
rraOk = false;
} else if (!rra_appointment_to_vevent(object_id, data, data_size,
! &vevent, RRA_APPOINTMENT_UTF8, NULL)) {
rraOk = false;
}
disconnect();
}
if (rraOk) {
! vEvent = QString::fromUtf8(vevent);
}
if (data) {
***************
*** 421,430 ****
if (connect()) {
vEvent = vEvent.stripWhiteSpace();
! const char *vevent = vEvent.ascii();
if (!rra_appointment_from_vevent(vevent, NULL, &buffer,
&buffer_size, ((object_id != 0) ? RRA_APPOINTMENT_UPDATE :
! RRA_APPOINTMENT_NEW) | RRA_APPOINTMENT_ISO8859_1, NULL)) {
rraOk = false;
} else if (!rra_syncmgr_put_single_object(rra, type_id, object_id,
(object_id != 0) ? RRA_SYNCMGR_UPDATE_OBJECT : RRA_SYNCMGR_NEW_OBJECT, buffer,
--- 421,430 ----
if (connect()) {
vEvent = vEvent.stripWhiteSpace();
! QCString vevent = vEvent.utf8();
if (!rra_appointment_from_vevent(vevent, NULL, &buffer,
&buffer_size, ((object_id != 0) ? RRA_APPOINTMENT_UPDATE :
! RRA_APPOINTMENT_NEW) | RRA_APPOINTMENT_UTF8, NULL)) {
rraOk = false;
} else if (!rra_syncmgr_put_single_object(rra, type_id, object_id,
(object_id != 0) ? RRA_SYNCMGR_UPDATE_OBJECT : RRA_SYNCMGR_NEW_OBJECT, buffer,
***************
*** 461,467 ****
&data_size)) {
rraOk = false;
} else if (!rra_task_to_vtodo(object_id, data, data_size,
! &vtask, 0, &tzi)) {
rraOk = false;
}
--- 461,467 ----
&data_size)) {
rraOk = false;
} else if (!rra_task_to_vtodo(object_id, data, data_size,
! &vtask, RRA_TASK_UTF8, &tzi)) {
rraOk = false;
}
***************
*** 469,475 ****
}
if (rraOk) {
! vTask = vtask;
}
if (data) {
--- 469,475 ----
}
if (rraOk) {
! vTask = QString::fromUtf8(vtask);
}
if (data) {
***************
*** 492,501 ****
rraOk = true;
if (connect()) {
! const char *vtodo = vToDo.ascii();
if (!rra_task_from_vtodo(vtodo, NULL, &buffer,
&buffer_size, ((object_id != 0) ? RRA_TASK_UPDATE :
! RRA_TASK_NEW) | RRA_TASK_ISO8859_1, NULL)) {
rraOk = false;
} else if (!rra_syncmgr_put_single_object(rra, type_id, object_id,
(object_id != 0) ? RRA_SYNCMGR_UPDATE_OBJECT : RRA_SYNCMGR_NEW_OBJECT, buffer,
--- 492,501 ----
rraOk = true;
if (connect()) {
! QCString vtodo = vToDo.utf8();
if (!rra_task_from_vtodo(vtodo, NULL, &buffer,
&buffer_size, ((object_id != 0) ? RRA_TASK_UPDATE :
! RRA_TASK_NEW) | RRA_TASK_UTF8, NULL)) {
rraOk = false;
} else if (!rra_syncmgr_put_single_object(rra, type_id, object_id,
(object_id != 0) ? RRA_SYNCMGR_UPDATE_OBJECT : RRA_SYNCMGR_NEW_OBJECT, buffer,
diff -rc /var/tmp/portage/synce-kde-0.9.1/work/synce-kde-0.9.1/rapip/rapip.cpp /home/andrey/synce/my/synce-kde-0.9.1/rapip/rapip.cpp
*** /var/tmp/portage/synce-kde-0.9.1/work/synce-kde-0.9.1/rapip/rapip.cpp 2004-08-31 04:50:17.000000000 +0400
--- /home/andrey/synce/my/synce-kde-0.9.1/rapip/rapip.cpp 2006-10-12 14:20:53.000000000 +0400
***************
*** 150,156 ****
entry = find_data + i;
atom.m_uds = KIO::UDS_NAME;
! atom.m_str = QString::fromUcs2(entry->cFileName).ascii();
udsEntry.append( atom );
atom.m_uds = KIO::UDS_SIZE;
--- 150,156 ----
entry = find_data + i;
atom.m_uds = KIO::UDS_NAME;
! atom.m_str = QString::fromUcs2(entry->cFileName)/*.ascii()*/;
udsEntry.append( atom );
atom.m_uds = KIO::UDS_SIZE;
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Synce-devel mailing list
Synce-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/synce-devel