X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/df7ec1cf428ef45f255589a5ca662cfb25724510..44a97a34b151a3a4fc4fd4b1c0def483a428e633:/log.c diff --git a/log.c b/log.c index a6873750..889a3189 100644 --- a/log.c +++ b/log.c @@ -31,7 +31,6 @@ extern int am_generator; extern int local_server; extern int quiet; extern int module_id; -extern int msg_fd_out; extern int checksum_len; extern int allow_8bit_chars; extern int protocol_version; @@ -69,6 +68,7 @@ struct stats stats; int got_xfer_error = 0; int output_needs_newline = 0; +int send_msgs_to_gen = 0; struct { int code; @@ -263,7 +263,7 @@ void rwrite(enum logcode code, const char *buf, int len, int is_utf8) if (msgs2stderr && code != FLOG) goto output_msg; - if (am_server && msg_fd_out >= 0) { + if (send_msgs_to_gen) { assert(!is_utf8); /* Pass the message to our sibling in native charset. */ send_msg((enum msgcode)code, buf, len, 0); @@ -359,7 +359,7 @@ output_msg: INIT_XBUF(inbuf, (char*)buf, len, (size_t)-1); while (inbuf.len) { - iconvbufs(ic, &inbuf, &outbuf, 0); + iconvbufs(ic, &inbuf, &outbuf, inbuf.pos ? 0 : ICB_INIT); ierrno = errno; if (outbuf.len) { filtered_fwrite(f, convbuf, outbuf.len, 0); @@ -785,10 +785,12 @@ int log_format_has(const char *format, char esc) return 0; for (p = format; (p = strchr(p, '%')) != NULL; ) { - if (*++p == '-') + for (p++; *p == '\''; p++) {} + if (*p == '-') p++; while (isDigit(p)) p++; + while (*p == '\'') p++; if (!*p) break; if (*p == esc)