X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/595251de24388fdfbac120daf9f3a748745ef7c5..3648ab3a2474ba318291dc9184cd68fa7b120591:/rsync.c diff --git a/rsync.c b/rsync.c index ee2f72b6..48b2520f 100644 --- a/rsync.c +++ b/rsync.c @@ -53,12 +53,15 @@ extern struct stats stats; #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) {