[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[paragui-cvs] CVS: paragui/src/physfs CHANGELOG,1.1.1.1.6.5,1.1.1.1.6.6
From: |
Alexander Pipelka <address@hidden> |
Subject: |
[paragui-cvs] CVS: paragui/src/physfs CHANGELOG,1.1.1.1.6.5,1.1.1.1.6.6 TODO,1.1.1.1.6.3,1.1.1.1.6.4 configure.in,1.1.2.7,1.1.2.8 physfs.c,1.1.1.1.6.4,1.1.1.1.6.5 physfs_internal.h,1.1.1.1.6.4,1.1.1.1.6.5 |
Date: |
Thu, 25 Jul 2002 03:27:40 -0400 |
Update of /cvsroot/paragui/paragui/src/physfs
In directory subversions:/tmp/cvs-serv13618/src/physfs
Modified Files:
Tag: devel-1-0
CHANGELOG TODO configure.in physfs.c physfs_internal.h
Log Message:
updated PhysicsFS
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/paragui/paragui/src/physfs/CHANGELOG,v
retrieving revision 1.1.1.1.6.5
retrieving revision 1.1.1.1.6.6
diff -C2 -r1.1.1.1.6.5 -r1.1.1.1.6.6
*** CHANGELOG 18 Jul 2002 07:24:14 -0000 1.1.1.1.6.5
--- CHANGELOG 25 Jul 2002 07:27:37 -0000 1.1.1.1.6.6
***************
*** 3,6 ****
--- 3,27 ----
*/
+ 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
Index: TODO
===================================================================
RCS file: /cvsroot/paragui/paragui/src/physfs/TODO,v
retrieving revision 1.1.1.1.6.3
retrieving revision 1.1.1.1.6.4
diff -C2 -r1.1.1.1.6.3 -r1.1.1.1.6.4
*** TODO 15 Jul 2002 08:15:37 -0000 1.1.1.1.6.3
--- TODO 25 Jul 2002 07:27:38 -0000 1.1.1.1.6.4
***************
*** 5,13 ****
- Include the Visual Studio.NET project file in CVS directly.
! - Make the zipfile parse symlinks with relative paths. See the function
! expand_symlink_path() in archivers/zip.c ...
! - Actually, the zipfile driver could use a lot of tweaking. Please look
! through it.
! - Other archivers: perhaps tar(.gz|.bz2), RPM, etc. These are less
important, since streaming archives aren't of much value to games (which
is why zipfiles are king: random access), but it could have uses for, say,
--- 5,11 ----
- Include the Visual Studio.NET project file in CVS directly.
! - Favor archivers that have the same extension as an archive when opening.
! - Deal with Unix platforms without POSIX threads (NetBSD, etc).
! - Other archivers: perhaps tar(.gz|.bz2), RPM, ARJ, etc. These are less
important, since streaming archives aren't of much value to games (which
is why zipfiles are king: random access), but it could have uses for, say,
***************
*** 16,22 ****
nice for an email program. That's blue sky, unless someone wants to tackle
it.
- Look for FIXMEs (many marked with "!!!" in comments).
- Probably other stuff. Requests and recommendations are welcome.
- - Use __cdecl in physfs.h?
// end of TODO ...
--- 14,25 ----
nice for an email program. That's blue sky, unless someone wants to tackle
it.
+ - Platforms to be verified as working: Solaris, WinNT 3.1, WinME, WinXP,
+ MacOS 8.1
+ - Platforms to port to: NetBSD (needs pthreads), OS/2 (needs platform driver),
+ PocketPC (Maybe can just use win32.c?), Amiga (needs platform driver),
+ AtheOS (needs platform driver, maybe can use unix.c and posix.c?)
+ - Use __cdecl in physfs.h?
- Look for FIXMEs (many marked with "!!!" in comments).
- Probably other stuff. Requests and recommendations are welcome.
// end of TODO ...
Index: configure.in
===================================================================
RCS file: /cvsroot/paragui/paragui/src/physfs/configure.in,v
retrieving revision 1.1.2.7
retrieving revision 1.1.2.8
diff -C2 -r1.1.2.7 -r1.1.2.8
*** configure.in 18 Jul 2002 07:24:14 -0000 1.1.2.7
--- configure.in 25 Jul 2002 07:27:38 -0000 1.1.2.8
***************
*** 97,107 ****
dnl ---------------------------------------------------------------------
- dnl !!! FIXME: Not sure how to detect this...
- dnl check for 64-bit llseek()...
- dnl AC_CHECK_LIB(c, llseek, have_llseek=yes)
- if test x$have_llseek = xyes; then
- AC_DEFINE([PHYSFS_HAVE_LLSEEK], 1, [define if we have llseek])
- fi
-
require_zlib="no"
--- 97,100 ----
***************
*** 195,198 ****
--- 188,222 ----
fi
+ dnl !!! FIXME: Not sure how to detect this...
+ dnl check for 64-bit llseek()...
+ dnl AC_CHECK_LIB(c, llseek, have_llseek=yes)
+ if test x$have_llseek = xyes; then
+ AC_DEFINE([PHYSFS_HAVE_LLSEEK], 1, [define if we have llseek])
+ fi
+
+
+ dnl determine if we should use the stubbed CD-ROM detection code.
+ AC_ARG_ENABLE(cdrom,
+ [ --enable-cdrom include CD-ROM support [default=yes]],
+ , enable_cdrom=yes)
+ if test x$enable_cdrom = xyes; then
+ dnl reset this and let header detection reenable...
+ enable_cdrom=no
+
+ dnl BSD systems use sys/ucred.h for getting mounted volumes.
+ dnl Linux and others use mntent.h.
+ AC_CHECK_HEADER(sys/ucred.h, have_ucred_hdr=yes)
+ if test x$have_ucred_hdr = xyes; then
+ AC_DEFINE([PHYSFS_HAVE_SYS_UCRED_H], 1, [define if we have sys/ucred.h])
+ enable_cdrom=yes
+ fi
+
+ AC_CHECK_HEADER(mntent.h, have_mntent_hdr=yes)
+ if test x$have_mntent_hdr = xyes; then
+ AC_DEFINE([PHYSFS_HAVE_MNTENT_H], 1, [define if we have mntent.h])
+ enable_cdrom=yes
+ fi
+ fi
+
dnl AC_CHECK_HEADER(be/kernel/OS.h, this_is_beos=yes)
AC_MSG_CHECKING([if this is BeOS])
***************
*** 233,236 ****
--- 257,261 ----
if test x$x = xfreebsd; then
this_is_freebsd=yes
+ LDFLAGS="$LDFLAGS -pthread"
fi
***************
*** 238,241 ****
--- 263,302 ----
fi
+ this_is_openbsd=no
+ if test x$we_have_sed = xyes; then
+ AC_MSG_CHECKING([if this is OpenBSD])
+ x=`echo $build_os |tr A-Z a-z |sed "s/.*openbsd.*/openbsd/"`
+ if test x$x = xopenbsd; then
+ this_is_openbsd=yes
+ LDFLAGS="$LDFLAGS -pthread"
+ fi
+
+ AC_MSG_RESULT([$this_is_openbsd])
+ fi
+
+ this_is_atheos=no
+ if test x$we_have_sed = xyes; then
+ AC_MSG_CHECKING([if this is AtheOS])
+ x=`echo $build_os |tr A-Z a-z |sed "s/.*atheos.*/atheos/"`
+ if test x$x = xatheos; then
+ this_is_atheos=yes
+ enable_cdrom=no
+ LDFLAGS="$LDFLAGS -lpthread"
+ fi
+
+ AC_MSG_RESULT([$this_is_atheos])
+ fi
+
+ dnl Some platform might disable this, so check this down here...
+ if test x$enable_cdrom != xyes; then
+ AC_DEFINE([PHYSFS_NO_CDROM_SUPPORT], 1, [define if we have no CD support])
+ AC_MSG_WARN([***])
+ AC_MSG_WARN([*** There is no CD-ROM support in this build!])
+ AC_MSG_WARN([*** PhysicsFS will just pretend there are no discs!])
+ AC_MSG_WARN([*** Is this what you really wanted?])
+ AC_MSG_WARN([***])
+ fi
+
+
# Checks for header files.
AC_HEADER_STDC
***************
*** 256,263 ****
CFLAGS="$CFLAGS -D_REENTRANT -D_THREAD_SAFE"
LDFLAGS="$LDFLAGS -no-undefined"
-
- if test x$this_is_freebsd = x$yes; then
- LDFLAGS="$LDFLAGS -pthread"
- fi
dnl Add Makefile conditionals
--- 317,320 ----
Index: physfs.c
===================================================================
RCS file: /cvsroot/paragui/paragui/src/physfs/physfs.c,v
retrieving revision 1.1.1.1.6.4
retrieving revision 1.1.1.1.6.5
diff -C2 -r1.1.1.1.6.4 -r1.1.1.1.6.5
*** physfs.c 1 Jul 2002 17:15:21 -0000 1.1.1.1.6.4
--- physfs.c 25 Jul 2002 07:27:38 -0000 1.1.1.1.6.5
***************
*** 1211,1215 ****
if (__PHYSFS_verifySecurity(h, fname))
{
! if (!h->funcs->exists(h, fname))
__PHYSFS_setError(ERR_NO_SUCH_FILE);
else
--- 1211,1215 ----
if (__PHYSFS_verifySecurity(h, fname))
{
! if (!h->funcs->exists(h, fname)) /* !!! FIXME: Let archivers
figure this out. */
__PHYSFS_setError(ERR_NO_SUCH_FILE);
else
***************
*** 1461,1464 ****
--- 1461,1500 ----
return(h->funcs->fileLength(h));
} /* PHYSFS_filelength */
+
+
+ LinkedStringList *__PHYSFS_addToLinkedStringList(LinkedStringList *retval,
+ LinkedStringList **prev,
+ const char *str,
+ PHYSFS_sint32 len)
+ {
+ LinkedStringList *l;
+
+ l = (LinkedStringList *) malloc(sizeof (LinkedStringList));
+ BAIL_IF_MACRO(l == NULL, ERR_OUT_OF_MEMORY, retval);
+
+ if (len < 0)
+ len = strlen(str);
+
+ l->str = (char *) malloc(len + 1);
+ if (l->str == NULL)
+ {
+ free(l);
+ BAIL_MACRO(ERR_OUT_OF_MEMORY, retval);
+ } /* if */
+
+ strncpy(l->str, str, len);
+ l->str[len] = '\0';
+
+ if (retval == NULL)
+ retval = l;
+ else
+ (*prev)->next = l;
+
+ *prev = l;
+ l->next = NULL;
+ return(retval);
+ } /* __PHYSFS_addToLinkedStringList */
+
+
/* end of physfs.c ... */
Index: physfs_internal.h
===================================================================
RCS file: /cvsroot/paragui/paragui/src/physfs/physfs_internal.h,v
retrieving revision 1.1.1.1.6.4
retrieving revision 1.1.1.1.6.5
diff -C2 -r1.1.1.1.6.4 -r1.1.1.1.6.5
*** physfs_internal.h 18 Jul 2002 07:24:14 -0000 1.1.1.1.6.4
--- physfs_internal.h 25 Jul 2002 07:27:38 -0000 1.1.1.1.6.5
***************
*** 167,170 ****
--- 167,172 ----
* 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.
*/
int (*isDirectory)(DirHandle *r, const char *name);
***************
*** 316,319 ****
--- 318,332 ----
*/
int __PHYSFS_verifySecurity(DirHandle *h, const char *fname);
+
+
+ /*
+ * 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);
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [paragui-cvs] CVS: paragui/src/physfs CHANGELOG,1.1.1.1.6.5,1.1.1.1.6.6 TODO,1.1.1.1.6.3,1.1.1.1.6.4 configure.in,1.1.2.7,1.1.2.8 physfs.c,1.1.1.1.6.4,1.1.1.1.6.5 physfs_internal.h,1.1.1.1.6.4,1.1.1.1.6.5,
Alexander Pipelka <address@hidden> <=
- Prev by Date:
[paragui-cvs] CVS: paragui/src/core physfsrwops.cpp,1.1.2.2,1.1.2.3
- Next by Date:
[paragui-cvs] CVS: paragui/src/physfs/archivers grp.c,1.1.1.1.6.3,1.1.1.1.6.4 zip.c,1.1.1.1.6.5,1.1.1.1.6.6
- Previous by thread:
[paragui-cvs] CVS: paragui/src/core physfsrwops.cpp,1.1.2.2,1.1.2.3
- Next by thread:
[paragui-cvs] CVS: paragui/src/physfs/archivers grp.c,1.1.1.1.6.3,1.1.1.1.6.4 zip.c,1.1.1.1.6.5,1.1.1.1.6.6
- Index(es):