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

Reply via email to