* Copyright (C) 2003-2007 Wayne Davison
*
* This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ * with this program; if not, visit the http://fsf.org website.
*/
#include "rsync.h"
extern char *tmpdir;
extern char *partial_dir;
extern char *basis_dir[];
-extern struct file_list *cur_flist, *first_flist;
+extern struct file_list *cur_flist, *first_flist, *dir_flist;
extern struct filter_list_struct server_filter_list;
static struct bitbag *delayed_bits = NULL;
next_gen_ndx = read_int(fd);
if (next_gen_ndx == -1) {
if (inc_recurse)
- next_gen_ndx = first_flist->prev->count + first_flist->prev->ndx_start;
+ next_gen_ndx = first_flist->prev->used + first_flist->prev->ndx_start;
else
- next_gen_ndx = cur_flist->count;
+ next_gen_ndx = cur_flist->used;
}
}
return next_gen_ndx;
int ndx, recv_ok;
if (verbose > 2)
- rprintf(FINFO, "recv_files(%d) starting\n", cur_flist->count);
+ rprintf(FINFO, "recv_files(%d) starting\n", cur_flist->used);
if (delay_updates)
- delayed_bits = bitbag_create(cur_flist->count + 1);
+ delayed_bits = bitbag_create(cur_flist->used + 1);
updating_basis = inplace;
}
if (read_batch && cur_flist) {
int high = inc_recurse
- ? first_flist->prev->count + first_flist->prev->ndx_start
- : cur_flist->count;
+ ? first_flist->prev->used + first_flist->prev->ndx_start
+ : cur_flist->used;
get_next_gen_ndx(batch_gen_fd, next_gen_ndx, high);
next_gen_ndx = -1;
}
continue;
}
- file = cur_flist->files[ndx - cur_flist->ndx_start];
+ if (ndx - cur_flist->ndx_start >= 0)
+ file = cur_flist->files[ndx - cur_flist->ndx_start];
+ else
+ file = dir_flist->files[cur_flist->parent_ndx];
fname = local_name ? local_name : f_name(file, fbuf);
if (verbose > 2)