On Tue, Jan 07, 2003 at 02:16:17PM -0500, Glenn Maynard wrote:
> On Tue, Jan 07, 2003 at 03:58:36PM +0100, Piotr Krukowiecki wrote:
> > Even after cd /Anime find won't work :(
>
> This is a bug, however.  The problem is that it's checking the first
> path ("." in /Anime) like any other argument, seeing it's a symlink, and
> not recursing (it only recurses on directories).  I think the solution
> is the same as the above, except only on top-level stack entries.

How about this patch?

--
   Alexander.                      | http://www.yars.free.net/~lav/  
Index: GetFileInfo.cc
===================================================================
RCS file: /home/lav/cvsroot/lftp/src/GetFileInfo.cc,v
retrieving revision 1.23
diff -u -p -r1.23 GetFileInfo.cc
--- GetFileInfo.cc      2002/12/10 11:03:30     1.23
+++ GetFileInfo.cc      2003/01/15 11:48:06
@@ -96,10 +96,19 @@ GetFileInfo::GetFileInfo(FileAccess *a, 
    li=0;
    from_cache=0;
    saved_error_text=0;
-   was_directory=0;
+   was_directory=false;
    prepend_path=true;
 
    origdir=xstrdup(session->GetCwd());
+
+   const char *bn=basename_ptr(dir);
+   if(bn[0]=='.' && (bn[1]==0 || bn[1]=='/' ||
+                     (bn[1]=='.' && (bn[2]==0 || bn[2]=='/')))
+   || bn[0]=='/')
+   {
+      // . .. / are directories, don't try them as a file.
+      tried_file=true;
+   }
 }
 
 GetFileInfo::~GetFileInfo()
@@ -281,6 +290,10 @@ int GetFileInfo::Do()
 
         result = new FileSet;
         result->Add(fi);
+
+        xfree(path_to_prefix);
+        path_to_prefix=dirname_alloc(dir);
+
         state=DONE;
         return MOVED;
       }

Reply via email to