Просмотр исходного кода

Backported zip/qpak dir fix from dev branch to stable-2.0.

Ryan C. Gordon 15 лет назад
Родитель
Сommit
6b96ff2524
2 измененных файлов с 8 добавлено и 2 удалено
  1. 4 1
      archivers/qpak.c
  2. 4 1
      archivers/zip.c

+ 4 - 1
archivers/qpak.c

@@ -478,8 +478,11 @@ static QPAKentry *qpak_find_entry(QPAKinfo *info, const char *path, int *isDir)
 
 
             if (thispath[pathlen] == '\0') /* found entry? */
             if (thispath[pathlen] == '\0') /* found entry? */
                 return(&a[middle]);
                 return(&a[middle]);
+            /* adjust search params, try again. */
+            else if (thispath[pathlen] > '/')
+                hi = middle - 1;
             else
             else
-                hi = middle - 1;  /* adjust search params, try again. */
+                lo = middle + 1;
         } /* if */
         } /* if */
     } /* while */
     } /* while */
 
 

+ 4 - 1
archivers/zip.c

@@ -544,8 +544,11 @@ static ZIPentry *zip_find_entry(ZIPinfo *info, const char *path, int *isDir)
 
 
             if (thispath[pathlen] == '\0') /* found entry? */
             if (thispath[pathlen] == '\0') /* found entry? */
                 return(&a[middle]);
                 return(&a[middle]);
+            /* adjust search params, try again. */
+            else if (thispath[pathlen] > '/')
+                hi = middle - 1;
             else
             else
-                hi = middle - 1;  /* adjust search params, try again. */
+                lo = middle + 1;
         } /* if */
         } /* if */
     } /* while */
     } /* while */