ftpfs: do not call getfields after NLST
This commit is contained in:
parent
012273f39d
commit
b8990cfbb4
1 changed files with 11 additions and 5 deletions
|
@ -502,7 +502,7 @@ strpunct(char *p)
|
||||||
* decode a Unix or Plan 9 directory listing
|
* decode a Unix or Plan 9 directory listing
|
||||||
*/
|
*/
|
||||||
static Dir*
|
static Dir*
|
||||||
crackdir(char *p, String **remname)
|
crackdir(char *p, String **remname, int nlst)
|
||||||
{
|
{
|
||||||
char *field[15];
|
char *field[15];
|
||||||
char *dfield[4];
|
char *dfield[4];
|
||||||
|
@ -513,9 +513,15 @@ crackdir(char *p, String **remname)
|
||||||
|
|
||||||
memset(&d, 0, sizeof(d));
|
memset(&d, 0, sizeof(d));
|
||||||
|
|
||||||
n = getfields(p, field, 15, 1, " \t");
|
if(nlst != 0){
|
||||||
if(n > 2 && strcmp(field[n-2], "->") == 0)
|
field[0] = p;
|
||||||
n -= 2;
|
n = 1;
|
||||||
|
} else {
|
||||||
|
n = getfields(p, field, 15, 1, " \t");
|
||||||
|
if(n > 2 && strcmp(field[n-2], "->") == 0)
|
||||||
|
n -= 2;
|
||||||
|
}
|
||||||
|
|
||||||
switch(os){
|
switch(os){
|
||||||
case TSO:
|
case TSO:
|
||||||
cp = strchr(field[0], '.');
|
cp = strchr(field[0], '.');
|
||||||
|
@ -786,7 +792,7 @@ readdir(Node *node)
|
||||||
n--;
|
n--;
|
||||||
line[n - 1] = 0;
|
line[n - 1] = 0;
|
||||||
|
|
||||||
d = crackdir(line, &remname);
|
d = crackdir(line, &remname, (usenlist || usenlst));
|
||||||
if(d == nil)
|
if(d == nil)
|
||||||
continue;
|
continue;
|
||||||
files++;
|
files++;
|
||||||
|
|
Loading…
Reference in a new issue