diff -Nuar ./ext.3/charconv.c ./ext.3.2/charconv.c --- ./ext.3/charconv.c 2007-02-26 02:00:04.000000000 +0300 +++ ./ext.3.2/charconv.c 2007-02-26 01:32:11.000000000 +0300 @@ -421,6 +421,11 @@ if (sl) char_code = dst [sl].char_code; } + if (char_code == 13 || char_code == 10) + { + char_code = 0; + } + else if (char_code < 32 && char_code != 9) { char_code = (unsigned int)unprintable; diff -Nuar ./ext.3/ftpcmdio.c ./ext.3.2/ftpcmdio.c --- ./ext.3/ftpcmdio.c 2007-02-26 02:00:04.000000000 +0300 +++ ./ext.3.2/ftpcmdio.c 2007-02-26 01:32:10.000000000 +0300 @@ -126,6 +126,7 @@ vsf_log_line(p_sess, kVSFLogEntryFTPOutput, &s_write_buf_str); } str_copy(&s_text_mangle_str, p_str); + vsf_charconv_convert(p_sess, &s_text_mangle_str, VSFTP_CONVDIRECT_FORWARD); /* Process the output response according to the specifications.. */ /* Escape telnet characters properly */ str_replace_text(&s_text_mangle_str, "\377", "\377\377"); @@ -140,7 +141,6 @@ { vsf_sysutil_activate_noblock(VSFTP_COMMAND_FD); } - vsf_charconv_convert(p_sess, &s_write_buf_str, VSFTP_CONVDIRECT_FORWARD); retval = ftp_write_str(p_sess, &s_write_buf_str, kVSFRWControl); if (retval != 0 && !noblock) { @@ -204,7 +204,6 @@ vsf_secbuf_alloc(&p_sess->p_control_line_buf, VSFTP_MAX_COMMAND_LINE); } ftp_getline(p_sess, p_str, p_sess->p_control_line_buf); - vsf_charconv_convert(p_sess, p_str, VSFTP_CONVDIRECT_BACKWARD); /* As mandated by the FTP specifications.. */ str_replace_char(p_str, '\0', '\n'); /* If the last character is a \r, strip it */ @@ -216,5 +215,6 @@ --len; } } + vsf_charconv_convert(p_sess, p_str, VSFTP_CONVDIRECT_BACKWARD); } diff -Nuar ./ext.3/vsftpver.h ./ext.3.2/vsftpver.h --- ./ext.3/vsftpver.h 2007-02-26 02:00:04.000000000 +0300 +++ ./ext.3.2/vsftpver.h 2007-02-26 01:32:10.000000000 +0300 @@ -1,7 +1,7 @@ #ifndef VSF_VERSION_H #define VSF_VERSION_H -#define VSF_VERSION "2.0.5+ (ext.3)" +#define VSF_VERSION "2.0.5+ (ext.3.2)" #endif /* VSF_VERSION_H */