*
*/
/*
- Copyright (C) 2001, 2002 Kern Sibbald and John Walker
+ Copyright (C) 2001-2003 Kern Sibbald and John Walker
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
len = strlen(fname);
- inc =(struct s_included_file *) bmalloc(sizeof(struct s_included_file) + len + 1);
- inc->next = ff->included_files_list;
+ inc =(struct s_included_file *)bmalloc(sizeof(struct s_included_file) + len + 1);
inc->options = 0;
inc->VerifyOpts[0] = 'V';
inc->VerifyOpts[1] = ':';
if (prefixed) {
for (p=fname; *p && *p != ' '; p++) {
switch (*p) {
- case '0': /* no option */
+ case 'a': /* alway replace */
+ case '0': /* no option */
break;
- case 'M': /* MD5 */
+ case 'f':
+ inc->options |= OPT_multifs;
+ break;
+ case 'h': /* no recursion */
+ inc->options |= OPT_no_recursion;
+ break;
+ case 'M': /* MD5 */
inc->options |= OPT_compute_MD5;
break;
- case 'Z': /* gzip compression */
- inc->options |= OPT_GZIP_compression;
- inc->level = *++p - '0';
- Dmsg1(200, "Compression level=%d\n", inc->level);
+ case 'S':
+ inc->options |= OPT_compute_SHA1;
break;
- case 'h': /* no recursion */
- inc->options |= OPT_no_recursion;
+ case 'n':
+ inc->options |= OPT_never_replace;
+ break;
+ case 'r': /* read fifo */
+ inc->options |= OPT_read_fifo;
+ break;
+ case 's':
+ inc->options |= OPT_sparse;
break;
case 'V': /* verify options */
/* Copy Verify Options */
}
inc->VerifyOpts[j] = 0;
break;
+ case 'w':
+ inc->options |= OPT_replace_if_newer;
+ break;
+ case 'Z': /* gzip compression */
+ inc->options |= OPT_GZIP_compression;
+ inc->level = *++p - '0';
+ Dmsg1(200, "Compression level=%d\n", inc->level);
+ break;
default:
Emsg1(M_ERROR, 0, "Unknown include/exclude option: %c\n", *p);
break;
}
strcpy(inc->fname, p);
+ p = inc->fname;
len = strlen(p);
/* Zap trailing slashes. */
p += len - 1;
break;
}
}
- ff->included_files_list = inc;
+#ifdef HAVE_CYGWIN
+ /* Convert any \'s into /'s */
+ for (p=inc->fname; *p; p++) {
+ if (*p == '\\') {
+ *p = '/';
+ }
+ }
+#endif
+ inc->next = NULL;
+ /* Chain this one on the end of the list */
+ if (!ff->included_files_list) {
+ /* First one, so set head */
+ ff->included_files_list = inc;
+ } else {
+ struct s_included_file *next;
+ /* Walk to end of list */
+ for (next=ff->included_files_list; next->next; next=next->next)
+ { }
+ next->next = inc;
+ }
Dmsg1(50, "add_fname_to_include fname=%s\n", inc->fname);
}
int len;
struct s_excluded_file *exc, **list;
+#ifdef HAVE_CYGWIN
+ /* Convert any \'s into /'s */
+ for (char *p=fname; *p; p++) {
+ if (*p == '\\') {
+ *p = '/';
+ }
+ }
+#endif
Dmsg1(20, "Add name to exclude: %s\n", fname);
if (strchr(fname, '/')) {
} else {
inc = ainc->next;
}
+ /*
+ * copy inc_options for this file into the ff packet
+ */
if (inc) {
- if (inc->options & OPT_compute_MD5) {
- ff->compute_MD5 = 1;
- } else {
- ff->compute_MD5 = 0;
- }
- if (inc->options & OPT_GZIP_compression) {
- ff->GZIP_compression = 1;
- ff->GZIP_level = inc->level;
- } else {
- ff->GZIP_compression = 0;
- }
- if (inc->options & OPT_no_recursion) {
- ff->no_recursion = 1;
- } else {
- ff->no_recursion = 0;
- }
+ ff->flags = inc->options;
+ ff->GZIP_level = inc->level;
}
return inc;
}