r758 - in tags: . release-1.0.1 release-1.0.1/extras/PhysFS.NET release-1.0.1/extras/PhysFS.NET/TestApp release-1.0.1/extras/physfs_rb

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Jul 23 21:05:52 EDT 2005


Author: icculus
Date: 2005-07-23 21:05:49 -0400 (Sat, 23 Jul 2005)
New Revision: 758

Added:
   tags/release-1.0.1/
   tags/release-1.0.1/CHANGELOG
   tags/release-1.0.1/CWProjects.sit
   tags/release-1.0.1/physfs_internal.h
   tags/release-1.0.1/zlib123/
Removed:
   tags/release-1.0.1/CHANGELOG
   tags/release-1.0.1/CWProjects.sit
   tags/release-1.0.1/physfs_internal.h
   tags/release-1.0.1/zlib123/
Modified:
   tags/release-1.0.1/extras/PhysFS.NET/AssemblyInfo.cs
   tags/release-1.0.1/extras/PhysFS.NET/PhysFS.NET.csproj
   tags/release-1.0.1/extras/PhysFS.NET/PhysFS.NET.sln
   tags/release-1.0.1/extras/PhysFS.NET/PhysFS.cs
   tags/release-1.0.1/extras/PhysFS.NET/PhysFSFileStream.cs
   tags/release-1.0.1/extras/PhysFS.NET/PhysFS_DLL.cs
   tags/release-1.0.1/extras/PhysFS.NET/README.txt
   tags/release-1.0.1/extras/PhysFS.NET/TestApp/AssemblyInfo.cs
   tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestApp.csproj
   tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestApp.sln
   tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestAppForm.cs
   tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestAppForm.resx
   tags/release-1.0.1/extras/physfs_rb/installer.rb
   tags/release-1.0.1/zlib_license_change.txt
Log:
Tagging stable branch release 1.0.1

Copied: tags/release-1.0.1 (from rev 753, branches/stable-1.0)

Deleted: tags/release-1.0.1/CHANGELOG
===================================================================
--- branches/stable-1.0/CHANGELOG	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/CHANGELOG	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,435 +0,0 @@
-/*
- * CHANGELOG.
- */
-
--- stuff in the stable-1.0 branch, backported from 2.0.0 dev branch, etc ---
-
-07232005 - Fixed bug in zip archiver (thanks, Jörg Walter!). Updated zlib to
-           1.2.3, which properly includes the security fix. Fixed "make dist"
-           to handle .svn dirs and other file changes. Removed "debian"
-           directory. Fixed warning in physfs.c. Upped version to 1.0.1.
-07132005 - Moved to zlib122, and security fix discussed here:
-           http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2096
-06122005 - Added support for mingw to Unix build process (thanks, Matze!).
-03162005 - Readded Spanish translation. Added Brazillian Portguese translation
-           and fixed unlocalized string in wad.c (thanks Danny!). Some MacOS
-           Classic fixes and MPW support (thanks, Chris!). Changed CWProjects
-           from SITX to SIT format, so MacOS Classic users can unpack it.
-02152005 - Minor comment fix in platform/pocketpc.c
-01052004 - Fixed HOG archiver sorting/file lookup (thanks, Chris!)
-12162004 - Fixed some documentation/header comment typos (thanks, Gaetan!)
-10302004 - Fixed a strcpy that should have been a strcat. (thanks, Tolga!)
-           Removed .cvsignore files (we're in a Subversion repository, now).
-           Build system respects external CFLAGS now. (thanks, Adam!)
-09212003 - Happy September. Fixes to bootstrap on MacOS X. Seeking now tries
-           to respect pre-buffered data.
-
-
---- changelog up to 1.0.0 ---
-
-12292003 - Updated CodeWarrior projects from CW6 to CW7, and made a bunch of
-           patches to get the Mac Classic target building again. Removed
-           zlib114 from CVS repository. Updated OS/2 build batch file.
-           Added Z_PREFIX define to Unix builds that use internal zlib.
-           Patched up some (outdated?) Visual C project files for zlib121.
-           Patched Doxyfile and physfs.h for newer Doxygen. Fixed OS/2
-           build script. Tweaked Project Builder files to at least compile.
-           Added some last minute BeOS and Cygwin build fixes. Updated
-           Visual Studio projects and tweaked some Makefile.am crap. Made
-           changes so Visual Studio files would pack with DOS endlines and...
-           Upped version to 1.0.0 (woohoo!).
-12222003 - Fixed a search-and-replace mistake in win32.c that preventing
-           compiling on Windows. (thanks, Brian!) Converted VC6 .dsp to use
-           zlib121; made Z_PREFIX=1 enabled by default to avoid link clashes;
-           put zlib files in separate logical folder in .dsp project; updated
-           zlib121/zconf.h to address remaining symbols that were still
-           causing link warnings.
-12182003 - WAD archiver now puts maps into subdirectories, making them
-           accessible to the application. (Thanks, Travis!) RPM spec and
-           Makefile.am* now package zlib_license_change.txt (Thanks, Edward!)
-12142003 - Added Doom WAD support (Thanks, Travis!)
-12082003 - Fixed some win32.c deficiencies that Robby Dermody pointed
-           out (thanks!)
-12072003 - Upgraded internal zlib to 1.2.1 (thanks, Adam!) Other
-           Unix build fixes.
-11112003 - Patches to make OS/2 support compile again.
-11092003 - Added __PHYSFS_platformStrnicmp(), and made qpak.c case-insensitive.
-09122003 - Happy September. Actually released current tree as 0.1.9.
-08262003 - Added MiNT support to build process and fixed cross-compiling
-           (thanks Patrice Mandin!)
-08092003 - Some Windows build fixes (thanks, Brian Hook!)
-07232003 - Upped version to 0.1.9.
-07202003 - Switched to zlib license (see new LICENSE text in root of source
-           tree, and zlib_license_switch.txt for details). Had to remove
-           archivers/qpak.c, the Ruby bindings from the extras directory, and
-           the Russian and Spanish translations, since those contributors
-           couldn't be contacted. If they show up, we'll readd them to the
-           project, otherwise we'll eventually replace their work...everyone
-           else signed on for the change. Committed a patch to convert all
-           tabs to spaces (Thanks, James!). Added patch to zip.c to fix
-           crash (thanks, dillo!). Reimplmented qpak.c, by welding together
-           bits of grp.c and zip.c. Ed contacted me, so I could readd his
-           contributions post-license change...I'm going to keep the new
-           qpak.c, but I've readded his Ruby bindings and Russian translations.
-06112003 - Patches to globbing.c to handle corner cases (thanks, Bradley!).
-06102003 - Added globbing.c to "extras" directory.
-05232003 - Rewrote MacOSX/Darwin CD-ROM detection code to use IOKit, which is
-           much much more accurate than the previous code. Updated
-           configure.in and Makefile.am.newautomake for some MacOSX stuff.
-05222003 - Fixed win32 crash if PHYSFS_init() is called with a NULL.
-05182003 - PocketPC fixes (thanks, David Hedbor!)
-05162003 - Compiler warning cleanup in HOG and MVL archivers (Thanks, Bradley!)
-04082003 - Minor changes to extras/abs-file.h (Thanks, Adam!)
-03302003 - Fixed seeking in uncompressed ZIP entries, and handle a
-           misbehaviour in Java's JAR creation tools. Thanks to "Tree" for
-           pointing these bugs out. Added HOG and MVL archive support for
-           Descent I and II (Thanks, Bradley Bell!). Added example code to
-           do case-insensitive file searches ("extras/ignorecase.*").
-03192003 - Fixed problem in PHYSFS_mkdir() when dirs to be created already
-           exist. Fixed problem where PHYSFS_mkdir() incorrectly tripped an
-           alarm in __PHYSFS_verifySecurity().
-03122003 - Attempt at cleaning up some type correctness for VC++6. Made QPAK
-           archiver case-insensitive (since Quake2 has problems without it).
-01302003 - Added buffering API to OS/2 build's exported symbol list. Updated
-           CWProjects.sit and made several fixes to get physfs building on
-           MacOS Classic again.
-01282003 - Fixed seeking in buffered files opened for read.
-01072003 - .NET assembly and C# wrapper by Gregory S. Read in the extras dir.
-01042003 - Added a hack for dealing with OSX bundles and newer PBProjects
-           (thanks, Eric Wing!). Added some missing files to "make dist".
-           Fixed minor Doxygen typo in PHYSFS_flush() docs. Upped version to
-           0.1.8.
-12172002 - Added Apple Project Builder support files (thanks, Eric Wing!).
-12112002 - Added Ruby bindings to extras directory (thanks, Ed Sinjiashvili!).
-           Patched win32.c to compile with Mingw32 (thanks, Niels Wagenaar!).
-12032002 - Adam updated his extras/abs-file.h for the new buffering API.
-12022002 - German translation added, compliments of Michael Renner.
-12012002 - Minor fix to configure.in: reported --enable-debug's default
-           setting incorrectly. Added buffering to the API: you can now
-           buffer a file with PHYSFS_setBuffer(), and flush the buffer to
-           disk with PHYSFS_flush(). PhysicsFS file handles are unbuffered
-           by default (as they were before this API addition), so this does
-           not break the API. Other fixes for bugs I stumbled upon during
-           this work are in CVS, too.
-11292002 - Minor fix for strange PATH strings in unix.c (thanks, Alexander!)
-11222002 - Initial PocketPC port by Corona688.
-10222002 - Fixed segfault in test_physfs.c when user hits CTRL-D (and
-           readline() thus returns NULL)...now gracefully exits, as it should.
-10142002 - Added check for AMD's x86-64 ("Hammer") architecture when
-           determining platform byte order.
-10112002 - Fixed "setsaneconfig" command in test_physfs.c ...
-09232002 - Happy September. Updated VC++6 project files, fixed some
-           VC++ compile nags (more work to be done in zip.c).
-08302002 - Cleaned tab stops out of zip.c, and fixed a possible infinite loop
-           in zip_find_entry().
-08292002 - Fixed a mistake in makeos2.cmd, and updated the INSTALL docs.
-           Added physfs.spec.in to EXTRA_DIST in Makefile.am*
-08292002 - Added a physfs/stdio wrapper header to the "extras" dir,
-           compliments of Adam D. Moss (file is "abs-file.h").
-08282002 - Cleanups in grp.c so that Visual C++ doesn't complain anymore.
-           zip.c now works correctly when PhysicsFS is disallowing symlinks.
-           A few minor optimizations in zip.c, with a few more to come later.
-           Added VS.NET project files to CVS.
-08222002 - Fixed ZIP_exists() to work with directories. Now breaks out of
-           __PHYSFS_verifySecurity() early if a path element is missing
-           (since all the others will be, too)...this check is only done
-           if symlinks are disabled, but we might as well save easy cycles
-           where we can.
-08212002 - Did a couple tedious-for-small-rewards cleanups, optimizations,
-           corrections and streamlinings I've been meaning to do. Touched a
-           lot of code. One of the side results is that ZIP_isDirectory()
-           got fixed.
-08192002 - Generalized sorting routines, moved them into physfs.c and removed
-           the multiple copies from the various archivers. Adding profiling
-           code (currently only for sort routines)...enable it with
-           --enable-profiling in the configure script. Fixed incorrect
-           behaviours in configure.in.
-08172002 - Patched configure.in to work around buggy autoconfs.
-08162002 - Fixed QPAK archiver, since I broke it (sorry!). Also fixed a
-           qpak memory leak.
-08092002 - Added Quake PAK archiver (qpak.c) by Ed Sinjiashvili. Thanks!
-           Made (successful?) attempt to fix pthread-to-ui64 cast problem.
-           Check for OS/2 in configure.in, in case anyone gets autoconf and
-           such to work right on their OS/2 box.
-08012002 - Patched win32.c to compile.
-07302002 - Minor error handling fix (thanks, Alexander!)
-07292002 - Found some memory leaks, thanks to Valgrind (which rules, btw).
-           Added Russian translations (koi8-r, cp1251, cp866, and iso-8859-5)
-           by Ed Sinjiashvili. Added Spanish translation by Pedro J. Pérez.
-           Debian package support in CVS, thanks to Colin Bayer. French
-           translation by Stéphane Peter.
-07282002 - macclassic.c now returns human readable error messages instead of
-           ERR_OS_ERROR. Closing files on MacOS no longer fails if the volume
-           info can't be flushed. Minor error message tweak in os2.c. All
-           possible human-readable literal strings (including all those OS/2
-           and MacOS error messages) have moved to constants in
-           physfs_internal.h...this allows the library to be translated to
-           other spoken languages fairly easily.
-07272002 - Patched the OS/2 code to be useful...works pretty well, now. Added
-           makeos2.cmd for building (not an ideal solution, but oh well).
-           Initialized some variables in zip.c to prevent compiler whining.
-07262002 - Fixed a typo in documentation. Archivers with matching file
-           extensions are now given first shot at opening an archive, but if
-           they fail, the other archivers are tried. More fixes to zip.c's
-           ZIP_enumerateFiles(). Wrote an OS/2 platform driver based on API
-           specs and a heavy pounding of Google Groups...as I don't have an
-           OS/2 compiler at the moment, it probably doesn't even compile.  :)
-07252002 - configure.in and unix.c now deal with platforms that lack a
-           functional pthread library. Edward Rudd sent in a patch to the RPM
-           specfile to have the build system set the correct version.
-           Clean ups in grp.c, beos.cpp and macclassic.c.
-07242002 - Rewrote ZIP_enumerate(). Hopefully it sucks less this time.
-           unix.c and configure.in now have the infrastructure to disable
-           the CD-ROM detection code, and use a stub that successfully (and
-           unconditionally) reports no detected discs. Currently this is
-           used on AtheOS (which doesn't have CD-ROM support at the moment
-           anyhow), but it will be useful to get the library up on odd,
-           Unix-like systems that don't use either getmntinfo() or getmntent().
-07232002 - Cleaned up the cut-and-pastes in the various file enumeration
-           routines and moved it into __PHYSFS_addToLinkedStringList().
-           Tons more ZIP file enhancing. I'm fairly certain it's robust and
-           fast in every reasonable respect, now. GRP archiver now caches
-           the file table...it was generally overhauled like the ZIP driver.
-           Added "ls" as an alias of "enumerate" in test_physfs.
-           I lied about zip.c's robustness; disabled the enumeration code.
-07212002 - More FreeBSD build system patches. Added some new autoconf spew to
-           .cvsignore. bootstrap now copies the appropriate Makefile.am
-           instead of rename()ing it.
-07192002 - Cleaned up configure.in and unix.c so that we check by available
-           header to determine the appropriate CD-ROM detection code...this
-           should make this more future-proof (and probably get it building
-           out of the box on other BSD platforms.)
-07172002 - Fixed seeking backwards in ZIP_seek(). Changed the error message
-           ERR_TOO_MANY_SYMLINKS to ERR_SYMLINK_LOOP. Patches to build system
-           and unix.c for FreeBSD compatibility. Added physfs.spec to
-           "make dist" archives (thanks, Edward Rudd!).
-07152002 - Symlinks in ZIP archives are detected correctly now, I think.
-07142002 - Use GetVolumeInformation() instead of GetDiskFreeSpace() in
-           win32.c's mediaInDrive() function. This allows Windows NT 3.x to
-           correctly detect CD-ROM drives. Library now appears to be fully
-           functional on WinNT 3.51...need to try NT 3.1 still.  :)
-           Patches to new ZIP code; cleaned up bugs in symlink reading code,
-           but we incorrectly identify some entries as symlinks, which doesn't
-           fly...for now, symlink code is commented out, so symlinks look
-           like regular files (and reading from a symlink entry gives you
-           the link as file data).
-07122002 - Rewrote the ZIP archiver to no longer use Gilles Vollant's unzip.c
-           code. Losing that abstraction should make the ZIP archiver
-           significantly more efficient, and halved the amount of code used.
-           Plus, being a control freak, I like my coding style more than
-           Gilles's. :)  There are still bugs to shake out, but this is good
-           progress.
-07112002 - configure.in updated to make it happier on newer autoconfs
-           (thanks again, Alexander!). FIXME cleanups.
-07102002 - Added a byteorder-friendly convenience API, so you can read/write
-           data and convert to the native byteorder without too much effort.
-           Upped version to 0.1.7.
-           Build system corrections for BeOS and Cygwin (thanks, Alexander!).
-           Added RPM specfile for PhysicsFS (thanks, Edward Rudd!).
-06292002 - Fixed incorrect error message when opening a file for read without
-           defining a search path. LOTS of win32 updates and fixes; lots of
-           things that were broken work now, and we are slowly becoming
-           more compatible with legacy win32 systems. Builds on Cygwin again.
-           All platform drivers (except beos.cpp) had a buffer overflow when
-           detecting mounted CD-ROM drives...it only occurs when a drive is
-           detected, and it probably won't result in your box getting rooted,
-           but upgrade soon anyhow. Readded the .cvsignore files from the old
-           build system.
-06282002 - Reworked build system _AGAIN_.
-06222002 - Alexander Pipelka spotted a bug in the file open routines in
-           posix.c; patched.
-06152002 - Autoconf build system will now generate shared libraries on BeOS,
-           and (supposedly) Cygwin.
-06142002 - Rewrote autoconf build system. It now works around the MacOS X bug
-           that prevented shared libraries from building.
-06112002 - Updated CodeWarrior projects and added them to CVS. _Finally_
-           officially released 0.1.6.
-06102002 - Major overhauls to platform/win32.c ... should work on all Windows
-           platforms, including 95/98/ME and NT/2K/XP flavors. Someone should
-           see if this builds on WinCE!  :)  You no longer need the latest
-           platform SDK to build it, either; the questionable DLL is accessed
-           with LoadLibrary() at runtime now, and handled if not present. This
-           now builds correctly on a freshly installed Visual Studio 6.0, and
-           the DLL it builds works everywhere. Plus, a bunch of other bugs
-           and incorrect behaviours were squashed. Visual Studio 6.0 project
-           file added to CVS.
-06082002 - Fixes to __PHYSFS_platformEnumerateFiles() in win32.c: cleaned up
-           memory leak, handles paths more robustly, and prevents possible
-           skipped file entries. Removed AC_C_CONST and AC_TYPE_SIZE_T checks
-           from configure.in (not needed, and they broke BeOS build). Clean
-           out the docs/ directory when doing a "make dist". Fixed crashbug
-           when calling PHYSFS_deinit() more than once in a row. Tried to get
-           MacOS X to build a shared library, gave up; I'm doing something
-           wrong in my Makefile.am, I think. On MacOS X, running ./configure
-           --enable-static --disable-shared works, though. Hopefully someone
-           will fix this soon. In unix.c, the Darwin version of
-           __PHYSFS_platformDetectAvailableCDs() was free()ing a static
-           buffer; fixed.
-06072002 - Manpages! Finally installed Doxygen and scratched together a
-           Doxyfile. After some revision to physfs.h, we've got a rather
-           nice API reference.
-06062002 - Fixed __PHYSFS_platformSeek() in archivers/posix.c. Implemented the
-           getLastModTime method in archivers/zip.c (returns legitimate info)
-           and archivers/grp.c (returns lastmodtime of GRPfile itself in the
-           physical filesystem). Put a 64-bit _llseek() version of the seek()
-           and tell() methods in platform/posix.c, but you need to hack (or
-           rather, fix) configure.in to enable it. From Greg on win32.c: Fixed
-           file enumerator function (needed a wildcard '*' specification), CD
-           enumeration only reports CDs that have media, getLastModTime() has
-           been implemented.
-06012002 - Added -Wall to debug builds. Removed ANSI stdio calls from
-           platform/posix.c, and replaced them with actual POSIX calls (that
-           is, fopen() became open(), fseek() became lseek(), etc...)
-05272002 - Added some explicit casts when calling malloc() in platform/posix.c
-05252002 - Added John Hall's file modification time patch, and added a
-           getlastmodtime command to test_physfs. Corrected error reporting
-           for missing files a little bit. Changed build system to only try
-           building beos.cpp if on a BeOS system (since we need a C++ compiler
-           available to do so). Implemented getLastModTime in macclassic.c.
-05242002 - Upped version to 0.1.6 (not officially released yet).
-05232002 - Fixed the build system to always package the complete source, not
-           just what we built for a given system, when doing a "make dist".
-           Updated INSTALL. Wrote BeOS platform code (platform/beos.cpp).
-           Split unix.c into unix.c and posix.c. Linux and BeOS both share
-           posix.c, although I don't think it's completely POSIX compliant at
-           this point (not that it matters much).
-05212002 - Cleaned up some FIXMEs.
-05202002 - Added .cvsignore files.
-05162002 - Edward Rudd also caught an embarrassing screwup by me in
-           unix.c: the open-for-append call was using "wb+" instead of
-           "ab" when calling fopen(). Doh!
-05152002 - configure script now deals with systems that have a readline
-           lib, but require it to be linked with curses. Thanks to Edward
-           Rudd for the patch.
-05102002 - A trimmed-down zlib 1.1.4 is now included in the source distro, for
-           use by win32, MacOS, and Unix systems that don't have it installed
-           on the system. Autoconf support! Initial attempt at this. Lots of
-           stuff may be very broken.
-05082002 - From Greg: More win32 work. Library is now 95% functional on win32.
-           Only known win32 problem is that the CD drives are reported whether
-           they contain a disc or not).
-05062002 - From Greg: Win32 boxes without the latest Platform SDK can now
-           #define DISABLE_NT_SUPPORT. Other fixes.
-04242002 - Updated win32 info in INSTALL to discuss Platform SDK issues.
-04202002 - Added a (very) quick and (very) dirty http server to the
-           extras directory (public domain), as another example of using
-           the library.
-04192002 - Corrected some win32 info in INSTALL. Changed Makefile to
-           package releases as .tar.gz instead of .tar.bz2.
-04122002 - Some win32 cleanups and fixes across several files. Upped
-           version to 0.1.5.
-04082002 - Fixed problem when calling __PHYSFS_setError before PHYSFS_init.
-04062002 - Added MacOS info, etc to INSTALL. Patched unix.c and
-           test_physfs.c to compile on Darwin again.
-04052002 - Added byte ordering API. Byte ordering fixes in grp.c, and some
-           cleanups in unzip.c. Mac work is more or less complete.
-04042002 - Mac work continues. Almost complete, now. test_physfs now has
-           tests for write, append, and filelength, and most of the
-           commands can tolerate a quoted argument (although this is
-           hacky, it's good enough for these purposes). Upped test_physfs
-           version to 0.1.1. Added a malloc-failure check in the Unix
-           CD-ROM detection code.
-04032002 - PHYSFS_init always makes sure the calling thread initializes its
-           error state. Win32 codebase is updated with mutex implementation
-           (thanks, Greg!).
-04022002 - Mac work continues. Found a bug where we put a double dir
-           separator in if we had to resort to the fallback userdir (if
-           __PHYSFS_platformGetUserDir() returned NULL to calculateUserDir().
-           Made note of potential infinite recursion in platform driver docs.
-04012002 - (_NOT_ an April Fool's Joke:) Started working on MacOS Classic
-           port. Added skeleton.c to platform directory. Minor patches to
-           get things compiling on Mac (notably, DirInfo conflicts with
-           a type exposed by MacOS's namespace-polluting API, and some
-           typecasting issues). Found a call to ferror() I had missed in
-           unzip.c.
-03302002 - Mutexes! PhysicsFS should be thread safe now, so long as you
-           don't try to do something like close a file at the same time as
-           you are reading from it in another thread. All reasonable race
-           conditions should now be gone, but the new code will need some
-           eyeballing before we install it on life support systems or anything.
-           The mutex abstraction is implemented in unix.c, win32.c will be
-           updated shortly.
-03292002 - Fixed a potential problem in ZIP_realpath() and some byte order
-           issues in zip.c. Converted unzip.c to use physfs file i/o
-           abstractions. Converted CHANGELOG to list latest entries first.
-03242002 - Added __PHYSFS_platformInit() and __PHYSFS_platformDeinit(). Win32
-           improvements by Gregory S. Read. Added PHYSFS_[us]int(8|16|32)
-           types...this breaks binary compatibility with previous PhysicsFS
-           releases! Added platform specific i/o functions, so we don't have
-           to rely on stdio anymore. Updated TODO with my comments on the
-           physfs mailing list. 1.0, here we come! Removed race condition from
-           grp.c and converted to file i/o abstraction layer calls from stdio.
-           Tons of other fixes and enhancements.
-03202002 - Patched platform/win32.c to compile.
-03152002 - PHYSFS_setSaneConfig() now handles failure to set the write dir
-           better. Patched makefile to link the test program. Changed all the
-           "write" functions to get data from a "const" buffer. Added an
-           "extras" dir, which currently contains PhysFS->SDL_RWops glue code.
-03052002 - Made unix.c's timeslice implementation more portable, and added a
-           Darwin-specific means to detect CDs (thanks to Patrick Stein).
-           Minor cleanup in win32.c (changed "for (; condition ;)" into
-           "while (condition)" ...)
-11142001 - Removed a redundant error check in platform/win32.c
-10092001 - Syntax fixes in dir.c, a FIXME in grp.c, and a "cat" command in
-           the test program. Apparently I had accidentally removed a rather
-           crucial line from dir.c a few revisions ago, and no one noticed. :(
-           Fixed. The win32 userdir will default to the base dir, now.
-09252001 - Changed API: PHYSFS_setSaneConfig() takes an organization name, and
-           sets up less directories. Be warned. Fixes from David Hedbor:
-           make setSaneConfig() set write directory correctly if it had to
-           create the directory, and make sure that the writing functions
-           get used in dir.c when a file is opened for writing/appending.
-           Updated CREDITS.
-09142001 - David Hedbor submitted a patch to handle a case where the
-           current working directory has been deleted out from under the
-           process (both in platform/unix.c and physfs.c itself). Thanks,
-           David! Added a CREDITS file. Changed the format of the author field
-           in PHYSFS_ArchiveInfo to put the email address between "<>" instead
-           of "()" chars. Updated TODO. make install now deletes previous
-           revisions of the library. Changed version to 0.1.4.
-09012001 - Happy September. Moved the Visual C project files and the zlib
-           source to a separate download. Look for it at
-           http://icculus.org/physfs/downloads/physfs-win32-support.zip ...
-           Updated the INSTALL doc for Win32 building. Rewrote win32.c's
-           __PHYSFS_platformRealPath() to not rely on Visual C's runtime lib,
-           which was the last Cygwin incompatibility (although the Makefile
-           needs to be updated to build a DLL under Cygwin). Tinkered with the
-           Makefile a little, but it needs more work. Started working on a
-           MacOS version. All I have is CodeWarrior 4, which is way out of
-           date, and (for what is supposed to be an ultra-user-friendly
-           environment) is completely uninituitive to me. Still, managed to
-           get most everything compiling, which improved the quality of the
-           code somewhat). Haven't tried to compile the zipfile support, and
-           I still can't link the library. Dunno what the hell I'm supposed
-           to do there. Isn't Unix supposed to be hard compared to this?
-08312001 - Built PhysicsFS on Mandrake 8.0 for the PowerPC. Compiles clean,
-           but there's at least one byte-ordering issue in zip.c that needs
-           to be fixed.
-08292001 - win32.c calculates the base dir with GetModuleFileName() first, now,
-           and falls back to SearchPath() if there were problems. Changed an
-           occurence of _MAX_PATH to MAX_PATH, so both CygWin and Visual C can
-           handle it.
-08282001 - win32.c now checks HOMEDRIVE, HOMEPATH, and HOME when calculating
-           the userdir. Added include files that make it a little closer to
-           compiling under Cygwin. Added a TODO file. Fixed unix.c's
-           __PHYSFS_platformCalcBaseDir() so that it actually works. Fixed
-           Makefile so that it links the test program properly.
-           Changed version to 0.1.3.
-08232001 - Fixed a potential free()ing of a NULL pointer in
-           __PHYSFS_platformEnumerateFiles() in platform/unix.c. Added
-           platform/win32.c. Other cleanups to get this compiling with
-           Visual C and CygWin. Added BAIL_MACRO for times when we were doing
-           BAIL_IF_MACRO(1, ...). Abstracted mkdir() in the platform drivers.
-           Added GRP setting output to showcfg in the Makefile. Updated INSTALL
-           with license info and Win32 build instructions. Dependency on the
-           readline library in test_physfs.c is now optional.
-           Changed version to 0.1.2.
-08072001 - Changed version to 0.1.1.
-08062001 - Added CD-ROM detection code to the unix platform driver.
-08012001 - Added a safety memset in error setting, fixed URLs and email addr.
-07282001 - Initial release.
-
---ryan. (icculus at clutteredmind.org)
-
-/* end of CHANGELOG ... */
-

Copied: tags/release-1.0.1/CHANGELOG (from rev 757, branches/stable-1.0/CHANGELOG)

Deleted: tags/release-1.0.1/CWProjects.sit
===================================================================
(Binary files differ)

Copied: tags/release-1.0.1/CWProjects.sit (from rev 755, branches/stable-1.0/CWProjects.sit)

Modified: tags/release-1.0.1/extras/PhysFS.NET/AssemblyInfo.cs
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/AssemblyInfo.cs	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/AssemblyInfo.cs	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,58 +1,58 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-//
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-//
-[assembly: AssemblyTitle("PhysFS.NET")]
-[assembly: AssemblyDescription("PhysFS Bindings for .NET")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("PhysFS.NET")]
-[assembly: AssemblyCopyright("(c)2003 Gregory S. Read")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]		
-
-//
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-
-[assembly: AssemblyVersion("1.0.*")]
-
-//
-// In order to sign your assembly you must specify a key to use. Refer to the 
-// Microsoft .NET Framework documentation for more information on assembly signing.
-//
-// Use the attributes below to control which key is used for signing. 
-//
-// Notes: 
-//   (*) If no key is specified, the assembly is not signed.
-//   (*) KeyName refers to a key that has been installed in the Crypto Service
-//       Provider (CSP) on your machine. KeyFile refers to a file which contains
-//       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
-//       following processing occurs:
-//       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
-//           in the KeyFile is installed into the CSP and used.
-//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
-//       When specifying the KeyFile, the location of the KeyFile should be
-//       relative to the project output directory which is
-//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
-//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
-//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
-//       documentation for more information on this.
-//
-[assembly: AssemblyDelaySign(false)]
-[assembly: AssemblyKeyFile("")]
-[assembly: AssemblyKeyName("")]
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("PhysFS.NET")]
+[assembly: AssemblyDescription("PhysFS Bindings for .NET")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("PhysFS.NET")]
+[assembly: AssemblyCopyright("(c)2003 Gregory S. Read")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]		
+
+//
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the 
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing. 
+//
+// Notes: 
+//   (*) If no key is specified, the assembly is not signed.
+//   (*) KeyName refers to a key that has been installed in the Crypto Service
+//       Provider (CSP) on your machine. KeyFile refers to a file which contains
+//       a key.
+//   (*) If the KeyFile and the KeyName values are both specified, the 
+//       following processing occurs:
+//       (1) If the KeyName can be found in the CSP, that key is used.
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//           in the KeyFile is installed into the CSP and used.
+//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
+//       When specifying the KeyFile, the location of the KeyFile should be
+//       relative to the project output directory which is
+//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
+//       located in the project directory, you would specify the AssemblyKeyFile 
+//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+//       documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]

Modified: tags/release-1.0.1/extras/PhysFS.NET/PhysFS.NET.csproj
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/PhysFS.NET.csproj	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/PhysFS.NET.csproj	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,113 +1,113 @@
-<VisualStudioProject>
-    <CSHARP
-        ProjectType = "Local"
-        ProductVersion = "7.0.9466"
-        SchemaVersion = "1.0"
-        ProjectGuid = "{C6205A43-3D4D-41E6-872C-96CD7BE55230}"
-    >
-        <Build>
-            <Settings
-                ApplicationIcon = ""
-                AssemblyKeyContainerName = ""
-                AssemblyName = "PhysFS.NET"
-                AssemblyOriginatorKeyFile = ""
-                DefaultClientScript = "JScript"
-                DefaultHTMLPageLayout = "Grid"
-                DefaultTargetSchema = "IE50"
-                DelaySign = "false"
-                OutputType = "Library"
-                RootNamespace = "PhysFS.NET"
-                StartupObject = ""
-            >
-                <Config
-                    Name = "Debug"
-                    AllowUnsafeBlocks = "true"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = "DEBUG;TRACE"
-                    DocumentationFile = ""
-                    DebugSymbols = "true"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "true"
-                    Optimize = "false"
-                    OutputPath = "bin\Debug\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "4"
-                />
-                <Config
-                    Name = "Release"
-                    AllowUnsafeBlocks = "true"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = "TRACE"
-                    DocumentationFile = ""
-                    DebugSymbols = "false"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "false"
-                    Optimize = "true"
-                    OutputPath = "bin\Release\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "4"
-                />
-            </Settings>
-            <References>
-                <Reference
-                    Name = "System"
-                    AssemblyName = "System"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.dll"
-                />
-                <Reference
-                    Name = "System.Data"
-                    AssemblyName = "System.Data"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Data.dll"
-                />
-                <Reference
-                    Name = "System.XML"
-                    AssemblyName = "System.Xml"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.XML.dll"
-                />
-                <Reference
-                    Name = "System.Drawing"
-                    AssemblyName = "System.Drawing"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Drawing.dll"
-                />
-                <Reference
-                    Name = "System.Windows.Forms"
-                    AssemblyName = "System.Windows.Forms"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Windows.Forms.dll"
-                />
-            </References>
-        </Build>
-        <Files>
-            <Include>
-                <File
-                    RelPath = "AssemblyInfo.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "PhysFS.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "PhysFS_DLL.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "PhysFSFileStream.cs"
-                    SubType = "Code"
-                    BuildAction = "Compile"
-                />
-            </Include>
-        </Files>
-    </CSHARP>
-</VisualStudioProject>
-
+<VisualStudioProject>
+    <CSHARP
+        ProjectType = "Local"
+        ProductVersion = "7.0.9466"
+        SchemaVersion = "1.0"
+        ProjectGuid = "{C6205A43-3D4D-41E6-872C-96CD7BE55230}"
+    >
+        <Build>
+            <Settings
+                ApplicationIcon = ""
+                AssemblyKeyContainerName = ""
+                AssemblyName = "PhysFS.NET"
+                AssemblyOriginatorKeyFile = ""
+                DefaultClientScript = "JScript"
+                DefaultHTMLPageLayout = "Grid"
+                DefaultTargetSchema = "IE50"
+                DelaySign = "false"
+                OutputType = "Library"
+                RootNamespace = "PhysFS.NET"
+                StartupObject = ""
+            >
+                <Config
+                    Name = "Debug"
+                    AllowUnsafeBlocks = "true"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "DEBUG;TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "true"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "true"
+                    Optimize = "false"
+                    OutputPath = "bin\Debug\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+                <Config
+                    Name = "Release"
+                    AllowUnsafeBlocks = "true"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "false"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    Optimize = "true"
+                    OutputPath = "bin\Release\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+            </Settings>
+            <References>
+                <Reference
+                    Name = "System"
+                    AssemblyName = "System"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.dll"
+                />
+                <Reference
+                    Name = "System.Data"
+                    AssemblyName = "System.Data"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Data.dll"
+                />
+                <Reference
+                    Name = "System.XML"
+                    AssemblyName = "System.Xml"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.XML.dll"
+                />
+                <Reference
+                    Name = "System.Drawing"
+                    AssemblyName = "System.Drawing"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Drawing.dll"
+                />
+                <Reference
+                    Name = "System.Windows.Forms"
+                    AssemblyName = "System.Windows.Forms"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Windows.Forms.dll"
+                />
+            </References>
+        </Build>
+        <Files>
+            <Include>
+                <File
+                    RelPath = "AssemblyInfo.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "PhysFS.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "PhysFS_DLL.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "PhysFSFileStream.cs"
+                    SubType = "Code"
+                    BuildAction = "Compile"
+                />
+            </Include>
+        </Files>
+    </CSHARP>
+</VisualStudioProject>
+

Modified: tags/release-1.0.1/extras/PhysFS.NET/PhysFS.NET.sln
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/PhysFS.NET.sln	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/PhysFS.NET.sln	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,21 +1,21 @@
-Microsoft Visual Studio Solution File, Format Version 7.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhysFS.NET", "PhysFS.NET.csproj", "{C6205A43-3D4D-41E6-872C-96CD7BE55230}"
-EndProject
-Global
-	GlobalSection(SolutionConfiguration) = preSolution
-		ConfigName.0 = Debug
-		ConfigName.1 = Release
-	EndGlobalSection
-	GlobalSection(ProjectDependencies) = postSolution
-	EndGlobalSection
-	GlobalSection(ProjectConfiguration) = postSolution
-		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Debug.ActiveCfg = Debug|.NET
-		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Debug.Build.0 = Debug|.NET
-		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Release.ActiveCfg = Release|.NET
-		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Release.Build.0 = Release|.NET
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-	EndGlobalSection
-	GlobalSection(ExtensibilityAddIns) = postSolution
-	EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhysFS.NET", "PhysFS.NET.csproj", "{C6205A43-3D4D-41E6-872C-96CD7BE55230}"
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		ConfigName.0 = Debug
+		ConfigName.1 = Release
+	EndGlobalSection
+	GlobalSection(ProjectDependencies) = postSolution
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Debug.ActiveCfg = Debug|.NET
+		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Debug.Build.0 = Debug|.NET
+		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Release.ActiveCfg = Release|.NET
+		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Release.Build.0 = Release|.NET
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal

Modified: tags/release-1.0.1/extras/PhysFS.NET/PhysFS.cs
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/PhysFS.cs	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/PhysFS.cs	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,189 +1,189 @@
-/* PhysFS.cs - (c)2003 Gregory S. Read
- * Provides access to PhysFS API calls not specific to file handle access.
- */
-using System;
-
-namespace PhysFS_NET
-{
-   public class PhysFS
-   {
-      /* Initialize
-       * Inits the PhysFS API.  This normally does not need to be called unless
-       * the API has been manually deinitialized since the PhysFS_DLL class
-       * initializes just before the first call is made into the DLL.
-       * Parameters
-       *    none
-       * Returns
-       *    none
-       * Exceptions
-       *    PhysFSException - An error occured in the PhysFS API
-       */
-      public static void Initialize()
-      {
-         // Initialize the physfs library, raise an exception if error
-         if(PhysFS_DLL.PHYSFS_init("") == 0)
-            throw new PhysFSException();
-      }
-
-      /* Deinitialize
-       * Deinits the PhysFS API.  It is recommended that this method be called
-       * by the application before exiting in order to gracefully deallocate
-       * resources and close all filehandles, etc.
-       * Parameters
-       *    none
-       * Returns
-       *    none
-       * Exceptions
-       *    PhysFSException - An error occured in the PhysFS API
-       */
-      public static void Deinitialize()
-      {
-         // Deinit, raise an exception if an error occured
-         if(PhysFS_DLL.PHYSFS_deinit() == 0)
-            throw new PhysFSException();
-      }
-
-      /* BaseDir
-       * Gets the base directory configured for PhysFS.  See the PhysFS API
-       * documentation for more information.
-       * Parameters
-       *    none
-       * Returns
-       *    A string value representing the Base Directory
-       * Exceptions
-       *    none
-       */
-      public static string BaseDir
-      {
-         get
-         {
-            // Return the current base directory
-            return PhysFS_DLL.PHYSFS_getBaseDir();
-         }
-      }
-
-      /* WriteDir
-       * Gets or sets the write directory configured for PhysFS.  See the PhysFS API
-       * documentation for more information.
-       * Parameters
-       *    set - Path to set the WriteDir property to
-       * Returns
-       *    A string value representing the Write Directory
-       * Exceptions
-       *    PhysFSException - An error occured in the PhysFS API when
-       *       settings the write directory.
-       */
-      public static string WriteDir
-      {
-         get
-         {
-            // Return the current write directory
-            return PhysFS_DLL.PHYSFS_getWriteDir();
-         }
-         set
-         {
-            // Set the write directory and raise an exception if an error occured
-            if(PhysFS_DLL.PHYSFS_setWriteDir(value) == 0)
-               throw new PhysFSException();
-         }
-      }
-
-      /* UserDir
-       * Gets or sets the write directory configured for PhysFS.  See the PhysFS API
-       * documentation for more information.
-       * Parameters
-       *    set - Path to set the WriteDir property to
-       * Returns
-       *    A string value representing the Write Directory
-       * Exceptions
-       *    PhysFSException - An error occured in the PhysFS API when
-       *       settings the write directory.
-       */
-      public static string UserDir
-      {
-         get
-         {
-            // Return the current user directory
-            return PhysFS_DLL.PHYSFS_getUserDir();
-         }
-      }
-      public static void AddToSearchPath(string NewDir, bool Append)
-      {
-         if(PhysFS_DLL.PHYSFS_addToSearchPath(NewDir, Append?1:0) == 0)
-            throw new PhysFSException();
-      }
-      public static void RemoveFromSearchPath(string OldDir)
-      {
-         if(PhysFS_DLL.PHYSFS_removeFromSearchPath(OldDir) == 0)
-            throw new PhysFSException();
-      }
-      public unsafe static string[] GetSearchPath()
-      {
-         byte** p;				// Searchpath list from PhysFS dll
-         string[] pathlist;	// List converted to an array
-
-         // Get the CDROM drive listing
-         p = PhysFS_DLL.PHYSFS_getSearchPath();
-         // Convert the C-style array to a .NET style array
-         pathlist = PhysFS_DLL.BytePPToArray(p);
-         // Free the original list since we're done with it
-         PhysFS_DLL.PHYSFS_freeList(p);
-
-         return pathlist;
-      }
-      public unsafe static string[] GetCDROMDrives()
-      {
-         byte** p;				// CDROM list from PhysFS dll
-         string[] cdromlist;	// List converted to an array
-
-         // Get the CDROM drive listing
-         p = PhysFS_DLL.PHYSFS_getCdRomDirs();
-         // Convert the C-style array to a .NET style array
-         cdromlist = PhysFS_DLL.BytePPToArray(p);
-         // Free the original list since we're done with it
-         PhysFS_DLL.PHYSFS_freeList(p);
-
-         return cdromlist;
-      }
-      public static void MkDir(string Dirname)
-      {
-         if(PhysFS_DLL.PHYSFS_mkdir(Dirname) == 0)
-            throw new PhysFSException();
-      }
-      public static void Delete(string Filename)
-      {
-         if(PhysFS_DLL.PHYSFS_delete(Filename) == 0)
-            throw new PhysFSException();
-      }
-      public static string GetRealDir(string Filename)
-      {
-         string RetValue;
-
-         RetValue = PhysFS_DLL.PHYSFS_getRealDir(Filename);
-         if(RetValue == null)
-            throw new PhysFSException("File not found in search path.");
-
-         // Return the real file path of the specified filename
-         return RetValue;
-      }
-      public unsafe static string[] EnumerateFiles(string Dirname)
-      {
-         byte** p;				// File list from PhysFS dll
-         string[] filelist;	// List converted to an array
-
-         // Get the CDROM drive listing
-         p = PhysFS_DLL.PHYSFS_enumerateFiles(Dirname);
-         // Convert the C-style array to a .NET style array
-         filelist = PhysFS_DLL.BytePPToArray(p);
-         // Free the original list since we're done with it
-         PhysFS_DLL.PHYSFS_freeList(p);
-
-         return filelist;
-      }
-      public static bool IsDirectory(string Filename)
-      {
-         // Return true if non-zero, otherwise return false
-         return (PhysFS_DLL.PHYSFS_isDirectory(Filename) == 0)?false:true;
-      }
-   }
-}
+/* PhysFS.cs - (c)2003 Gregory S. Read
+ * Provides access to PhysFS API calls not specific to file handle access.
+ */
+using System;
+
+namespace PhysFS_NET
+{
+   public class PhysFS
+   {
+      /* Initialize
+       * Inits the PhysFS API.  This normally does not need to be called unless
+       * the API has been manually deinitialized since the PhysFS_DLL class
+       * initializes just before the first call is made into the DLL.
+       * Parameters
+       *    none
+       * Returns
+       *    none
+       * Exceptions
+       *    PhysFSException - An error occured in the PhysFS API
+       */
+      public static void Initialize()
+      {
+         // Initialize the physfs library, raise an exception if error
+         if(PhysFS_DLL.PHYSFS_init("") == 0)
+            throw new PhysFSException();
+      }
+
+      /* Deinitialize
+       * Deinits the PhysFS API.  It is recommended that this method be called
+       * by the application before exiting in order to gracefully deallocate
+       * resources and close all filehandles, etc.
+       * Parameters
+       *    none
+       * Returns
+       *    none
+       * Exceptions
+       *    PhysFSException - An error occured in the PhysFS API
+       */
+      public static void Deinitialize()
+      {
+         // Deinit, raise an exception if an error occured
+         if(PhysFS_DLL.PHYSFS_deinit() == 0)
+            throw new PhysFSException();
+      }
+
+      /* BaseDir
+       * Gets the base directory configured for PhysFS.  See the PhysFS API
+       * documentation for more information.
+       * Parameters
+       *    none
+       * Returns
+       *    A string value representing the Base Directory
+       * Exceptions
+       *    none
+       */
+      public static string BaseDir
+      {
+         get
+         {
+            // Return the current base directory
+            return PhysFS_DLL.PHYSFS_getBaseDir();
+         }
+      }
+
+      /* WriteDir
+       * Gets or sets the write directory configured for PhysFS.  See the PhysFS API
+       * documentation for more information.
+       * Parameters
+       *    set - Path to set the WriteDir property to
+       * Returns
+       *    A string value representing the Write Directory
+       * Exceptions
+       *    PhysFSException - An error occured in the PhysFS API when
+       *       settings the write directory.
+       */
+      public static string WriteDir
+      {
+         get
+         {
+            // Return the current write directory
+            return PhysFS_DLL.PHYSFS_getWriteDir();
+         }
+         set
+         {
+            // Set the write directory and raise an exception if an error occured
+            if(PhysFS_DLL.PHYSFS_setWriteDir(value) == 0)
+               throw new PhysFSException();
+         }
+      }
+
+      /* UserDir
+       * Gets or sets the write directory configured for PhysFS.  See the PhysFS API
+       * documentation for more information.
+       * Parameters
+       *    set - Path to set the WriteDir property to
+       * Returns
+       *    A string value representing the Write Directory
+       * Exceptions
+       *    PhysFSException - An error occured in the PhysFS API when
+       *       settings the write directory.
+       */
+      public static string UserDir
+      {
+         get
+         {
+            // Return the current user directory
+            return PhysFS_DLL.PHYSFS_getUserDir();
+         }
+      }
+      public static void AddToSearchPath(string NewDir, bool Append)
+      {
+         if(PhysFS_DLL.PHYSFS_addToSearchPath(NewDir, Append?1:0) == 0)
+            throw new PhysFSException();
+      }
+      public static void RemoveFromSearchPath(string OldDir)
+      {
+         if(PhysFS_DLL.PHYSFS_removeFromSearchPath(OldDir) == 0)
+            throw new PhysFSException();
+      }
+      public unsafe static string[] GetSearchPath()
+      {
+         byte** p;				// Searchpath list from PhysFS dll
+         string[] pathlist;	// List converted to an array
+
+         // Get the CDROM drive listing
+         p = PhysFS_DLL.PHYSFS_getSearchPath();
+         // Convert the C-style array to a .NET style array
+         pathlist = PhysFS_DLL.BytePPToArray(p);
+         // Free the original list since we're done with it
+         PhysFS_DLL.PHYSFS_freeList(p);
+
+         return pathlist;
+      }
+      public unsafe static string[] GetCDROMDrives()
+      {
+         byte** p;				// CDROM list from PhysFS dll
+         string[] cdromlist;	// List converted to an array
+
+         // Get the CDROM drive listing
+         p = PhysFS_DLL.PHYSFS_getCdRomDirs();
+         // Convert the C-style array to a .NET style array
+         cdromlist = PhysFS_DLL.BytePPToArray(p);
+         // Free the original list since we're done with it
+         PhysFS_DLL.PHYSFS_freeList(p);
+
+         return cdromlist;
+      }
+      public static void MkDir(string Dirname)
+      {
+         if(PhysFS_DLL.PHYSFS_mkdir(Dirname) == 0)
+            throw new PhysFSException();
+      }
+      public static void Delete(string Filename)
+      {
+         if(PhysFS_DLL.PHYSFS_delete(Filename) == 0)
+            throw new PhysFSException();
+      }
+      public static string GetRealDir(string Filename)
+      {
+         string RetValue;
+
+         RetValue = PhysFS_DLL.PHYSFS_getRealDir(Filename);
+         if(RetValue == null)
+            throw new PhysFSException("File not found in search path.");
+
+         // Return the real file path of the specified filename
+         return RetValue;
+      }
+      public unsafe static string[] EnumerateFiles(string Dirname)
+      {
+         byte** p;				// File list from PhysFS dll
+         string[] filelist;	// List converted to an array
+
+         // Get the CDROM drive listing
+         p = PhysFS_DLL.PHYSFS_enumerateFiles(Dirname);
+         // Convert the C-style array to a .NET style array
+         filelist = PhysFS_DLL.BytePPToArray(p);
+         // Free the original list since we're done with it
+         PhysFS_DLL.PHYSFS_freeList(p);
+
+         return filelist;
+      }
+      public static bool IsDirectory(string Filename)
+      {
+         // Return true if non-zero, otherwise return false
+         return (PhysFS_DLL.PHYSFS_isDirectory(Filename) == 0)?false:true;
+      }
+   }
+}

Modified: tags/release-1.0.1/extras/PhysFS.NET/PhysFSFileStream.cs
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/PhysFSFileStream.cs	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/PhysFSFileStream.cs	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,194 +1,194 @@
-/* PhysFSFileStream.cs - (c)2003 Gregory S. Read */
-using System;
-using System.Collections;
-using System.IO;
-
-namespace PhysFS_NET
-{
-   public enum PhysFSFileMode {Read, Write, Append};
-
-   // Our exception class we'll use for throwing all PhysFS API related exception
-   public class PhysFSException : IOException
-   {
-      public PhysFSException(string Message) : base(Message) {}
-      public PhysFSException() : base(PhysFS_DLL.PHYSFS_getLastError()) {}
-   }
-
-   public unsafe class PhysFSFileStream : Stream
-   {
-      // ***Public properties***
-      public override bool CanRead
-      {
-         get
-         {
-            // Reading is supported
-            return true;
-         }
-      }
-      
-      public override bool CanSeek
-      {
-         get
-         {
-            // Seek is supported
-            return true;
-         }
-      }
-
-      public override bool CanWrite
-      {
-         get
-         {
-            // Writing is supported
-            return true;
-         }
-      }
-
-      public override long Length
-      {
-         get
-         {
-            long TempLength;
-            TempLength = PhysFS_DLL.PHYSFS_fileLength(pHandle);
-
-            // If call returned an error, throw an exception
-            if(TempLength == -1)
-               throw new PhysFSException();
-
-            return TempLength;
-         }
-      }
-
-      public override long Position
-      {
-         get
-         {
-            long TempPosition;
-            TempPosition = PhysFS_DLL.PHYSFS_tell(pHandle);
-
-            // If call returned an error, throw an exception
-            if(TempPosition == -1)
-               throw new PhysFSException();
-
-            return TempPosition;
-         }
-         set
-         {
-            // Seek from beginning of file using the position value
-            Seek(value, SeekOrigin.Begin);
-         }
-      }
-      
-      // ***Public methods***
-      public PhysFSFileStream(string FileName, PhysFSFileMode FileMode, ulong BufferSize)
-      {
-         // Open the specified file with the appropriate file access
-         switch(FileMode)
-         {
-            case PhysFSFileMode.Read:
-               pHandle = PhysFS_DLL.PHYSFS_openRead(FileName);
-               break;
-            case PhysFSFileMode.Write:
-               pHandle = PhysFS_DLL.PHYSFS_openWrite(FileName);
-               break;
-            case PhysFSFileMode.Append:
-               pHandle = PhysFS_DLL.PHYSFS_openAppend(FileName);
-               break;
-            default:
-               throw new PhysFSException("Invalid FileMode specified");
-         }
-
-         // If handle is null, an error occured, so raise an exception
-         //!!! Does object get created if exception is thrown?
-         if(pHandle == null)
-            throw new PhysFSException();
-
-         // Set buffer size, raise an exception if an error occured
-         if(PhysFS_DLL.PHYSFS_setBuffer(pHandle, BufferSize) == 0)
-            throw new PhysFSException();
-      }
-
-      // This constructor sets the buffer size to 0 if not specified
-      public PhysFSFileStream(string FileName, PhysFSFileMode FileMode) : this(FileName, FileMode, 0) {}
-		
-      ~PhysFSFileStream()
-      {
-         // Don't close the handle if they've specifically closed it already
-         if(!Closed)
-            Close();
-      }
-
-      public override void Flush()
-      {
-         if(PhysFS_DLL.PHYSFS_flush(pHandle) == 0)
-            throw new PhysFSException();
-      }
-
-      public override int Read(byte[] buffer, int offset, int count)
-      {
-         long RetValue;
-   
-         fixed(byte *pbytes = &buffer[offset])
-         {
-            // Read into our allocated pointer
-            RetValue = PhysFS_DLL.PHYSFS_read(pHandle, pbytes, sizeof(byte), (uint)count);
-         }
-
-         if(RetValue == -1)
-            throw new PhysFSException();
-
-         // Return number of bytes read
-         // Note: This cast should be safe since we are only reading 'count' items, which
-         // is of type 'int'.
-         return (int)RetValue;
-      }
-
-      public override void Write(byte[] buffer, int offset, int count)
-      {
-         long RetValue;
-
-         fixed(byte* pbytes = &buffer[offset])
-         {
-            // Write buffer
-            RetValue = PhysFS_DLL.PHYSFS_write(pHandle, pbytes, sizeof(byte), (uint)count);
-         }
-
-         if(RetValue == -1)
-            throw new PhysFSException();
-      }
-
-      public override long Seek(long offset, SeekOrigin origin)
-      {
-         // Only seeking from beginning is supported by PhysFS API
-         if(origin != SeekOrigin.Begin)
-            throw new PhysFSException("Only seek origin of \"Begin\" is supported");
-         
-         // Seek to specified offset, raise an exception if error occured
-         if(PhysFS_DLL.PHYSFS_seek(pHandle, (ulong)offset) == 0)
-            throw new PhysFSException();
-
-         // Since we always seek from beginning, the offset is always
-         //  the absolute position.
-         return offset;
-      }
-
-      public override void SetLength(long value)
-      {
-         throw new NotSupportedException("SetLength method not supported in PhysFSFileStream objects.");
-      }
-
-      public override void Close()
-      {
-         // Close the handle
-         if(PhysFS_DLL.PHYSFS_close(pHandle) == 0)
-            throw new PhysFSException();
-
-         // File has been closed.  Rock.
-         Closed = true;
-      }
-
-      // ***Private variables***
-      private void *pHandle;
-      private bool Closed = false;
-   }
+/* PhysFSFileStream.cs - (c)2003 Gregory S. Read */
+using System;
+using System.Collections;
+using System.IO;
+
+namespace PhysFS_NET
+{
+   public enum PhysFSFileMode {Read, Write, Append};
+
+   // Our exception class we'll use for throwing all PhysFS API related exception
+   public class PhysFSException : IOException
+   {
+      public PhysFSException(string Message) : base(Message) {}
+      public PhysFSException() : base(PhysFS_DLL.PHYSFS_getLastError()) {}
+   }
+
+   public unsafe class PhysFSFileStream : Stream
+   {
+      // ***Public properties***
+      public override bool CanRead
+      {
+         get
+         {
+            // Reading is supported
+            return true;
+         }
+      }
+      
+      public override bool CanSeek
+      {
+         get
+         {
+            // Seek is supported
+            return true;
+         }
+      }
+
+      public override bool CanWrite
+      {
+         get
+         {
+            // Writing is supported
+            return true;
+         }
+      }
+
+      public override long Length
+      {
+         get
+         {
+            long TempLength;
+            TempLength = PhysFS_DLL.PHYSFS_fileLength(pHandle);
+
+            // If call returned an error, throw an exception
+            if(TempLength == -1)
+               throw new PhysFSException();
+
+            return TempLength;
+         }
+      }
+
+      public override long Position
+      {
+         get
+         {
+            long TempPosition;
+            TempPosition = PhysFS_DLL.PHYSFS_tell(pHandle);
+
+            // If call returned an error, throw an exception
+            if(TempPosition == -1)
+               throw new PhysFSException();
+
+            return TempPosition;
+         }
+         set
+         {
+            // Seek from beginning of file using the position value
+            Seek(value, SeekOrigin.Begin);
+         }
+      }
+      
+      // ***Public methods***
+      public PhysFSFileStream(string FileName, PhysFSFileMode FileMode, ulong BufferSize)
+      {
+         // Open the specified file with the appropriate file access
+         switch(FileMode)
+         {
+            case PhysFSFileMode.Read:
+               pHandle = PhysFS_DLL.PHYSFS_openRead(FileName);
+               break;
+            case PhysFSFileMode.Write:
+               pHandle = PhysFS_DLL.PHYSFS_openWrite(FileName);
+               break;
+            case PhysFSFileMode.Append:
+               pHandle = PhysFS_DLL.PHYSFS_openAppend(FileName);
+               break;
+            default:
+               throw new PhysFSException("Invalid FileMode specified");
+         }
+
+         // If handle is null, an error occured, so raise an exception
+         //!!! Does object get created if exception is thrown?
+         if(pHandle == null)
+            throw new PhysFSException();
+
+         // Set buffer size, raise an exception if an error occured
+         if(PhysFS_DLL.PHYSFS_setBuffer(pHandle, BufferSize) == 0)
+            throw new PhysFSException();
+      }
+
+      // This constructor sets the buffer size to 0 if not specified
+      public PhysFSFileStream(string FileName, PhysFSFileMode FileMode) : this(FileName, FileMode, 0) {}
+		
+      ~PhysFSFileStream()
+      {
+         // Don't close the handle if they've specifically closed it already
+         if(!Closed)
+            Close();
+      }
+
+      public override void Flush()
+      {
+         if(PhysFS_DLL.PHYSFS_flush(pHandle) == 0)
+            throw new PhysFSException();
+      }
+
+      public override int Read(byte[] buffer, int offset, int count)
+      {
+         long RetValue;
+   
+         fixed(byte *pbytes = &buffer[offset])
+         {
+            // Read into our allocated pointer
+            RetValue = PhysFS_DLL.PHYSFS_read(pHandle, pbytes, sizeof(byte), (uint)count);
+         }
+
+         if(RetValue == -1)
+            throw new PhysFSException();
+
+         // Return number of bytes read
+         // Note: This cast should be safe since we are only reading 'count' items, which
+         // is of type 'int'.
+         return (int)RetValue;
+      }
+
+      public override void Write(byte[] buffer, int offset, int count)
+      {
+         long RetValue;
+
+         fixed(byte* pbytes = &buffer[offset])
+         {
+            // Write buffer
+            RetValue = PhysFS_DLL.PHYSFS_write(pHandle, pbytes, sizeof(byte), (uint)count);
+         }
+
+         if(RetValue == -1)
+            throw new PhysFSException();
+      }
+
+      public override long Seek(long offset, SeekOrigin origin)
+      {
+         // Only seeking from beginning is supported by PhysFS API
+         if(origin != SeekOrigin.Begin)
+            throw new PhysFSException("Only seek origin of \"Begin\" is supported");
+         
+         // Seek to specified offset, raise an exception if error occured
+         if(PhysFS_DLL.PHYSFS_seek(pHandle, (ulong)offset) == 0)
+            throw new PhysFSException();
+
+         // Since we always seek from beginning, the offset is always
+         //  the absolute position.
+         return offset;
+      }
+
+      public override void SetLength(long value)
+      {
+         throw new NotSupportedException("SetLength method not supported in PhysFSFileStream objects.");
+      }
+
+      public override void Close()
+      {
+         // Close the handle
+         if(PhysFS_DLL.PHYSFS_close(pHandle) == 0)
+            throw new PhysFSException();
+
+         // File has been closed.  Rock.
+         Closed = true;
+      }
+
+      // ***Private variables***
+      private void *pHandle;
+      private bool Closed = false;
+   }
 }
\ No newline at end of file

Modified: tags/release-1.0.1/extras/PhysFS.NET/PhysFS_DLL.cs
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/PhysFS_DLL.cs	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/PhysFS_DLL.cs	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,76 +1,76 @@
-/* PhysFS_DLL - (c)2003 Gregory S. Read
- * Internal class that provides direct access to the PhysFS DLL.  It is
- * not accessible outside of the PhysFS.NET assembly.
- */
-using System.Collections;
-using System.Runtime.InteropServices;
-
-namespace PhysFS_NET
-{
-   internal class PhysFS_DLL
-   {
-      /* Static constructor
-       * Initializes the PhysFS API before any method is called in this class.  This
-       * relieves the user from having to explicitly initialize the API.
-       * Parameters
-       *    none
-       * Returns
-       *    none
-       * Exceptions
-       *    PhysFSException - An error occured in the PhysFS API
-       */
-      static PhysFS_DLL()
-      {
-         if(PHYSFS_init("") == 0)
-            throw new PhysFSException();
-      }
-
-      /* BytePPToArray
-       * Converts a C-style string array into a .NET managed string array
-       * Parameters
-       *    C-style string array pointer returned from PhysFS
-       * Returns
-       *    .NET managed string array
-       * Exceptions
-       *    none
-       */
-      public unsafe static string[] BytePPToArray(byte **bytearray)
-      {
-         byte** ptr;
-         byte* c;
-         string tempstr;
-         ArrayList MyArrayList = new ArrayList();
-         string[] RetArray;
-
+/* PhysFS_DLL - (c)2003 Gregory S. Read
+ * Internal class that provides direct access to the PhysFS DLL.  It is
+ * not accessible outside of the PhysFS.NET assembly.
+ */
+using System.Collections;
+using System.Runtime.InteropServices;
+
+namespace PhysFS_NET
+{
+   internal class PhysFS_DLL
+   {
+      /* Static constructor
+       * Initializes the PhysFS API before any method is called in this class.  This
+       * relieves the user from having to explicitly initialize the API.
+       * Parameters
+       *    none
+       * Returns
+       *    none
+       * Exceptions
+       *    PhysFSException - An error occured in the PhysFS API
+       */
+      static PhysFS_DLL()
+      {
+         if(PHYSFS_init("") == 0)
+            throw new PhysFSException();
+      }
+
+      /* BytePPToArray
+       * Converts a C-style string array into a .NET managed string array
+       * Parameters
+       *    C-style string array pointer returned from PhysFS
+       * Returns
+       *    .NET managed string array
+       * Exceptions
+       *    none
+       */
+      public unsafe static string[] BytePPToArray(byte **bytearray)
+      {
+         byte** ptr;
+         byte* c;
+         string tempstr;
+         ArrayList MyArrayList = new ArrayList();
+         string[] RetArray;
+
          for(ptr = bytearray; *ptr != null; ptr++)
          {
             tempstr = "";
             for(c = *ptr; *c != 0; c++)
             {
-               tempstr += (char)*c;
-            }
-
-            // Add string to our list
-            MyArrayList.Add(tempstr);
-         }
-
-         // Return a normal array of the list
-         RetArray = new string[MyArrayList.Count];
-         MyArrayList.CopyTo(RetArray, 0);
-         return RetArray;
-      }
-
-      // Name of DLL to import
-      private const string PHYSFS_DLLNAME = "physfs.dll";
-
-      // DLL import declarations
-      [DllImport(PHYSFS_DLLNAME)] public static extern int PHYSFS_init(string argv0);
-      [DllImport(PHYSFS_DLLNAME)] public static extern int PHYSFS_deinit();
+               tempstr += (char)*c;
+            }
+
+            // Add string to our list
+            MyArrayList.Add(tempstr);
+         }
+
+         // Return a normal array of the list
+         RetArray = new string[MyArrayList.Count];
+         MyArrayList.CopyTo(RetArray, 0);
+         return RetArray;
+      }
+
+      // Name of DLL to import
+      private const string PHYSFS_DLLNAME = "physfs.dll";
+
+      // DLL import declarations
+      [DllImport(PHYSFS_DLLNAME)] public static extern int PHYSFS_init(string argv0);
+      [DllImport(PHYSFS_DLLNAME)] public static extern int PHYSFS_deinit();
       [DllImport(PHYSFS_DLLNAME)] public static extern unsafe void PHYSFS_freeList(void *listVar);
       [DllImport(PHYSFS_DLLNAME)] public static extern string PHYSFS_getLastError();
       [DllImport(PHYSFS_DLLNAME)] public static extern string PHYSFS_getDirSeparator();
       [DllImport(PHYSFS_DLLNAME)] public static extern void PHYSFS_permitSymbolicLinks(int allow);
-      [DllImport(PHYSFS_DLLNAME)] public static extern unsafe byte** PHYSFS_getCdRomDirs();
+      [DllImport(PHYSFS_DLLNAME)] public static extern unsafe byte** PHYSFS_getCdRomDirs();
       [DllImport(PHYSFS_DLLNAME)] public static extern string PHYSFS_getBaseDir();
       [DllImport(PHYSFS_DLLNAME)] public static extern string PHYSFS_getUserDir();
       [DllImport(PHYSFS_DLLNAME)] public static extern string PHYSFS_getWriteDir();
@@ -86,7 +86,7 @@
       [DllImport(PHYSFS_DLLNAME)] public static extern int PHYSFS_mkdir(string dirName);
       [DllImport(PHYSFS_DLLNAME)] public static extern int PHYSFS_delete(string filename);
       [DllImport(PHYSFS_DLLNAME)] public static extern string PHYSFS_getRealDir(string filename);
-      [DllImport(PHYSFS_DLLNAME)] public static extern unsafe byte** PHYSFS_enumerateFiles(string dir);
+      [DllImport(PHYSFS_DLLNAME)] public static extern unsafe byte** PHYSFS_enumerateFiles(string dir);
       [DllImport(PHYSFS_DLLNAME)] public static extern int PHYSFS_exists(string fname);
       [DllImport(PHYSFS_DLLNAME)] public static extern int PHYSFS_isDirectory(string fname);
       [DllImport(PHYSFS_DLLNAME)] public static extern int PHYSFS_isSymbolicLink(string fname);
@@ -109,5 +109,5 @@
       [DllImport(PHYSFS_DLLNAME)] public static extern unsafe long PHYSFS_fileLength(void* handle);
       [DllImport(PHYSFS_DLLNAME)] public static extern unsafe int PHYSFS_setBuffer(void* handle, ulong bufsize);
       [DllImport(PHYSFS_DLLNAME)] public static extern unsafe int PHYSFS_flush(void* handle);
-   }
-}
+   }
+}

Modified: tags/release-1.0.1/extras/PhysFS.NET/README.txt
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/README.txt	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/README.txt	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,10 +1,10 @@
-PhysFS.NET is a library that encapsulates the PhysFS API into a .NET assembly.
-
-There are two class objects that are exposed in the assembly:
-   PhysFS.cs
-      This class exposes any non-filehandle specific functionality contained in
-      the PhysFS library.
-   PhysFSFileStream.cs
-      A System.IO.Stream derived class which provides file access via the
-      PhysFS API.  Usage of this object is identical to a standard stream
+PhysFS.NET is a library that encapsulates the PhysFS API into a .NET assembly.
+
+There are two class objects that are exposed in the assembly:
+   PhysFS.cs
+      This class exposes any non-filehandle specific functionality contained in
+      the PhysFS library.
+   PhysFSFileStream.cs
+      A System.IO.Stream derived class which provides file access via the
+      PhysFS API.  Usage of this object is identical to a standard stream
       object.    
\ No newline at end of file

Modified: tags/release-1.0.1/extras/PhysFS.NET/TestApp/AssemblyInfo.cs
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/TestApp/AssemblyInfo.cs	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/TestApp/AssemblyInfo.cs	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,58 +1,58 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-
-//
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-//
-[assembly: AssemblyTitle("")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("")]
-[assembly: AssemblyCopyright("")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]		
-
-//
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-
-[assembly: AssemblyVersion("1.0.*")]
-
-//
-// In order to sign your assembly you must specify a key to use. Refer to the 
-// Microsoft .NET Framework documentation for more information on assembly signing.
-//
-// Use the attributes below to control which key is used for signing. 
-//
-// Notes: 
-//   (*) If no key is specified, the assembly is not signed.
-//   (*) KeyName refers to a key that has been installed in the Crypto Service
-//       Provider (CSP) on your machine. KeyFile refers to a file which contains
-//       a key.
-//   (*) If the KeyFile and the KeyName values are both specified, the 
-//       following processing occurs:
-//       (1) If the KeyName can be found in the CSP, that key is used.
-//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
-//           in the KeyFile is installed into the CSP and used.
-//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
-//       When specifying the KeyFile, the location of the KeyFile should be
-//       relative to the project output directory which is
-//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
-//       located in the project directory, you would specify the AssemblyKeyFile 
-//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
-//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
-//       documentation for more information on this.
-//
-[assembly: AssemblyDelaySign(false)]
-[assembly: AssemblyKeyFile("")]
-[assembly: AssemblyKeyName("")]
+using System.Reflection;
+using System.Runtime.CompilerServices;
+
+//
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly: AssemblyTitle("")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]		
+
+//
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+
+[assembly: AssemblyVersion("1.0.*")]
+
+//
+// In order to sign your assembly you must specify a key to use. Refer to the 
+// Microsoft .NET Framework documentation for more information on assembly signing.
+//
+// Use the attributes below to control which key is used for signing. 
+//
+// Notes: 
+//   (*) If no key is specified, the assembly is not signed.
+//   (*) KeyName refers to a key that has been installed in the Crypto Service
+//       Provider (CSP) on your machine. KeyFile refers to a file which contains
+//       a key.
+//   (*) If the KeyFile and the KeyName values are both specified, the 
+//       following processing occurs:
+//       (1) If the KeyName can be found in the CSP, that key is used.
+//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
+//           in the KeyFile is installed into the CSP and used.
+//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
+//       When specifying the KeyFile, the location of the KeyFile should be
+//       relative to the project output directory which is
+//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
+//       located in the project directory, you would specify the AssemblyKeyFile 
+//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
+//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
+//       documentation for more information on this.
+//
+[assembly: AssemblyDelaySign(false)]
+[assembly: AssemblyKeyFile("")]
+[assembly: AssemblyKeyName("")]

Modified: tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestApp.csproj
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/TestApp/TestApp.csproj	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestApp.csproj	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,116 +1,116 @@
-<VisualStudioProject>
-    <CSHARP
-        ProjectType = "Local"
-        ProductVersion = "7.0.9466"
-        SchemaVersion = "1.0"
-        ProjectGuid = "{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}"
-    >
-        <Build>
-            <Settings
-                ApplicationIcon = "App.ico"
-                AssemblyKeyContainerName = ""
-                AssemblyName = "TestApp"
-                AssemblyOriginatorKeyFile = ""
-                DefaultClientScript = "JScript"
-                DefaultHTMLPageLayout = "Grid"
-                DefaultTargetSchema = "IE50"
-                DelaySign = "false"
-                OutputType = "WinExe"
-                RootNamespace = "TestApp"
-                StartupObject = ""
-            >
-                <Config
-                    Name = "Debug"
-                    AllowUnsafeBlocks = "false"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = "DEBUG;TRACE"
-                    DocumentationFile = ""
-                    DebugSymbols = "true"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "true"
-                    Optimize = "false"
-                    OutputPath = "bin\Debug\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "4"
-                />
-                <Config
-                    Name = "Release"
-                    AllowUnsafeBlocks = "false"
-                    BaseAddress = "285212672"
-                    CheckForOverflowUnderflow = "false"
-                    ConfigurationOverrideFile = ""
-                    DefineConstants = "TRACE"
-                    DocumentationFile = ""
-                    DebugSymbols = "false"
-                    FileAlignment = "4096"
-                    IncrementalBuild = "false"
-                    Optimize = "true"
-                    OutputPath = "bin\Release\"
-                    RegisterForComInterop = "false"
-                    RemoveIntegerChecks = "false"
-                    TreatWarningsAsErrors = "false"
-                    WarningLevel = "4"
-                />
-            </Settings>
-            <References>
-                <Reference
-                    Name = "System"
-                    AssemblyName = "System"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.dll"
-                />
-                <Reference
-                    Name = "System.Data"
-                    AssemblyName = "System.Data"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Data.dll"
-                />
-                <Reference
-                    Name = "System.Drawing"
-                    AssemblyName = "System.Drawing"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Drawing.dll"
-                />
-                <Reference
-                    Name = "System.Windows.Forms"
-                    AssemblyName = "System.Windows.Forms"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Windows.Forms.dll"
-                />
-                <Reference
-                    Name = "System.XML"
-                    AssemblyName = "System.Xml"
-                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.XML.dll"
-                />
-                <Reference
-                    Name = "PhysFS.NET"
-                    Project = "{C6205A43-3D4D-41E6-872C-96CD7BE55230}"
-                    Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
-                />
-            </References>
-        </Build>
-        <Files>
-            <Include>
-                <File
-                    RelPath = "App.ico"
-                    BuildAction = "Content"
-                />
-                <File
-                    RelPath = "AssemblyInfo.cs"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "TestAppForm.cs"
-                    SubType = "Form"
-                    BuildAction = "Compile"
-                />
-                <File
-                    RelPath = "TestAppForm.resx"
-                    DependentUpon = "TestAppForm.cs"
-                    BuildAction = "EmbeddedResource"
-                />
-            </Include>
-        </Files>
-    </CSHARP>
-</VisualStudioProject>
-
+<VisualStudioProject>
+    <CSHARP
+        ProjectType = "Local"
+        ProductVersion = "7.0.9466"
+        SchemaVersion = "1.0"
+        ProjectGuid = "{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}"
+    >
+        <Build>
+            <Settings
+                ApplicationIcon = "App.ico"
+                AssemblyKeyContainerName = ""
+                AssemblyName = "TestApp"
+                AssemblyOriginatorKeyFile = ""
+                DefaultClientScript = "JScript"
+                DefaultHTMLPageLayout = "Grid"
+                DefaultTargetSchema = "IE50"
+                DelaySign = "false"
+                OutputType = "WinExe"
+                RootNamespace = "TestApp"
+                StartupObject = ""
+            >
+                <Config
+                    Name = "Debug"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "DEBUG;TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "true"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "true"
+                    Optimize = "false"
+                    OutputPath = "bin\Debug\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+                <Config
+                    Name = "Release"
+                    AllowUnsafeBlocks = "false"
+                    BaseAddress = "285212672"
+                    CheckForOverflowUnderflow = "false"
+                    ConfigurationOverrideFile = ""
+                    DefineConstants = "TRACE"
+                    DocumentationFile = ""
+                    DebugSymbols = "false"
+                    FileAlignment = "4096"
+                    IncrementalBuild = "false"
+                    Optimize = "true"
+                    OutputPath = "bin\Release\"
+                    RegisterForComInterop = "false"
+                    RemoveIntegerChecks = "false"
+                    TreatWarningsAsErrors = "false"
+                    WarningLevel = "4"
+                />
+            </Settings>
+            <References>
+                <Reference
+                    Name = "System"
+                    AssemblyName = "System"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.dll"
+                />
+                <Reference
+                    Name = "System.Data"
+                    AssemblyName = "System.Data"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Data.dll"
+                />
+                <Reference
+                    Name = "System.Drawing"
+                    AssemblyName = "System.Drawing"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Drawing.dll"
+                />
+                <Reference
+                    Name = "System.Windows.Forms"
+                    AssemblyName = "System.Windows.Forms"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.Windows.Forms.dll"
+                />
+                <Reference
+                    Name = "System.XML"
+                    AssemblyName = "System.Xml"
+                    HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\System.XML.dll"
+                />
+                <Reference
+                    Name = "PhysFS.NET"
+                    Project = "{C6205A43-3D4D-41E6-872C-96CD7BE55230}"
+                    Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
+                />
+            </References>
+        </Build>
+        <Files>
+            <Include>
+                <File
+                    RelPath = "App.ico"
+                    BuildAction = "Content"
+                />
+                <File
+                    RelPath = "AssemblyInfo.cs"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "TestAppForm.cs"
+                    SubType = "Form"
+                    BuildAction = "Compile"
+                />
+                <File
+                    RelPath = "TestAppForm.resx"
+                    DependentUpon = "TestAppForm.cs"
+                    BuildAction = "EmbeddedResource"
+                />
+            </Include>
+        </Files>
+    </CSHARP>
+</VisualStudioProject>
+

Modified: tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestApp.sln
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/TestApp/TestApp.sln	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestApp.sln	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,27 +1,27 @@
-Microsoft Visual Studio Solution File, Format Version 7.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApp", "TestApp.csproj", "{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhysFS.NET", "..\PhysFS.NET.csproj", "{C6205A43-3D4D-41E6-872C-96CD7BE55230}"
-EndProject
-Global
-	GlobalSection(SolutionConfiguration) = preSolution
-		ConfigName.0 = Debug
-		ConfigName.1 = Release
-	EndGlobalSection
-	GlobalSection(ProjectDependencies) = postSolution
-	EndGlobalSection
-	GlobalSection(ProjectConfiguration) = postSolution
-		{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}.Debug.ActiveCfg = Debug|.NET
-		{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}.Debug.Build.0 = Debug|.NET
-		{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}.Release.ActiveCfg = Release|.NET
-		{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}.Release.Build.0 = Release|.NET
-		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Debug.ActiveCfg = Debug|.NET
-		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Debug.Build.0 = Debug|.NET
-		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Release.ActiveCfg = Release|.NET
-		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Release.Build.0 = Release|.NET
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-	EndGlobalSection
-	GlobalSection(ExtensibilityAddIns) = postSolution
-	EndGlobalSection
-EndGlobal
+Microsoft Visual Studio Solution File, Format Version 7.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApp", "TestApp.csproj", "{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhysFS.NET", "..\PhysFS.NET.csproj", "{C6205A43-3D4D-41E6-872C-96CD7BE55230}"
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		ConfigName.0 = Debug
+		ConfigName.1 = Release
+	EndGlobalSection
+	GlobalSection(ProjectDependencies) = postSolution
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}.Debug.ActiveCfg = Debug|.NET
+		{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}.Debug.Build.0 = Debug|.NET
+		{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}.Release.ActiveCfg = Release|.NET
+		{9C1ECC6B-16C7-42B3-BF7C-8BA8D81BA980}.Release.Build.0 = Release|.NET
+		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Debug.ActiveCfg = Debug|.NET
+		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Debug.Build.0 = Debug|.NET
+		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Release.ActiveCfg = Release|.NET
+		{C6205A43-3D4D-41E6-872C-96CD7BE55230}.Release.Build.0 = Release|.NET
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal

Modified: tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestAppForm.cs
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/TestApp/TestAppForm.cs	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestAppForm.cs	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,274 +1,274 @@
-using System;
-using System.Drawing;
-using System.Collections;
-using System.ComponentModel;
-using System.Windows.Forms;
-using System.Data;
-using System.IO;
-using PhysFS_NET;
-
-namespace TestApp
-{
-	/// <summary>
-	/// Summary description for Form1.
-	/// </summary>
-	public class TestAppForm : System.Windows.Forms.Form
-	{
-      private System.Windows.Forms.Label label2;
-      private System.Windows.Forms.Button RefreshCDsButton;
-      private System.Windows.Forms.ListBox CDDrivesList;
-      private System.Windows.Forms.ListBox SearchPathList;
-      private System.Windows.Forms.Label label1;
-      private System.Windows.Forms.TextBox EnumFilesPath;
-      private System.Windows.Forms.ListBox EnumList;
-      private System.Windows.Forms.Label label3;
-      private System.Windows.Forms.TextBox NewSearchPathText;
-      private System.Windows.Forms.Button AddSearchPathButton;
-      private System.Windows.Forms.Button RemovePathButton;
-      private System.Windows.Forms.Button RefreshEnumList;
-      private System.Windows.Forms.Button RefreshSearchPathButton;
-		/// <summary>
-		/// Required designer variable.
-		/// </summary>
-		private System.ComponentModel.Container components = null;
-
-		public TestAppForm()
-		{
-			//
-			// Required for Windows Form Designer support
-			//
-			InitializeComponent();
-
-			//
-			// TODO: Add any constructor code after InitializeComponent call
-			//
-		}
-
-		/// <summary>
-		/// Clean up any resources being used.
-		/// </summary>
-		protected override void Dispose( bool disposing )
-		{
-			if( disposing )
-			{
-				if (components != null) 
-				{
-					components.Dispose();
-				}
-			}
-			base.Dispose( disposing );
-		}
-
-		#region Windows Form Designer generated code
-		/// <summary>
-		/// Required method for Designer support - do not modify
-		/// the contents of this method with the code editor.
-		/// </summary>
-		private void InitializeComponent()
-		{
-         this.label2 = new System.Windows.Forms.Label();
-         this.RefreshCDsButton = new System.Windows.Forms.Button();
-         this.CDDrivesList = new System.Windows.Forms.ListBox();
-         this.SearchPathList = new System.Windows.Forms.ListBox();
-         this.label1 = new System.Windows.Forms.Label();
-         this.EnumFilesPath = new System.Windows.Forms.TextBox();
-         this.EnumList = new System.Windows.Forms.ListBox();
-         this.label3 = new System.Windows.Forms.Label();
-         this.RefreshEnumList = new System.Windows.Forms.Button();
-         this.NewSearchPathText = new System.Windows.Forms.TextBox();
-         this.AddSearchPathButton = new System.Windows.Forms.Button();
-         this.RemovePathButton = new System.Windows.Forms.Button();
-         this.RefreshSearchPathButton = new System.Windows.Forms.Button();
-         this.SuspendLayout();
-         // 
-         // label2
-         // 
-         this.label2.Location = new System.Drawing.Point(8, 8);
-         this.label2.Name = "label2";
-         this.label2.Size = new System.Drawing.Size(136, 16);
-         this.label2.TabIndex = 2;
-         this.label2.Text = "Available CD-ROM Drives";
-         // 
-         // RefreshCDsButton
-         // 
-         this.RefreshCDsButton.Location = new System.Drawing.Point(8, 152);
-         this.RefreshCDsButton.Name = "RefreshCDsButton";
-         this.RefreshCDsButton.Size = new System.Drawing.Size(72, 24);
-         this.RefreshCDsButton.TabIndex = 4;
-         this.RefreshCDsButton.Text = "Refresh";
-         this.RefreshCDsButton.Click += new System.EventHandler(this.RefreshCDsButton_Click);
-         // 
-         // CDDrivesList
-         // 
-         this.CDDrivesList.Location = new System.Drawing.Point(8, 24);
-         this.CDDrivesList.Name = "CDDrivesList";
-         this.CDDrivesList.Size = new System.Drawing.Size(136, 121);
-         this.CDDrivesList.TabIndex = 7;
-         // 
-         // SearchPathList
-         // 
-         this.SearchPathList.Location = new System.Drawing.Point(152, 24);
-         this.SearchPathList.Name = "SearchPathList";
-         this.SearchPathList.Size = new System.Drawing.Size(248, 95);
-         this.SearchPathList.TabIndex = 8;
-         // 
-         // label1
-         // 
-         this.label1.Location = new System.Drawing.Point(152, 8);
-         this.label1.Name = "label1";
-         this.label1.Size = new System.Drawing.Size(136, 16);
-         this.label1.TabIndex = 10;
-         this.label1.Text = "Search Path";
-         // 
-         // EnumFilesPath
-         // 
-         this.EnumFilesPath.Location = new System.Drawing.Point(408, 128);
-         this.EnumFilesPath.Name = "EnumFilesPath";
-         this.EnumFilesPath.Size = new System.Drawing.Size(208, 20);
-         this.EnumFilesPath.TabIndex = 11;
-         this.EnumFilesPath.Text = "";
-         // 
-         // EnumList
-         // 
-         this.EnumList.Location = new System.Drawing.Point(408, 24);
-         this.EnumList.Name = "EnumList";
-         this.EnumList.Size = new System.Drawing.Size(208, 95);
-         this.EnumList.TabIndex = 12;
-         // 
-         // label3
-         // 
-         this.label3.Location = new System.Drawing.Point(408, 8);
-         this.label3.Name = "label3";
-         this.label3.Size = new System.Drawing.Size(136, 16);
-         this.label3.TabIndex = 13;
-         this.label3.Text = "Enumerate Files";
-         // 
-         // RefreshEnumList
-         // 
-         this.RefreshEnumList.Location = new System.Drawing.Point(544, 152);
-         this.RefreshEnumList.Name = "RefreshEnumList";
-         this.RefreshEnumList.Size = new System.Drawing.Size(72, 24);
-         this.RefreshEnumList.TabIndex = 14;
-         this.RefreshEnumList.Text = "Refresh";
-         this.RefreshEnumList.Click += new System.EventHandler(this.RefreshEnumList_Click);
-         // 
-         // NewSearchPathText
-         // 
-         this.NewSearchPathText.Location = new System.Drawing.Point(152, 128);
-         this.NewSearchPathText.Name = "NewSearchPathText";
-         this.NewSearchPathText.Size = new System.Drawing.Size(248, 20);
-         this.NewSearchPathText.TabIndex = 15;
-         this.NewSearchPathText.Text = "";
-         // 
-         // AddSearchPathButton
-         // 
-         this.AddSearchPathButton.Location = new System.Drawing.Point(152, 152);
-         this.AddSearchPathButton.Name = "AddSearchPathButton";
-         this.AddSearchPathButton.Size = new System.Drawing.Size(72, 24);
-         this.AddSearchPathButton.TabIndex = 9;
-         this.AddSearchPathButton.Text = "Add Path";
-         this.AddSearchPathButton.Click += new System.EventHandler(this.AddSearchPathButton_Click);
-         // 
-         // RemovePathButton
-         // 
-         this.RemovePathButton.Location = new System.Drawing.Point(232, 152);
-         this.RemovePathButton.Name = "RemovePathButton";
-         this.RemovePathButton.Size = new System.Drawing.Size(88, 24);
-         this.RemovePathButton.TabIndex = 16;
-         this.RemovePathButton.Text = "Remove Path";
-         this.RemovePathButton.Click += new System.EventHandler(this.RemovePathButton_Click);
-         // 
-         // RefreshSearchPathButton
-         // 
-         this.RefreshSearchPathButton.Location = new System.Drawing.Point(328, 152);
-         this.RefreshSearchPathButton.Name = "RefreshSearchPathButton";
-         this.RefreshSearchPathButton.Size = new System.Drawing.Size(72, 24);
-         this.RefreshSearchPathButton.TabIndex = 17;
-         this.RefreshSearchPathButton.Text = "Refresh";
-         this.RefreshSearchPathButton.Click += new System.EventHandler(this.RefreshSearchPathButton_Click);
-         // 
-         // TestAppForm
-         // 
-         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
-         this.ClientSize = new System.Drawing.Size(624, 309);
-         this.Controls.AddRange(new System.Windows.Forms.Control[] {
-                                                                      this.RefreshSearchPathButton,
-                                                                      this.RemovePathButton,
-                                                                      this.NewSearchPathText,
-                                                                      this.RefreshEnumList,
-                                                                      this.label3,
-                                                                      this.EnumList,
-                                                                      this.EnumFilesPath,
-                                                                      this.label1,
-                                                                      this.SearchPathList,
-                                                                      this.CDDrivesList,
-                                                                      this.RefreshCDsButton,
-                                                                      this.label2,
-                                                                      this.AddSearchPathButton});
-         this.Name = "TestAppForm";
-         this.Text = "PhysFS Test Application";
-         this.Load += new System.EventHandler(this.TestAppForm_Load);
-         this.ResumeLayout(false);
-
-      }
-		#endregion
-
-		/// <summary>
-		/// The main entry point for the application.
-		/// </summary>
-		[STAThread]
-		static void Main() 
-		{
-         Application.Run(new TestAppForm());
-		}
-
-      private void TestAppForm_Load(object sender, System.EventArgs e)
-      {
-      
-      }
-
-      private void RefreshCDsButton_Click(object sender, System.EventArgs e)
-      {
-         // Clear ths listbox if it contains any items
-         CDDrivesList.Items.Clear();
-         // Add the items to the list
-         CDDrivesList.Items.AddRange(PhysFS.GetCDROMDrives());
-      }
-
-      private void RefreshSearchPathButton_Click(object sender, System.EventArgs e)
-      {
-         // Clear ths listbox if it contains any items
-         SearchPathList.Items.Clear();
-         // Add the items to the list
-         SearchPathList.Items.AddRange(PhysFS.GetSearchPath());
-      }
-
-      private void AddSearchPathButton_Click(object sender, System.EventArgs e)
-      {
-         // Add search path
-         PhysFS.AddToSearchPath(NewSearchPathText.Text, false);
-         // Clear ths listbox if it contains any items
-         SearchPathList.Items.Clear();
-         // Add the items to the list
-         SearchPathList.Items.AddRange(PhysFS.GetSearchPath());
-      }
-
-      private void RemovePathButton_Click(object sender, System.EventArgs e)
-      {
-         if(SearchPathList.SelectedItem != null)
-         {
-            PhysFS.RemoveFromSearchPath(SearchPathList.SelectedItem.ToString());
-            // Clear ths listbox if it contains any items
-            SearchPathList.Items.Clear();
-            // Add the items to the list
-            SearchPathList.Items.AddRange(PhysFS.GetSearchPath());
-         }
-      }
-
-      private void RefreshEnumList_Click(object sender, System.EventArgs e)
-      {
-         EnumList.Items.Clear();
-         EnumList.Items.AddRange(PhysFS.EnumerateFiles(EnumFilesPath.Text));
-      }
-	}
-}
+using System;
+using System.Drawing;
+using System.Collections;
+using System.ComponentModel;
+using System.Windows.Forms;
+using System.Data;
+using System.IO;
+using PhysFS_NET;
+
+namespace TestApp
+{
+	/// <summary>
+	/// Summary description for Form1.
+	/// </summary>
+	public class TestAppForm : System.Windows.Forms.Form
+	{
+      private System.Windows.Forms.Label label2;
+      private System.Windows.Forms.Button RefreshCDsButton;
+      private System.Windows.Forms.ListBox CDDrivesList;
+      private System.Windows.Forms.ListBox SearchPathList;
+      private System.Windows.Forms.Label label1;
+      private System.Windows.Forms.TextBox EnumFilesPath;
+      private System.Windows.Forms.ListBox EnumList;
+      private System.Windows.Forms.Label label3;
+      private System.Windows.Forms.TextBox NewSearchPathText;
+      private System.Windows.Forms.Button AddSearchPathButton;
+      private System.Windows.Forms.Button RemovePathButton;
+      private System.Windows.Forms.Button RefreshEnumList;
+      private System.Windows.Forms.Button RefreshSearchPathButton;
+		/// <summary>
+		/// Required designer variable.
+		/// </summary>
+		private System.ComponentModel.Container components = null;
+
+		public TestAppForm()
+		{
+			//
+			// Required for Windows Form Designer support
+			//
+			InitializeComponent();
+
+			//
+			// TODO: Add any constructor code after InitializeComponent call
+			//
+		}
+
+		/// <summary>
+		/// Clean up any resources being used.
+		/// </summary>
+		protected override void Dispose( bool disposing )
+		{
+			if( disposing )
+			{
+				if (components != null) 
+				{
+					components.Dispose();
+				}
+			}
+			base.Dispose( disposing );
+		}
+
+		#region Windows Form Designer generated code
+		/// <summary>
+		/// Required method for Designer support - do not modify
+		/// the contents of this method with the code editor.
+		/// </summary>
+		private void InitializeComponent()
+		{
+         this.label2 = new System.Windows.Forms.Label();
+         this.RefreshCDsButton = new System.Windows.Forms.Button();
+         this.CDDrivesList = new System.Windows.Forms.ListBox();
+         this.SearchPathList = new System.Windows.Forms.ListBox();
+         this.label1 = new System.Windows.Forms.Label();
+         this.EnumFilesPath = new System.Windows.Forms.TextBox();
+         this.EnumList = new System.Windows.Forms.ListBox();
+         this.label3 = new System.Windows.Forms.Label();
+         this.RefreshEnumList = new System.Windows.Forms.Button();
+         this.NewSearchPathText = new System.Windows.Forms.TextBox();
+         this.AddSearchPathButton = new System.Windows.Forms.Button();
+         this.RemovePathButton = new System.Windows.Forms.Button();
+         this.RefreshSearchPathButton = new System.Windows.Forms.Button();
+         this.SuspendLayout();
+         // 
+         // label2
+         // 
+         this.label2.Location = new System.Drawing.Point(8, 8);
+         this.label2.Name = "label2";
+         this.label2.Size = new System.Drawing.Size(136, 16);
+         this.label2.TabIndex = 2;
+         this.label2.Text = "Available CD-ROM Drives";
+         // 
+         // RefreshCDsButton
+         // 
+         this.RefreshCDsButton.Location = new System.Drawing.Point(8, 152);
+         this.RefreshCDsButton.Name = "RefreshCDsButton";
+         this.RefreshCDsButton.Size = new System.Drawing.Size(72, 24);
+         this.RefreshCDsButton.TabIndex = 4;
+         this.RefreshCDsButton.Text = "Refresh";
+         this.RefreshCDsButton.Click += new System.EventHandler(this.RefreshCDsButton_Click);
+         // 
+         // CDDrivesList
+         // 
+         this.CDDrivesList.Location = new System.Drawing.Point(8, 24);
+         this.CDDrivesList.Name = "CDDrivesList";
+         this.CDDrivesList.Size = new System.Drawing.Size(136, 121);
+         this.CDDrivesList.TabIndex = 7;
+         // 
+         // SearchPathList
+         // 
+         this.SearchPathList.Location = new System.Drawing.Point(152, 24);
+         this.SearchPathList.Name = "SearchPathList";
+         this.SearchPathList.Size = new System.Drawing.Size(248, 95);
+         this.SearchPathList.TabIndex = 8;
+         // 
+         // label1
+         // 
+         this.label1.Location = new System.Drawing.Point(152, 8);
+         this.label1.Name = "label1";
+         this.label1.Size = new System.Drawing.Size(136, 16);
+         this.label1.TabIndex = 10;
+         this.label1.Text = "Search Path";
+         // 
+         // EnumFilesPath
+         // 
+         this.EnumFilesPath.Location = new System.Drawing.Point(408, 128);
+         this.EnumFilesPath.Name = "EnumFilesPath";
+         this.EnumFilesPath.Size = new System.Drawing.Size(208, 20);
+         this.EnumFilesPath.TabIndex = 11;
+         this.EnumFilesPath.Text = "";
+         // 
+         // EnumList
+         // 
+         this.EnumList.Location = new System.Drawing.Point(408, 24);
+         this.EnumList.Name = "EnumList";
+         this.EnumList.Size = new System.Drawing.Size(208, 95);
+         this.EnumList.TabIndex = 12;
+         // 
+         // label3
+         // 
+         this.label3.Location = new System.Drawing.Point(408, 8);
+         this.label3.Name = "label3";
+         this.label3.Size = new System.Drawing.Size(136, 16);
+         this.label3.TabIndex = 13;
+         this.label3.Text = "Enumerate Files";
+         // 
+         // RefreshEnumList
+         // 
+         this.RefreshEnumList.Location = new System.Drawing.Point(544, 152);
+         this.RefreshEnumList.Name = "RefreshEnumList";
+         this.RefreshEnumList.Size = new System.Drawing.Size(72, 24);
+         this.RefreshEnumList.TabIndex = 14;
+         this.RefreshEnumList.Text = "Refresh";
+         this.RefreshEnumList.Click += new System.EventHandler(this.RefreshEnumList_Click);
+         // 
+         // NewSearchPathText
+         // 
+         this.NewSearchPathText.Location = new System.Drawing.Point(152, 128);
+         this.NewSearchPathText.Name = "NewSearchPathText";
+         this.NewSearchPathText.Size = new System.Drawing.Size(248, 20);
+         this.NewSearchPathText.TabIndex = 15;
+         this.NewSearchPathText.Text = "";
+         // 
+         // AddSearchPathButton
+         // 
+         this.AddSearchPathButton.Location = new System.Drawing.Point(152, 152);
+         this.AddSearchPathButton.Name = "AddSearchPathButton";
+         this.AddSearchPathButton.Size = new System.Drawing.Size(72, 24);
+         this.AddSearchPathButton.TabIndex = 9;
+         this.AddSearchPathButton.Text = "Add Path";
+         this.AddSearchPathButton.Click += new System.EventHandler(this.AddSearchPathButton_Click);
+         // 
+         // RemovePathButton
+         // 
+         this.RemovePathButton.Location = new System.Drawing.Point(232, 152);
+         this.RemovePathButton.Name = "RemovePathButton";
+         this.RemovePathButton.Size = new System.Drawing.Size(88, 24);
+         this.RemovePathButton.TabIndex = 16;
+         this.RemovePathButton.Text = "Remove Path";
+         this.RemovePathButton.Click += new System.EventHandler(this.RemovePathButton_Click);
+         // 
+         // RefreshSearchPathButton
+         // 
+         this.RefreshSearchPathButton.Location = new System.Drawing.Point(328, 152);
+         this.RefreshSearchPathButton.Name = "RefreshSearchPathButton";
+         this.RefreshSearchPathButton.Size = new System.Drawing.Size(72, 24);
+         this.RefreshSearchPathButton.TabIndex = 17;
+         this.RefreshSearchPathButton.Text = "Refresh";
+         this.RefreshSearchPathButton.Click += new System.EventHandler(this.RefreshSearchPathButton_Click);
+         // 
+         // TestAppForm
+         // 
+         this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
+         this.ClientSize = new System.Drawing.Size(624, 309);
+         this.Controls.AddRange(new System.Windows.Forms.Control[] {
+                                                                      this.RefreshSearchPathButton,
+                                                                      this.RemovePathButton,
+                                                                      this.NewSearchPathText,
+                                                                      this.RefreshEnumList,
+                                                                      this.label3,
+                                                                      this.EnumList,
+                                                                      this.EnumFilesPath,
+                                                                      this.label1,
+                                                                      this.SearchPathList,
+                                                                      this.CDDrivesList,
+                                                                      this.RefreshCDsButton,
+                                                                      this.label2,
+                                                                      this.AddSearchPathButton});
+         this.Name = "TestAppForm";
+         this.Text = "PhysFS Test Application";
+         this.Load += new System.EventHandler(this.TestAppForm_Load);
+         this.ResumeLayout(false);
+
+      }
+		#endregion
+
+		/// <summary>
+		/// The main entry point for the application.
+		/// </summary>
+		[STAThread]
+		static void Main() 
+		{
+         Application.Run(new TestAppForm());
+		}
+
+      private void TestAppForm_Load(object sender, System.EventArgs e)
+      {
+      
+      }
+
+      private void RefreshCDsButton_Click(object sender, System.EventArgs e)
+      {
+         // Clear ths listbox if it contains any items
+         CDDrivesList.Items.Clear();
+         // Add the items to the list
+         CDDrivesList.Items.AddRange(PhysFS.GetCDROMDrives());
+      }
+
+      private void RefreshSearchPathButton_Click(object sender, System.EventArgs e)
+      {
+         // Clear ths listbox if it contains any items
+         SearchPathList.Items.Clear();
+         // Add the items to the list
+         SearchPathList.Items.AddRange(PhysFS.GetSearchPath());
+      }
+
+      private void AddSearchPathButton_Click(object sender, System.EventArgs e)
+      {
+         // Add search path
+         PhysFS.AddToSearchPath(NewSearchPathText.Text, false);
+         // Clear ths listbox if it contains any items
+         SearchPathList.Items.Clear();
+         // Add the items to the list
+         SearchPathList.Items.AddRange(PhysFS.GetSearchPath());
+      }
+
+      private void RemovePathButton_Click(object sender, System.EventArgs e)
+      {
+         if(SearchPathList.SelectedItem != null)
+         {
+            PhysFS.RemoveFromSearchPath(SearchPathList.SelectedItem.ToString());
+            // Clear ths listbox if it contains any items
+            SearchPathList.Items.Clear();
+            // Add the items to the list
+            SearchPathList.Items.AddRange(PhysFS.GetSearchPath());
+         }
+      }
+
+      private void RefreshEnumList_Click(object sender, System.EventArgs e)
+      {
+         EnumList.Items.Clear();
+         EnumList.Items.AddRange(PhysFS.EnumerateFiles(EnumFilesPath.Text));
+      }
+	}
+}

Modified: tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestAppForm.resx
===================================================================
--- branches/stable-1.0/extras/PhysFS.NET/TestApp/TestAppForm.resx	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/PhysFS.NET/TestApp/TestAppForm.resx	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,102 +1,102 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-            Microsoft ResX Schema 
-        
-            Version 1.3
-                
-            The primary goals of this format is to allow a simple XML format 
-            that is mostly human readable. The generation and parsing of the 
-            various data types are done through the TypeConverter classes 
-            associated with the data types.
-        
-            Example:
-        
-                ... ado.net/XML headers & schema ...
-                <resheader name="resmimetype">text/microsoft-resx</resheader>
-                <resheader name="version">1.3</resheader>
-                <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-                <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-                <data name="Name1">this is my long string</data>
-                <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-                <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-                    [base64 mime encoded serialized .NET Framework object]
-                </data>
-                <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-                    [base64 mime encoded string representing a byte array form of the .NET Framework object]
-                </data>
-        
-            There are any number of "resheader" rows that contain simple 
-            name/value pairs.
-            
-            Each data row contains a name, and value. The row also contains a 
-            type or mimetype. Type corresponds to a .NET class that support 
-            text/value conversion through the TypeConverter architecture. 
-            Classes that don't support this are serialized and stored with the 
-            mimetype set.
-                     
-            The mimetype is used for serialized objects, and tells the 
-            ResXResourceReader how to depersist the object. This is currently not 
-            extensible. For a given mimetype the value must be set accordingly:
-        
-            Note - application/x-microsoft.net.object.binary.base64 is the format 
-                   that the ResXResourceWriter will generate, however the reader can 
-                   read any of the formats listed below.
-        
-            mimetype: application/x-microsoft.net.object.binary.base64
-            value   : The object must be serialized with 
-                    : System.Serialization.Formatters.Binary.BinaryFormatter
-                    : and then encoded with base64 encoding.
-        
-            mimetype: application/x-microsoft.net.object.soap.base64
-            value   : The object must be serialized with 
-                    : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-                    : and then encoded with base64 encoding.
-            mimetype: application/x-microsoft.net.object.bytearray.base64
-            value   : The object must be serialized into a byte array 
-                    : using a System.ComponentModel.TypeConverter
-                    : and then encoded with base64 encoding.
-        -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>1.3</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <data name="$this.Name">
-    <value>TestAppForm</value>
-  </data>
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+            Microsoft ResX Schema 
+        
+            Version 1.3
+                
+            The primary goals of this format is to allow a simple XML format 
+            that is mostly human readable. The generation and parsing of the 
+            various data types are done through the TypeConverter classes 
+            associated with the data types.
+        
+            Example:
+        
+                ... ado.net/XML headers & schema ...
+                <resheader name="resmimetype">text/microsoft-resx</resheader>
+                <resheader name="version">1.3</resheader>
+                <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+                <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+                <data name="Name1">this is my long string</data>
+                <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+                <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+                    [base64 mime encoded serialized .NET Framework object]
+                </data>
+                <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+                    [base64 mime encoded string representing a byte array form of the .NET Framework object]
+                </data>
+        
+            There are any number of "resheader" rows that contain simple 
+            name/value pairs.
+            
+            Each data row contains a name, and value. The row also contains a 
+            type or mimetype. Type corresponds to a .NET class that support 
+            text/value conversion through the TypeConverter architecture. 
+            Classes that don't support this are serialized and stored with the 
+            mimetype set.
+                     
+            The mimetype is used for serialized objects, and tells the 
+            ResXResourceReader how to depersist the object. This is currently not 
+            extensible. For a given mimetype the value must be set accordingly:
+        
+            Note - application/x-microsoft.net.object.binary.base64 is the format 
+                   that the ResXResourceWriter will generate, however the reader can 
+                   read any of the formats listed below.
+        
+            mimetype: application/x-microsoft.net.object.binary.base64
+            value   : The object must be serialized with 
+                    : System.Serialization.Formatters.Binary.BinaryFormatter
+                    : and then encoded with base64 encoding.
+        
+            mimetype: application/x-microsoft.net.object.soap.base64
+            value   : The object must be serialized with 
+                    : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+                    : and then encoded with base64 encoding.
+            mimetype: application/x-microsoft.net.object.bytearray.base64
+            value   : The object must be serialized into a byte array 
+                    : using a System.ComponentModel.TypeConverter
+                    : and then encoded with base64 encoding.
+        -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>1.3</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="$this.Name">
+    <value>TestAppForm</value>
+  </data>
 </root>
\ No newline at end of file

Modified: tags/release-1.0.1/extras/physfs_rb/installer.rb
===================================================================
--- branches/stable-1.0/extras/physfs_rb/installer.rb	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/extras/physfs_rb/installer.rb	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,4 +1,4 @@
-# $Id: installer.rb,v 1.3 2003/07/21 03:46:50 icculus Exp $
+# $Id$
 
 require 'rbconfig'
 require 'find'

Deleted: tags/release-1.0.1/physfs_internal.h
===================================================================
--- branches/stable-1.0/physfs_internal.h	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/physfs_internal.h	2005-07-24 01:05:49 UTC (rev 758)
@@ -1,1695 +0,0 @@
-/*
- * Internal function/structure declaration. Do NOT include in your
- *  application.
- *
- * Please see the file LICENSE in the source's root directory.
- *
- *  This file written by Ryan C. Gordon.
- */
-
-#ifndef _INCLUDE_PHYSFS_INTERNAL_H_
-#define _INCLUDE_PHYSFS_INTERNAL_H_
-
-#ifndef __PHYSICSFS_INTERNAL__
-#error Do not include this header from your applications.
-#endif
-
-#include "physfs.h"
-
-#ifdef HAVE_ASSERT_H
-#include <assert.h>
-#else
-#define assert(x)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/* The LANG section. */
-/*  please send questions/translations to Ryan: icculus at clutteredmind.org. */
-
-#if (!defined PHYSFS_LANG)
-#  define PHYSFS_LANG PHYSFS_LANG_ENGLISH
-#endif
-
-#define PHYSFS_LANG_ENGLISH            1  /* English by Ryan C. Gordon  */
-#define PHYSFS_LANG_RUSSIAN_KOI8_R     2  /* Russian by Ed Sinjiashvili */
-#define PHYSFS_LANG_RUSSIAN_CP1251     3  /* Russian by Ed Sinjiashvili */
-#define PHYSFS_LANG_RUSSIAN_CP866      4  /* Russian by Ed Sinjiashvili */
-#define PHYSFS_LANG_RUSSIAN_ISO_8859_5 5  /* Russian by Ed Sinjiashvili */
-#define PHYSFS_LANG_SPANISH            6  /* Spanish by Pedro J. Pérez  */
-#define PHYSFS_LANG_FRENCH             7  /*  French by Stéphane Peter  */
-#define PHYSFS_LANG_GERMAN             8  /*  German by Michael Renner  */
-#define PHYSFS_LANG_PORTUGUESE_BR      9  /* pt-br by Danny Angelo Carminati Grein  */
-
-#if (PHYSFS_LANG == PHYSFS_LANG_ENGLISH)
- #define DIR_ARCHIVE_DESCRIPTION  "Non-archive, direct filesystem I/O"
- #define GRP_ARCHIVE_DESCRIPTION  "Build engine Groupfile format"
- #define HOG_ARCHIVE_DESCRIPTION  "Descent I/II HOG file format"
- #define MVL_ARCHIVE_DESCRIPTION  "Descent II Movielib format"
- #define QPAK_ARCHIVE_DESCRIPTION "Quake I/II format"
- #define ZIP_ARCHIVE_DESCRIPTION  "PkZip/WinZip/Info-Zip compatible"
- #define WAD_ARCHIVE_DESCRIPTION  "DOOM engine format"
-
- #define ERR_IS_INITIALIZED       "Already initialized"
- #define ERR_NOT_INITIALIZED      "Not initialized"
- #define ERR_INVALID_ARGUMENT     "Invalid argument"
- #define ERR_FILES_STILL_OPEN     "Files still open"
- #define ERR_NO_DIR_CREATE        "Failed to create directories"
- #define ERR_OUT_OF_MEMORY        "Out of memory"
- #define ERR_NOT_IN_SEARCH_PATH   "No such entry in search path"
- #define ERR_NOT_SUPPORTED        "Operation not supported"
- #define ERR_UNSUPPORTED_ARCHIVE  "Archive type unsupported"
- #define ERR_NOT_A_HANDLE         "Not a file handle"
- #define ERR_INSECURE_FNAME       "Insecure filename"
- #define ERR_SYMLINK_DISALLOWED   "Symbolic links are disabled"
- #define ERR_NO_WRITE_DIR         "Write directory is not set"
- #define ERR_NO_SUCH_FILE         "File not found"
- #define ERR_NO_SUCH_PATH         "Path not found"
- #define ERR_NO_SUCH_VOLUME       "Volume not found"
- #define ERR_PAST_EOF             "Past end of file"
- #define ERR_ARC_IS_READ_ONLY     "Archive is read-only"
- #define ERR_IO_ERROR             "I/O error"
- #define ERR_CANT_SET_WRITE_DIR   "Can't set write directory"
- #define ERR_SYMLINK_LOOP         "Infinite symbolic link loop"
- #define ERR_COMPRESSION          "(De)compression error"
- #define ERR_NOT_IMPLEMENTED      "Not implemented"
- #define ERR_OS_ERROR             "Operating system reported error"
- #define ERR_FILE_EXISTS          "File already exists"
- #define ERR_NOT_A_FILE           "Not a file"
- #define ERR_NOT_A_DIR            "Not a directory"
- #define ERR_NOT_AN_ARCHIVE       "Not an archive"
- #define ERR_CORRUPTED            "Corrupted archive"
- #define ERR_SEEK_OUT_OF_RANGE    "Seek out of range"
- #define ERR_BAD_FILENAME         "Bad filename"
- #define ERR_PHYSFS_BAD_OS_CALL   "(BUG) PhysicsFS made a bad system call"
- #define ERR_ARGV0_IS_NULL        "argv0 is NULL"
- #define ERR_ZLIB_NEED_DICT       "zlib: need dictionary"
- #define ERR_ZLIB_DATA_ERROR      "zlib: data error"
- #define ERR_ZLIB_MEMORY_ERROR    "zlib: memory error"
- #define ERR_ZLIB_BUFFER_ERROR    "zlib: buffer error"
- #define ERR_ZLIB_VERSION_ERROR   "zlib: version error"
- #define ERR_ZLIB_UNKNOWN_ERROR   "zlib: unknown error"
- #define ERR_SEARCHPATH_TRUNC     "Search path was truncated"
- #define ERR_GETMODFN_TRUNC       "GetModuleFileName() was truncated"
- #define ERR_GETMODFN_NO_DIR      "GetModuleFileName() had no dir"
- #define ERR_DISK_FULL            "Disk is full"
- #define ERR_DIRECTORY_FULL       "Directory full"
- #define ERR_MACOS_GENERIC        "MacOS reported error (%d)"
- #define ERR_OS2_GENERIC          "OS/2 reported error (%d)"
- #define ERR_VOL_LOCKED_HW        "Volume is locked through hardware"
- #define ERR_VOL_LOCKED_SW        "Volume is locked through software"
- #define ERR_FILE_LOCKED          "File is locked"
- #define ERR_FILE_OR_DIR_BUSY     "File/directory is busy"
- #define ERR_FILE_ALREADY_OPEN_W  "File already open for writing"
- #define ERR_FILE_ALREADY_OPEN_R  "File already open for reading"
- #define ERR_INVALID_REFNUM       "Invalid reference number"
- #define ERR_GETTING_FILE_POS     "Error getting file position"
- #define ERR_VOLUME_OFFLINE       "Volume is offline"
- #define ERR_PERMISSION_DENIED    "Permission denied"
- #define ERR_VOL_ALREADY_ONLINE   "Volume already online"
- #define ERR_NO_SUCH_DRIVE        "No such drive"
- #define ERR_NOT_MAC_DISK         "Not a Macintosh disk"
- #define ERR_VOL_EXTERNAL_FS      "Volume belongs to an external filesystem"
- #define ERR_PROBLEM_RENAME       "Problem during rename"
- #define ERR_BAD_MASTER_BLOCK     "Bad master directory block"
- #define ERR_CANT_MOVE_FORBIDDEN  "Attempt to move forbidden"
- #define ERR_WRONG_VOL_TYPE       "Wrong volume type"
- #define ERR_SERVER_VOL_LOST      "Server volume has been disconnected"
- #define ERR_FILE_ID_NOT_FOUND    "File ID not found"
- #define ERR_FILE_ID_EXISTS       "File ID already exists"
- #define ERR_SERVER_NO_RESPOND    "Server not responding"
- #define ERR_USER_AUTH_FAILED     "User authentication failed"
- #define ERR_PWORD_EXPIRED        "Password has expired on server"
- #define ERR_ACCESS_DENIED        "Access denied"
- #define ERR_NOT_A_DOS_DISK       "Not a DOS disk"
- #define ERR_SHARING_VIOLATION    "Sharing violation"
- #define ERR_CANNOT_MAKE          "Cannot make"
- #define ERR_DEV_IN_USE           "Device already in use"
- #define ERR_OPEN_FAILED          "Open failed"
- #define ERR_PIPE_BUSY            "Pipe is busy"
- #define ERR_SHARING_BUF_EXCEEDED "Sharing buffer exceeded"
- #define ERR_TOO_MANY_HANDLES     "Too many open handles"
- #define ERR_SEEK_ERROR           "Seek error"
- #define ERR_DEL_CWD              "Trying to delete current working directory"
- #define ERR_WRITE_PROTECT_ERROR  "Write protect error"
- #define ERR_WRITE_FAULT          "Write fault"
- #define ERR_LOCK_VIOLATION       "Lock violation"
- #define ERR_GEN_FAILURE          "General failure"
- #define ERR_UNCERTAIN_MEDIA      "Uncertain media"
- #define ERR_PROT_VIOLATION       "Protection violation"
- #define ERR_BROKEN_PIPE          "Broken pipe"
-
-#elif (PHYSFS_LANG == PHYSFS_LANG_GERMAN)
- #define DIR_ARCHIVE_DESCRIPTION  "Kein Archiv, direkte Ein/Ausgabe in das Dateisystem"
- #define GRP_ARCHIVE_DESCRIPTION  "Build engine Groupfile format"
- #define HOG_ARCHIVE_DESCRIPTION  "Descent I/II HOG file format"
- #define MVL_ARCHIVE_DESCRIPTION  "Descent II Movielib format"
- #define QPAK_ARCHIVE_DESCRIPTION "Quake I/II format"
- #define ZIP_ARCHIVE_DESCRIPTION  "PkZip/WinZip/Info-Zip kompatibel"
- #define WAD_ARCHIVE_DESCRIPTION  "DOOM engine format"
-
- #define ERR_IS_INITIALIZED       "Bereits initialisiert"
- #define ERR_NOT_INITIALIZED      "Nicht initialisiert"
- #define ERR_INVALID_ARGUMENT     "Ungültiges Argument"
- #define ERR_FILES_STILL_OPEN     "Dateien noch immer geöffnet"
- #define ERR_NO_DIR_CREATE        "Fehler beim Erzeugen der Verzeichnisse"
- #define ERR_OUT_OF_MEMORY        "Kein Speicher mehr frei"
- #define ERR_NOT_IN_SEARCH_PATH   "Eintrag nicht im Suchpfad enthalten"
- #define ERR_NOT_SUPPORTED        "Befehl nicht unterstützt"
- #define ERR_UNSUPPORTED_ARCHIVE  "Archiv-Typ nicht unterstützt"
- #define ERR_NOT_A_HANDLE         "Ist kein Dateideskriptor"
- #define ERR_INSECURE_FNAME       "Unsicherer Dateiname"
- #define ERR_SYMLINK_DISALLOWED   "Symbolische Verweise deaktiviert"
- #define ERR_NO_WRITE_DIR         "Schreibverzeichnis ist nicht gesetzt"
- #define ERR_NO_SUCH_FILE         "Datei nicht gefunden"
- #define ERR_NO_SUCH_PATH         "Pfad nicht gefunden"
- #define ERR_NO_SUCH_VOLUME       "Datencontainer nicht gefunden"
- #define ERR_PAST_EOF             "Hinter dem Ende der Datei"
- #define ERR_ARC_IS_READ_ONLY     "Archiv ist schreibgeschützt"
- #define ERR_IO_ERROR             "Ein/Ausgabe Fehler"
- #define ERR_CANT_SET_WRITE_DIR   "Kann Schreibverzeichnis nicht setzen"
- #define ERR_SYMLINK_LOOP         "Endlosschleife durch symbolische Verweise"
- #define ERR_COMPRESSION          "(De)Kompressionsfehler"
- #define ERR_NOT_IMPLEMENTED      "Nicht implementiert"
- #define ERR_OS_ERROR             "Betriebssystem meldete Fehler"
- #define ERR_FILE_EXISTS          "Datei existiert bereits"
- #define ERR_NOT_A_FILE           "Ist keine Datei"
- #define ERR_NOT_A_DIR            "Ist kein Verzeichnis"
- #define ERR_NOT_AN_ARCHIVE       "Ist kein Archiv"
- #define ERR_CORRUPTED            "Beschädigtes Archiv"
- #define ERR_SEEK_OUT_OF_RANGE    "Suche war ausserhalb der Reichweite"
- #define ERR_BAD_FILENAME         "Unzulässiger Dateiname"
- #define ERR_PHYSFS_BAD_OS_CALL   "(BUG) PhysicsFS verursachte einen ungültigen Systemaufruf"
- #define ERR_ARGV0_IS_NULL        "argv0 ist NULL"
- #define ERR_ZLIB_NEED_DICT       "zlib: brauche Wörterbuch"
- #define ERR_ZLIB_DATA_ERROR      "zlib: Datenfehler"
- #define ERR_ZLIB_MEMORY_ERROR    "zlib: Speicherfehler"
- #define ERR_ZLIB_BUFFER_ERROR    "zlib: Bufferfehler"
- #define ERR_ZLIB_VERSION_ERROR   "zlib: Versionskonflikt"
- #define ERR_ZLIB_UNKNOWN_ERROR   "zlib: Unbekannter Fehler"
- #define ERR_SEARCHPATH_TRUNC     "Suchpfad war abgeschnitten"
- #define ERR_GETMODFN_TRUNC       "GetModuleFileName() war abgeschnitten"
- #define ERR_GETMODFN_NO_DIR      "GetModuleFileName() bekam kein Verzeichnis"
- #define ERR_DISK_FULL            "Laufwerk ist voll"
- #define ERR_DIRECTORY_FULL       "Verzeichnis ist voll"
- #define ERR_MACOS_GENERIC        "MacOS meldete Fehler (%d)"
- #define ERR_OS2_GENERIC          "OS/2 meldete Fehler (%d)"
- #define ERR_VOL_LOCKED_HW        "Datencontainer ist durch Hardware gesperrt"
- #define ERR_VOL_LOCKED_SW        "Datencontainer ist durch Software gesperrt"
- #define ERR_FILE_LOCKED          "Datei ist gesperrt"
- #define ERR_FILE_OR_DIR_BUSY     "Datei/Verzeichnis ist beschäftigt"
- #define ERR_FILE_ALREADY_OPEN_W  "Datei schon im Schreibmodus geöffnet"
- #define ERR_FILE_ALREADY_OPEN_R  "Datei schon im Lesemodus geöffnet"
- #define ERR_INVALID_REFNUM       "Ungültige Referenznummer"
- #define ERR_GETTING_FILE_POS     "Fehler beim Finden der Dateiposition"
- #define ERR_VOLUME_OFFLINE       "Datencontainer ist offline"
- #define ERR_PERMISSION_DENIED    "Zugriff verweigert"
- #define ERR_VOL_ALREADY_ONLINE   "Datencontainer ist bereits online"
- #define ERR_NO_SUCH_DRIVE        "Laufwerk nicht vorhanden"
- #define ERR_NOT_MAC_DISK         "Ist kein Macintosh Laufwerk"
- #define ERR_VOL_EXTERNAL_FS      "Datencontainer liegt auf einem externen Dateisystem"
- #define ERR_PROBLEM_RENAME       "Fehler beim Umbenennen"
- #define ERR_BAD_MASTER_BLOCK     "Beschädigter Hauptverzeichnisblock"
- #define ERR_CANT_MOVE_FORBIDDEN  "Verschieben nicht erlaubt"
- #define ERR_WRONG_VOL_TYPE       "Falscher Datencontainer-Typ"
- #define ERR_SERVER_VOL_LOST      "Datencontainer am Server wurde getrennt"
- #define ERR_FILE_ID_NOT_FOUND    "Dateikennung nicht gefunden"
- #define ERR_FILE_ID_EXISTS       "Dateikennung existiert bereits"
- #define ERR_SERVER_NO_RESPOND    "Server antwortet nicht"
- #define ERR_USER_AUTH_FAILED     "Benutzerauthentifizierung fehlgeschlagen"
- #define ERR_PWORD_EXPIRED        "Passwort am Server ist abgelaufen"
- #define ERR_ACCESS_DENIED        "Zugriff verweigert"
- #define ERR_NOT_A_DOS_DISK       "Ist kein DOS-Laufwerk"
- #define ERR_SHARING_VIOLATION    "Zugriffsverletzung"
- #define ERR_CANNOT_MAKE          "Kann nicht erzeugen"
- #define ERR_DEV_IN_USE           "Gerät wird bereits benutzt"
- #define ERR_OPEN_FAILED          "Öffnen fehlgeschlagen"
- #define ERR_PIPE_BUSY            "Pipeverbindung ist belegt"
- #define ERR_SHARING_BUF_EXCEEDED "Zugriffsbuffer überschritten"
- #define ERR_TOO_MANY_HANDLES     "Zu viele offene Dateien"
- #define ERR_SEEK_ERROR           "Fehler beim Suchen"
- #define ERR_DEL_CWD              "Aktuelles Arbeitsverzeichnis darf nicht gelöscht werden"
- #define ERR_WRITE_PROTECT_ERROR  "Schreibschutzfehler"
- #define ERR_WRITE_FAULT          "Schreibfehler"
- #define ERR_LOCK_VIOLATION       "Sperrverletzung"
- #define ERR_GEN_FAILURE          "Allgemeiner Fehler"
- #define ERR_UNCERTAIN_MEDIA      "Unsicheres Medium"
- #define ERR_PROT_VIOLATION       "Schutzverletzung"
- #define ERR_BROKEN_PIPE          "Pipeverbindung unterbrochen"
-
-#elif (PHYSFS_LANG == PHYSFS_LANG_RUSSIAN_KOI8_R)
- #define DIR_ARCHIVE_DESCRIPTION  "îÅ ÁÒÈÉ×, ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÙÊ ××ÏÄ/×Ù×ÏÄ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ"
- #define GRP_ARCHIVE_DESCRIPTION  "æÏÒÍÁÔ ÇÒÕÐÐÏ×ÏÇÏ ÆÁÊÌÁ Build engine"
- #define HOG_ARCHIVE_DESCRIPTION  "Descent I/II HOG file format"
- #define MVL_ARCHIVE_DESCRIPTION  "Descent II Movielib format"
- #define ZIP_ARCHIVE_DESCRIPTION  "PkZip/WinZip/Info-Zip ÓÏ×ÍÅÓÔÉÍÙÊ"
- #define WAD_ARCHIVE_DESCRIPTION  "DOOM engine format" // !!! FIXME: translate this line if needed
-
- #define ERR_IS_INITIALIZED       "õÖÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎ"
- #define ERR_NOT_INITIALIZED      "îÅ ÉÎÉÃÉÁÌÉÚÉÒÏ×ÁÎ"
- #define ERR_INVALID_ARGUMENT     "îÅ×ÅÒÎÙÊ ÁÒÇÕÍÅÎÔ"
- #define ERR_FILES_STILL_OPEN     "æÁÊÌÙ ÅÝÅ ÏÔËÒÙÔÙ"
- #define ERR_NO_DIR_CREATE        "îÅ ÍÏÇÕ ÓÏÚÄÁÔØ ËÁÔÁÌÏÇÉ"
- #define ERR_OUT_OF_MEMORY        "ëÏÎÞÉÌÁÓØ ÐÁÍÑÔØ"
- #define ERR_NOT_IN_SEARCH_PATH   "îÅÔ ÔÁËÏÇÏ ÜÌÅÍÅÎÔÁ × ÐÕÔÉ ÐÏÉÓËÁ"
- #define ERR_NOT_SUPPORTED        "ïÐÅÒÁÃÉÑ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ"
- #define ERR_UNSUPPORTED_ARCHIVE  "áÒÈÉ×Ù ÔÁËÏÇÏ ÔÉÐÁ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÀÔÓÑ"
- #define ERR_NOT_A_HANDLE         "îÅ ÆÁÊÌÏ×ÙÊ ÄÅÓËÒÉÐÔÏÒ"
- #define ERR_INSECURE_FNAME       "îÅÂÅÚÏÐÁÓÎÏÅ ÉÍÑ ÆÁÊÌÁ"
- #define ERR_SYMLINK_DISALLOWED   "óÉÍ×ÏÌØÎÙÅ ÓÓÙÌËÉ ÏÔËÌÀÞÅÎÙ"
- #define ERR_NO_WRITE_DIR         "ëÁÔÁÌÏÇ ÄÌÑ ÚÁÐÉÓÉ ÎÅ ÕÓÔÁÎÏ×ÌÅÎ"
- #define ERR_NO_SUCH_FILE         "æÁÊÌ ÎÅ ÎÁÊÄÅÎ"
- #define ERR_NO_SUCH_PATH         "ðÕÔØ ÎÅ ÎÁÊÄÅÎ"
- #define ERR_NO_SUCH_VOLUME       "ôÏÍ ÎÅ ÎÁÊÄÅÎ"
- #define ERR_PAST_EOF             "úÁ ËÏÎÃÏÍ ÆÁÊÌÁ"
- #define ERR_ARC_IS_READ_ONLY     "áÒÈÉ× ÔÏÌØËÏ ÄÌÑ ÞÔÅÎÉÑ"
- #define ERR_IO_ERROR             "ïÛÉÂËÁ ××ÏÄÁ/×Ù×ÏÄÁ"
- #define ERR_CANT_SET_WRITE_DIR   "îÅ ÍÏÇÕ ÕÓÔÁÎÏ×ÉÔØ ËÁÔÁÌÏÇ ÄÌÑ ÚÁÐÉÓÉ"
- #define ERR_SYMLINK_LOOP         "âÅÓËÏÎÅÞÎÙÊ ÃÉËÌ ÓÉÍ×ÏÌØÎÏÊ ÓÓÙÌËÉ"
- #define ERR_COMPRESSION          "ïÛÉÂËÁ (òÁÓ)ÐÁËÏ×ËÉ"
- #define ERR_NOT_IMPLEMENTED      "îÅ ÒÅÁÌÉÚÏ×ÁÎÏ"
- #define ERR_OS_ERROR             "ïÐÅÒÁÃÉÏÎÎÁÑ ÓÉÓÔÅÍÁ ÓÏÏÂÝÉÌÁ ÏÛÉÂËÕ"
- #define ERR_FILE_EXISTS          "æÁÊÌ ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ"
- #define ERR_NOT_A_FILE           "îÅ ÆÁÊÌ"
- #define ERR_NOT_A_DIR            "îÅ ËÁÔÁÌÏÇ"
- #define ERR_NOT_AN_ARCHIVE       "îÅ ÁÒÈÉ×"
- #define ERR_CORRUPTED            "ðÏ×ÒÅÖÄÅÎÎÙÊ ÁÒÈÉ×"
- #define ERR_SEEK_OUT_OF_RANGE    "ðÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÅ ÚÁ ÐÒÅÄÅÌÙ"
- #define ERR_BAD_FILENAME         "îÅ×ÅÒÎÏÅ ÉÍÑ ÆÁÊÌÁ"
- #define ERR_PHYSFS_BAD_OS_CALL   "(BUG) PhysicsFS ×ÙÐÏÌÎÉÌÁ ÎÅ×ÅÒÎÙÊ ÓÉÓÔÅÍÎÙÊ ×ÙÚÏ×"
- #define ERR_ARGV0_IS_NULL        "argv0 is NULL"
- #define ERR_ZLIB_NEED_DICT       "zlib: ÎÕÖÅÎ ÓÌÏ×ÁÒØ"
- #define ERR_ZLIB_DATA_ERROR      "zlib: ÏÛÉÂËÁ ÄÁÎÎÙÈ"
- #define ERR_ZLIB_MEMORY_ERROR    "zlib: ÏÛÉÂËÁ ÐÁÍÑÔÉ"
- #define ERR_ZLIB_BUFFER_ERROR    "zlib: ÏÛÉÂËÁ ÂÕÆÅÒÁ"
- #define ERR_ZLIB_VERSION_ERROR   "zlib: ÏÛÉÂËÁ ×ÅÒÓÉÉ"
- #define ERR_ZLIB_UNKNOWN_ERROR   "zlib: ÎÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ"
- #define ERR_SEARCHPATH_TRUNC     "ðÕÔØ ÐÏÉÓËÁ ÏÂÒÅÚÁÎ"
- #define ERR_GETMODFN_TRUNC       "GetModuleFileName() ÏÂÒÅÚÁÎ"
- #define ERR_GETMODFN_NO_DIR      "GetModuleFileName() ÎÅ ÐÏÌÕÞÉÌ ËÁÔÁÌÏÇ"
- #define ERR_DISK_FULL            "äÉÓË ÐÏÌÏÎ"
- #define ERR_DIRECTORY_FULL       "ëÁÔÁÌÏÇ ÐÏÌÏÎ"
- #define ERR_MACOS_GENERIC        "MacOS ÓÏÏÂÝÉÌÁ ÏÛÉÂËÕ (%d)"
- #define ERR_OS2_GENERIC          "OS/2 ÓÏÏÂÝÉÌÁ ÏÛÉÂËÕ (%d)"
- #define ERR_VOL_LOCKED_HW        "ôÏÍ ÂÌÏËÉÒÏ×ÁÎ ÁÐÐÁÒÁÔÎÏ"
- #define ERR_VOL_LOCKED_SW        "ôÏÍ ÂÌÏËÉÒÏ×ÁÎ ÐÒÏÇÒÁÍÍÎÏ"
- #define ERR_FILE_LOCKED          "æÁÊÌ ÚÁÂÌÏËÉÒÏ×ÁÎ"
- #define ERR_FILE_OR_DIR_BUSY     "æÁÊÌ/ËÁÔÁÌÏÇ ÚÁÎÑÔ"
- #define ERR_FILE_ALREADY_OPEN_W  "æÁÊÌ ÕÖÅ ÏÔËÒÙÔ ÎÁ ÚÁÐÉÓØ"
- #define ERR_FILE_ALREADY_OPEN_R  "æÁÊÌ ÕÖÅ ÏÔËÒÙÔ ÎÁ ÞÔÅÎÉÅ"
- #define ERR_INVALID_REFNUM       "îÅ×ÅÒÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÓÓÙÌÏË"
- #define ERR_GETTING_FILE_POS     "ïÛÉÂËÁ ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÐÏÚÉÃÉÉ ÆÁÊÌÁ"
- #define ERR_VOLUME_OFFLINE       "ôÏÍ ÏÔÓÏÅÄÉÎÅÎ"
- #define ERR_PERMISSION_DENIED    "ïÔËÁÚÁÎÏ × ÒÁÚÒÅÛÅÎÉÉ"
- #define ERR_VOL_ALREADY_ONLINE   "ôÏÍ ÕÖÅ ÐÏÄÓÏÅÄÉÎÅÎ"
- #define ERR_NO_SUCH_DRIVE        "îÅÔ ÔÁËÏÇÏ ÄÉÓËÁ"
- #define ERR_NOT_MAC_DISK         "îÅ ÄÉÓË Macintosh"
- #define ERR_VOL_EXTERNAL_FS      "ôÏÍ ÐÒÉÎÁÄÌÅÖÉÔ ×ÎÅÛÎÅÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ"
- #define ERR_PROBLEM_RENAME       "ðÒÏÂÌÅÍÁ ÐÒÉ ÐÅÒÅÉÍÅÎÏ×ÁÎÉÉ"
- #define ERR_BAD_MASTER_BLOCK     "ðÌÏÈÏÊ ÇÌÁ×ÎÙÊ ÂÌÏË ËÁÔÁÌÏÇÁ"
- #define ERR_CANT_MOVE_FORBIDDEN  "ðÏÐÙÔËÁ ÐÅÒÅÍÅÓÔÉÔØ ÚÁÐÒÅÝÅÎÁ"
- #define ERR_WRONG_VOL_TYPE       "îÅ×ÅÒÎÙÊ ÔÉÐ ÔÏÍÁ"
- #define ERR_SERVER_VOL_LOST      "óÅÒ×ÅÒÎÙÊ ÔÏÍ ÂÙÌ ÏÔÓÏÅÄÉÎÅÎ"
- #define ERR_FILE_ID_NOT_FOUND    "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÁÊÌÁ ÎÅ ÎÁÊÄÅÎ"
- #define ERR_FILE_ID_EXISTS       "éÄÅÎÔÉÆÉËÁÔÏÒ ÆÁÊÌÁ ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ"
- #define ERR_SERVER_NO_RESPOND    "óÅÒ×ÅÒ ÎÅ ÏÔ×ÅÞÁÅÔ"
- #define ERR_USER_AUTH_FAILED     "éÄÅÎÔÉÆÉËÁÃÉÑ ÐÏÌØÚÏ×ÁÔÅÌÑ ÎÅ ÕÄÁÌÁÓØ"
- #define ERR_PWORD_EXPIRED        "ðÁÒÏÌØ ÎÁ ÓÅÒ×ÅÒÅ ÕÓÔÁÒÅÌ"
- #define ERR_ACCESS_DENIED        "ïÔËÁÚÁÎÏ × ÄÏÓÔÕÐÅ"
- #define ERR_NOT_A_DOS_DISK       "îÅ ÄÉÓË DOS"
- #define ERR_SHARING_VIOLATION    "îÁÒÕÛÅÎÉÅ ÓÏ×ÍÅÓÔÎÏÇÏ ÄÏÓÔÕÐÁ"
- #define ERR_CANNOT_MAKE          "îÅ ÍÏÇÕ ÓÏÂÒÁÔØ"
- #define ERR_DEV_IN_USE           "õÓÔÒÏÊÓÔ×Ï ÕÖÅ ÉÓÐÏÌØÚÕÅÔÓÑ"
- #define ERR_OPEN_FAILED          "ïÔËÒÙÔÉÅ ÎÅ ÕÄÁÌÏÓØ"
- #define ERR_PIPE_BUSY            "ëÏÎ×ÅÊÅÒ ÚÁÎÑÔ"
- #define ERR_SHARING_BUF_EXCEEDED "òÁÚÄÅÌÑÅÍÙÊ ÂÕÆÅÒ ÐÅÒÅÐÏÌÎÅÎ"
- #define ERR_TOO_MANY_HANDLES     "óÌÉÛËÏÍ ÍÎÏÇÏ ÏÔËÒÙÔÙÈ ÄÅÓËÒÉÐÔÏÒÏ×"
- #define ERR_SEEK_ERROR           "ïÛÉÂËÁ ÐÏÚÉÃÉÏÎÉÒÏ×ÁÎÉÑ"
- #define ERR_DEL_CWD              "ðÏÐÙÔËÁ ÕÄÁÌÉÔØ ÔÅËÕÝÉÊ ÒÁÂÏÞÉÊ ËÁÔÁÌÏÇ"
- #define ERR_WRITE_PROTECT_ERROR  "ïÛÉÂËÁ ÚÁÝÉÔÙ ÚÁÐÉÓÉ"
- #define ERR_WRITE_FAULT          "ïÛÉÂËÁ ÚÁÐÉÓÉ"
- #define ERR_LOCK_VIOLATION       "îÁÒÕÛÅÎÉÅ ÂÌÏËÉÒÏ×ËÉ"
- #define ERR_GEN_FAILURE          "ïÂÝÉÊ ÓÂÏÊ"
- #define ERR_UNCERTAIN_MEDIA      "îÅÏÐÒÅÄÅÌÅÎÎÙÊ ÎÏÓÉÔÅÌØ"
- #define ERR_PROT_VIOLATION       "îÁÒÕÛÅÎÉÅ ÚÁÝÉÔÙ"
- #define ERR_BROKEN_PIPE          "óÌÏÍÁÎÎÙÊ ËÏÎ×ÅÊÅÒ"
-
-#elif (PHYSFS_LANG == PHYSFS_LANG_RUSSIAN_CP1251)
- #define DIR_ARCHIVE_DESCRIPTION  "Íå àðõèâ, íåïîñðåäñòâåííûé ââîä/âûâîä ôàéëîâîé ñèñòåìû"
- #define GRP_ARCHIVE_DESCRIPTION  "Ôîðìàò ãðóïïîâîãî ôàéëà Build engine"
- #define HOG_ARCHIVE_DESCRIPTION  "Descent I/II HOG file format"
- #define MVL_ARCHIVE_DESCRIPTION  "Descent II Movielib format"
- #define ZIP_ARCHIVE_DESCRIPTION  "PkZip/WinZip/Info-Zip ñîâìåñòèìûé"
- #define WAD_ARCHIVE_DESCRIPTION  "DOOM engine format" // FIXME: translate this line if needed
-
- #define ERR_IS_INITIALIZED       "Óæå èíèöèàëèçèðîâàí"
- #define ERR_NOT_INITIALIZED      "Íå èíèöèàëèçèðîâàí"
- #define ERR_INVALID_ARGUMENT     "Íåâåðíûé àðãóìåíò"
- #define ERR_FILES_STILL_OPEN     "Ôàéëû åùå îòêðûòû"
- #define ERR_NO_DIR_CREATE        "Íå ìîãó ñîçäàòü êàòàëîãè"
- #define ERR_OUT_OF_MEMORY        "Êîí÷èëàñü ïàìÿòü"
- #define ERR_NOT_IN_SEARCH_PATH   "Íåò òàêîãî ýëåìåíòà â ïóòè ïîèñêà"
- #define ERR_NOT_SUPPORTED        "Îïåðàöèÿ íå ïîääåðæèâàåòñÿ"
- #define ERR_UNSUPPORTED_ARCHIVE  "Àðõèâû òàêîãî òèïà íå ïîääåðæèâàþòñÿ"
- #define ERR_NOT_A_HANDLE         "Íå ôàéëîâûé äåñêðèïòîð"
- #define ERR_INSECURE_FNAME       "Íåáåçîïàñíîå èìÿ ôàéëà"
- #define ERR_SYMLINK_DISALLOWED   "Ñèìâîëüíûå ññûëêè îòêëþ÷åíû"
- #define ERR_NO_WRITE_DIR         "Êàòàëîã äëÿ çàïèñè íå óñòàíîâëåí"
- #define ERR_NO_SUCH_FILE         "Ôàéë íå íàéäåí"
- #define ERR_NO_SUCH_PATH         "Ïóòü íå íàéäåí"
- #define ERR_NO_SUCH_VOLUME       "Òîì íå íàéäåí"
- #define ERR_PAST_EOF             "Çà êîíöîì ôàéëà"
- #define ERR_ARC_IS_READ_ONLY     "Àðõèâ òîëüêî äëÿ ÷òåíèÿ"
- #define ERR_IO_ERROR             "Îøèáêà ââîäà/âûâîäà"
- #define ERR_CANT_SET_WRITE_DIR   "Íå ìîãó óñòàíîâèòü êàòàëîã äëÿ çàïèñè"
- #define ERR_SYMLINK_LOOP         "Áåñêîíå÷íûé öèêë ñèìâîëüíîé ññûëêè"
- #define ERR_COMPRESSION          "Îøèáêà (Ðàñ)ïàêîâêè"
- #define ERR_NOT_IMPLEMENTED      "Íå ðåàëèçîâàíî"
- #define ERR_OS_ERROR             "Îïåðàöèîííàÿ ñèñòåìà ñîîáùèëà îøèáêó"
- #define ERR_FILE_EXISTS          "Ôàéë óæå ñóùåñòâóåò"
- #define ERR_NOT_A_FILE           "Íå ôàéë"
- #define ERR_NOT_A_DIR            "Íå êàòàëîã"
- #define ERR_NOT_AN_ARCHIVE       "Íå àðõèâ"
- #define ERR_CORRUPTED            "Ïîâðåæäåííûé àðõèâ"
- #define ERR_SEEK_OUT_OF_RANGE    "Ïîçèöèîíèðîâàíèå çà ïðåäåëû"
- #define ERR_BAD_FILENAME         "Íåâåðíîå èìÿ ôàéëà"
- #define ERR_PHYSFS_BAD_OS_CALL   "(BUG) PhysicsFS âûïîëíèëà íåâåðíûé ñèñòåìíûé âûçîâ"
- #define ERR_ARGV0_IS_NULL        "argv0 is NULL"
- #define ERR_ZLIB_NEED_DICT       "zlib: íóæåí ñëîâàðü"
- #define ERR_ZLIB_DATA_ERROR      "zlib: îøèáêà äàííûõ"
- #define ERR_ZLIB_MEMORY_ERROR    "zlib: îøèáêà ïàìÿòè"
- #define ERR_ZLIB_BUFFER_ERROR    "zlib: îøèáêà áóôåðà"
- #define ERR_ZLIB_VERSION_ERROR   "zlib: îøèáêà âåðñèè"
- #define ERR_ZLIB_UNKNOWN_ERROR   "zlib: íåèçâåñòíàÿ îøèáêà"
- #define ERR_SEARCHPATH_TRUNC     "Ïóòü ïîèñêà îáðåçàí"
- #define ERR_GETMODFN_TRUNC       "GetModuleFileName() îáðåçàí"
- #define ERR_GETMODFN_NO_DIR      "GetModuleFileName() íå ïîëó÷èë êàòàëîã"
- #define ERR_DISK_FULL            "Äèñê ïîëîí"
- #define ERR_DIRECTORY_FULL       "Êàòàëîã ïîëîí"
- #define ERR_MACOS_GENERIC        "MacOS ñîîáùèëà îøèáêó (%d)"
- #define ERR_OS2_GENERIC          "OS/2 ñîîáùèëà îøèáêó (%d)"
- #define ERR_VOL_LOCKED_HW        "Òîì áëîêèðîâàí àïïàðàòíî"
- #define ERR_VOL_LOCKED_SW        "Òîì áëîêèðîâàí ïðîãðàììíî"
- #define ERR_FILE_LOCKED          "Ôàéë çàáëîêèðîâàí"
- #define ERR_FILE_OR_DIR_BUSY     "Ôàéë/êàòàëîã çàíÿò"
- #define ERR_FILE_ALREADY_OPEN_W  "Ôàéë óæå îòêðûò íà çàïèñü"
- #define ERR_FILE_ALREADY_OPEN_R  "Ôàéë óæå îòêðûò íà ÷òåíèå"
- #define ERR_INVALID_REFNUM       "Íåâåðíîå êîëè÷åñòâî ññûëîê"
- #define ERR_GETTING_FILE_POS     "Îøèáêà ïðè ïîëó÷åíèè ïîçèöèè ôàéëà"
- #define ERR_VOLUME_OFFLINE       "Òîì îòñîåäèíåí"
- #define ERR_PERMISSION_DENIED    "Îòêàçàíî â ðàçðåøåíèè"
- #define ERR_VOL_ALREADY_ONLINE   "Òîì óæå ïîäñîåäèíåí"
- #define ERR_NO_SUCH_DRIVE        "Íåò òàêîãî äèñêà"
- #define ERR_NOT_MAC_DISK         "Íå äèñê Macintosh"
- #define ERR_VOL_EXTERNAL_FS      "Òîì ïðèíàäëåæèò âíåøíåé ôàéëîâîé ñèñòåìå"
- #define ERR_PROBLEM_RENAME       "Ïðîáëåìà ïðè ïåðåèìåíîâàíèè"
- #define ERR_BAD_MASTER_BLOCK     "Ïëîõîé ãëàâíûé áëîê êàòàëîãà"
- #define ERR_CANT_MOVE_FORBIDDEN  "Ïîïûòêà ïåðåìåñòèòü çàïðåùåíà"
- #define ERR_WRONG_VOL_TYPE       "Íåâåðíûé òèï òîìà"
- #define ERR_SERVER_VOL_LOST      "Ñåðâåðíûé òîì áûë îòñîåäèíåí"
- #define ERR_FILE_ID_NOT_FOUND    "Èäåíòèôèêàòîð ôàéëà íå íàéäåí"
- #define ERR_FILE_ID_EXISTS       "Èäåíòèôèêàòîð ôàéëà óæå ñóùåñòâóåò"
- #define ERR_SERVER_NO_RESPOND    "Ñåðâåð íå îòâå÷àåò"
- #define ERR_USER_AUTH_FAILED     "Èäåíòèôèêàöèÿ ïîëüçîâàòåëÿ íå óäàëàñü"
- #define ERR_PWORD_EXPIRED        "Ïàðîëü íà ñåðâåðå óñòàðåë"
- #define ERR_ACCESS_DENIED        "Îòêàçàíî â äîñòóïå"
- #define ERR_NOT_A_DOS_DISK       "Íå äèñê DOS"
- #define ERR_SHARING_VIOLATION    "Íàðóøåíèå ñîâìåñòíîãî äîñòóïà"
- #define ERR_CANNOT_MAKE          "Íå ìîãó ñîáðàòü"
- #define ERR_DEV_IN_USE           "Óñòðîéñòâî óæå èñïîëüçóåòñÿ"
- #define ERR_OPEN_FAILED          "Îòêðûòèå íå óäàëîñü"
- #define ERR_PIPE_BUSY            "Êîíâåéåð çàíÿò"
- #define ERR_SHARING_BUF_EXCEEDED "Ðàçäåëÿåìûé áóôåð ïåðåïîëíåí"
- #define ERR_TOO_MANY_HANDLES     "Ñëèøêîì ìíîãî îòêðûòûõ äåñêðèïòîðîâ"
- #define ERR_SEEK_ERROR           "Îøèáêà ïîçèöèîíèðîâàíèÿ"
- #define ERR_DEL_CWD              "Ïîïûòêà óäàëèòü òåêóùèé ðàáî÷èé êàòàëîã"
- #define ERR_WRITE_PROTECT_ERROR  "Îøèáêà çàùèòû çàïèñè"
- #define ERR_WRITE_FAULT          "Îøèáêà çàïèñè"
- #define ERR_LOCK_VIOLATION       "Íàðóøåíèå áëîêèðîâêè"
- #define ERR_GEN_FAILURE          "Îáùèé ñáîé"
- #define ERR_UNCERTAIN_MEDIA      "Íåîïðåäåëåííûé íîñèòåëü"
- #define ERR_PROT_VIOLATION       "Íàðóøåíèå çàùèòû"
- #define ERR_BROKEN_PIPE          "Ñëîìàííûé êîíâåéåð"
-
-#elif (PHYSFS_LANG == PHYSFS_LANG_RUSSIAN_CP866)
- #define DIR_ARCHIVE_DESCRIPTION  "¥  à娢, ­¥¯®á।á⢥­­ë© ¢¢®¤/¢ë¢®¤ ä ©«®¢®© á¨á⥬ë"
- #define GRP_ARCHIVE_DESCRIPTION  "”®à¬ â £à㯯®¢®£® ä ©«  Build engine"
- #define HOG_ARCHIVE_DESCRIPTION  "Descent I/II HOG file format"
- #define MVL_ARCHIVE_DESCRIPTION  "Descent II Movielib format"
- #define ZIP_ARCHIVE_DESCRIPTION  "PkZip/WinZip/Info-Zip ᮢ¬¥á⨬ë©"
- #define WAD_ARCHIVE_DESCRIPTION  "DOOM engine format" // FIXME: Translate this line if needed
-
- #define ERR_IS_INITIALIZED       "“¦¥ ¨­¨æ¨ «¨§¨à®¢ ­"
- #define ERR_NOT_INITIALIZED      "¥ ¨­¨æ¨ «¨§¨à®¢ ­"
- #define ERR_INVALID_ARGUMENT     "¥¢¥à­ë©  à£ã¬¥­â"
- #define ERR_FILES_STILL_OPEN     "” ©«ë ¥é¥ ®âªàëâë"
- #define ERR_NO_DIR_CREATE        "¥ ¬®£ã ᮧ¤ âì ª â «®£¨"
- #define ERR_OUT_OF_MEMORY        "Š®­ç¨« áì ¯ ¬ïâì"
- #define ERR_NOT_IN_SEARCH_PATH   "¥â â ª®£® í«¥¬¥­â  ¢ ¯ã⨠¯®¨áª "
- #define ERR_NOT_SUPPORTED        "Ž¯¥à æ¨ï ­¥ ¯®¤¤¥à¦¨¢ ¥âáï"
- #define ERR_UNSUPPORTED_ARCHIVE  "€à娢ë â ª®£® ⨯  ­¥ ¯®¤¤¥à¦¨¢ îâáï"
- #define ERR_NOT_A_HANDLE         "¥ ä ©«®¢ë© ¤¥áªà¨¯â®à"
- #define ERR_INSECURE_FNAME       "¥¡¥§®¯ á­®¥ ¨¬ï ä ©« "
- #define ERR_SYMLINK_DISALLOWED   "‘¨¬¢®«ì­ë¥ áá뫪¨ ®âª«î祭ë"
- #define ERR_NO_WRITE_DIR         "Š â «®£ ¤«ï § ¯¨á¨ ­¥ ãáâ ­®¢«¥­"
- #define ERR_NO_SUCH_FILE         "” ©« ­¥ ­ ©¤¥­"
- #define ERR_NO_SUCH_PATH         "ãâì ­¥ ­ ©¤¥­"
- #define ERR_NO_SUCH_VOLUME       "’®¬ ­¥ ­ ©¤¥­"
- #define ERR_PAST_EOF             "‡  ª®­æ®¬ ä ©« "
- #define ERR_ARC_IS_READ_ONLY     "€à娢 ⮫쪮 ¤«ï ç⥭¨ï"
- #define ERR_IO_ERROR             "Žè¨¡ª  ¢¢®¤ /¢ë¢®¤ "
- #define ERR_CANT_SET_WRITE_DIR   "¥ ¬®£ã ãáâ ­®¢¨âì ª â «®£ ¤«ï § ¯¨á¨"
- #define ERR_SYMLINK_LOOP         "¥áª®­¥ç­ë© 横« ᨬ¢®«ì­®© áá뫪¨"
- #define ERR_COMPRESSION          "Žè¨¡ª  ( á)¯ ª®¢ª¨"
- #define ERR_NOT_IMPLEMENTED      "¥ ॠ«¨§®¢ ­®"
- #define ERR_OS_ERROR             "Ž¯¥à æ¨®­­ ï á¨á⥬  á®®¡é¨«  ®è¨¡ªã"
- #define ERR_FILE_EXISTS          "” ©« 㦥 áãé¥áâ¢ã¥â"
- #define ERR_NOT_A_FILE           "¥ ä ©«"
- #define ERR_NOT_A_DIR            "¥ ª â «®£"
- #define ERR_NOT_AN_ARCHIVE       "¥  à娢"
- #define ERR_CORRUPTED            "®¢à¥¦¤¥­­ë©  à娢"
- #define ERR_SEEK_OUT_OF_RANGE    "®§¨æ¨®­¨à®¢ ­¨¥ §  ¯à¥¤¥«ë"
- #define ERR_BAD_FILENAME         "¥¢¥à­®¥ ¨¬ï ä ©« "
- #define ERR_PHYSFS_BAD_OS_CALL   "(BUG) PhysicsFS ¢ë¯®«­¨«  ­¥¢¥à­ë© á¨á⥬­ë© ¢ë§®¢"
- #define ERR_ARGV0_IS_NULL        "argv0 is NULL"
- #define ERR_ZLIB_NEED_DICT       "zlib: ­ã¦¥­ á«®¢ àì"
- #define ERR_ZLIB_DATA_ERROR      "zlib: ®è¨¡ª  ¤ ­­ëå"
- #define ERR_ZLIB_MEMORY_ERROR    "zlib: ®è¨¡ª  ¯ ¬ïâ¨"
- #define ERR_ZLIB_BUFFER_ERROR    "zlib: ®è¨¡ª  ¡ãä¥à "
- #define ERR_ZLIB_VERSION_ERROR   "zlib: ®è¨¡ª  ¢¥àᨨ"
- #define ERR_ZLIB_UNKNOWN_ERROR   "zlib: ­¥¨§¢¥áâ­ ï ®è¨¡ª "
- #define ERR_SEARCHPATH_TRUNC     "ãâì ¯®¨áª  ®¡à¥§ ­"
- #define ERR_GETMODFN_TRUNC       "GetModuleFileName() ®¡à¥§ ­"
- #define ERR_GETMODFN_NO_DIR      "GetModuleFileName() ­¥ ¯®«ã稫 ª â «®£"
- #define ERR_DISK_FULL            "„¨áª ¯®«®­"
- #define ERR_DIRECTORY_FULL       "Š â «®£ ¯®«®­"
- #define ERR_MACOS_GENERIC        "MacOS á®®¡é¨«  ®è¨¡ªã (%d)"
- #define ERR_OS2_GENERIC          "OS/2 á®®¡é¨«  ®è¨¡ªã (%d)"
- #define ERR_VOL_LOCKED_HW        "’®¬ ¡«®ª¨à®¢ ­  ¯¯ à â­®"
- #define ERR_VOL_LOCKED_SW        "’®¬ ¡«®ª¨à®¢ ­ ¯à®£à ¬¬­®"
- #define ERR_FILE_LOCKED          "” ©« § ¡«®ª¨à®¢ ­"
- #define ERR_FILE_OR_DIR_BUSY     "” ©«/ª â «®£ § ­ïâ"
- #define ERR_FILE_ALREADY_OPEN_W  "” ©« 㦥 ®âªàëâ ­  § ¯¨áì"
- #define ERR_FILE_ALREADY_OPEN_R  "” ©« 㦥 ®âªàëâ ­  ç⥭¨¥"
- #define ERR_INVALID_REFNUM       "¥¢¥à­®¥ ª®«¨ç¥á⢮ ááë«®ª"
- #define ERR_GETTING_FILE_POS     "Žè¨¡ª  ¯à¨ ¯®«ã祭¨¨ ¯®§¨æ¨¨ ä ©« "
- #define ERR_VOLUME_OFFLINE       "’®¬ ®âᮥ¤¨­¥­"
- #define ERR_PERMISSION_DENIED    "Žâª § ­® ¢ à §à¥è¥­¨¨"
- #define ERR_VOL_ALREADY_ONLINE   "’®¬ 㦥 ¯®¤á®¥¤¨­¥­"
- #define ERR_NO_SUCH_DRIVE        "¥â â ª®£® ¤¨áª "
- #define ERR_NOT_MAC_DISK         "¥ ¤¨áª Macintosh"
- #define ERR_VOL_EXTERNAL_FS      "’®¬ ¯à¨­ ¤«¥¦¨â ¢­¥è­¥© ä ©«®¢®© á¨á⥬¥"
- #define ERR_PROBLEM_RENAME       "à®¡«¥¬  ¯à¨ ¯¥à¥¨¬¥­®¢ ­¨¨"
- #define ERR_BAD_MASTER_BLOCK     "«®å®© £« ¢­ë© ¡«®ª ª â «®£ "
- #define ERR_CANT_MOVE_FORBIDDEN  "®¯ë⪠ ¯¥à¥¬¥áâ¨âì § ¯à¥é¥­ "
- #define ERR_WRONG_VOL_TYPE       "¥¢¥à­ë© ⨯ ⮬ "
- #define ERR_SERVER_VOL_LOST      "‘¥à¢¥à­ë© ⮬ ¡ë« ®âᮥ¤¨­¥­"
- #define ERR_FILE_ID_NOT_FOUND    "ˆ¤¥­â¨ä¨ª â®à ä ©«  ­¥ ­ ©¤¥­"
- #define ERR_FILE_ID_EXISTS       "ˆ¤¥­â¨ä¨ª â®à ä ©«  㦥 áãé¥áâ¢ã¥â"
- #define ERR_SERVER_NO_RESPOND    "‘¥à¢¥à ­¥ ®â¢¥ç ¥â"
- #define ERR_USER_AUTH_FAILED     "ˆ¤¥­â¨ä¨ª æ¨ï ¯®«ì§®¢ â¥«ï ­¥ 㤠« áì"
- #define ERR_PWORD_EXPIRED        " à®«ì ­  á¥à¢¥à¥ ãáâ à¥«"
- #define ERR_ACCESS_DENIED        "Žâª § ­® ¢ ¤®áâ㯥"
- #define ERR_NOT_A_DOS_DISK       "¥ ¤¨áª DOS"
- #define ERR_SHARING_VIOLATION    " àã襭¨¥ ᮢ¬¥áâ­®£® ¤®áâ㯠"
- #define ERR_CANNOT_MAKE          "¥ ¬®£ã ᮡà âì"
- #define ERR_DEV_IN_USE           "“áâனá⢮ 㦥 ¨á¯®«ì§ã¥âáï"
- #define ERR_OPEN_FAILED          "Žâªàë⨥ ­¥ 㤠«®áì"
- #define ERR_PIPE_BUSY            "Š®­¢¥©¥à § ­ïâ"
- #define ERR_SHARING_BUF_EXCEEDED " §¤¥«ï¥¬ë© ¡ãä¥à ¯¥à¥¯®«­¥­"
- #define ERR_TOO_MANY_HANDLES     "‘«¨èª®¬ ¬­®£® ®âªàëâëå ¤¥áªà¨¯â®à®¢"
- #define ERR_SEEK_ERROR           "Žè¨¡ª  ¯®§¨æ¨®­¨à®¢ ­¨ï"
- #define ERR_DEL_CWD              "®¯ë⪠ 㤠«¨âì ⥪ã騩 à ¡®ç¨© ª â «®£"
- #define ERR_WRITE_PROTECT_ERROR  "Žè¨¡ª  § é¨âë § ¯¨á¨"
- #define ERR_WRITE_FAULT          "Žè¨¡ª  § ¯¨á¨"
- #define ERR_LOCK_VIOLATION       " àã襭¨¥ ¡«®ª¨à®¢ª¨"
- #define ERR_GEN_FAILURE          "Ž¡é¨© á¡®©"
- #define ERR_UNCERTAIN_MEDIA      "¥®¯à¥¤¥«¥­­ë© ­®á¨â¥«ì"
- #define ERR_PROT_VIOLATION       " àã襭¨¥ § é¨âë"
- #define ERR_BROKEN_PIPE          "‘«®¬ ­­ë© ª®­¢¥©¥à"
-
-#elif (PHYSFS_LANG == PHYSFS_LANG_RUSSIAN_ISO_8859_5)
- #define DIR_ARCHIVE_DESCRIPTION  "½Õ ÐàåØÒ, ÝÕßÞáàÕÔáâÒÕÝÝëÙ ÒÒÞÔ/ÒëÒÞÔ äÐÙÛÞÒÞÙ áØáâÕÜë"
- #define GRP_ARCHIVE_DESCRIPTION  "ÄÞàÜÐâ ÓàãßßÞÒÞÓÞ äÐÙÛÐ Build engine"
- #define HOG_ARCHIVE_DESCRIPTION  "Descent I/II HOG file format"
- #define MVL_ARCHIVE_DESCRIPTION  "Descent II Movielib format"
- #define ZIP_ARCHIVE_DESCRIPTION  "PkZip/WinZip/Info-Zip áÞÒÜÕáâØÜëÙ"
- #define WAD_ARCHIVE_DESCRIPTION  "DOOM engine format"  // FIXME: translate this line if needed
-
- #define ERR_IS_INITIALIZED       "ÃÖÕ ØÝØæØÐÛØ×ØàÞÒÐÝ"
- #define ERR_NOT_INITIALIZED      "½Õ ØÝØæØÐÛØ×ØàÞÒÐÝ"
- #define ERR_INVALID_ARGUMENT     "½ÕÒÕàÝëÙ ÐàÓãÜÕÝâ"
- #define ERR_FILES_STILL_OPEN     "ÄÐÙÛë ÕéÕ ÞâÚàëâë"
- #define ERR_NO_DIR_CREATE        "½Õ ÜÞÓã áÞ×ÔÐâì ÚÐâÐÛÞÓØ"
- #define ERR_OUT_OF_MEMORY        "ºÞÝçØÛÐáì ßÐÜïâì"
- #define ERR_NOT_IN_SEARCH_PATH   "½Õâ âÐÚÞÓÞ íÛÕÜÕÝâÐ Ò ßãâØ ßÞØáÚÐ"
- #define ERR_NOT_SUPPORTED        "¾ßÕàÐæØï ÝÕ ßÞÔÔÕàÖØÒÐÕâáï"
- #define ERR_UNSUPPORTED_ARCHIVE  "°àåØÒë âÐÚÞÓÞ âØßÐ ÝÕ ßÞÔÔÕàÖØÒÐîâáï"
- #define ERR_NOT_A_HANDLE         "½Õ äÐÙÛÞÒëÙ ÔÕáÚàØßâÞà"
- #define ERR_INSECURE_FNAME       "½ÕÑÕ×ÞßÐáÝÞÕ ØÜï äÐÙÛÐ"
- #define ERR_SYMLINK_DISALLOWED   "ÁØÜÒÞÛìÝëÕ ááëÛÚØ ÞâÚÛîçÕÝë"
- #define ERR_NO_WRITE_DIR         "ºÐâÐÛÞÓ ÔÛï ×ÐßØáØ ÝÕ ãáâÐÝÞÒÛÕÝ"
- #define ERR_NO_SUCH_FILE         "ÄÐÙÛ ÝÕ ÝÐÙÔÕÝ"
- #define ERR_NO_SUCH_PATH         "¿ãâì ÝÕ ÝÐÙÔÕÝ"
- #define ERR_NO_SUCH_VOLUME       "ÂÞÜ ÝÕ ÝÐÙÔÕÝ"
- #define ERR_PAST_EOF             "·Ð ÚÞÝæÞÜ äÐÙÛÐ"
- #define ERR_ARC_IS_READ_ONLY     "°àåØÒ âÞÛìÚÞ ÔÛï çâÕÝØï"
- #define ERR_IO_ERROR             "¾èØÑÚÐ ÒÒÞÔÐ/ÒëÒÞÔÐ"
- #define ERR_CANT_SET_WRITE_DIR   "½Õ ÜÞÓã ãáâÐÝÞÒØâì ÚÐâÐÛÞÓ ÔÛï ×ÐßØáØ"
- #define ERR_SYMLINK_LOOP         "±ÕáÚÞÝÕçÝëÙ æØÚÛ áØÜÒÞÛìÝÞÙ ááëÛÚØ"
- #define ERR_COMPRESSION          "¾èØÑÚÐ (ÀÐá)ßÐÚÞÒÚØ"
- #define ERR_NOT_IMPLEMENTED      "½Õ àÕÐÛØ×ÞÒÐÝÞ"
- #define ERR_OS_ERROR             "¾ßÕàÐæØÞÝÝÐï áØáâÕÜÐ áÞÞÑéØÛÐ ÞèØÑÚã"
- #define ERR_FILE_EXISTS          "ÄÐÙÛ ãÖÕ áãéÕáâÒãÕâ"
- #define ERR_NOT_A_FILE           "½Õ äÐÙÛ"
- #define ERR_NOT_A_DIR            "½Õ ÚÐâÐÛÞÓ"
- #define ERR_NOT_AN_ARCHIVE       "½Õ ÐàåØÒ"
- #define ERR_CORRUPTED            "¿ÞÒàÕÖÔÕÝÝëÙ ÐàåØÒ"
- #define ERR_SEEK_OUT_OF_RANGE    "¿Þ×ØæØÞÝØàÞÒÐÝØÕ ×Ð ßàÕÔÕÛë"
- #define ERR_BAD_FILENAME         "½ÕÒÕàÝÞÕ ØÜï äÐÙÛÐ"
- #define ERR_PHYSFS_BAD_OS_CALL   "(BUG) PhysicsFS ÒëßÞÛÝØÛÐ ÝÕÒÕàÝëÙ áØáâÕÜÝëÙ Òë×ÞÒ"
- #define ERR_ARGV0_IS_NULL        "argv0 is NULL"
- #define ERR_ZLIB_NEED_DICT       "zlib: ÝãÖÕÝ áÛÞÒÐàì"
- #define ERR_ZLIB_DATA_ERROR      "zlib: ÞèØÑÚÐ ÔÐÝÝëå"
- #define ERR_ZLIB_MEMORY_ERROR    "zlib: ÞèØÑÚÐ ßÐÜïâØ"
- #define ERR_ZLIB_BUFFER_ERROR    "zlib: ÞèØÑÚÐ ÑãäÕàÐ"
- #define ERR_ZLIB_VERSION_ERROR   "zlib: ÞèØÑÚÐ ÒÕàáØØ"
- #define ERR_ZLIB_UNKNOWN_ERROR   "zlib: ÝÕØ×ÒÕáâÝÐï ÞèØÑÚÐ"
- #define ERR_SEARCHPATH_TRUNC     "¿ãâì ßÞØáÚÐ ÞÑàÕ×ÐÝ"
- #define ERR_GETMODFN_TRUNC       "GetModuleFileName() ÞÑàÕ×ÐÝ"
- #define ERR_GETMODFN_NO_DIR      "GetModuleFileName() ÝÕ ßÞÛãçØÛ ÚÐâÐÛÞÓ"
- #define ERR_DISK_FULL            "´ØáÚ ßÞÛÞÝ"
- #define ERR_DIRECTORY_FULL       "ºÐâÐÛÞÓ ßÞÛÞÝ"
- #define ERR_MACOS_GENERIC        "MacOS áÞÞÑéØÛÐ ÞèØÑÚã (%d)"
- #define ERR_OS2_GENERIC          "OS/2 áÞÞÑéØÛÐ ÞèØÑÚã (%d)"
- #define ERR_VOL_LOCKED_HW        "ÂÞÜ ÑÛÞÚØàÞÒÐÝ ÐßßÐàÐâÝÞ"
- #define ERR_VOL_LOCKED_SW        "ÂÞÜ ÑÛÞÚØàÞÒÐÝ ßàÞÓàÐÜÜÝÞ"
- #define ERR_FILE_LOCKED          "ÄÐÙÛ ×ÐÑÛÞÚØàÞÒÐÝ"
- #define ERR_FILE_OR_DIR_BUSY     "ÄÐÙÛ/ÚÐâÐÛÞÓ ×ÐÝïâ"
- #define ERR_FILE_ALREADY_OPEN_W  "ÄÐÙÛ ãÖÕ ÞâÚàëâ ÝÐ ×ÐßØáì"
- #define ERR_FILE_ALREADY_OPEN_R  "ÄÐÙÛ ãÖÕ ÞâÚàëâ ÝÐ çâÕÝØÕ"
- #define ERR_INVALID_REFNUM       "½ÕÒÕàÝÞÕ ÚÞÛØçÕáâÒÞ ááëÛÞÚ"
- #define ERR_GETTING_FILE_POS     "¾èØÑÚÐ ßàØ ßÞÛãçÕÝØØ ßÞ×ØæØØ äÐÙÛÐ"
- #define ERR_VOLUME_OFFLINE       "ÂÞÜ ÞâáÞÕÔØÝÕÝ"
- #define ERR_PERMISSION_DENIED    "¾âÚÐ×ÐÝÞ Ò àÐ×àÕèÕÝØØ"
- #define ERR_VOL_ALREADY_ONLINE   "ÂÞÜ ãÖÕ ßÞÔáÞÕÔØÝÕÝ"
- #define ERR_NO_SUCH_DRIVE        "½Õâ âÐÚÞÓÞ ÔØáÚÐ"
- #define ERR_NOT_MAC_DISK         "½Õ ÔØáÚ Macintosh"
- #define ERR_VOL_EXTERNAL_FS      "ÂÞÜ ßàØÝÐÔÛÕÖØâ ÒÝÕèÝÕÙ äÐÙÛÞÒÞÙ áØáâÕÜÕ"
- #define ERR_PROBLEM_RENAME       "¿àÞÑÛÕÜÐ ßàØ ßÕàÕØÜÕÝÞÒÐÝØØ"
- #define ERR_BAD_MASTER_BLOCK     "¿ÛÞåÞÙ ÓÛÐÒÝëÙ ÑÛÞÚ ÚÐâÐÛÞÓÐ"
- #define ERR_CANT_MOVE_FORBIDDEN  "¿ÞßëâÚÐ ßÕàÕÜÕáâØâì ×ÐßàÕéÕÝÐ"
- #define ERR_WRONG_VOL_TYPE       "½ÕÒÕàÝëÙ âØß âÞÜÐ"
- #define ERR_SERVER_VOL_LOST      "ÁÕàÒÕàÝëÙ âÞÜ ÑëÛ ÞâáÞÕÔØÝÕÝ"
- #define ERR_FILE_ID_NOT_FOUND    "¸ÔÕÝâØäØÚÐâÞà äÐÙÛÐ ÝÕ ÝÐÙÔÕÝ"
- #define ERR_FILE_ID_EXISTS       "¸ÔÕÝâØäØÚÐâÞà äÐÙÛÐ ãÖÕ áãéÕáâÒãÕâ"
- #define ERR_SERVER_NO_RESPOND    "ÁÕàÒÕà ÝÕ ÞâÒÕçÐÕâ"
- #define ERR_USER_AUTH_FAILED     "¸ÔÕÝâØäØÚÐæØï ßÞÛì×ÞÒÐâÕÛï ÝÕ ãÔÐÛÐáì"
- #define ERR_PWORD_EXPIRED        "¿ÐàÞÛì ÝÐ áÕàÒÕàÕ ãáâÐàÕÛ"
- #define ERR_ACCESS_DENIED        "¾âÚÐ×ÐÝÞ Ò ÔÞáâãßÕ"
- #define ERR_NOT_A_DOS_DISK       "½Õ ÔØáÚ DOS"
- #define ERR_SHARING_VIOLATION    "½ÐàãèÕÝØÕ áÞÒÜÕáâÝÞÓÞ ÔÞáâãßÐ"
- #define ERR_CANNOT_MAKE          "½Õ ÜÞÓã áÞÑàÐâì"
- #define ERR_DEV_IN_USE           "ÃáâàÞÙáâÒÞ ãÖÕ ØáßÞÛì×ãÕâáï"
- #define ERR_OPEN_FAILED          "¾âÚàëâØÕ ÝÕ ãÔÐÛÞáì"
- #define ERR_PIPE_BUSY            "ºÞÝÒÕÙÕà ×ÐÝïâ"
- #define ERR_SHARING_BUF_EXCEEDED "ÀÐ×ÔÕÛïÕÜëÙ ÑãäÕà ßÕàÕßÞÛÝÕÝ"
- #define ERR_TOO_MANY_HANDLES     "ÁÛØèÚÞÜ ÜÝÞÓÞ ÞâÚàëâëå ÔÕáÚàØßâÞàÞÒ"
- #define ERR_SEEK_ERROR           "¾èØÑÚÐ ßÞ×ØæØÞÝØàÞÒÐÝØï"
- #define ERR_DEL_CWD              "¿ÞßëâÚÐ ãÔÐÛØâì âÕÚãéØÙ àÐÑÞçØÙ ÚÐâÐÛÞÓ"
- #define ERR_WRITE_PROTECT_ERROR  "¾èØÑÚÐ ×ÐéØâë ×ÐßØáØ"
- #define ERR_WRITE_FAULT          "¾èØÑÚÐ ×ÐßØáØ"
- #define ERR_LOCK_VIOLATION       "½ÐàãèÕÝØÕ ÑÛÞÚØàÞÒÚØ"
- #define ERR_GEN_FAILURE          "¾ÑéØÙ áÑÞÙ"
- #define ERR_UNCERTAIN_MEDIA      "½ÕÞßàÕÔÕÛÕÝÝëÙ ÝÞáØâÕÛì"
- #define ERR_PROT_VIOLATION       "½ÐàãèÕÝØÕ ×ÐéØâë"
- #define ERR_BROKEN_PIPE          "ÁÛÞÜÐÝÝëÙ ÚÞÝÒÕÙÕà"
-
-
-#elif (PHYSFS_LANG == PHYSFS_LANG_FRENCH)
- #define DIR_ARCHIVE_DESCRIPTION  "Pas d'archive, E/S directes sur système de fichiers"
- #define GRP_ARCHIVE_DESCRIPTION  "Format Groupfile du moteur Build"
- #define HOG_ARCHIVE_DESCRIPTION  "Descent I/II HOG file format"
- #define MVL_ARCHIVE_DESCRIPTION  "Descent II Movielib format"
- #define QPAK_ARCHIVE_DESCRIPTION "Quake I/II format"
- #define ZIP_ARCHIVE_DESCRIPTION  "Compatible PkZip/WinZip/Info-Zip"
- #define WAD_ARCHIVE_DESCRIPTION  "Format WAD du moteur DOOM"
-
- #define ERR_IS_INITIALIZED       "Déjà initialisé"
- #define ERR_NOT_INITIALIZED      "Non initialisé"
- #define ERR_INVALID_ARGUMENT     "Argument invalide"
- #define ERR_FILES_STILL_OPEN     "Fichiers encore ouverts"
- #define ERR_NO_DIR_CREATE        "Echec de la création de répertoires"
- #define ERR_OUT_OF_MEMORY        "A court de mémoire"
- #define ERR_NOT_IN_SEARCH_PATH   "Aucune entrée dans le chemin de recherche"
- #define ERR_NOT_SUPPORTED        "Opération non supportée"
- #define ERR_UNSUPPORTED_ARCHIVE  "Type d'archive non supportée"
- #define ERR_NOT_A_HANDLE         "Pas un descripteur de fichier"
- #define ERR_INSECURE_FNAME       "Nom de fichier dangereux"
- #define ERR_SYMLINK_DISALLOWED   "Les liens symboliques sont désactivés"
- #define ERR_NO_WRITE_DIR         "Le répertoire d'écriture n'est pas spécifié"
- #define ERR_NO_SUCH_FILE         "Fichier non trouvé"
- #define ERR_NO_SUCH_PATH         "Chemin non trouvé"
- #define ERR_NO_SUCH_VOLUME       "Volume non trouvé"
- #define ERR_PAST_EOF             "Au-delà de la fin du fichier"
- #define ERR_ARC_IS_READ_ONLY     "L'archive est en lecture seule"
- #define ERR_IO_ERROR             "Erreur E/S"
- #define ERR_CANT_SET_WRITE_DIR   "Ne peut utiliser le répertoire d'écriture"
- #define ERR_SYMLINK_LOOP         "Boucle infinie dans les liens symboliques"
- #define ERR_COMPRESSION          "Erreur de (dé)compression"
- #define ERR_NOT_IMPLEMENTED      "Non implémenté"
- #define ERR_OS_ERROR             "Erreur rapportée par le système d'exploitation"
- #define ERR_FILE_EXISTS          "Le fichier existe déjà"
- #define ERR_NOT_A_FILE           "Pas un fichier"
- #define ERR_NOT_A_DIR            "Pas un répertoire"
- #define ERR_NOT_AN_ARCHIVE       "Pas une archive"
- #define ERR_CORRUPTED            "Archive corrompue"
- #define ERR_SEEK_OUT_OF_RANGE    "Pointeur de fichier hors de portée"
- #define ERR_BAD_FILENAME         "Mauvais nom de fichier"
- #define ERR_PHYSFS_BAD_OS_CALL   "(BOGUE) PhysicsFS a fait un mauvais appel système, le salaud"
- #define ERR_ARGV0_IS_NULL        "argv0 est NULL"
- #define ERR_ZLIB_NEED_DICT       "zlib: a besoin du dico"
- #define ERR_ZLIB_DATA_ERROR      "zlib: erreur de données"
- #define ERR_ZLIB_MEMORY_ERROR    "zlib: erreur mémoire"
- #define ERR_ZLIB_BUFFER_ERROR    "zlib: erreur tampon"
- #define ERR_ZLIB_VERSION_ERROR   "zlib: erreur de version"
- #define ERR_ZLIB_UNKNOWN_ERROR   "zlib: erreur inconnue"
- #define ERR_SEARCHPATH_TRUNC     "Le chemin de recherche a été tronqué"
- #define ERR_GETMODFN_TRUNC       "GetModuleFileName() a été tronqué"
- #define ERR_GETMODFN_NO_DIR      "GetModuleFileName() n'a pas de répertoire"
- #define ERR_DISK_FULL            "Disque plein"
- #define ERR_DIRECTORY_FULL       "Répertoire plein"
- #define ERR_MACOS_GENERIC        "Erreur rapportée par MacOS (%d)"
- #define ERR_OS2_GENERIC          "Erreur rapportée par OS/2 (%d)"
- #define ERR_VOL_LOCKED_HW        "Le volume est verrouillé matériellement"
- #define ERR_VOL_LOCKED_SW        "Le volume est verrouillé par logiciel"
- #define ERR_FILE_LOCKED          "Fichier verrouillé"
- #define ERR_FILE_OR_DIR_BUSY     "Fichier/répertoire occupé"
- #define ERR_FILE_ALREADY_OPEN_W  "Fichier déjà ouvert en écriture"
- #define ERR_FILE_ALREADY_OPEN_R  "Fichier déjà ouvert en lecture"
- #define ERR_INVALID_REFNUM       "Numéro de référence invalide"
- #define ERR_GETTING_FILE_POS     "Erreur lors de l'obtention de la position du pointeur de fichier"
- #define ERR_VOLUME_OFFLINE       "Le volume n'est pas en ligne"
- #define ERR_PERMISSION_DENIED    "Permission refusée"
- #define ERR_VOL_ALREADY_ONLINE   "Volumé déjà en ligne"
- #define ERR_NO_SUCH_DRIVE        "Lecteur inexistant"
- #define ERR_NOT_MAC_DISK         "Pas un disque Macintosh"
- #define ERR_VOL_EXTERNAL_FS      "Le volume appartient à un système de fichiers externe"
- #define ERR_PROBLEM_RENAME       "Problème lors du renommage"
- #define ERR_BAD_MASTER_BLOCK     "Mauvais block maitre de répertoire"
- #define ERR_CANT_MOVE_FORBIDDEN  "Essai de déplacement interdit"
- #define ERR_WRONG_VOL_TYPE       "Mauvais type de volume"
- #define ERR_SERVER_VOL_LOST      "Le volume serveur a été déconnecté"
- #define ERR_FILE_ID_NOT_FOUND    "Identificateur de fichier non trouvé"
- #define ERR_FILE_ID_EXISTS       "Identificateur de fichier existe déjà"
- #define ERR_SERVER_NO_RESPOND    "Le serveur ne répond pas"
- #define ERR_USER_AUTH_FAILED     "Authentification de l'utilisateur échouée"
- #define ERR_PWORD_EXPIRED        "Le mot de passe a expiré sur le serveur"
- #define ERR_ACCESS_DENIED        "Accès refusé"
- #define ERR_NOT_A_DOS_DISK       "Pas un disque DOS"
- #define ERR_SHARING_VIOLATION    "Violation de partage"
- #define ERR_CANNOT_MAKE          "Ne peut faire"
- #define ERR_DEV_IN_USE           "Périphérique déjà en utilisation"
- #define ERR_OPEN_FAILED          "Ouverture échouée"
- #define ERR_PIPE_BUSY            "Le tube est occupé"
- #define ERR_SHARING_BUF_EXCEEDED "Tampon de partage dépassé"
- #define ERR_TOO_MANY_HANDLES     "Trop de descripteurs ouverts"
- #define ERR_SEEK_ERROR           "Erreur de positionement"
- #define ERR_DEL_CWD              "Essai de supprimer le répertoire courant"
- #define ERR_WRITE_PROTECT_ERROR  "Erreur de protection en écriture"
- #define ERR_WRITE_FAULT          "Erreur d'écriture"
- #define ERR_LOCK_VIOLATION       "Violation de verrou"
- #define ERR_GEN_FAILURE          "Echec général"
- #define ERR_UNCERTAIN_MEDIA      "Média incertain"
- #define ERR_PROT_VIOLATION       "Violation de protection"
- #define ERR_BROKEN_PIPE          "Tube cassé"
-
-#elif (PHYSFS_LANG == PHYSFS_LANG_PORTUGUESE_BR)
- #define DIR_ARCHIVE_DESCRIPTION  "Não arquivo, E/S sistema de arquivos direto"
- #define GRP_ARCHIVE_DESCRIPTION  "Formato Groupfile do engine Build"
- #define HOG_ARCHIVE_DESCRIPTION  "Formato Descent I/II HOG file"
- #define MVL_ARCHIVE_DESCRIPTION  "Formato Descent II Movielib"
- #define QPAK_ARCHIVE_DESCRIPTION "Formato Quake I/II"
- #define ZIP_ARCHIVE_DESCRIPTION  "Formato compatível PkZip/WinZip/Info-Zip"
- #define WAD_ARCHIVE_DESCRIPTION  "Formato WAD do engine DOOM"
-
- #define ERR_IS_INITIALIZED       "Já inicializado"
- #define ERR_NOT_INITIALIZED      "Não inicializado"
- #define ERR_INVALID_ARGUMENT     "Argumento inválido"
- #define ERR_FILES_STILL_OPEN     "Arquivos ainda abertos"
- #define ERR_NO_DIR_CREATE        "Falha na criação de diretórios"
- #define ERR_OUT_OF_MEMORY        "Memória insuficiente"
- #define ERR_NOT_IN_SEARCH_PATH   "Entrada não encontrada no caminho de busca"
- #define ERR_NOT_SUPPORTED        "Operação não suportada"
- #define ERR_UNSUPPORTED_ARCHIVE  "Tipo de arquivo não suportado"
- #define ERR_NOT_A_HANDLE         "Não é um handler de arquivo"
- #define ERR_INSECURE_FNAME       "Nome de arquivo inseguro"
- #define ERR_SYMLINK_DISALLOWED   "Links simbólicos desabilitados"
- #define ERR_NO_WRITE_DIR         "Diretório de escrita não definido"
- #define ERR_NO_SUCH_FILE         "Arquivo não encontrado"
- #define ERR_NO_SUCH_PATH         "Caminho não encontrado"
- #define ERR_NO_SUCH_VOLUME       "Volume não encontrado"
- #define ERR_PAST_EOF             "Passou o fim do arquivo"
- #define ERR_ARC_IS_READ_ONLY     "Arquivo é somente de leitura"
- #define ERR_IO_ERROR             "Erro de E/S"
- #define ERR_CANT_SET_WRITE_DIR   "Não foi possível definir diretório de escrita"
- #define ERR_SYMLINK_LOOP         "Loop infinito de link simbólico"
- #define ERR_COMPRESSION          "Erro de (Des)compressão"
- #define ERR_NOT_IMPLEMENTED      "Não implementado"
- #define ERR_OS_ERROR             "Erro reportado pelo Sistema Operacional"
- #define ERR_FILE_EXISTS          "Arquivo já existente"
- #define ERR_NOT_A_FILE           "Não é um arquivo"
- #define ERR_NOT_A_DIR            "Não é um diretório"
- #define ERR_NOT_AN_ARCHIVE       "Não é um pacote"
- #define ERR_CORRUPTED            "Pacote corrompido"
- #define ERR_SEEK_OUT_OF_RANGE    "Posicionamento além do tamanho"
- #define ERR_BAD_FILENAME         "Nome de arquivo inválido"
- #define ERR_PHYSFS_BAD_OS_CALL   "(BUG) PhysicsFS realizou uma chamada de sistema inválida"
- #define ERR_ARGV0_IS_NULL        "argv0 é NULL"
- #define ERR_ZLIB_NEED_DICT       "zlib: precisa de diretório"
- #define ERR_ZLIB_DATA_ERROR      "zlib: erro nos dados"
- #define ERR_ZLIB_MEMORY_ERROR    "zlib: erro de memória"
- #define ERR_ZLIB_BUFFER_ERROR    "zlib: erro de buffer"
- #define ERR_ZLIB_VERSION_ERROR   "zlib: erro na version"
- #define ERR_ZLIB_UNKNOWN_ERROR   "zlib: erro desconhecido"
- #define ERR_SEARCHPATH_TRUNC     "Caminho de procura quebrado"
- #define ERR_GETMODFN_TRUNC       "GetModuleFileName() foi quebrado"
- #define ERR_GETMODFN_NO_DIR      "GetModuleFileName() nao teve diretório"
- #define ERR_DISK_FULL            "Disco cheio"
- #define ERR_DIRECTORY_FULL       "Diretório cheio"
- #define ERR_MACOS_GENERIC        "MacOS reportou um erro (%d)"
- #define ERR_OS2_GENERIC          "OS/2 reportou um erro (%d)"
- #define ERR_VOL_LOCKED_HW        "Volume travado por hardware"
- #define ERR_VOL_LOCKED_SW        "Volume travado por software"
- #define ERR_FILE_LOCKED          "Arquivo travado"
- #define ERR_FILE_OR_DIR_BUSY     "Arquivo/Diretório está em uso"
- #define ERR_FILE_ALREADY_OPEN_W  "Arquivo já aberto para escrita"
- #define ERR_FILE_ALREADY_OPEN_R  "Arquivo já aberto para leitura"
- #define ERR_INVALID_REFNUM       "Número de referência"
- #define ERR_GETTING_FILE_POS     "Erro ao tentar obter posição do arquivo"
- #define ERR_VOLUME_OFFLINE       "Volume está indisponível"
- #define ERR_PERMISSION_DENIED    "Permissão negada"
- #define ERR_VOL_ALREADY_ONLINE   "Volume disponível"
- #define ERR_NO_SUCH_DRIVE        "Drive inexistente"
- #define ERR_NOT_MAC_DISK         "Não é um disco Macintosh"
- #define ERR_VOL_EXTERNAL_FS      "Volume pertence a um sistema de arquivos externo"
- #define ERR_PROBLEM_RENAME       "Problema durante renomeação"
- #define ERR_BAD_MASTER_BLOCK     "Bloco master do diretório inválido"
- #define ERR_CANT_MOVE_FORBIDDEN  "Tentativa de mover proibida"
- #define ERR_WRONG_VOL_TYPE       "Tipo inválido de volume"
- #define ERR_SERVER_VOL_LOST      "Volume servidor desconectado"
- #define ERR_FILE_ID_NOT_FOUND    "ID de Arquivo não encontrado"
- #define ERR_FILE_ID_EXISTS       "ID de Arquivo já existente"
- #define ERR_SERVER_NO_RESPOND    "Servidor não respondendo"
- #define ERR_USER_AUTH_FAILED     "Autenticação de usuário falhada"
- #define ERR_PWORD_EXPIRED        "Password foi expirada no servidor"
- #define ERR_ACCESS_DENIED        "Accesso negado"
- #define ERR_NOT_A_DOS_DISK       "Não é um disco DOS"
- #define ERR_SHARING_VIOLATION    "Violação de compartilhamento"
- #define ERR_CANNOT_MAKE          "Não pode ser feito"
- #define ERR_DEV_IN_USE           "Device já em uso"
- #define ERR_OPEN_FAILED          "Falaha na abertura"
- #define ERR_PIPE_BUSY            "Fila ocupada"
- #define ERR_SHARING_BUF_EXCEEDED "Buffer de compartilhamento excedeu"
- #define ERR_TOO_MANY_HANDLES     "Muitos handles abertos"
- #define ERR_SEEK_ERROR           "Erro de posicionamento"
- #define ERR_DEL_CWD              "Tentando remover diretório de trabalho atual"
- #define ERR_WRITE_PROTECT_ERROR  "Erro de proteção de escrita"
- #define ERR_WRITE_FAULT          "Erro de escrita"
- #define ERR_LOCK_VIOLATION       "Violação de trava"
- #define ERR_GEN_FAILURE          "Falha geral"
- #define ERR_UNCERTAIN_MEDIA      "Media incerta"
- #define ERR_PROT_VIOLATION       "Violação de proteção"
- #define ERR_BROKEN_PIPE          "Fila quebrada"
-
-#elif (PHYSFS_LANG == PHYSFS_LANG_SPANISH)
- #define DIR_ARCHIVE_DESCRIPTION  "No es un archivo, E/S directa al sistema de ficheros"
- #define GRP_ARCHIVE_DESCRIPTION  "Formato Build engine Groupfile"
- #define HOG_ARCHIVE_DESCRIPTION  "Formato Descent I/II HOG file"
- #define MVL_ARCHIVE_DESCRIPTION  "Formato Descent II Movielib"
- #define QPAK_ARCHIVE_DESCRIPTION "Formato Quake I/II"
- #define ZIP_ARCHIVE_DESCRIPTION  "Compatible con PkZip/WinZip/Info-Zip"
-
- #define ERR_IS_INITIALIZED       "Ya estaba inicializado"
- #define ERR_NOT_INITIALIZED      "No está inicializado"
- #define ERR_INVALID_ARGUMENT     "Argumento inválido"
- #define ERR_FILES_STILL_OPEN     "Archivos aún abiertos"
- #define ERR_NO_DIR_CREATE        "Fallo al crear los directorios"
- #define ERR_OUT_OF_MEMORY        "Memoria agotada"
- #define ERR_NOT_IN_SEARCH_PATH   "No existe tal entrada en la ruta de búsqueda"
- #define ERR_NOT_SUPPORTED        "Operación no soportada"
- #define ERR_UNSUPPORTED_ARCHIVE  "Tipo de archivo no soportado"
- #define ERR_NOT_A_HANDLE         "No es un manejador de ficheo (file handle)"
- #define ERR_INSECURE_FNAME       "Nombre de archivo inseguro"
- #define ERR_SYMLINK_DISALLOWED   "Los enlaces simbólicos están desactivados"
- #define ERR_NO_WRITE_DIR         "No has configurado un directorio de escritura"
- #define ERR_NO_SUCH_FILE         "Archivo no encontrado"
- #define ERR_NO_SUCH_PATH         "Ruta no encontrada"
- #define ERR_NO_SUCH_VOLUME       "Volumen no encontrado"
- #define ERR_PAST_EOF             "Te pasaste del final del archivo"
- #define ERR_ARC_IS_READ_ONLY     "El archivo es de sólo lectura"
- #define ERR_IO_ERROR             "Error E/S"
- #define ERR_CANT_SET_WRITE_DIR   "No puedo configurar el directorio de escritura"
- #define ERR_SYMLINK_LOOP         "Bucle infnito de enlaces simbólicos"
- #define ERR_COMPRESSION          "Error de (des)compresión"
- #define ERR_NOT_IMPLEMENTED      "No implementado"
- #define ERR_OS_ERROR             "El sistema operativo ha devuelto un error"
- #define ERR_FILE_EXISTS          "El archivo ya existe"
- #define ERR_NOT_A_FILE           "No es un archivo"
- #define ERR_NOT_A_DIR            "No es un directorio"
- #define ERR_NOT_AN_ARCHIVE       "No es un archivo"
- #define ERR_CORRUPTED            "Archivo corrupto"
- #define ERR_SEEK_OUT_OF_RANGE    "Búsqueda fuera de rango"
- #define ERR_BAD_FILENAME         "Nombre de archivo incorrecto"
- #define ERR_PHYSFS_BAD_OS_CALL   "(BUG) PhysicsFS ha hecho una llamada incorrecta al sistema"
- #define ERR_ARGV0_IS_NULL        "argv0 es NULL"
- #define ERR_ZLIB_NEED_DICT       "zlib: necesito diccionario"
- #define ERR_ZLIB_DATA_ERROR      "zlib: error de datos"
- #define ERR_ZLIB_MEMORY_ERROR    "zlib: error de memoria"
- #define ERR_ZLIB_BUFFER_ERROR    "zlib: error de buffer"
- #define ERR_ZLIB_VERSION_ERROR   "zlib: error de versión"
- #define ERR_ZLIB_UNKNOWN_ERROR   "zlib: error desconocido"
- #define ERR_SEARCHPATH_TRUNC     "La ruta de búsqueda ha sido truncada"
- #define ERR_GETMODFN_TRUNC       "GetModuleFileName() ha sido truncado"
- #define ERR_GETMODFN_NO_DIR      "GetModuleFileName() no tenia directorio"
- #define ERR_DISK_FULL            "El disco está lleno"
- #define ERR_DIRECTORY_FULL       "El directorio está lleno"
- #define ERR_MACOS_GENERIC        "MacOS ha devuelto un error (%d)"
- #define ERR_OS2_GENERIC          "OS/2 ha devuelto un error (%d)"
- #define ERR_VOL_LOCKED_HW        "El volumen está bloqueado por el hardware"
- #define ERR_VOL_LOCKED_SW        "El volumen está bloqueado por el software"
- #define ERR_FILE_LOCKED          "El archivo está bloqueado"
- #define ERR_FILE_OR_DIR_BUSY     "Fichero o directorio ocupados"
- #define ERR_FILE_ALREADY_OPEN_W  "Fichero ya abierto para escritura"
- #define ERR_FILE_ALREADY_OPEN_R  "Fichero ya abierto para lectura"
- #define ERR_INVALID_REFNUM       "El número de referencia no es válido"
- #define ERR_GETTING_FILE_POS     "Error al tomar la posición del fichero"
- #define ERR_VOLUME_OFFLINE       "El volumen está desconectado"
- #define ERR_PERMISSION_DENIED    "Permiso denegado"
- #define ERR_VOL_ALREADY_ONLINE   "El volumen ya estaba conectado"
- #define ERR_NO_SUCH_DRIVE        "No existe tal unidad"
- #define ERR_NOT_MAC_DISK         "No es un disco Macintosh"
- #define ERR_VOL_EXTERNAL_FS      "El volumen pertence a un sistema de ficheros externo"
- #define ERR_PROBLEM_RENAME       "Problemas al renombrar"
- #define ERR_BAD_MASTER_BLOCK     "Bloque maestro de directorios incorrecto"
- #define ERR_CANT_MOVE_FORBIDDEN  "Intento de mover forbidden"
- #define ERR_WRONG_VOL_TYPE       "Tipo de volumen incorrecto"
- #define ERR_SERVER_VOL_LOST      "El servidor de volúmenes ha sido desconectado"
- #define ERR_FILE_ID_NOT_FOUND    "Identificador de archivo no encontrado"
- #define ERR_FILE_ID_EXISTS       "El identificador de archivo ya existe"
- #define ERR_SERVER_NO_RESPOND    "El servidor no responde"
- #define ERR_USER_AUTH_FAILED     "Fallo al autentificar el usuario"
- #define ERR_PWORD_EXPIRED        "La Password  en el servidor ha caducado"
- #define ERR_ACCESS_DENIED        "Acceso denegado"
- #define ERR_NOT_A_DOS_DISK       "No es un disco de DOS"
- #define ERR_SHARING_VIOLATION    "Violación al compartir"
- #define ERR_CANNOT_MAKE          "No puedo hacer make"
- #define ERR_DEV_IN_USE           "El dispositivo ya estaba en uso"
- #define ERR_OPEN_FAILED          "Fallo al abrir"
- #define ERR_PIPE_BUSY            "Tubería ocupada"
- #define ERR_SHARING_BUF_EXCEEDED "Buffer de compartición sobrepasado"
- #define ERR_TOO_MANY_HANDLES     "Demasiados manejadores (handles)"
- #define ERR_SEEK_ERROR           "Error de búsqueda"
- #define ERR_DEL_CWD              "Intentando borrar el directorio de trabajo actual"
- #define ERR_WRITE_PROTECT_ERROR  "Error de protección contra escritura"
- #define ERR_WRITE_FAULT          "Fallo al escribir"
- #define ERR_LOCK_VIOLATION       "Violación del bloqueo"
- #define ERR_GEN_FAILURE          "Fallo general"
- #define ERR_UNCERTAIN_MEDIA      "Medio incierto"
- #define ERR_PROT_VIOLATION       "Violación de la protección"
- #define ERR_BROKEN_PIPE          "Tubería rota"
-
-#else
- #error Please define PHYSFS_LANG.
-#endif
-
-/* end LANG section. */
-
-struct __PHYSFS_DIRHANDLE__;
-struct __PHYSFS_FILEFUNCTIONS__;
-
-
-typedef struct __PHYSFS_LINKEDSTRINGLIST__
-{
-    char *str;
-    struct __PHYSFS_LINKEDSTRINGLIST__ *next;
-} LinkedStringList;
-
-
-typedef struct __PHYSFS_FILEHANDLE__
-{
-        /*
-         * This is reserved for the driver to store information.
-         */
-    void *opaque;
-
-        /*
-         * Non-zero if file opened for reading, zero if write/append.
-         */
-    PHYSFS_uint8 forReading;
-
-        /*
-         * This is the buffer, if one is set (NULL otherwise). Don't touch.
-         */
-    PHYSFS_uint8 *buffer;
-
-        /*
-         * This is the buffer size, if one is set (0 otherwise). Don't touch.
-         */
-    PHYSFS_uint32 bufsize;
-
-        /*
-         * This is the buffer fill size. Don't touch.
-         */
-    PHYSFS_uint32 buffill;
-
-        /*
-         * This is the buffer position. Don't touch.
-         */
-    PHYSFS_uint32 bufpos;
-
-        /*
-         * This should be the DirHandle that created this FileHandle.
-         */
-    const struct __PHYSFS_DIRHANDLE__ *dirHandle;
-
-        /*
-         * Pointer to the file i/o functions for this filehandle.
-         */
-    const struct __PHYSFS_FILEFUNCTIONS__ *funcs;
-} FileHandle;
-
-
-typedef struct __PHYSFS_FILEFUNCTIONS__
-{
-        /*
-         * Read more from the file.
-         * Returns number of objects of (objSize) bytes read from file, -1
-         *  if complete failure.
-         * On failure, call __PHYSFS_setError().
-         */
-    PHYSFS_sint64 (*read)(FileHandle *handle, void *buffer,
-                          PHYSFS_uint32 objSize, PHYSFS_uint32 objCount);
-
-        /*
-         * Write more to the file. Archives don't have to implement this.
-         *  (Set it to NULL if not implemented).
-         * Returns number of objects of (objSize) bytes written to file, -1
-         *  if complete failure.
-         * On failure, call __PHYSFS_setError().
-         */
-    PHYSFS_sint64 (*write)(FileHandle *handle, const void *buffer,
-                 PHYSFS_uint32 objSize, PHYSFS_uint32 objCount);
-
-        /*
-         * Returns non-zero if at end of file.
-         */
-    int (*eof)(FileHandle *handle);
-
-        /*
-         * Returns byte offset from start of file.
-         */
-    PHYSFS_sint64 (*tell)(FileHandle *handle);
-
-        /*
-         * Move read/write pointer to byte offset from start of file.
-         *  Returns non-zero on success, zero on error.
-         * On failure, call __PHYSFS_setError().
-         */
-    int (*seek)(FileHandle *handle, PHYSFS_uint64 offset);
-
-        /*
-         * Return number of bytes available in the file, or -1 if you
-         *  aren't able to determine.
-         * On failure, call __PHYSFS_setError().
-         */
-    PHYSFS_sint64 (*fileLength)(FileHandle *handle);
-
-        /*
-         * Close the file, and free the FileHandle structure (including "opaque").
-         *  returns non-zero on success, zero if can't close file.
-         * On failure, call __PHYSFS_setError().
-         */
-    int (*fileClose)(FileHandle *handle);
-} FileFunctions;
-
-
-typedef struct __PHYSFS_DIRHANDLE__
-{
-        /*
-         * This is reserved for the driver to store information.
-         */
-    void *opaque;
-
-        /*
-         * Pointer to the directory i/o functions for this handle.
-         */
-    const struct __PHYSFS_DIRFUNCTIONS__ *funcs;
-} DirHandle;
-
-
-/*
- * Symlinks should always be followed; PhysicsFS will use
- *  DirFunctions->isSymLink() and make a judgement on whether to
- *  continue to call other methods based on that.
- */
-typedef struct __PHYSFS_DIRFUNCTIONS__
-{
-    const PHYSFS_ArchiveInfo *info;
-
-        /*
-         * Returns non-zero if (filename) is a valid archive that this
-         *  driver can handle. This filename is in platform-dependent
-         *  notation. forWriting is non-zero if this is to be used for
-         *  the write directory, and zero if this is to be used for an
-         *  element of the search path.
-         */
-    int (*isArchive)(const char *filename, int forWriting);
-
-        /*
-         * Return a DirHandle for dir/archive (name).
-         *  This filename is in platform-dependent notation.
-         *  forWriting is non-zero if this is to be used for
-         *  the write directory, and zero if this is to be used for an
-         *  element of the search path.
-         * Returns NULL on failure, and calls __PHYSFS_setError().
-         */
-    DirHandle *(*openArchive)(const char *name, int forWriting);
-
-        /*
-         * Returns a list of all files in dirname. Each element of this list
-         *  (and its "str" field) will be deallocated with the system's free()
-         *  function by the caller, so be sure to explicitly malloc() each
-         *  chunk. Omit symlinks if (omitSymLinks) is non-zero.
-         * If you have a memory failure, return as much as you can.
-         *  This dirname is in platform-independent notation.
-         */
-    LinkedStringList *(*enumerateFiles)(DirHandle *r,
-                                        const char *dirname,
-                                        int omitSymLinks);
-
-
-        /*
-         * Returns non-zero if filename can be opened for reading.
-         *  This filename is in platform-independent notation.
-         *  You should not follow symlinks.
-         */
-    int (*exists)(DirHandle *r, const char *name);
-
-        /*
-         * Returns non-zero if filename is really a directory.
-         *  This filename is in platform-independent notation.
-         *  Symlinks should be followed; if what the symlink points
-         *  to is missing, or isn't a directory, then the retval is zero.
-         *
-         * Regardless of success or failure, please set *fileExists to
-         *  non-zero if the file existed (even if it's a broken symlink!),
-         *  zero if it did not.
-         */
-    int (*isDirectory)(DirHandle *r, const char *name, int *fileExists);
-
-        /*
-         * Returns non-zero if filename is really a symlink.
-         *  This filename is in platform-independent notation.
-         *
-         * Regardless of success or failure, please set *fileExists to
-         *  non-zero if the file existed (even if it's a broken symlink!),
-         *  zero if it did not.
-         */
-    int (*isSymLink)(DirHandle *r, const char *name, int *fileExists);
-
-        /*
-         * Retrieve the last modification time (mtime) of a file.
-         *  Returns -1 on failure, or the file's mtime in seconds since
-         *  the epoch (Jan 1, 1970) on success.
-         *  This filename is in platform-independent notation.
-         *
-         * Regardless of success or failure, please set *exists to
-         *  non-zero if the file existed (even if it's a broken symlink!),
-         *  zero if it did not.
-         */
-    PHYSFS_sint64 (*getLastModTime)(DirHandle *r, const char *fnm, int *exist);
-
-        /*
-         * Open file for reading, and return a FileHandle.
-         *  This filename is in platform-independent notation.
-         * If you can't handle multiple opens of the same file,
-         *  you can opt to fail for the second call.
-         * Fail if the file does not exist.
-         * Returns NULL on failure, and calls __PHYSFS_setError().
-         *
-         * Regardless of success or failure, please set *fileExists to
-         *  non-zero if the file existed (even if it's a broken symlink!),
-         *  zero if it did not.
-         */
-    FileHandle *(*openRead)(DirHandle *r, const char *fname, int *fileExists);
-
-        /*
-         * Open file for writing, and return a FileHandle.
-         * If the file does not exist, it should be created. If it exists,
-         *  it should be truncated to zero bytes. The writing
-         *  offset should be the start of the file.
-         * This filename is in platform-independent notation.
-         *  This method may be NULL.
-         * If you can't handle multiple opens of the same file,
-         *  you can opt to fail for the second call.
-         * Returns NULL on failure, and calls __PHYSFS_setError().
-         */
-    FileHandle *(*openWrite)(DirHandle *r, const char *filename);
-
-        /*
-         * Open file for appending, and return a FileHandle.
-         * If the file does not exist, it should be created. The writing
-         *  offset should be the end of the file.
-         * This filename is in platform-independent notation.
-         *  This method may be NULL.
-         * If you can't handle multiple opens of the same file,
-         *  you can opt to fail for the second call.
-         * Returns NULL on failure, and calls __PHYSFS_setError().
-         */
-    FileHandle *(*openAppend)(DirHandle *r, const char *filename);
-
-        /*
-         * Delete a file in the archive/directory.
-         *  Return non-zero on success, zero on failure.
-         *  This filename is in platform-independent notation.
-         *  This method may be NULL.
-         * On failure, call __PHYSFS_setError().
-         */
-    int (*remove)(DirHandle *r, const char *filename);
-
-        /*
-         * Create a directory in the archive/directory.
-         *  If the application is trying to make multiple dirs, PhysicsFS
-         *  will split them up into multiple calls before passing them to
-         *  your driver.
-         *  Return non-zero on success, zero on failure.
-         *  This filename is in platform-independent notation.
-         *  This method may be NULL.
-         * On failure, call __PHYSFS_setError().
-         */
-    int (*mkdir)(DirHandle *r, const char *filename);
-
-        /*
-         * Close directories/archives, and free the handle, including
-         *  the "opaque" entry. This should assume that it won't be called if
-         *  there are still files open from this DirHandle.
-         */
-    void (*dirClose)(DirHandle *r);
-} DirFunctions;
-
-
-/*
- * Call this to set the message returned by PHYSFS_getLastError().
- *  Please only use the ERR_* constants above, or add new constants to the
- *  above group, but I want these all in one place.
- *
- * Calling this with a NULL argument is a safe no-op.
- */
-void __PHYSFS_setError(const char *err);
-
-
-/*
- * Convert (dirName) to platform-dependent notation, then prepend (prepend)
- *  and append (append) to the converted string.
- *
- *  So, on Win32, calling:
- *     __PHYSFS_convertToDependent("C:\", "my/files", NULL);
- *  ...will return the string "C:\my\files".
- *
- * This is a convenience function; you might want to hack something out that
- *  is less generic (and therefore more efficient).
- *
- * Be sure to free() the return value when done with it.
- */
-char *__PHYSFS_convertToDependent(const char *prepend,
-                                  const char *dirName,
-                                  const char *append);
-
-/*
- * Verify that (fname) (in platform-independent notation), in relation
- *  to (h) is secure. That means that each element of fname is checked
- *  for symlinks (if they aren't permitted). Also, elements such as
- *  ".", "..", or ":" are flagged.
- *
- * With some exceptions (like PHYSFS_mkdir(), which builds multiple subdirs
- *  at a time), you should always pass zero for "allowMissing" for efficiency.
- *
- * Returns non-zero if string is safe, zero if there's a security issue.
- *  PHYSFS_getLastError() will specify what was wrong.
- */
-int __PHYSFS_verifySecurity(DirHandle *h, const char *fname, int allowMissing);
-
-
-/*
- * Use this to build the list that your enumerate function should return.
- *  See zip.c for an example of proper use.
- */
-LinkedStringList *__PHYSFS_addToLinkedStringList(LinkedStringList *retval,
-                                                 LinkedStringList **prev,
-                                                 const char *str,
-                                                 PHYSFS_sint32 len);
-
-
-/*
- * When sorting the entries in an archive, we use a modified QuickSort.
- *  When there are less then PHYSFS_QUICKSORT_THRESHOLD entries left to sort,
- *  we switch over to a BubbleSort for the remainder. Tweak to taste.
- *
- * You can override this setting by defining PHYSFS_QUICKSORT_THRESHOLD
- *  before #including "physfs_internal.h".
- */
-#ifndef PHYSFS_QUICKSORT_THRESHOLD
-#define PHYSFS_QUICKSORT_THRESHOLD 4
-#endif
-
-/*
- * Sort an array (or whatever) of (max) elements. This uses a mixture of
- *  a QuickSort and BubbleSort internally.
- * (cmpfn) is used to determine ordering, and (swapfn) does the actual
- *  swapping of elements in the list.
- *
- *  See zip.c for an example.
- */
-void __PHYSFS_sort(void *entries, PHYSFS_uint32 max,
-                   int (*cmpfn)(void *, PHYSFS_uint32, PHYSFS_uint32),
-                   void (*swapfn)(void *, PHYSFS_uint32, PHYSFS_uint32));
-
-
-/* These get used all over for lessening code clutter. */
-#define BAIL_MACRO(e, r) { __PHYSFS_setError(e); return r; }
-#define BAIL_IF_MACRO(c, e, r) if (c) { __PHYSFS_setError(e); return r; }
-#define BAIL_MACRO_MUTEX(e, m, r) { __PHYSFS_setError(e); __PHYSFS_platformReleaseMutex(m); return r; }
-#define BAIL_IF_MACRO_MUTEX(c, e, m, r) if (c) { __PHYSFS_setError(e); __PHYSFS_platformReleaseMutex(m); return r; }
-
-
-
-
-/*--------------------------------------------------------------------------*/
-/*--------------------------------------------------------------------------*/
-/*------------                                              ----------------*/
-/*------------  You MUST implement the following functions  ----------------*/
-/*------------        if porting to a new platform.         ----------------*/
-/*------------     (see platform/unix.c for an example)     ----------------*/
-/*------------                                              ----------------*/
-/*--------------------------------------------------------------------------*/
-/*--------------------------------------------------------------------------*/
-
-
-/*
- * The dir separator; "/" on unix, "\\" on win32, ":" on MacOS, etc...
- *  Obviously, this isn't a function, but it IS a null-terminated string.
- */
-extern const char *__PHYSFS_platformDirSeparator;
-
-
-/*
- * Initialize the platform. This is called when PHYSFS_init() is called from
- *  the application. You can use this to (for example) determine what version
- *  of Windows you're running.
- *
- * Return zero if there was a catastrophic failure (which prevents you from
- *  functioning at all), and non-zero otherwise.
- */
-int __PHYSFS_platformInit(void);
-
-
-/*
- * Deinitialize the platform. This is called when PHYSFS_deinit() is called
- *  from the application. You can use this to clean up anything you've
- *  allocated in your platform driver.
- *
- * Return zero if there was a catastrophic failure (which prevents you from
- *  functioning at all), and non-zero otherwise.
- */
-int __PHYSFS_platformDeinit(void);
-
-
-/*
- * Open a file for reading. (filename) is in platform-dependent notation. The
- *  file pointer should be positioned on the first byte of the file.
- *
- * The return value will be some platform-specific datatype that is opaque to
- *  the caller; it could be a (FILE *) under Unix, or a (HANDLE *) under win32.
- *
- * The same file can be opened for read multiple times, and each should have
- *  a unique file handle; this is frequently employed to prevent race
- *  conditions in the archivers.
- *
- * Call __PHYSFS_setError() and return (NULL) if the file can't be opened.
- */
-void *__PHYSFS_platformOpenRead(const char *filename);
-
-
-/*
- * Open a file for writing. (filename) is in platform-dependent notation. If
- *  the file exists, it should be truncated to zero bytes, and if it doesn't
- *  exist, it should be created as a zero-byte file. The file pointer should
- *  be positioned on the first byte of the file.
- *
- * The return value will be some platform-specific datatype that is opaque to
- *  the caller; it could be a (FILE *) under Unix, or a (HANDLE *) under win32,
- *  etc.
- *
- * Opening a file for write multiple times has undefined results.
- *
- * Call __PHYSFS_setError() and return (NULL) if the file can't be opened.
- */
-void *__PHYSFS_platformOpenWrite(const char *filename);
-
-
-/*
- * Open a file for appending. (filename) is in platform-dependent notation. If
- *  the file exists, the file pointer should be place just past the end of the
- *  file, so that the first write will be one byte after the current end of
- *  the file. If the file doesn't exist, it should be created as a zero-byte
- *  file. The file pointer should be positioned on the first byte of the file.
- *
- * The return value will be some platform-specific datatype that is opaque to
- *  the caller; it could be a (FILE *) under Unix, or a (HANDLE *) under win32,
- *  etc.
- *
- * Opening a file for append multiple times has undefined results.
- *
- * Call __PHYSFS_setError() and return (NULL) if the file can't be opened.
- */
-void *__PHYSFS_platformOpenAppend(const char *filename);
-
-
-/*
- * Read more data from a platform-specific file handle. (opaque) should be
- *  cast to whatever data type your platform uses. Read a maximum of (count)
- *  objects of (size) 8-bit bytes to the area pointed to by (buffer). If there
- *  isn't enough data available, return the number of full objects read, and
- *  position the file pointer at the start of the first incomplete object.
- *  On success, return (count) and position the file pointer one byte past
- *  the end of the last read object. Return (-1) if there is a catastrophic
- *  error, and call __PHYSFS_setError() to describe the problem; the file
- *  pointer should not move in such a case.
- */
-PHYSFS_sint64 __PHYSFS_platformRead(void *opaque, void *buffer,
-                                    PHYSFS_uint32 size, PHYSFS_uint32 count);
-
-/*
- * Write more data to a platform-specific file handle. (opaque) should be
- *  cast to whatever data type your platform uses. Write a maximum of (count)
- *  objects of (size) 8-bit bytes from the area pointed to by (buffer). If
- *  there isn't enough data available, return the number of full objects
- *  written, and position the file pointer at the start of the first
- *  incomplete object. Return (-1) if there is a catastrophic error, and call
- *  __PHYSFS_setError() to describe the problem; the file pointer should not
- *  move in such a case.
- */
-PHYSFS_sint64 __PHYSFS_platformWrite(void *opaque, const void *buffer,
-                                     PHYSFS_uint32 size, PHYSFS_uint32 count);
-
-/*
- * Set the file pointer to a new position. (opaque) should be cast to
- *  whatever data type your platform uses. (pos) specifies the number
- *  of 8-bit bytes to seek to from the start of the file. Seeking past the
- *  end of the file is an error condition, and you should check for it.
- *
- * Not all file types can seek; this is to be expected by the caller.
- *
- * On error, call __PHYSFS_setError() and return zero. On success, return
- *  a non-zero value.
- */
-int __PHYSFS_platformSeek(void *opaque, PHYSFS_uint64 pos);
-
-
-/*
- * Get the file pointer's position, in an 8-bit byte offset from the start of
- *  the file. (opaque) should be cast to whatever data type your platform
- *  uses.
- *
- * Not all file types can "tell"; this is to be expected by the caller.
- *
- * On error, call __PHYSFS_setError() and return zero. On success, return
- *  a non-zero value.
- */
-PHYSFS_sint64 __PHYSFS_platformTell(void *opaque);
-
-
-/*
- * Determine the current size of a file, in 8-bit bytes, from an open file.
- *
- * The caller expects that this information may not be available for all
- *  file types on all platforms.
- *
- * Return -1 if you can't do it, and call __PHYSFS_setError(). Otherwise,
- *  return the file length in 8-bit bytes.
- */
-PHYSFS_sint64 __PHYSFS_platformFileLength(void *handle);
-
-/*
- * Determine if a file is at EOF. (opaque) should be cast to whatever data
- *  type your platform uses.
- *
- * The caller expects that there was a short read before calling this.
- *
- * Return non-zero if EOF, zero if it is _not_ EOF.
- */
-int __PHYSFS_platformEOF(void *opaque);
-
-/*
- * Flush any pending writes to disk. (opaque) should be cast to whatever data
- *  type your platform uses. Be sure to check for errors; the caller expects
- *  that this function can fail if there was a flushing error, etc.
- *
- *  Return zero on failure, non-zero on success.
- */
-int __PHYSFS_platformFlush(void *opaque);
-
-/*
- * Flush and close a file. (opaque) should be cast to whatever data type
- *  your platform uses. Be sure to check for errors when closing; the
- *  caller expects that this function can fail if there was a flushing
- *  error, etc.
- *
- * You should clean up all resources associated with (opaque).
- *
- *  Return zero on failure, non-zero on success.
- */
-int __PHYSFS_platformClose(void *opaque);
-
-/*
- * Platform implementation of PHYSFS_getCdRomDirs()...
- *  See physfs.h. The retval should be freeable via PHYSFS_freeList().
- */
-char **__PHYSFS_platformDetectAvailableCDs(void);
-
-/*
- * Calculate the base dir, if your platform needs special consideration.
- *  Just return NULL if the standard routines will suffice. (see
- *  calculateBaseDir() in physfs.c ...)
- *  Caller will free() the retval if it's not NULL.
- */
-char *__PHYSFS_platformCalcBaseDir(const char *argv0);
-
-/*
- * Get the platform-specific user name.
- *  Caller will free() the retval if it's not NULL. If it's NULL, the username
- *  will default to "default".
- */
-char *__PHYSFS_platformGetUserName(void);
-
-/*
- * Get the platform-specific user dir.
- *  Caller will free() the retval if it's not NULL. If it's NULL, the userdir
- *  will default to basedir/username.
- */
-char *__PHYSFS_platformGetUserDir(void);
-
-/*
- * Return a number that uniquely identifies the current thread.
- *  On a platform without threading, (1) will suffice. These numbers are
- *  arbitrary; the only requirement is that no two threads have the same
- *  number.
- */
-PHYSFS_uint64 __PHYSFS_platformGetThreadID(void);
-
-/*
- * This is a pass-through to whatever stricmp() is called on your platform.
- */
-int __PHYSFS_platformStricmp(const char *str1, const char *str2);
-
-/*
- * This is a pass-through to whatever strnicmp() is called on your platform.
- */
-int __PHYSFS_platformStrnicmp(const char *s1, const char *s2, PHYSFS_uint32 l);
-
-/*
- * Return non-zero if filename (in platform-dependent notation) exists.
- *  Symlinks should NOT be followed; at this stage, we do not care what the
- *  symlink points to. Please call __PHYSFS_SetError() with the details of
- *  why the file does not exist, if it doesn't; you are in a better position
- *  to know (path not found, bogus filename, file itself is missing, etc).
- */
-int __PHYSFS_platformExists(const char *fname);
-
-/*
- * Return the last modified time (in seconds since the epoch) of a file.
- *  Returns -1 on failure. (fname) is in platform-dependent notation.
- *  Symlinks should be followed; if what the symlink points to is missing,
- *  then the retval is -1.
- */
-PHYSFS_sint64 __PHYSFS_platformGetLastModTime(const char *fname);
-
-/*
- * Return non-zero if filename (in platform-dependent notation) is a symlink.
- */
-int __PHYSFS_platformIsSymLink(const char *fname);
-
-
-/*
- * Return non-zero if filename (in platform-dependent notation) is a symlink.
- *  Symlinks should be followed; if what the symlink points to is missing,
- *  or isn't a directory, then the retval is false.
- */
-int __PHYSFS_platformIsDirectory(const char *fname);
-
-
-/*
- * Convert (dirName) to platform-dependent notation, then prepend (prepend)
- *  and append (append) to the converted string.
- *
- *  So, on Win32, calling:
- *     __PHYSFS_platformCvtToDependent("C:\", "my/files", NULL);
- *  ...will return the string "C:\my\files".
- *
- * This can be implemented in a platform-specific manner, so you can get
- *  get a speed boost that the default implementation can't, since
- *  you can make assumptions about the size of strings, etc..
- *
- * Platforms that choose not to implement this may just call
- *  __PHYSFS_convertToDependent() as a passthrough, which may fit the bill
- *  already.
- *
- * Be sure to free() the return value when done with it.
- */
-char *__PHYSFS_platformCvtToDependent(const char *prepend,
-                                      const char *dirName,
-                                      const char *append);
-
-
-/*
- * Make the current thread give up a timeslice. This is called in a loop
- *  while waiting for various external forces to get back to us.
- */
-void __PHYSFS_platformTimeslice(void);
-
-
-/*
- * Enumerate a directory of files. This follows the rules for the
- *  DirFunctions->enumerateFiles() method (see above), except that the
- *  (dirName) that is passed to this function is converted to
- *  platform-DEPENDENT notation by the caller. The DirFunctions version
- *  uses platform-independent notation. Note that ".", "..", and other
- *  metaentries should always be ignored.
- */
-LinkedStringList *__PHYSFS_platformEnumerateFiles(const char *dirname,
-                                                  int omitSymLinks);
-
-
-/*
- * Get the current working directory. The return value should be an
- *  absolute path in platform-dependent notation. The caller will deallocate
- *  the return value with the standard C runtime free() function when it
- *  is done with it.
- * On error, return NULL and set the error message.
- */
-char *__PHYSFS_platformCurrentDir(void);
-
-
-/*
- * Get the real physical path to a file. (path) is specified in
- *  platform-dependent notation, as should your return value be.
- *  All relative paths should be removed, leaving you with an absolute
- *  path. Symlinks should be resolved, too, so that the returned value is
- *  the most direct path to a file.
- * The return value will be deallocated with the standard C runtime free()
- *  function when the caller is done with it.
- * On error, return NULL and set the error message.
- */
-char *__PHYSFS_platformRealPath(const char *path);
-
-
-/*
- * Make a directory in the actual filesystem. (path) is specified in
- *  platform-dependent notation. On error, return zero and set the error
- *  message. Return non-zero on success.
- */
-int __PHYSFS_platformMkDir(const char *path);
-
-
-/*
- * Remove a file or directory entry in the actual filesystem. (path) is
- *  specified in platform-dependent notation. Note that this deletes files
- *  _and_ directories, so you might need to do some determination.
- *  Non-empty directories should report an error and not delete themselves
- *  or their contents.
- *
- * Deleting a symlink should remove the link, not what it points to.
- *
- * On error, return zero and set the error message. Return non-zero on success.
- */
-int __PHYSFS_platformDelete(const char *path);
-
-
-/*
- * Create a platform-specific mutex. This can be whatever datatype your
- *  platform uses for mutexes, but it is cast to a (void *) for abstractness.
- *
- * Return (NULL) if you couldn't create one. Systems without threads can
- *  return any arbitrary non-NULL value.
- */
-void *__PHYSFS_platformCreateMutex(void);
-
-/*
- * Destroy a platform-specific mutex, and clean up any resources associated
- *  with it. (mutex) is a value previously returned by
- *  __PHYSFS_platformCreateMutex(). This can be a no-op on single-threaded
- *  platforms.
- */
-void __PHYSFS_platformDestroyMutex(void *mutex);
-
-/*
- * Grab possession of a platform-specific mutex. Mutexes should be recursive;
- *  that is, the same thread should be able to call this function multiple
- *  times in a row without causing a deadlock. This function should block 
- *  until a thread can gain possession of the mutex.
- *
- * Return non-zero if the mutex was grabbed, zero if there was an 
- *  unrecoverable problem grabbing it (this should not be a matter of 
- *  timing out! We're talking major system errors; block until the mutex 
- *  is available otherwise.)
- *
- * _DO NOT_ call __PHYSFS_setError() in here! Since setError calls this
- *  function, you'll cause an infinite recursion. This means you can't
- *  use the BAIL_*MACRO* macros, either.
- */
-int __PHYSFS_platformGrabMutex(void *mutex);
-
-/*
- * Relinquish possession of the mutex when this method has been called 
- *  once for each time that platformGrabMutex was called. Once possession has
- *  been released, the next thread in line to grab the mutex (if any) may
- *  proceed.
- *
- * _DO NOT_ call __PHYSFS_setError() in here! Since setError calls this
- *  function, you'll cause an infinite recursion. This means you can't
- *  use the BAIL_*MACRO* macros, either.
- */
-void __PHYSFS_platformReleaseMutex(void *mutex);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-/* end of physfs_internal.h ... */
-

Copied: tags/release-1.0.1/physfs_internal.h (from rev 757, branches/stable-1.0/physfs_internal.h)

Copied: tags/release-1.0.1/zlib123 (from rev 754, branches/stable-1.0/zlib123)

Modified: tags/release-1.0.1/zlib_license_change.txt
===================================================================
--- branches/stable-1.0/zlib_license_change.txt	2005-07-24 00:19:11 UTC (rev 753)
+++ tags/release-1.0.1/zlib_license_change.txt	2005-07-24 01:05:49 UTC (rev 758)
@@ -40,8 +40,8 @@
 To: "physfs at icculus.org" <physfs at icculus.org>
 Subject: Re: [physfs] License change proposition.
 
-    [ The following text is in the "iso-8859-1" character set. ]
-    [ Your display is set for the "US-ASCII" character set.  ]
+    [ The following text is in the "iso-8859-1" character set. ]
+    [ Your display is set for the "US-ASCII" character set.  ]
     [ Some characters may be displayed incorrectly. ]
 
 Quoting "Ryan C. Gordon" <xxxxxxxxxxxxxxx>:
@@ -542,8 +542,8 @@
 
 -- Colin Bayer <xxxxxxxxxxxxxxx>
 
-    [ Part 2, "This is a digitally signed message part"  ]
-    [ Application/PGP-SIGNATURE  196bytes. ]
+    [ Part 2, "This is a digitally signed message part"  ]
+    [ Application/PGP-SIGNATURE  196bytes. ]
     [ Unable to print this part. ]
 
 
@@ -715,8 +715,8 @@
 To: Ryan C. Gordon <icculus at clutteredmind.org>
 Subject: Re: PhysicsFS license change.
 
-    [ The following text is in the "iso-8859-1" character set. ]
-    [ Your display is set for the "US-ASCII" character set.  ]
+    [ The following text is in the "iso-8859-1" character set. ]
+    [ Your display is set for the "US-ASCII" character set.  ]
     [ Some characters may be displayed incorrectly. ]
 
 Hello.  Sorry for delay in reply, things've been messed up for the last couple 




More information about the physfs-commits mailing list