+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.
* 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>
+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.
* 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>
+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.
* 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>
+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.
* 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>
+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.
* 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>
+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.
* 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>
+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.
* 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>
+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.
* 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>
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
+}
GError **error);
+/* Wrapper / workalike for mkstemp() */
+int g_mkstemp (char *tmpl);
G_END_DECLS
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
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
+}
GError **error);
+/* Wrapper / workalike for mkstemp() */
+int g_mkstemp (char *tmpl);
G_END_DECLS
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
#include <stdio.h>
#include <string.h>
#include <errno.h>
-#include <fcntl.h>
#ifdef HAVE_PWD_H
#include <pwd.h>
#endif
#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
-}
/* 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);
#include <stdio.h>
#include <string.h>
#include <errno.h>
-#include <fcntl.h>
#ifdef HAVE_PWD_H
#include <pwd.h>
#endif
#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
-}
/* 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);