X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/blobdiff_plain/f80ebf7ee3dcee0f41618701ba48e4492c0b6ab8..9f085fa3bd0053dde970cba09af3ee51cbb8791a:/ignore-case.diff diff --git a/ignore-case.diff b/ignore-case.diff index 1eea18b..7754f98 100644 --- a/ignore-case.diff +++ b/ignore-case.diff @@ -7,6 +7,11 @@ To use this patch, run these commands for a successful build: ./configure (optional if already run) make +TODO: + + - Make this code handle multibyte character encodings, and honor the + --iconv setting when converting case. + --- old/exclude.c +++ new/exclude.c @@ -32,6 +32,7 @@ extern int io_error; @@ -17,7 +22,7 @@ To use this patch, run these commands for a successful build: extern int delete_mode; extern int delete_excluded; extern int cvs_exclude; -@@ -580,16 +581,17 @@ static int rule_matches(char *name, stru +@@ -583,16 +584,17 @@ static int rule_matches(char *name, stru if (litmatch_array(pattern, strings, slash_handling)) return ret_match; } else if (anchored_match) { @@ -50,16 +55,15 @@ To use this patch, run these commands for a successful build: extern int ignore_errors; extern int numeric_ids; extern int recurse; -@@ -2390,7 +2391,7 @@ enum fnc_type { t_PATH, t_ITEM }; - int f_name_cmp(struct file_struct *f1, struct file_struct *f2) +@@ -2494,6 +2495,7 @@ int f_name_cmp(const struct file_struct { int dif; -- const uchar *c1, *c2; -+ const uchar *c1, *c2, ch1, ch2; + const uchar *c1, *c2; ++ uchar ch1, ch2; enum fnc_state state1, state2; enum fnc_type type1, type2; enum fnc_type t_path = protocol_version >= 29 ? t_PATH : t_ITEM; -@@ -2500,7 +2501,15 @@ int f_name_cmp(struct file_struct *f1, s +@@ -2604,7 +2606,15 @@ int f_name_cmp(const struct file_struct if (type1 != type2) return type1 == t_PATH ? 1 : -1; } @@ -163,7 +167,7 @@ To use this patch, run these commands for a successful build: --- old/options.c +++ new/options.c -@@ -113,6 +113,7 @@ OFF_T max_size = 0; +@@ -114,6 +114,7 @@ OFF_T max_size = 0; OFF_T min_size = 0; int ignore_errors = 0; int modify_window = 0; @@ -171,23 +175,24 @@ To use this patch, run these commands for a successful build: int blocking_io = -1; int checksum_seed = 0; int inplace = 0; -@@ -388,6 +389,7 @@ void usage(enum logcode F) +@@ -396,6 +397,7 @@ void usage(enum logcode F) + rprintf(F," --exclude-from=FILE read exclude patterns from FILE\n"); + rprintf(F," --include=PATTERN don't exclude files matching PATTERN\n"); rprintf(F," --include-from=FILE read include patterns from FILE\n"); ++ rprintf(F," --ignore-case ignore case when comparing filenames\n"); rprintf(F," --files-from=FILE read list of source-file names from FILE\n"); rprintf(F," -0, --from0 all *-from/filter files are delimited by 0s\n"); -+ rprintf(F," --ignore-case ignore case when comparing filenames\n"); - rprintf(F," --address=ADDRESS bind address for outgoing socket to daemon\n"); - rprintf(F," --port=PORT specify double-colon alternate port number\n"); - rprintf(F," --sockopts=OPTIONS specify custom TCP options\n"); -@@ -567,6 +569,7 @@ static struct poptOption long_options[] + rprintf(F," -s, --protect-args no space-splitting; only wildcard special-chars\n"); +@@ -593,6 +595,8 @@ static struct poptOption long_options[] + {"read-batch", 0, POPT_ARG_STRING, &batch_name, OPT_READ_BATCH, 0, 0 }, + {"write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_WRITE_BATCH, 0, 0 }, {"only-write-batch", 0, POPT_ARG_STRING, &batch_name, OPT_ONLY_WRITE_BATCH, 0, 0 }, ++ {"ignore-case", 0, POPT_ARG_VAL, &ignore_case, 1, 0, 0 }, ++ {"no-ignore-case", 0, POPT_ARG_VAL, &ignore_case, 0, 0, 0 }, {"files-from", 0, POPT_ARG_STRING, &files_from, 0, 0, 0 }, - {"from0", '0', POPT_ARG_NONE, &eol_nulls, 0, 0, 0}, -+ {"ignore-case", 0, POPT_ARG_NONE, &ignore_case, 0, 0, 0 }, - {"numeric-ids", 0, POPT_ARG_NONE, &numeric_ids, 0, 0, 0 }, - {"timeout", 0, POPT_ARG_INT, &io_timeout, 0, 0, 0 }, - {"rsh", 'e', POPT_ARG_STRING, &shell_cmd, 0, 0, 0 }, -@@ -1834,6 +1837,9 @@ void server_options(char **args,int *arg + {"from0", '0', POPT_ARG_VAL, &eol_nulls, 1, 0, 0}, + {"no-from0", 0, POPT_ARG_VAL, &eol_nulls, 0, 0, 0}, +@@ -1907,6 +1911,9 @@ void server_options(char **args, int *ar args[ac++] = arg; }