Always include "." when processing exclude lists. This avoids confusion
[rsync/rsync.git] / exclude.c
index 109ee8d..35fa307 100644 (file)
--- a/exclude.c
+++ b/exclude.c
@@ -160,6 +160,10 @@ int check_exclude(char *name,struct exclude_struct **local_exclude_list,
 {
        int n;
 
 {
        int n;
 
+       if (name && (name[0] == '.') && !name[1])
+               /* never exclude '.', even if somebody does --exclude '*' */
+               return 0;
+
        if (exclude_list) {
                for (n=0; exclude_list[n]; n++)
                        if (check_one_exclude(name,exclude_list[n],st))
        if (exclude_list) {
                for (n=0; exclude_list[n]; n++)
                        if (check_one_exclude(name,exclude_list[n],st))