|
Lines 595-600
Link Here
|
| 595 |
gftp_get_next_file (gftp_request * request, const char *filespec, |
595 |
gftp_get_next_file (gftp_request * request, const char *filespec, |
| 596 |
gftp_file * fle) |
596 |
gftp_file * fle) |
| 597 |
{ |
597 |
{ |
|
|
598 |
char *slashpos, *newfile; |
| 598 |
int fd, ret; |
599 |
int fd, ret; |
| 599 |
|
600 |
|
| 600 |
g_return_val_if_fail (request != NULL, GFTP_EFATAL); |
601 |
g_return_val_if_fail (request != NULL, GFTP_EFATAL); |
|
Lines 612-617
Link Here
|
| 612 |
{ |
613 |
{ |
| 613 |
gftp_file_destroy (fle, 0); |
614 |
gftp_file_destroy (fle, 0); |
| 614 |
ret = request->get_next_file (request, fle, fd); |
615 |
ret = request->get_next_file (request, fle, fd); |
|
|
616 |
if (fle->file != NULL && (slashpos = strrchr (fle->file, '/')) != NULL) |
| 617 |
{ |
| 618 |
if (*(slashpos + 1) == '\0') |
| 619 |
{ |
| 620 |
gftp_file_destroy (fle, 0); |
| 621 |
continue; |
| 622 |
} |
| 623 |
|
| 624 |
*slashpos = '\0'; |
| 625 |
newfile = g_strdup (slashpos + 1); |
| 626 |
|
| 627 |
if (strcmp (fle->file, request->directory) != 0) |
| 628 |
request->logging_function (gftp_logging_error, request, |
| 629 |
_("Warning: Stripping path off of file '%s'. The stripped path (%s) doesn't match the current directory (%s)\n"), |
| 630 |
newfile, fle->file, request->directory, |
| 631 |
g_strerror (errno)); |
| 632 |
|
| 633 |
g_free (fle->file); |
| 634 |
fle->file = newfile; |
| 635 |
} |
| 615 |
|
636 |
|
| 616 |
if (ret >= 0 && fle->file != NULL) |
637 |
if (ret >= 0 && fle->file != NULL) |
| 617 |
fle->utf8_file = gftp_string_to_utf8 (request, fle->file); |
638 |
fle->utf8_file = gftp_string_to_utf8 (request, fle->file); |