Make sure that the writing functions get used when a write mode is
specified.
--- a/archivers/dir.c Wed Sep 26 03:08:57 2001 +0000
+++ b/archivers/dir.c Wed Sep 26 03:09:35 2001 +0000
@@ -209,7 +209,6 @@
if (strcmp((name + namelen) - seplen, dirsep) != 0)
strcat((char *) (retval->opaque), dirsep);
- retval->funcs = &__PHYSFS_DirFunctions_DIR;
return(retval);
} /* DIR_openArchive */
@@ -293,7 +292,8 @@
retval->opaque = (void *) rc;
retval->dirHandle = h;
- retval->funcs = &__PHYSFS_FileFunctions_DIR;
+ retval->funcs = (mode[0] == 'r') ?
+ &__PHYSFS_FileFunctions_DIR : &__PHYSFS_FileFunctions_DIRW;
return(retval);
} /* doOpen */