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},

Reply via email to