equal
deleted
inserted
replaced
486 (buf[i + 1] == 0x4B) && |
486 (buf[i + 1] == 0x4B) && |
487 (buf[i + 2] == 0x05) && |
487 (buf[i + 2] == 0x05) && |
488 (buf[i + 3] == 0x06) ) |
488 (buf[i + 3] == 0x06) ) |
489 { |
489 { |
490 found = 1; /* that's the signature! */ |
490 found = 1; /* that's the signature! */ |
491 break; |
491 break; |
492 } /* if */ |
492 } /* if */ |
493 } /* for */ |
493 } /* for */ |
494 |
494 |
495 if (found) |
495 if (found) |
496 break; |
496 break; |
550 } /* zip_free_entries */ |
550 } /* zip_free_entries */ |
551 |
551 |
552 |
552 |
553 /* |
553 /* |
554 * This will find the ZIPentry associated with a path in platform-independent |
554 * This will find the ZIPentry associated with a path in platform-independent |
555 * notation. Directories don't have ZIPentries associated with them, but |
555 * notation. Directories don't have ZIPentries associated with them, but |
556 * (*isDir) will be set to non-zero if a dir was hit. |
556 * (*isDir) will be set to non-zero if a dir was hit. |
557 */ |
557 */ |
558 static ZIPentry *zip_find_entry(const ZIPinfo *info, const char *path, |
558 static ZIPentry *zip_find_entry(const ZIPinfo *info, const char *path, |
559 int *isDir) |
559 int *isDir) |
560 { |
560 { |
722 |
722 |
723 BAIL_IF_MACRO(!io->seek(io, entry->offset), ERRPASS, 0); |
723 BAIL_IF_MACRO(!io->seek(io, entry->offset), ERRPASS, 0); |
724 |
724 |
725 path = (char *) __PHYSFS_smallAlloc(size + 1); |
725 path = (char *) __PHYSFS_smallAlloc(size + 1); |
726 BAIL_IF_MACRO(!path, PHYSFS_ERR_OUT_OF_MEMORY, 0); |
726 BAIL_IF_MACRO(!path, PHYSFS_ERR_OUT_OF_MEMORY, 0); |
727 |
727 |
728 if (entry->compression_method == COMPMETH_NONE) |
728 if (entry->compression_method == COMPMETH_NONE) |
729 rc = __PHYSFS_readAll(io, path, size); |
729 rc = __PHYSFS_readAll(io, path, size); |
730 |
730 |
731 else /* symlink target path is compressed... */ |
731 else /* symlink target path is compressed... */ |
732 { |
732 { |
1443 char ch = name[dlen]; |
1443 char ch = name[dlen]; |
1444 if ('/' < ch) /* make sure this isn't just a substr match. */ |
1444 if ('/' < ch) /* make sure this isn't just a substr match. */ |
1445 rc = -1; |
1445 rc = -1; |
1446 else if ('/' > ch) |
1446 else if ('/' > ch) |
1447 rc = 1; |
1447 rc = 1; |
1448 else |
1448 else |
1449 { |
1449 { |
1450 if (stop_on_first_find) /* Just checking dir's existance? */ |
1450 if (stop_on_first_find) /* Just checking dir's existance? */ |
1451 return middle; |
1451 return middle; |
1452 |
1452 |
1453 if (name[dlen + 1] == '\0') /* Skip initial dir entry. */ |
1453 if (name[dlen + 1] == '\0') /* Skip initial dir entry. */ |