On Fri, Aug 04, 2006 at 12:24:25PM -0400, Justin Piszcz wrote:
> Add an include-regex to include certain files excluded by large
> exclude-regex expressions.
Here.
--
Alexander.
Index: MirrorJob.cc
===================================================================
RCS file: /home/lav/cvsroot/lftp/src/MirrorJob.cc,v
retrieving revision 1.137
diff -u -p -r1.137 MirrorJob.cc
--- MirrorJob.cc 7 Aug 2006 09:50:46 -0000 1.137
+++ MirrorJob.cc 7 Aug 2006 11:58:36 -0000
@@ -1343,6 +1343,7 @@ CMD(mirror)
PatternSet *exclude=0;
const char *default_exclude=ResMgr::Query("mirror:exclude-regex",0);
+ const char *default_include=ResMgr::Query("mirror:include-regex",0);
if(!ResMgr::QueryBool("mirror:set-permissions",0))
flags|=MirrorJob::NO_PERMS;
@@ -1413,7 +1414,11 @@ CMD(mirror)
* explicit pattern is for exclusion - otherwise all files are
* excluded by default and no default exclusion is needed. */
if(type==PatternSet::EXCLUDE && default_exclude && *default_exclude)
+ {
exclude->Add(type,new PatternSet::Regex(default_exclude));
+ if(default_include && *default_include)
+ exclude->Add(PatternSet::INCLUDE,new
PatternSet::Regex(default_include));
+ }
default_exclude=0;
/* Users usually don't want to exclude all directories */
if(type==PatternSet::INCLUDE)
@@ -1521,6 +1526,8 @@ CMD(mirror)
{
exclude=new PatternSet;
exclude->Add(PatternSet::EXCLUDE,new PatternSet::Regex(default_exclude));
+ if(default_include && *default_include)
+ exclude->Add(PatternSet::INCLUDE,new
PatternSet::Regex(default_include));
}
args->back();
Index: resource.cc
===================================================================
RCS file: /home/lav/cvsroot/lftp/src/resource.cc,v
retrieving revision 1.134
diff -u -p -r1.134 resource.cc
--- resource.cc 7 Aug 2006 11:08:10 -0000 1.134
+++ resource.cc 7 Aug 2006 11:35:09 -0000
@@ -301,6 +301,7 @@ static ResType lftp_vars[] = {
{"mirror:parallel-directories", "yes",
ResMgr::BoolValidate,ResMgr::NoClosure},
{"mirror:parallel-transfer-count",
"1",ResMgr::UNumberValidate,ResMgr::NoClosure},
{"mirror:exclude-regex",
"(^|/)(\\.in\\.|\\.nfs)",ResMgr::ERegExpValidate,ResMgr::NoClosure},
+ {"mirror:include-regex", "",
ResMgr::ERegExpValidate,ResMgr::NoClosure},
{"mirror:use-pget-n", "1",
ResMgr::UNumberValidate,ResMgr::NoClosure},
{"mirror:set-permissions", "yes",
ResMgr::BoolValidate,ResMgr::NoClosure},
{"mirror:dereference", "no",
ResMgr::BoolValidate,ResMgr::NoClosure},