View | Details | Raw Unified | Return to bug 64572
Collapse All | Expand All

(-)lib/protocols.c (+21 lines)
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);

Return to bug 64572