From 343545a8836d1665bb3c41974d743b03fd0b6446 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 19 Oct 2004 10:15:34 +0000 Subject: r3063: our default dos charset is CP850, but some systems don't have that, so as a special case, automatically fall back to ASCII if its not found. (This used to be commit 55aeb33343180929fbd7b3568b058b506aee7540) --- source4/lib/charcnv.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source4/lib/charcnv.c b/source4/lib/charcnv.c index 40e68df984..3c27d59664 100644 --- a/source4/lib/charcnv.c +++ b/source4/lib/charcnv.c @@ -98,6 +98,20 @@ static smb_iconv_t get_conv_handle(charset_t from, charset_t to) n2 = charset_name(to); conv_handles[from][to] = smb_iconv_open(n2,n1); + + if (conv_handles[from][to] == (smb_iconv_t)-1) { + if ((from == CH_DOS || to == CH_DOS) && + strcasecmp(charset_name(CH_DOS), "ASCII") != 0) { + DEBUG(0,("dos charset '%s' unavailable - using ASCII\n", + charset_name(CH_DOS))); + lp_set_cmdline("dos charset", "ASCII"); + + n1 = charset_name(from); + n2 = charset_name(to); + + conv_handles[from][to] = smb_iconv_open(n2,n1); + } + } return conv_handles[from][to]; } -- cgit