extern int protocol_version;
extern int preserve_times;
extern int log_format_has_i;
extern int protocol_version;
extern int preserve_times;
extern int log_format_has_i;
-static void filtered_fwrite(const char *buf, int len, FILE *f)
+static void filtered_fwrite(FILE *f, const char *buf, int len, int use_isprint)
{
const char *s, *end = buf + len;
for (s = buf; s < end; s++) {
if ((s < end - 4
{
const char *s, *end = buf + len;
for (s = buf; s < end; s++) {
if ((s < end - 4
&& isdigit(*(uchar*)(s+2))
&& isdigit(*(uchar*)(s+3))
&& isdigit(*(uchar*)(s+4)))
&& isdigit(*(uchar*)(s+2))
&& isdigit(*(uchar*)(s+3))
&& isdigit(*(uchar*)(s+4)))
-#if defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H
- || (*(uchar*)s < ' ' && *s != '\t')
-#else
- || ((!isprint(*(uchar*)s) || *(uchar*)s < ' ') && *s != '\t')
-#endif
- ) {
+ || (*s != '\t'
+ && ((use_isprint && !isprint(*(uchar*)s))
+ || *(uchar*)s < ' '))) {
if (s != buf && fwrite(buf, s - buf, 1, f) != 1)
exit_cleanup(RERR_MESSAGEIO);
if (s != buf && fwrite(buf, s - buf, 1, f) != 1)
exit_cleanup(RERR_MESSAGEIO);
while (iconv(ic_chck, &in_buf,&in_cnt,
&out_buf,&out_cnt) == (size_t)-1) {
if (out_buf != convbuf) {
while (iconv(ic_chck, &in_buf,&in_cnt,
&out_buf,&out_cnt) == (size_t)-1) {
if (out_buf != convbuf) {
- filtered_fwrite(convbuf, out_buf - convbuf, f);
+ filtered_fwrite(f, convbuf, out_buf - convbuf, 0);
- filtered_fwrite(convbuf, out_buf - convbuf, f);
+ filtered_fwrite(f, convbuf, out_buf - convbuf, 0);
n[5] = !(iflags & ITEM_REPORT_PERMS) ? '.' : 'p';
n[6] = !(iflags & ITEM_REPORT_OWNER) ? '.' : 'o';
n[7] = !(iflags & ITEM_REPORT_GROUP) ? '.' : 'g';
n[5] = !(iflags & ITEM_REPORT_PERMS) ? '.' : 'p';
n[6] = !(iflags & ITEM_REPORT_OWNER) ? '.' : 'o';
n[7] = !(iflags & ITEM_REPORT_GROUP) ? '.' : 'g';