mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-20 01:02:10 +01:00
gutils.c gutils.h gfileutils.c Actually, g_mkstemp() is better suited in
2000-10-31 Tor Lillqvist <tml@iki.fi> * gutils.c * gutils.h * gfileutils.c * gfileutils.h: Actually, g_mkstemp() is better suited in gfileutils.
This commit is contained in:
parent
6acee58bdf
commit
dd3f4d6bb3
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
@ -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>
|
||||
|
||||
|
75
gfileutils.c
75
gfileutils.c
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
2
glib.def
2
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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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);
|
||||
|
76
gutils.c
76
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
|
||||
}
|
||||
|
3
gutils.h
3
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user