New function to list all environment variables. (#166327, Hans Petter

2005-02-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols:
	* glib/gutils.h:
	* glib/gutils.c (g_listenv): New function to list all
	environment variables.  (#166327, Hans Petter Jansson)
This commit is contained in:
Matthias Clasen 2005-02-08 04:28:31 +00:00 committed by Matthias Clasen
parent 7b93170258
commit f18cab0ce3
9 changed files with 67 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2005-02-07 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gutils.h:
* glib/gutils.c (g_listenv): New function to list all
environment variables. (#166327, Hans Petter Jansson)
2005-02-07 Tor Lillqvist <tml@novell.com>
* glib-zip.in: Add gmodule-no-export-2.0.pc.

View File

@ -1,3 +1,10 @@
2005-02-07 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gutils.h:
* glib/gutils.c (g_listenv): New function to list all
environment variables. (#166327, Hans Petter Jansson)
2005-02-07 Tor Lillqvist <tml@novell.com>
* glib-zip.in: Add gmodule-no-export-2.0.pc.

View File

@ -1,3 +1,10 @@
2005-02-07 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gutils.h:
* glib/gutils.c (g_listenv): New function to list all
environment variables. (#166327, Hans Petter Jansson)
2005-02-07 Tor Lillqvist <tml@novell.com>
* glib-zip.in: Add gmodule-no-export-2.0.pc.

View File

@ -1,3 +1,10 @@
2005-02-07 Matthias Clasen <mclasen@redhat.com>
* glib/glib.symbols:
* glib/gutils.h:
* glib/gutils.c (g_listenv): New function to list all
environment variables. (#166327, Hans Petter Jansson)
2005-02-07 Tor Lillqvist <tml@novell.com>
* glib-zip.in: Add gmodule-no-export-2.0.pc.

View File

@ -1,3 +1,7 @@
2005-02-07 Matthias Clasen <mclasen@redhat.com>
* glib/glib-sections.txt: Add g_listenv.
2005-02-04 Matthias Clasen <mclasen@redhat.com>
* glib/tmpl/linked_lists_double.sgml:

View File

@ -1283,6 +1283,7 @@ g_set_prgname
g_getenv
g_setenv
g_unsetenv
g_listenv
g_get_user_name
g_get_real_name
g_get_user_cache_dir

View File

@ -372,6 +372,7 @@ g_key_file_set_string_list
g_key_file_set_value
g_key_file_to_data G_GNUC_MALLOC
glib_check_version
g_listenv
g_list_alloc
g_list_append
g_list_concat

View File

@ -1215,12 +1215,12 @@ g_setenv (const gchar *variable,
}
#ifndef G_OS_WIN32
#ifndef HAVE_UNSETENV
/* According to the Single Unix Specification, environ is not in
* any system header, although unistd.h often declares it.
*/
extern char **environ;
#endif
#endif
/**
@ -1312,6 +1312,36 @@ g_unsetenv (const gchar *variable)
#endif /* G_OS_WIN32 */
}
/**
* g_listenv:
*
* Gets the names of all variables set in the environment.
*
* Return: a NUL-terminated list of strings which must be freed
* with g_strfreev().
*
* Since: 2.8
*/
gchar **
g_listenv (void)
{
gchar **result, *eq;
gint len, i;
len = g_strv_length (environ);
result = g_new0 (gchar *, len + 1);
for (i = 0; i < len; i++)
{
eq = strchr (environ[i], '=');
result[i] = g_strndup (environ[i], eq - environ[i]);
}
result[len] = NULL;
return result;
}
G_LOCK_DEFINE_STATIC (g_utils_global);
static gchar *g_tmp_dir = NULL;

View File

@ -193,7 +193,7 @@ gboolean g_setenv (const gchar *variable,
const gchar *value,
gboolean overwrite);
void g_unsetenv (const gchar *variable);
gchar** g_listenv (void);
/* we try to provide a usefull equivalent for ATEXIT if it is
* not defined, but use is actually abandoned. people should