����. I found how to fix it myself.

Why doen't it work.
1. Evolution does not make conversion itself - it uses functions
convert_ToPilotChar and convert_FromPilotChar from pilot-link package
(file util.c) 
2. ToPilotChar and convert_FromPilotChar - by default  convert only
to/from CP1251 
( #define PILOT_CHARSET "CP1252").

Pilot-Link Uses Libiconv for charset conversion

How to make it work:
Install libiconv:
ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz  
(I couldn't make iconv from Mandrake 8.2 glibc work properly with
pilot-link).
Download http://www.pilot-link.org/source/pilot-link-0.11.3.tar.gz
Apply attached patch
export PILOTCHARSET="Your charset". 
(in my case export PILOTCHARSET=KOI8-R)

And voila  - everything works fine.

PS: Main Idea adopted from 
http://mail.gnome.gr.jp/ml/gnome-devel/200112/msg00000.html
But pilot-link 0.9.5, the guy talked about did not work for me (maybe
something wrong with /dev/hands), so I used pilot-link-0.11.3 and
modified charset patch, 'cause it refused to apply on 0.11.3. 


� ���, 13.08.2002, � 17:57, Andrey Tuev �������:
    Did Anibody Ever succesfully synced Evo thin pilot in 
    
    NON ENGLISH CHARSET???? 
    
    
    My pilot is working in koi8. 
    
    When i copy data from pilot to evolution i get underscores instead
    of letters. 
    When i copy data from evolution to pilot, i get UTF8 symbols instead
    of koi8 symbols. 
    
    Anibody, who had experience solving this problem please reply! 
    
    
    
--- pilot-link-0.11.3-back/libpisock/util.c	Tue Jul 30 19:37:13 2002
+++ pilot-link-0.11.3/libpisock/util.c	Fri Aug 16 10:26:34 2002
@@ -32,7 +32,7 @@
 #include <iconv.h>
 #endif
 
-#define PILOT_CHARSET "CP1252"
+#define DEFAULT_PILOT_CHARSET "CP1252"
 
 /***********************************************************************
  *
@@ -55,8 +55,14 @@
 		*ob;
 	iconv_t cd;
 	size_t 	ibl, obl;
+	char *charset_env;
+
+	charset_env = getenv("PILOTCHARSET");
+	if (charset_env)
+	    cd = iconv_open(charset_env, charset);
+	if (!charset_env || !cd)
+	    cd = iconv_open(DEFAULT_PILOT_CHARSET, charset);
 
-	cd = iconv_open(PILOT_CHARSET, charset);
 	if (!cd)
 		return -1;
 
@@ -98,8 +104,14 @@
 		*ob;
 	iconv_t cd;
 	size_t 	ibl, obl;
+	char *charset_env;
+
+	charset_env = getenv("PILOTCHARSET");
+	if (charset_env)
+	    cd = iconv_open(charset_env, charset);
+	if (!charset_env || !cd)
+	cd = iconv_open(DEFAULT_PILOT_CHARSET, charset);
 
-	cd = iconv_open(charset, PILOT_CHARSET);
 	if (!cd)
 		return -1;
 

Reply via email to