X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/c85631421deb9eb49abff012f7bbd0dc96278b1b..3648ab3a2474ba318291dc9184cd68fa7b120591:/rsync.c diff --git a/rsync.c b/rsync.c index 2a2505a0..48b2520f 100644 --- a/rsync.c +++ b/rsync.c @@ -50,15 +50,18 @@ extern int keep_dirlinks; extern int make_backups; extern struct stats stats; -#ifdef HAVE_ICONV_OPEN +#if defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H iconv_t ic_chck = (iconv_t)-1; -static char *default_charset(void) +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 - return nl_langinfo(CODESET); + const char *def = nl_langinfo(CODESET); + if (strcmp(def, "646") == 0) /* Solaris brain-damage */ + return "ASCII"; + return def; #else return ""; /* Works with (at the very least) gnu iconv... */ #endif @@ -66,7 +69,7 @@ static char *default_charset(void) void setup_iconv() { - char *defset = default_charset(); + const char *defset = default_charset(); if (!am_server && (ic_chck = iconv_open(defset, defset)) == (iconv_t)-1) {