gutils.c gutils.h gfileutils.c Actually, g_mkstemp() is better suited in
authorTor Lillqvist <tml@iki.fi>
Mon, 30 Oct 2000 22:06:22 +0000 (22:06 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Mon, 30 Oct 2000 22:06:22 +0000 (22:06 +0000)
2000-10-31  Tor Lillqvist  <tml@iki.fi>

* gutils.c
* gutils.h
* gfileutils.c
* gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.

18 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gfileutils.c
gfileutils.h
glib.def
glib/gfileutils.c
glib/gfileutils.h
glib/glib.def
glib/gutils.c
glib/gutils.h
gutils.c
gutils.h

index 23d4930..9628775 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2000-10-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gutils.c
+       * gutils.h
+       * gfileutils.c
+       * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
+
 2000-10-30  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check for mkstemp.
@@ -7,7 +14,7 @@
 
        * gutils.h: Declare it.
 
-       * glib.def: Here, too.
+       * glib.def: Here, too. Plus two missing functions.
 
 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
index 23d4930..9628775 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gutils.c
+       * gutils.h
+       * gfileutils.c
+       * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
+
 2000-10-30  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check for mkstemp.
@@ -7,7 +14,7 @@
 
        * gutils.h: Declare it.
 
-       * glib.def: Here, too.
+       * glib.def: Here, too. Plus two missing functions.
 
 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
index 23d4930..9628775 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gutils.c
+       * gutils.h
+       * gfileutils.c
+       * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
+
 2000-10-30  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check for mkstemp.
@@ -7,7 +14,7 @@
 
        * gutils.h: Declare it.
 
-       * glib.def: Here, too.
+       * glib.def: Here, too. Plus two missing functions.
 
 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
index 23d4930..9628775 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gutils.c
+       * gutils.h
+       * gfileutils.c
+       * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
+
 2000-10-30  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check for mkstemp.
@@ -7,7 +14,7 @@
 
        * gutils.h: Declare it.
 
-       * glib.def: Here, too.
+       * glib.def: Here, too. Plus two missing functions.
 
 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
index 23d4930..9628775 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gutils.c
+       * gutils.h
+       * gfileutils.c
+       * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
+
 2000-10-30  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check for mkstemp.
@@ -7,7 +14,7 @@
 
        * gutils.h: Declare it.
 
-       * glib.def: Here, too.
+       * glib.def: Here, too. Plus two missing functions.
 
 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
index 23d4930..9628775 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gutils.c
+       * gutils.h
+       * gfileutils.c
+       * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
+
 2000-10-30  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check for mkstemp.
@@ -7,7 +14,7 @@
 
        * gutils.h: Declare it.
 
-       * glib.def: Here, too.
+       * glib.def: Here, too. Plus two missing functions.
 
 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
index 23d4930..9628775 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gutils.c
+       * gutils.h
+       * gfileutils.c
+       * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
+
 2000-10-30  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check for mkstemp.
@@ -7,7 +14,7 @@
 
        * gutils.h: Declare it.
 
-       * glib.def: Here, too.
+       * glib.def: Here, too. Plus two missing functions.
 
 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
index 23d4930..9628775 100644 (file)
@@ -1,3 +1,10 @@
+2000-10-31  Tor Lillqvist  <tml@iki.fi>
+
+       * gutils.c
+       * gutils.h
+       * gfileutils.c
+       * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
+
 2000-10-30  Tor Lillqvist  <tml@iki.fi>
 
        * configure.in: Check for mkstemp.
@@ -7,7 +14,7 @@
 
        * gutils.h: Declare it.
 
-       * glib.def: Here, too.
+       * glib.def: Here, too. Plus two missing functions.
 
 2000-10-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>
 
index 20a8d37..e983a1d 100644 (file)
@@ -497,3 +497,78 @@ g_file_get_contents (const gchar *filename,
   return get_contents_posix (filename, contents, length, error);
 #endif
 }
+
+/**
+ * g_mkstemp:
+ *
+ * Open a temporary file
+ *
+ * The parameter is a string that should match the rules for mktemp, i.e.
+ * end in "XXXXXX". The X string will be modified to form the name
+ * of a file that didn't exist.
+ *
+ * Return value: A file handle (as from open()) to the file file
+ * opened for reading and writing. The file is opened in binary mode
+ * on platforms where there is a difference. The file handle should be
+ * closed with close(). In case of errors, -1 is returned.
+ *
+ * From the GNU C library.
+ * Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
+ */
+int
+g_mkstemp (char *tmpl)
+{
+#ifdef HAVE_MKSTEMP
+  return mkstemp (tmpl);
+#else
+  int len;
+  char *XXXXXX;
+  int count, fd;
+  static const char letters[] =
+    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+  glong value;
+  GTimeVal tv;
+
+  len = strlen (tmpl);
+  if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
+    return -1;
+
+  /* This is where the Xs start.  */
+  XXXXXX = &tmpl[len - 6];
+
+  /* Get some more or less random data.  */
+  g_get_current_time (&tv);
+  value = tv.tv_usec ^ tv.tv_sec;
+
+  for (count = 0; count < 100; value += 7777, ++count)
+    {
+      glong v = value;
+
+      /* Fill in the random bits.  */
+      XXXXXX[0] = letters[v % 62];
+      v /= 62;
+      XXXXXX[1] = letters[v % 62];
+      v /= 62;
+      XXXXXX[2] = letters[v % 62];
+      v /= 62;
+      XXXXXX[3] = letters[v % 62];
+      v /= 62;
+      XXXXXX[4] = letters[v % 62];
+      v /= 62;
+      XXXXXX[5] = letters[v % 62];
+
+      fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600);
+
+      if (fd >= 0)
+       return fd;
+      else if (errno != EEXIST)
+       /* Any other error will apply also to other names we might
+        *  try, and there are 2^32 or so of them, so give up now.
+        */
+       return -1;
+    }
+
+  /* We got out of the loop because we ran out of combinations to try.  */
+  return -1;
+#endif
+}
index d49c921..e452ea7 100644 (file)
@@ -80,6 +80,8 @@ gboolean g_file_get_contents (const gchar  *filename,
                               GError      **error);
 
 
+/* Wrapper / workalike for mkstemp() */
+int     g_mkstemp (char *tmpl);
 
 G_END_DECLS
 
index 37f9f9a..8184858 100644 (file)
--- a/glib.def
+++ b/glib.def
@@ -99,6 +99,8 @@ EXPORTS
        g_error_matches
        g_error_new
        g_error_new_literal
+       g_file_error_from_errno
+       g_file_error_quark
        g_file_get_contents
        g_file_test
        g_filename_from_utf8
index 20a8d37..e983a1d 100644 (file)
@@ -497,3 +497,78 @@ g_file_get_contents (const gchar *filename,
   return get_contents_posix (filename, contents, length, error);
 #endif
 }
+
+/**
+ * g_mkstemp:
+ *
+ * Open a temporary file
+ *
+ * The parameter is a string that should match the rules for mktemp, i.e.
+ * end in "XXXXXX". The X string will be modified to form the name
+ * of a file that didn't exist.
+ *
+ * Return value: A file handle (as from open()) to the file file
+ * opened for reading and writing. The file is opened in binary mode
+ * on platforms where there is a difference. The file handle should be
+ * closed with close(). In case of errors, -1 is returned.
+ *
+ * From the GNU C library.
+ * Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
+ */
+int
+g_mkstemp (char *tmpl)
+{
+#ifdef HAVE_MKSTEMP
+  return mkstemp (tmpl);
+#else
+  int len;
+  char *XXXXXX;
+  int count, fd;
+  static const char letters[] =
+    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+  glong value;
+  GTimeVal tv;
+
+  len = strlen (tmpl);
+  if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
+    return -1;
+
+  /* This is where the Xs start.  */
+  XXXXXX = &tmpl[len - 6];
+
+  /* Get some more or less random data.  */
+  g_get_current_time (&tv);
+  value = tv.tv_usec ^ tv.tv_sec;
+
+  for (count = 0; count < 100; value += 7777, ++count)
+    {
+      glong v = value;
+
+      /* Fill in the random bits.  */
+      XXXXXX[0] = letters[v % 62];
+      v /= 62;
+      XXXXXX[1] = letters[v % 62];
+      v /= 62;
+      XXXXXX[2] = letters[v % 62];
+      v /= 62;
+      XXXXXX[3] = letters[v % 62];
+      v /= 62;
+      XXXXXX[4] = letters[v % 62];
+      v /= 62;
+      XXXXXX[5] = letters[v % 62];
+
+      fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600);
+
+      if (fd >= 0)
+       return fd;
+      else if (errno != EEXIST)
+       /* Any other error will apply also to other names we might
+        *  try, and there are 2^32 or so of them, so give up now.
+        */
+       return -1;
+    }
+
+  /* We got out of the loop because we ran out of combinations to try.  */
+  return -1;
+#endif
+}
index d49c921..e452ea7 100644 (file)
@@ -80,6 +80,8 @@ gboolean g_file_get_contents (const gchar  *filename,
                               GError      **error);
 
 
+/* Wrapper / workalike for mkstemp() */
+int     g_mkstemp (char *tmpl);
 
 G_END_DECLS
 
index 37f9f9a..8184858 100644 (file)
@@ -99,6 +99,8 @@ EXPORTS
        g_error_matches
        g_error_new
        g_error_new_literal
+       g_file_error_from_errno
+       g_file_error_quark
        g_file_get_contents
        g_file_test
        g_filename_from_utf8
index b7b786d..6cb9141 100644 (file)
@@ -40,7 +40,6 @@
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
-#include <fcntl.h>
 #ifdef HAVE_PWD_H
 #include <pwd.h>
 #endif
@@ -969,78 +968,3 @@ g_get_codeset (void)
 #endif
 #endif
 }
-
-/**
- * g_mkstemp:
- *
- * Open a temporary file
- *
- * The parameter is a string that should match the rules for mktemp, i.e.
- * end in "XXXXXX". The X string will be modified to form the name
- * of a file that didn't exist.
- *
- * Return value: A file handle (as from open()) to the file file
- * opened for reading and writing. The file is opened in binary mode
- * on platforms where there is a difference. The file handle should be
- * closed with close(). In case of errors, -1 is returned.
- *
- * From the GNU C library.
- * Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
- */
-int
-g_mkstemp (char *tmpl)
-{
-#ifdef HAVE_MKSTEMP
-  return mkstemp (tmpl);
-#else
-  int len;
-  char *XXXXXX;
-  int count, fd;
-  static const char letters[] =
-    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-  glong value;
-  GTimeVal tv;
-
-  len = strlen (tmpl);
-  if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
-    return -1;
-
-  /* This is where the Xs start.  */
-  XXXXXX = &tmpl[len - 6];
-
-  /* Get some more or less random data.  */
-  g_get_current_time (&tv);
-  value = tv.tv_usec ^ tv.tv_sec;
-
-  for (count = 0; count < 100; value += 7777, ++count)
-    {
-      glong v = value;
-
-      /* Fill in the random bits.  */
-      XXXXXX[0] = letters[v % 62];
-      v /= 62;
-      XXXXXX[1] = letters[v % 62];
-      v /= 62;
-      XXXXXX[2] = letters[v % 62];
-      v /= 62;
-      XXXXXX[3] = letters[v % 62];
-      v /= 62;
-      XXXXXX[4] = letters[v % 62];
-      v /= 62;
-      XXXXXX[5] = letters[v % 62];
-
-      fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600);
-
-      if (fd >= 0)
-       return fd;
-      else if (errno != EEXIST)
-       /* Any other error will apply also to other names we might
-        *  try, and there are 2^32 or so of them, so give up now.
-        */
-       return -1;
-    }
-
-  /* We got out of the loop because we ran out of combinations to try.  */
-  return -1;
-#endif
-}
index e70ec48..c4dcb1b 100644 (file)
@@ -161,9 +161,6 @@ gchar*      g_path_get_dirname      (const gchar *file_name);
 /* Get the codeset for the current locale */
 /* gchar * g_get_codeset    (void); */
 
-/* Wrapper / workalike for mkstemp() */
-int     g_mkstemp (char *tmpl);
-
 /* return the environment string for the variable. The returned memory
  * must not be freed. */
 gchar*  g_getenv               (const gchar *variable);
index b7b786d..6cb9141 100644 (file)
--- a/gutils.c
+++ b/gutils.c
@@ -40,7 +40,6 @@
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
-#include <fcntl.h>
 #ifdef HAVE_PWD_H
 #include <pwd.h>
 #endif
@@ -969,78 +968,3 @@ g_get_codeset (void)
 #endif
 #endif
 }
-
-/**
- * g_mkstemp:
- *
- * Open a temporary file
- *
- * The parameter is a string that should match the rules for mktemp, i.e.
- * end in "XXXXXX". The X string will be modified to form the name
- * of a file that didn't exist.
- *
- * Return value: A file handle (as from open()) to the file file
- * opened for reading and writing. The file is opened in binary mode
- * on platforms where there is a difference. The file handle should be
- * closed with close(). In case of errors, -1 is returned.
- *
- * From the GNU C library.
- * Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
- */
-int
-g_mkstemp (char *tmpl)
-{
-#ifdef HAVE_MKSTEMP
-  return mkstemp (tmpl);
-#else
-  int len;
-  char *XXXXXX;
-  int count, fd;
-  static const char letters[] =
-    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
-  glong value;
-  GTimeVal tv;
-
-  len = strlen (tmpl);
-  if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
-    return -1;
-
-  /* This is where the Xs start.  */
-  XXXXXX = &tmpl[len - 6];
-
-  /* Get some more or less random data.  */
-  g_get_current_time (&tv);
-  value = tv.tv_usec ^ tv.tv_sec;
-
-  for (count = 0; count < 100; value += 7777, ++count)
-    {
-      glong v = value;
-
-      /* Fill in the random bits.  */
-      XXXXXX[0] = letters[v % 62];
-      v /= 62;
-      XXXXXX[1] = letters[v % 62];
-      v /= 62;
-      XXXXXX[2] = letters[v % 62];
-      v /= 62;
-      XXXXXX[3] = letters[v % 62];
-      v /= 62;
-      XXXXXX[4] = letters[v % 62];
-      v /= 62;
-      XXXXXX[5] = letters[v % 62];
-
-      fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600);
-
-      if (fd >= 0)
-       return fd;
-      else if (errno != EEXIST)
-       /* Any other error will apply also to other names we might
-        *  try, and there are 2^32 or so of them, so give up now.
-        */
-       return -1;
-    }
-
-  /* We got out of the loop because we ran out of combinations to try.  */
-  return -1;
-#endif
-}
index e70ec48..c4dcb1b 100644 (file)
--- a/gutils.h
+++ b/gutils.h
@@ -161,9 +161,6 @@ gchar*      g_path_get_dirname      (const gchar *file_name);
 /* Get the codeset for the current locale */
 /* gchar * g_get_codeset    (void); */
 
-/* Wrapper / workalike for mkstemp() */
-int     g_mkstemp (char *tmpl);
-
 /* return the environment string for the variable. The returned memory
  * must not be freed. */
 gchar*  g_getenv               (const gchar *variable);