diff options
author | Christian Kamm <kamm@incasoftware.de> | 2015-02-27 13:25:03 +0300 |
---|---|---|
committer | Christian Kamm <kamm@incasoftware.de> | 2015-02-27 14:12:39 +0300 |
commit | b03209ccef115eaee505d75648197bf1f0666474 (patch) | |
tree | a0e27f8be06d0aff8a8a17d5c72f26250f5fc4b8 /csync | |
parent | ec03ebd69fc461054bc96af2d86b82f9b629a518 (diff) |
Inform user about ignored long files. #2882
Diffstat (limited to 'csync')
-rw-r--r-- | csync/src/csync.h | 1 | ||||
-rw-r--r-- | csync/src/csync_exclude.c | 11 | ||||
-rw-r--r-- | csync/src/csync_exclude.h | 3 | ||||
-rw-r--r-- | csync/src/csync_update.c | 2 |
4 files changed, 14 insertions, 3 deletions
diff --git a/csync/src/csync.h b/csync/src/csync.h index 5bca3c942..a3c490e13 100644 --- a/csync/src/csync.h +++ b/csync/src/csync.h @@ -105,6 +105,7 @@ enum csync_status_codes_e { CSYNC_STATUS_INDIVIDUAL_IS_HARDLINK, CSYNC_STATUS_INDIVIDUAL_IGNORE_LIST, CSYNC_STATUS_INDIVIDUAL_IS_INVALID_CHARS, + CSYNC_STATUS_INDIVIDUAL_EXCLUDE_LONG_FILENAME, CYSNC_STATUS_FILE_LOCKED_OR_OPEN }; diff --git a/csync/src/csync_exclude.c b/csync/src/csync_exclude.c index 583aebed1..198389ac7 100644 --- a/csync/src/csync_exclude.c +++ b/csync/src/csync_exclude.c @@ -224,14 +224,21 @@ CSYNC_EXCLUDE_TYPE csync_excluded_no_ctx(c_strlist_t *excludes, const char *path } rc = csync_fnmatch(".csync_journal.db*", bname, 0); - // check the strlen and ignore the file silently if its name is longer than 254 chars. - if (strlen(bname) > 254 || rc == 0) { + if (rc == 0) { match = CSYNC_FILE_SILENTLY_EXCLUDED; SAFE_FREE(bname); SAFE_FREE(dname); goto out; } + // check the strlen and ignore the file if its name is longer than 254 chars. + if (strlen(bname) > 254) { + match = CSYNC_FILE_EXCLUDE_LONG_FILENAME; + SAFE_FREE(bname); + SAFE_FREE(dname); + goto out; + } + #ifdef _WIN32 // Windows cannot sync files ending in spaces (#2176). It also cannot // distinguish files ending in '.' from files without an ending, diff --git a/csync/src/csync_exclude.h b/csync/src/csync_exclude.h index efc809f74..329d95763 100644 --- a/csync/src/csync_exclude.h +++ b/csync/src/csync_exclude.h @@ -26,7 +26,8 @@ enum csync_exclude_type_e { CSYNC_FILE_SILENTLY_EXCLUDED, CSYNC_FILE_EXCLUDE_AND_REMOVE, CSYNC_FILE_EXCLUDE_LIST, - CSYNC_FILE_EXCLUDE_INVALID_CHAR + CSYNC_FILE_EXCLUDE_INVALID_CHAR, + CSYNC_FILE_EXCLUDE_LONG_FILENAME }; typedef enum csync_exclude_type_e CSYNC_EXCLUDE_TYPE; diff --git a/csync/src/csync_update.c b/csync/src/csync_update.c index f966309cb..fdb6df911 100644 --- a/csync/src/csync_update.c +++ b/csync/src/csync_update.c @@ -416,6 +416,8 @@ out: st->error_status = CSYNC_STATUS_INDIVIDUAL_IGNORE_LIST; /* File listed on ignore list. */ } else if (excluded == CSYNC_FILE_EXCLUDE_INVALID_CHAR) { st->error_status = CSYNC_STATUS_INDIVIDUAL_IS_INVALID_CHARS; /* File contains invalid characters. */ + } else if (excluded == CSYNC_FILE_EXCLUDE_LONG_FILENAME) { + st->error_status = CSYNC_STATUS_INDIVIDUAL_EXCLUDE_LONG_FILENAME; /* File name is too long. */ } } if (st->instruction != CSYNC_INSTRUCTION_NONE && st->instruction != CSYNC_INSTRUCTION_IGNORE |