X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/9486289ce452ab82ca8b3f16fae8c2ef5247a923..79b34efe9229265da3e0b0995e8828e29c4d5dd9:/exclude.c diff --git a/exclude.c b/exclude.c index b2831e4a..901047eb 100644 --- a/exclude.c +++ b/exclude.c @@ -142,7 +142,9 @@ char **make_exclude_list(char *fname,char **list1,int fatal) void add_exclude_file(char *fname,int fatal) { - exclude_list = make_exclude_list(fname,exclude_list,fatal); + if (!fname || !*fname) return; + + exclude_list = make_exclude_list(fname,exclude_list,fatal); } @@ -172,6 +174,18 @@ void recv_exclude_list(int f) } +void add_exclude_line(char *p) +{ + char *tok; + if (!p || !*p) return; + p = strdup(p); + if (!p) out_of_memory("add_exclude_line"); + for (tok=strtok(p," "); tok; tok=strtok(NULL," ")) + add_exclude(tok); + free(p); +} + + static char *cvs_ignore_list[] = { "RCS","SCCS","CVS","CVS.adm","RCSLOG","cvslog.*", "tags","TAGS",".make.state",".nse_depinfo", @@ -191,13 +205,9 @@ void add_cvs_excludes(void) add_exclude(cvs_ignore_list[i]); if ((p=getenv("HOME")) && strlen(p) < (MAXPATHLEN-12)) { - sprintf(fname,"%s/.cvsignore",p); - add_exclude_file(fname,0); + slprintf(fname,sizeof(fname)-1, "%s/.cvsignore",p); + add_exclude_file(fname,0); } - if ((p=getenv("CVSIGNORE"))) { - char *tok; - for (tok=strtok(p," "); tok; tok=strtok(NULL," ")) - add_exclude(tok); - } + add_exclude_line(getenv("CVSIGNORE")); }