]> www.fi.muni.cz Git - evince.git/blobdiff - pdf/goo/gfile.h
Synched with Xpdf 0.92
[evince.git] / pdf / goo / gfile.h
index f1923cde537f17128e22c70c7f6fbec39515dfd5..38b99985eab75ee18f9e8a64606498a01dcfaf00 100644 (file)
 #ifndef GFILE_H
 #define GFILE_H
 
+#include <stdio.h>
 #include <stdlib.h>
 #include <stddef.h>
-#ifdef WIN32
-#  include <kpathsea/win32lib.h>
+extern "C" {
+#if defined(WIN32)
+#  include <sys/stat.h>
+#  ifdef FPTEX
+#    include <win32lib.h>
+#  else
+#    include <windows.h>
+#  endif
+#elif defined(ACORN)
+#elif defined(MACOS)
+#  include <ctime.h>
 #else
 #  include <unistd.h>
 #  include <sys/types.h>
 #    include "vms_dirent.h"
 #  elif HAVE_DIRENT_H
 #    include <dirent.h>
-#    define NAMLEN(dirent) strlen((dirent)->d_name)
+#    define NAMLEN(d) strlen((d)->d_name)
 #  else
 #    define dirent direct
-#    define NAMLEN(dirent) (dirent)->d_namlen
+#    define NAMLEN(d) (d)->d_namlen
 #    if HAVE_SYS_NDIR_H
 #      include <sys/ndir.h>
 #    endif
@@ -37,6 +47,7 @@
 #    endif
 #  endif
 #endif
+}
 #include "gtypes.h"
 
 class GString;
@@ -64,6 +75,18 @@ extern GBool isAbsolutePath(char *path);
 // relative) or prepending user's directory (if path starts with '~').
 GString *makePathAbsolute(GString *path);
 
+// Get the modification time for <fileName>.  Returns 0 if there is an
+// error.
+time_t getModTime(char *fileName);
+
+// Create a temporary file and open it for writing.  If <ext> is not
+// NULL, it will be used as the file name extension.  Returns both the
+// name and the file pointer.  For security reasons, all writing
+// should be done to the returned file pointer; the file may be
+// reopened later for reading, but not for writing.  The <mode> string
+// should be "w" or "wb".  Returns true on success.
+GBool openTempFile(GString **name, FILE **f, char *mode, char *ext);
+
 //------------------------------------------------------------------------
 // GDir and GDirEntry
 //------------------------------------------------------------------------
@@ -94,14 +117,16 @@ private:
 
   GString *path;               // directory path
   GBool doStat;                        // call stat() for each entry?
-#ifdef VMS
-  GBool needParent;            // need to return an entry for [-]
-#endif
-#ifdef WIN32
+#if defined(WIN32)
   WIN32_FIND_DATA ffd;
   HANDLE hnd;
+#elif defined(ACORN)
+#elif defined(MACOS)
 #else
   DIR *dir;                    // the DIR structure from opendir()
+#ifdef VMS
+  GBool needParent;            // need to return an entry for [-]
+#endif
 #endif
 };