physfs_internal.h
changeset 363 79f155a51527
parent 344 015662f3761d
child 399 02dd53688315
equal deleted inserted replaced
362:ac8c846a0a66 363:79f155a51527
   164     int (*exists)(DirHandle *r, const char *name);
   164     int (*exists)(DirHandle *r, const char *name);
   165 
   165 
   166         /*
   166         /*
   167          * Returns non-zero if filename is really a directory.
   167          * Returns non-zero if filename is really a directory.
   168          *  This filename is in platform-independent notation.
   168          *  This filename is in platform-independent notation.
       
   169          *  Symlinks should be followed; if what the symlink points
       
   170          *  to is missing, or isn't a directory, then the retval is zero.
   169          */
   171          */
   170     int (*isDirectory)(DirHandle *r, const char *name);
   172     int (*isDirectory)(DirHandle *r, const char *name);
   171 
   173 
   172         /*
   174         /*
   173          * Returns non-zero if filename is really a symlink.
   175          * Returns non-zero if filename is really a symlink.
   315  *  PHYSFS_getLastError() will specify what was wrong.
   317  *  PHYSFS_getLastError() will specify what was wrong.
   316  */
   318  */
   317 int __PHYSFS_verifySecurity(DirHandle *h, const char *fname);
   319 int __PHYSFS_verifySecurity(DirHandle *h, const char *fname);
   318 
   320 
   319 
   321 
       
   322 /*
       
   323  * Use this to build the list that your enumerate function should return.
       
   324  *  See zip.c for an example of proper use.
       
   325  */
       
   326 LinkedStringList *__PHYSFS_addToLinkedStringList(LinkedStringList *retval,
       
   327                                                  LinkedStringList **prev,
       
   328                                                  const char *str,
       
   329                                                  PHYSFS_sint32 len);
       
   330 
       
   331 
       
   332 
   320 /* These get used all over for lessening code clutter. */
   333 /* These get used all over for lessening code clutter. */
   321 #define BAIL_MACRO(e, r) { __PHYSFS_setError(e); return r; }
   334 #define BAIL_MACRO(e, r) { __PHYSFS_setError(e); return r; }
   322 #define BAIL_IF_MACRO(c, e, r) if (c) { __PHYSFS_setError(e); return r; }
   335 #define BAIL_IF_MACRO(c, e, r) if (c) { __PHYSFS_setError(e); return r; }
   323 #define BAIL_MACRO_MUTEX(e, m, r) { __PHYSFS_setError(e); __PHYSFS_platformReleaseMutex(m); return r; }
   336 #define BAIL_MACRO_MUTEX(e, m, r) { __PHYSFS_setError(e); __PHYSFS_platformReleaseMutex(m); return r; }
   324 #define BAIL_IF_MACRO_MUTEX(c, e, m, r) if (c) { __PHYSFS_setError(e); __PHYSFS_platformReleaseMutex(m); return r; }
   337 #define BAIL_IF_MACRO_MUTEX(c, e, m, r) if (c) { __PHYSFS_setError(e); __PHYSFS_platformReleaseMutex(m); return r; }