aboutsummaryrefslogtreecommitdiffstats
path: root/rsync.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2006-02-06 16:55:01 +0000
committerWayne Davison <wayned@samba.org>2006-02-06 16:55:01 +0000
commit7fc87d2daf7e2e68d4b369f9f469530f606f69cc (patch)
tree0f5038a3b55e55f60acece427b5bbef2a00aa517 /rsync.c
parent3648ab3a2474ba318291dc9184cd68fa7b120591 (diff)
downloadandroid_external_rsync-7fc87d2daf7e2e68d4b369f9f469530f606f69cc.tar.gz
android_external_rsync-7fc87d2daf7e2e68d4b369f9f469530f606f69cc.tar.bz2
android_external_rsync-7fc87d2daf7e2e68d4b369f9f469530f606f69cc.zip
Allow the iconv_open() call to fail since we can now fall-back on
isprint(). Got rid of the "646" mapping kluge too.
Diffstat (limited to 'rsync.c')
-rw-r--r--rsync.c31
1 files changed, 21 insertions, 10 deletions
diff --git a/rsync.c b/rsync.c
index 48b2520f..2be63d59 100644
--- a/rsync.c
+++ b/rsync.c
@@ -58,10 +58,7 @@ static const char *default_charset(void)
#if defined HAVE_LIBCHARSET_H && defined HAVE_LOCALE_CHARSET
return locale_charset();
#elif defined HAVE_LANGINFO_H && defined HAVE_NL_LANGINFO
- const char *def = nl_langinfo(CODESET);
- if (strcmp(def, "646") == 0) /* Solaris brain-damage */
- return "ASCII";
- return def;
+ return nl_langinfo(CODESET);
#else
return ""; /* Works with (at the very least) gnu iconv... */
#endif
@@ -69,13 +66,27 @@ static const char *default_charset(void)
void setup_iconv()
{
- const char *defset = default_charset();
+ const char *defset;
+
+ if (!am_server)
+ return;
+
+ defset = default_charset();
- if (!am_server
- && (ic_chck = iconv_open(defset, defset)) == (iconv_t)-1) {
- rprintf(FERROR, "iconv_open(\"%s\", \"%s\") failed\n",
- defset, defset);
- exit_cleanup(RERR_UNSUPPORTED);
+ /* It's OK if this fails... */
+ ic_chck = iconv_open(defset, defset);
+
+ if (verbose > 3) {
+ if (ic_chck == (iconv_t)-1) {
+ rprintf(FINFO,
+ "note: iconv_open(\"%s\", \"%s\") failed (%d)"
+ " -- using isprint() instead of iconv().\n",
+ defset, defset, errno);
+ } else {
+ rprintf(FINFO,
+ "note: iconv_open(\"%s\", \"%s\") succeeded.\n",
+ defset, defset);
+ }
}
}
#endif