wsutil: Remove getenv_utf8(), replaced with g_getenv()

Replace getenv() calls in filesystem.c too for consistency.

Change-Id: I31425179290e556e6696953531989d93777adf92
Reviewed-on: https://code.wireshark.org/review/14752
Petri-Dish: João Valverde <j@v6e.pt>
Reviewed-by: João Valverde <j@v6e.pt>
Tested-by: João Valverde <j@v6e.pt>
Reviewed-by: Michael Mann <mmann78@netscape.net>
This commit is contained in:
João Valverde 2016-03-31 04:38:51 +01:00 committed by Michael Mann
parent ee9858f347
commit 80a80edd5e
3 changed files with 20 additions and 59 deletions

View File

@ -605,39 +605,6 @@ ws_module_open(gchar *module_name, GModuleFlags flags)
return NULL;
}
/* utf8 version of getenv, needed to get win32 filename paths */
char *
getenv_utf8(const char *varname)
{
char *envvar;
wchar_t *envvarw;
wchar_t *varnamew;
envvar = getenv(varname);
/* since GLib 2.6 we need an utf8 version of the filename */
/* using the wide char version of getenv should work under all circumstances */
/* convert given varname to utf16, needed by _wgetenv */
varnamew = g_utf8_to_utf16(varname, -1, NULL, NULL, NULL);
if (varnamew == NULL) {
return envvar;
}
/* use wide char version of getenv */
envvarw = _wgetenv(varnamew);
g_free(varnamew);
if (envvarw == NULL) {
return envvar;
}
/* convert value to utf8 */
envvar = g_utf16_to_utf8(envvarw, -1, NULL, NULL, NULL);
/* XXX - memleak */
return envvar;
}
/** Create or open a "Wireshark is running" mutex.
*/
#define WIRESHARK_IS_RUNNING_UUID "9CA78EEA-EA4D-4490-9240-FC01FCEF464B"

View File

@ -152,11 +152,6 @@ void *ws_load_library(const gchar *library_name);
WS_DLL_PUBLIC
GModule *ws_module_open(gchar *module_name, GModuleFlags flags);
/*
* utf8 version of getenv, needed to get win32 filename paths
*/
WS_DLL_PUBLIC char *getenv_utf8(const char *varname);
/** Create or open a "Wireshark is running" mutex.
* Create or open a mutex which signals that Wireshark or its associated
* executables is running. Used by the installer to test for a running application.

View File

@ -473,8 +473,7 @@ init_progfile_dir(const char *arg0
*/
if (GetModuleFileName(NULL, prog_pathname_w, G_N_ELEMENTS(prog_pathname_w)) != 0 && GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
/*
* XXX - Should we use g_utf16_to_utf8(), as in
* getenv_utf8()?
* XXX - Should we use g_utf16_to_utf8()?
*/
prog_pathname = utf_16to8(prog_pathname_w);
/*
@ -527,8 +526,8 @@ init_progfile_dir(const char *arg0
char *prog_pathname;
char *curdir;
long path_max;
char *pathstr;
char *path_start, *path_end;
const char *pathstr;
const char *path_start, *path_end;
size_t path_component_len, path_len;
char *retstr;
char *path;
@ -543,7 +542,7 @@ init_progfile_dir(const char *arg0
* set, causes us to look for plugins and the like in the build
* directory.)
*/
if (getenv("WIRESHARK_RUN_FROM_BUILD_DIRECTORY") != NULL
if (g_getenv("WIRESHARK_RUN_FROM_BUILD_DIRECTORY") != NULL
&& !started_with_special_privs())
running_in_build_directory_flag = TRUE;
@ -623,7 +622,7 @@ DIAG_ON(pedantic)
* that's executable.
*/
prog_pathname = NULL; /* haven't found it yet */
pathstr = getenv("PATH");
pathstr = g_getenv("PATH");
path_start = pathstr;
if (path_start != NULL) {
while (*path_start != '\0') {
@ -876,13 +875,13 @@ get_datafile_dir(void)
datafile_dir = g_strdup(TOP_SRCDIR);
return datafile_dir;
} else {
if (getenv("WIRESHARK_DATA_DIR") && !started_with_special_privs()) {
if (g_getenv("WIRESHARK_DATA_DIR") && !started_with_special_privs()) {
/*
* The user specified a different directory for data files
* and we aren't running with special privileges.
* XXX - We might be able to dispense with the priv check
*/
datafile_dir = g_strdup(getenv("WIRESHARK_DATA_DIR"));
datafile_dir = g_strdup(g_getenv("WIRESHARK_DATA_DIR"));
}
#ifdef __APPLE__
/*
@ -975,12 +974,12 @@ init_plugin_dir(void)
*/
plugin_dir = g_strdup_printf("%s/plugins", get_progfile_dir());
} else {
if (getenv("WIRESHARK_PLUGIN_DIR") && !started_with_special_privs()) {
if (g_getenv("WIRESHARK_PLUGIN_DIR") && !started_with_special_privs()) {
/*
* The user specified a different directory for plugins
* and we aren't running with special privileges.
*/
plugin_dir = g_strdup(getenv("WIRESHARK_PLUGIN_DIR"));
plugin_dir = g_strdup(g_getenv("WIRESHARK_PLUGIN_DIR"));
}
#ifdef __APPLE__
/*
@ -1042,7 +1041,7 @@ static const char *extcap_dir = NULL;
static void init_extcap_dir(void) {
#ifdef _WIN32
char *alt_extcap_path;
const char *alt_extcap_path;
/*
* On Windows, the data file directory is the installation
@ -1052,7 +1051,7 @@ static void init_extcap_dir(void) {
* on Windows, the data file directory is the directory
* in which the Wireshark binary resides.
*/
alt_extcap_path = getenv_utf8("WIRESHARK_EXTCAP_DIR");
alt_extcap_path = g_getenv("WIRESHARK_EXTCAP_DIR");
if (alt_extcap_path) {
/*
* The user specified a different directory for extcap hooks.
@ -1071,12 +1070,12 @@ static void init_extcap_dir(void) {
*/
extcap_dir = g_strdup_printf("%s/extcap", get_progfile_dir());
} else {
if (getenv("WIRESHARK_EXTCAP_DIR") && !started_with_special_privs()) {
if (g_getenv("WIRESHARK_EXTCAP_DIR") && !started_with_special_privs()) {
/*
* The user specified a different directory for extcap hooks
* and we aren't running with special privileges.
*/
extcap_dir = g_strdup(getenv("WIRESHARK_EXTCAP_DIR"));
extcap_dir = g_strdup(g_getenv("WIRESHARK_EXTCAP_DIR"));
}
#ifdef __APPLE__
/*
@ -1248,7 +1247,7 @@ get_persconffile_dir_no_profile(void)
/*
* See if the user has selected an alternate environment.
*/
env = getenv_utf8("WIRESHARK_APPDATA");
env = g_getenv("WIRESHARK_APPDATA");
if (env != NULL) {
persconffile_dir = g_strdup(env);
return persconffile_dir;
@ -1262,7 +1261,7 @@ get_persconffile_dir_no_profile(void)
* so means you can use Wireshark even if the home directory
* is an inaccessible network drive.
*/
env = getenv_utf8("APPDATA");
env = g_getenv("APPDATA");
if (env != NULL) {
/*
* Concatenate %APPDATA% with "\Wireshark".
@ -1274,7 +1273,7 @@ get_persconffile_dir_no_profile(void)
/*
* OK, %APPDATA% wasn't set, so use %USERPROFILE%\Application Data.
*/
env = getenv_utf8("USERPROFILE");
env = g_getenv("USERPROFILE");
if (env != NULL) {
persconffile_dir = g_build_filename(env, "Application Data", "Wireshark", NULL);
return persconffile_dir;
@ -1304,7 +1303,7 @@ get_persconffile_dir_no_profile(void)
* (Note: before GLib 2.36, g_get_home_dir() didn't look at $HOME,
* but we always want to do so, so we don't use g_get_home_dir().)
*/
homedir = getenv("HOME");
homedir = g_getenv("HOME");
if (homedir == NULL) {
/*
* It's not set.
@ -1695,7 +1694,7 @@ static const char *
get_home_dir(void)
{
static const char *home = NULL;
char *homedrive, *homepath;
const char *homedrive, *homepath;
char *homestring;
char *lastsep;
@ -1708,9 +1707,9 @@ get_home_dir(void)
* Is there a chance that it might be set but one or more of
* HOMEDRIVE or HOMEPATH isn't set?
*/
homedrive = getenv_utf8("HOMEDRIVE");
homedrive = g_getenv("HOMEDRIVE");
if (homedrive != NULL) {
homepath = getenv_utf8("HOMEPATH");
homepath = g_getenv("HOMEPATH");
if (homepath != NULL) {
/*
* This is cached, so we don't need to worry about