X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/ba525f770c3133683c894ac08f13286a97ab4315..f57ab2f71889ca2e0f3f6c2c784e7ff76db20db0:/io.c diff --git a/io.c b/io.c index 1899cb9d..3ef6f127 100644 --- a/io.c +++ b/io.c @@ -28,6 +28,7 @@ * io_start_multiplex_out() and io_start_multiplex_in(). */ #include "rsync.h" +#include "ifuncs.h" /** If no timeout is specified then use a 60 second select timeout */ #define SELECT_TIMEOUT 60 @@ -52,7 +53,7 @@ extern int protocol_version; extern int remove_source_files; extern int preserve_hard_links; extern struct stats stats; -extern struct file_list *cur_flist, *first_flist; +extern struct file_list *cur_flist; #ifdef ICONV_OPTION extern int filesfrom_convert; extern iconv_t ic_send, ic_recv; @@ -674,7 +675,11 @@ static int read_timeout(int fd, char *buf, size_t len) } } else if (io_filesfrom_f_in >= 0) { if (FD_ISSET(io_filesfrom_f_in, &r_fds)) { +#ifdef ICONV_OPTION xbuf *ibuf = filesfrom_convert ? &iconv_buf : &ff_buf; +#else + xbuf *ibuf = &ff_buf; +#endif int l = read(io_filesfrom_f_in, ibuf->buf, ibuf->size); if (l <= 0) { if (l == 0 || errno != EINTR) { @@ -685,6 +690,7 @@ static int read_timeout(int fd, char *buf, size_t len) io_filesfrom_f_in = -1; } } else { +#ifdef ICONV_OPTION if (filesfrom_convert) { iconv_buf.pos = 0; iconv_buf.len = l; @@ -692,6 +698,7 @@ static int read_timeout(int fd, char *buf, size_t len) ICB_EXPAND_OUT|ICB_INCLUDE_BAD|ICB_INCLUDE_INCOMPLETE); l = ff_buf.len; } +#endif if (!eol_nulls) { char *s = ff_buf.buf + l; /* Transform CR and/or LF into '\0' */ @@ -771,7 +778,11 @@ int read_line(int fd, char *buf, size_t bufsiz, int flags) #endif start: +#ifdef ICONV_OPTION s = flags & RL_CONVERT ? iconv_buf.buf : buf; +#else + s = buf; +#endif eob = s + bufsiz - 1; while (1) { cnt = read(fd, &ch, 1); @@ -830,8 +841,11 @@ int read_args(int f_in, char *mod_name, char *buf, size_t bufsiz, int rl_nulls, int dot_pos = 0; int argc = 0; char **argv, *p; - int rl_flags = (rl_nulls ? RL_EOL_NULLS : 0) - | (protect_args && ic_recv != (iconv_t)-1 ? RL_CONVERT : 0); + int rl_flags = (rl_nulls ? RL_EOL_NULLS : 0); + +#ifdef ICONV_OPTION + rl_flags |= (protect_args && ic_recv != (iconv_t)-1 ? RL_CONVERT : 0); +#endif if (!(argv = new_array(char *, maxargs))) out_of_memory("read_args");