paragui-cvs
[Top][All Lists]
Advanced

[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);
+ 
  
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]