| Changelog for rar | 
                                    
                        | Release | What has changed? | 
                                            
                                                    
                                | 4.2.0 | - Support PHP 8. - Merge unrar 6.0.2.
 - RarArchive implements IteratorAggregate (PHP 8 only).
 | 
                                                                    
                                                    
                                | 4.1.0 | - Merge changes made to unrar up to version 5.5.6. - Support PHP 7.2, PHP 7.3 and PHP 7.4.
 - Update to unrar 5.9.4
 - Fix bug #76592: streaming unpacking of uncompressed files incomplete
 | 
                                                                    
                                                    
                                | 4.0.0 | - Merge changes made to unrar up to version 5.5.6. - Support PHP 7.0 and PHP 7.1.
 - Added functions RarEntry::getRedirType(), RarEntry::isRedirectToDirectory() and RarEntry::getRedirTarget(), as well as the following constants on RarEntry: FSREDIR_UNIXSYMLINK, FSREDIR_WINSYMLINK, FSREDIR_JUNCTION, FSREDIR_HARDLINK and FSREDIR_FILECOPY.
 - Changed stat handler to return UTC time for creation, modification and access time (does not work reliably on Windows).
 - Fix cloning of RarArchive being allowed.
 | 
                                                                    
                                                    
                                | 3.0.2 | - Fixed build with PHP 5.5. - Upgraded bundled unrar to version 4.2.4.
 | 
                                                                    
                                                    
                                | 3.0.1 | Changes in this version: - Merge changes made to unrar up to version 4.2.2.
 - Fix leak in PHP >= 5.3.11 (except 5.4.0) and compile error in master.
 - Fix some tests failing if TZ != Europe/Lisbon.
 - Fix bad pointer in an error message.
 - Added test for bug #59939 (can't reproduce).
 | 
                                                                    
                                                    
                                | 3.0.0 | Changes in this version: - Updated to unrar 4.0.7 (corresponds to WinRAR 4.0.0 stable).
 - Support for PHP 5.4.
 - Added url wrapper rar://.
 - Added volume find callback to RarArchive::open/rar_open.
 - Added support for stat, both static and to opened streams.
 - Added rar_allow_broken_set/RarArchive::setAllowBroken and rar_broken_is/
 RarArchive::isBroken, which control/query the behavior with archives with
 missing volumes.
 - Added option to RarEntry::extract() to allow from extraction of ACL (windows)
 /owner (unix)/extended attributes (os/2).
 - Added support for RAR archives that have several entries with the same name.
 - Implemented count elements handler for RarArchive.
 - Implemented dimensions handlers for RarArchive.
 - Fixed packed sizes which were using high bits from unpacked sizes.
 - Fixed PECL bug #20498 (RarEntry::extract not really accepting a password).
 - Fixed PECL bug #18449 (Extraction of uncompressed and encrypted files fails).
 - Many more tests.
 | 
                                                                    
                                                    
                                | 2.0.0 | Changes with respect to release 2.0.0RC1: - Fixed infinite loop when opening RAR archive missing a volume (later report in bug #17177).
 - Fixed bug #17025 (changed the name of method RarArchive::list into RarArchive::getEntries). If backwards compatibility with the release candidate is required, RarArchive::list can be reintroduced by defining RAR_ARCHIVE_LIST_ALIAS.
 Incompatible changes with respect to release 1.0.0:
 PHP Support:
 - Support for PHP 4.3 dropped. PHP 5.2.x or 5.3.x is required.
 API backwards incompatible changes:
 - Handles unicode filenames (uses UTF-8 external encoding). The file names inside the RAR archives are always returned in UTF-8. This will probably break your scripts.
 - Calling rar_close/RarArchive::close() invalidates RarEntry objects (actually, only extraction is forbidden, but don't rely on it).
 For the other changes, see the changelog for version 2.0.0RC1.
 | 
                                                                    
                                                    
                                | 2.0.0RC1 | Changes in respect to release 1.0.0: PHP SUPPORT:
 - Support for PHP 4.3 dropped. PHP 5.2.x or 5.3.x is required.
 API BACKWARDS INCOMPATIBLE CHANGES:
 - Handles unicode filenames (uses UTF-8 external encoding). The file names inside the RAR archives are always returned in UTF-8. This will probably break your scripts.
 - Calling rar_close/RarArchive::close() invalidates RarEntry objects (actually, only extraction is forbidden, but don't rely on it).
 API backwards compatible changes:
 - Supports streaming from RAR archives. See RarEntry::getStream() method.
 - Added a bunch of constants to RarEntry.
 - Added RarEntry::__toString() method.
 - Added RarEntry::isDirectory() method.
 - Added RarEntry::isEncrypted() method.
 - Added OOP interface for rar_* functions with the RarArchive class.
 - Added rar_comment_get/RarArchive::getComment().
 - Added RarArchive::isSolid()/rar_solid_is().
 - Added RarArchive::__toString() method.
 - Added RarException class.
 - Exception throwing for expectable errors can be turned on by calling RarException::setUsingExceptions(). To check whether exception throwing is turned on, RarException::isUsingExceptions() can be used.
 Bug fixes:
 - Fixed by PECL bug #8821 (relative paths not working).
 - Fixed PECL bug #9470 (wrong CRC on multi-volume archives).
 - Fixed PECL bug #9649 (rar_close() not closing file descriptors if there were undestroyed RarEntry objects)
 - Fixed volumes opened with middle volumes showing files continued from previous volume with incorrect packed and unpacked sizes.
 - Fixed bug in UnRAR library that could cause a read out of buffer bounds on some corrupted RAR files.
 - Fixed RarEntry::getPackedSize() and RarEntry::getUnpackedSize() giving incorrect results for files > 2 GiB. Still, on platforms with 32-bit integers, MAX_INT will be returned for such files, othwerwise the correct value is given.
 Other changes:
 - Updated bundled UnRAR library to version 3.9.7 (RAR 3.9.1).
 - Changed bundled UnRAR library to allow partial file extraction.
 - All RarEntry properties are now private. This doesn't break the API because those properties were never part of the contract.
 - rar_open gives more detailed error messages on failure.
 - Extension now uses extended UnRAR library structures.
 - Added arginfo.
 - Added a bunch of tests.
 - A lot of refactoring and compilation as C, not C++.
 | 
                                                                    
                                                    
                                | 2.0.0b2 | - Updated bundled UnRAR library to version 3.9.6. - Added OOP interface for rar_* functions with the RarArchive class.
 - Changed bundled UnRAR library to allow partial file extraction.
 - Fixed bug in UnRAR library that could cause a read out of buffer bounds on some corrupted RAR files.
 - Added a bunch of constants to RarEntry.
 - Added RarEntry::__toString() and RarEntry::isDirectory methods.
 - All RarEntry properties are now private. This doesn't change the API because those properties were never part of the contract.
 - Supports streaming from RAR archives.
 - Extensio now uses extended UnRAR library structures.
 - rar_open gives more detailed error messages on failure.
 - Fixed pecl bug #9470 (wrong CRC on multi-volume archives).
 - Added rar_comment_get.
 - Fixed by pecl bug #8821 (relative paths not working).
 - Handles unicode filenames (uses UTF-8 external encoding).
 - Fixed PECL bug #9649, resource is now destroyed regardless of the le->refcount.
 - Fixed volumes opened with middle volumes showing files continued from previous volume with incorrect packed and unpacked sizes.
 - Added arginfo.
 - Added a bunch of tests.
 - A lot of refactoring and compilation as C, not C++.
 | 
                                                                    
                                                    
                                | 1.0.0 | - Upgraded bundled UnRar to version 3.7.8. - Updated source code to use new parameter parsing API.
 - Fixed PECL bug #9002 (rar_list invalidates rar resource)
 - Fixed PECL bug #11430 (rar_extract() doesn't close handles gracefully)
 - rar_open() now throws an error when failed to open the specified file.
 | 
                                                                    
                                                    
                                | 0.3.1 | - Updated bundled unrar to version 3.6.8. - Fixed PHP4 compatibility.
 
 
 | 
                                                                    
                                                    
                                | 0.3.0 | - Updated bundled unrar to version 3.6.2 (fixes compile errors with GCC4). - Several minor fixes.
 
 
 | 
                                                                    
                                                    
                                | 0.2 | 1) Added open_basedir and safe_mode checks. 2) Fixed Win32 build issues (thanks to Edin).
 Currently only 5.x builds are available.
 3) Added OS constants.
 4) Fixed 0 bugs. There are no bugs, wee =)
 | 
                                                                    
                                                    
                                | 0.1 | 1) Initial release |